از دستیار کدنویس تا همکار هوشمند؛ گام دوم: اتصال کدبیس دیوار به مدلهای زبانی
ما در دیوار این هدف رو برای خودمون گذاشتیم که با استفاده از هوش مصنوعی، بهرهوری مهندسی رو افزایش بدیم. در شروع سرویسهای مکالمهمحور مثل ChatGPT رو آوردیم و باهاشون کار کردیم. به مرور سرویسهایی مثل Copilot و Cursor رو هم امتحان کردیم. تجربهمون تا مدتی به این صورت بود که هر ابزار جدیدی که میومد تعدادی از مشکلات و اذیتهایی رو که با ورژنهای قدیمیتر داشتیم، برطرف میکرد. برای مثال در کار با ChatGPT باید توضیحات خیلی مفصلی از مسئله ارائه میدادیم و تمام کدهای مورد نیازشو کپی پیست میکردیم و کد خروجیش رو داخل محیط توسعهمون میآوردیم و مشکلات سینتکسی که داشت رو برطرف میکردیم. برای دیباگ هم لاگهای خروجیش رو باز به GPT میدادیم. این تجربهٔ کاربری رفت و برگشتی تا حد خوبی در محصولاتی مثل Cursor برطرف شد اما همچنان مشکلات بزرگ دیگری داشتیم.
برای خوندن ادامهٔ مطلب بلاگ پست جدید دیوار رو ببینید:
https://vrgl.ir/6JFvk
@DevTwitter | <Divar/>
ما در دیوار این هدف رو برای خودمون گذاشتیم که با استفاده از هوش مصنوعی، بهرهوری مهندسی رو افزایش بدیم. در شروع سرویسهای مکالمهمحور مثل ChatGPT رو آوردیم و باهاشون کار کردیم. به مرور سرویسهایی مثل Copilot و Cursor رو هم امتحان کردیم. تجربهمون تا مدتی به این صورت بود که هر ابزار جدیدی که میومد تعدادی از مشکلات و اذیتهایی رو که با ورژنهای قدیمیتر داشتیم، برطرف میکرد. برای مثال در کار با ChatGPT باید توضیحات خیلی مفصلی از مسئله ارائه میدادیم و تمام کدهای مورد نیازشو کپی پیست میکردیم و کد خروجیش رو داخل محیط توسعهمون میآوردیم و مشکلات سینتکسی که داشت رو برطرف میکردیم. برای دیباگ هم لاگهای خروجیش رو باز به GPT میدادیم. این تجربهٔ کاربری رفت و برگشتی تا حد خوبی در محصولاتی مثل Cursor برطرف شد اما همچنان مشکلات بزرگ دیگری داشتیم.
برای خوندن ادامهٔ مطلب بلاگ پست جدید دیوار رو ببینید:
https://vrgl.ir/6JFvk
@DevTwitter | <Divar/>
👎17❤11👍2🔥1
ریاکت فایبر (React Fiber) چیه؟
اگر تا حالا با React کار کردی، احتمالا اسم React Fiber به گوشت نخورده باشه، ولی همین چیزی که هر روز داری باهاش کد میزنی، داخلش به شدت وابسته به Fiberـه.
فایبر (Fiber) چیه؟
یه الگوریتم رندر هست که وظیفهش اینه:
- بفهمه کدوم بخش از UI باید آپدیت بشه
- تصمیم بگیره چطور و چه زمانی اون آپدیت انجام بشه
به زبان ساده: Fiber مغز Reactـه برای هماهنگ کردن Virtual DOM با DOM واقعی.
چرا مهمه و چی کار میکنه؟
۱. اولویتبندی آپدیتها
همه تغییرها به یک اندازه مهم نیستن. مثلا تایپ کاربر مهمتر از رندر شدن یه لیست طولانیه. Fiber اینو میفهمه و اول کارهای فوری رو انجام میده.
۲. توقف و ادامه رندر (Interruptible rendering)
رندر کردن UI میتونه سنگین باشه. Fiber اجازه میده وسط کار رندر متوقف بشه تا مرورگر بتونه کارهای مهمتر (مثل اسکرول یا کلیک) رو انجام بده، بعد دوباره ادامه بده.
۳.رندر همزمان (Concurrency)
پایهی قابلیتهای مدرن مثل Concurrent Rendering و Transitionهاست. یعنی React میتونه چند نسخهی مختلف از UI رو آماده کنه و روانترین تجربه رو به کاربر نشون بده.
۴. تجربه کاربری (UX) بهتر
رندر روانتر، بدون لگ، و حس سریعتر بودن اپلیکیشن.
اگه دوست داری بیشتر درمورد بدونی میتونی به این لینک سر بزنی:
https://github.com/acdlite/react-fiber-architecture?tab=readme-ov-file
@DevTwitter | <Reihaneh SadatShokouhi/>
اگر تا حالا با React کار کردی، احتمالا اسم React Fiber به گوشت نخورده باشه، ولی همین چیزی که هر روز داری باهاش کد میزنی، داخلش به شدت وابسته به Fiberـه.
فایبر (Fiber) چیه؟
یه الگوریتم رندر هست که وظیفهش اینه:
- بفهمه کدوم بخش از UI باید آپدیت بشه
- تصمیم بگیره چطور و چه زمانی اون آپدیت انجام بشه
به زبان ساده: Fiber مغز Reactـه برای هماهنگ کردن Virtual DOM با DOM واقعی.
چرا مهمه و چی کار میکنه؟
۱. اولویتبندی آپدیتها
همه تغییرها به یک اندازه مهم نیستن. مثلا تایپ کاربر مهمتر از رندر شدن یه لیست طولانیه. Fiber اینو میفهمه و اول کارهای فوری رو انجام میده.
۲. توقف و ادامه رندر (Interruptible rendering)
رندر کردن UI میتونه سنگین باشه. Fiber اجازه میده وسط کار رندر متوقف بشه تا مرورگر بتونه کارهای مهمتر (مثل اسکرول یا کلیک) رو انجام بده، بعد دوباره ادامه بده.
۳.رندر همزمان (Concurrency)
پایهی قابلیتهای مدرن مثل Concurrent Rendering و Transitionهاست. یعنی React میتونه چند نسخهی مختلف از UI رو آماده کنه و روانترین تجربه رو به کاربر نشون بده.
۴. تجربه کاربری (UX) بهتر
رندر روانتر، بدون لگ، و حس سریعتر بودن اپلیکیشن.
اگه دوست داری بیشتر درمورد بدونی میتونی به این لینک سر بزنی:
https://github.com/acdlite/react-fiber-architecture?tab=readme-ov-file
@DevTwitter | <Reihaneh SadatShokouhi/>
❤29👍9👎1🔥1
یه خبر فوقالعاده!
ترجمهی این کتاب به طور کامل به پایان رسید!
این کتاب به صورت تخصصی شما رو وارد دنیای Task و async/await در CSharp و .NET میکنه و منبع خیلی خوبی برای درک عمیق این مفاهیمه.
https://github.com/hheydarian/task-programming-in-csharp-dotnet-persian
@DevTwitter | <Hamed/>
ترجمهی این کتاب به طور کامل به پایان رسید!
این کتاب به صورت تخصصی شما رو وارد دنیای Task و async/await در CSharp و .NET میکنه و منبع خیلی خوبی برای درک عمیق این مفاهیمه.
https://github.com/hheydarian/task-programming-in-csharp-dotnet-persian
@DevTwitter | <Hamed/>
❤40🔥5👎4👍2
امروز دیدم اکستنشن محبوب Material Theme در VS Code که به گفته خودشون 9 میلیون نصب داشته و مدتی پیش بهخاطر موارد امنیتی پاک شده بود رو با اسم Vira Theme برگردوندن، اما این بار دیگه رایگان نیست و باید لایسنس خرید.
من همون اوایل که پاک شده بود پیگیر شدم و تونستم کدهای .json رو استخراج کنم و بصورت مستقیم میذارمشون روی تم VS Code و ازشون استفاده میکنم.
توی این ریپو فایل هارو همراه با یک راهنمای گام به گام در سیستم عامل های مختلف قرار دادم.
چون راهنما در README گام به گام و با جزئیات نوشته شده شاید طولانی و خسته کننده بنظر بیاد اما درواقع اجرا کردنش فقط چند ثانیه وقت میگیره.
github.com/a-partovii/relive-VSC-Material-Theme
@DevTwitter | <Ashkan/>
من همون اوایل که پاک شده بود پیگیر شدم و تونستم کدهای .json رو استخراج کنم و بصورت مستقیم میذارمشون روی تم VS Code و ازشون استفاده میکنم.
توی این ریپو فایل هارو همراه با یک راهنمای گام به گام در سیستم عامل های مختلف قرار دادم.
چون راهنما در README گام به گام و با جزئیات نوشته شده شاید طولانی و خسته کننده بنظر بیاد اما درواقع اجرا کردنش فقط چند ثانیه وقت میگیره.
github.com/a-partovii/relive-VSC-Material-Theme
@DevTwitter | <Ashkan/>
❤47👍10👎8🔥2
تگ گذاری روی پستهای چنل به کارتون میاد؟ اصلا میشه که با هشتگ جایی چیزی بگردید؟ هشتگ بذاریم رو پستا؟
Anonymous Poll
72%
yup
28%
!yup
👍36👎19❤1
این ریپو رو نوشتم جهت خروجی با کیفیت گرفتن از مدل های ollama با زبان فارسی و همچنین یک محیط گرافیکی خوب توضیحات بیشتر روکوت کردم.
https://github.com/sepy-dev/Persian-Ollama-LLm/
@DevTwitter | <سپهر/>
https://github.com/sepy-dev/Persian-Ollama-LLm/
@DevTwitter | <سپهر/>
👎9🔥6👍4❤2
کمپانی xAI مدل Grok 2.5 رو متنباز کرده؛ حالا همه میتونن به کدهاش دسترسی داشته باشن، تغییرش بدن یا نسخه شخصی بسازن. این حرکت یه گام مهم برای آزادتر شدن هوش مصنوعیه. همچنین اعلام شده تا شش ماه دیگه مدل قدرتمندتر Grok 3 هم متنباز میشه.
https://huggingface.co/xai-org/grok-2
@DevTwitter | <محمد زمانی/>
https://huggingface.co/xai-org/grok-2
@DevTwitter | <محمد زمانی/>
❤61👍8🔥1
برای نصب Cursor توی لینوکس این ریپو خیلی راحت کرده کار رو:
https://github.com/cursor-ide/getcursor
@DevTwitter | <Amir.local/>
https://github.com/cursor-ide/getcursor
@DevTwitter | <Amir.local/>
👎27🔥9👍5❤1
آقا ببینید چی پیدا کردم
https://github.com/PyO3/pyo3
میتونی توی پایتون، rust بنویسی و ران کنی برای وقتایی که performance نیاز داری :))))))))))))))))))))
@DevTwitter | <ali Joghataee/>
https://github.com/PyO3/pyo3
میتونی توی پایتون، rust بنویسی و ران کنی برای وقتایی که performance نیاز داری :))))))))))))))))))))
@DevTwitter | <ali Joghataee/>
👎43👍21🔥6❤1
استنفورد میگه هوشمصنوعی بیشتر نسل جدید یا همون دهه هشتادیهارو داره جایگزین میکنه، استخدامشون ۱۶ درصد کمتر شده. یه دلیلش اینه که اینها چون تازه شروع به کار میکنن معمولا کارهای ابتدایی یا روتین یه شغل رو انجام میدن که راحتتر با AI میشه جایگزین کرد.
با تجربهها که معمولا بالای ۳۰ سال هستن ولی اوضاعشون خوبه و ۶ تا ۹ درصد بازار کارشون بهتر شده.
کلا هوشمصنوعی ورود به بازار کار رو سختتر کرده، دهههای جدید باید بیشتر با واقعیتهاروبرو بشن.
@DevTwitter | <Soroush Ahmadi/>
با تجربهها که معمولا بالای ۳۰ سال هستن ولی اوضاعشون خوبه و ۶ تا ۹ درصد بازار کارشون بهتر شده.
کلا هوشمصنوعی ورود به بازار کار رو سختتر کرده، دهههای جدید باید بیشتر با واقعیتهاروبرو بشن.
@DevTwitter | <Soroush Ahmadi/>
👍80❤5👎4
کتابخانه FoxQL منتشر شد
یک کتابخانه سریع و آسون برای php
با پشتیبانی از اکثر دیتابیس های SQL
PostgreSQL, MySQL, SQLite, Sybase, Oracle, and MSSQL
یک سیستم ORM خفن داره
بر پایه pdo طراحی شده
تمامی متود های مورد نیاز رو داره
مستندات کامل برای هر متود داره
امکان ایجاد، حذف و مدیریت جداول رو با سیستم Migration مشابه لاراول داره
https://github.com/code3-dev/FoxQL
@DevTwitter | <Hossein Pira/>
یک کتابخانه سریع و آسون برای php
با پشتیبانی از اکثر دیتابیس های SQL
PostgreSQL, MySQL, SQLite, Sybase, Oracle, and MSSQL
یک سیستم ORM خفن داره
بر پایه pdo طراحی شده
تمامی متود های مورد نیاز رو داره
مستندات کامل برای هر متود داره
امکان ایجاد، حذف و مدیریت جداول رو با سیستم Migration مشابه لاراول داره
https://github.com/code3-dev/FoxQL
@DevTwitter | <Hossein Pira/>
❤34👎8👍6🔥4
ادیتور Zed
من تو این سالهایی که برنامهنویسی میکنم از ابزارها و ادیتورهای مختلفی استفاده کردم. هر زبان، ادیتور مخصوص خودش رو داشت. اما ۴ سال اخیر همیشه لایسنس اشتراکی JetBrains میخریدم. ابزارهای کامل و قدرتمندی بودن، ولی واقعاً سنگین.
دو ماه پیش اشتراک ۶ ماههم تموم شد. با توجه به دردسرهایی که تحریمها ایجاد کرده بودن، دیگه حوصله نداشتم درگیرش بشم. حتی لایسنس جدیدم رو هم فعال نکردم. اون موقع یادم افتاد چند وقت قبل Zed رو نصب کرده بودم اما خیلی جدی تستش نکردم. خلاصه کانفیگش کردم و از همون موقع تا الان ادیتور اصلی من شده.
باید بگم واقعاً لذت بردم! مخصوصاً اینکه اینقدر با keymapهای Vim سازگاره باعث شد سریعتر عادت کنم. سرعت کدنویسیم حتی از ابزارهای چند ده دلاری JetBrains هم بیشتر شد
به نظرم Zed خیلی سبک، سریع و سادهست. هم تجربه متفاوتی میده، هم سیستم رو سبک نگه میداره تا منابع برای سرویسهای در حال توسعه خودمون آزاد بمونه.
همیشه به نظرم زیبایی در سادگیه. Zed دقیقاً همین رو بهت نشون میده. امتحانش کنید، احتمال زیاد شما هم مثل من عاشقش میشید!
راستی میدونم ادیتور با IDE قابل مقایسه نیست ولی این نتیجه تجربه شخصی منه به عنوان یک توسعه دهنده نرم افزار
@DevTwitter | <Abolfazl Alizadeh/>
من تو این سالهایی که برنامهنویسی میکنم از ابزارها و ادیتورهای مختلفی استفاده کردم. هر زبان، ادیتور مخصوص خودش رو داشت. اما ۴ سال اخیر همیشه لایسنس اشتراکی JetBrains میخریدم. ابزارهای کامل و قدرتمندی بودن، ولی واقعاً سنگین.
دو ماه پیش اشتراک ۶ ماههم تموم شد. با توجه به دردسرهایی که تحریمها ایجاد کرده بودن، دیگه حوصله نداشتم درگیرش بشم. حتی لایسنس جدیدم رو هم فعال نکردم. اون موقع یادم افتاد چند وقت قبل Zed رو نصب کرده بودم اما خیلی جدی تستش نکردم. خلاصه کانفیگش کردم و از همون موقع تا الان ادیتور اصلی من شده.
باید بگم واقعاً لذت بردم! مخصوصاً اینکه اینقدر با keymapهای Vim سازگاره باعث شد سریعتر عادت کنم. سرعت کدنویسیم حتی از ابزارهای چند ده دلاری JetBrains هم بیشتر شد
به نظرم Zed خیلی سبک، سریع و سادهست. هم تجربه متفاوتی میده، هم سیستم رو سبک نگه میداره تا منابع برای سرویسهای در حال توسعه خودمون آزاد بمونه.
همیشه به نظرم زیبایی در سادگیه. Zed دقیقاً همین رو بهت نشون میده. امتحانش کنید، احتمال زیاد شما هم مثل من عاشقش میشید!
راستی میدونم ادیتور با IDE قابل مقایسه نیست ولی این نتیجه تجربه شخصی منه به عنوان یک توسعه دهنده نرم افزار
@DevTwitter | <Abolfazl Alizadeh/>
❤38👎12👍8🔥3
امروز اولین پکیج اوپنسورس خودم رو روی گیتهاب منتشر کردم:
GeoMeasure: https://github.com/donyatorabi/geo-measure
مشکل
خیلی وقتها برای پروژههای مختلف نیاز داریم فاصلهی بین دو نقطهی جغرافیایی (بر اساس مختصات lat/lon) رو حساب کنیم. اکثر مواقع فقط فرمول سادهی Haversine استفاده میشه که زمین رو کروی فرض میکنه و در مسافتهای طولانی یا محاسبات دقیق خطا ایجاد میکنه.
راهحل
در این کتابخانه علاوه بر Haversine، الگوریتم دقیقتر Vincenty (با در نظر گرفتن بیضوی بودن زمین طبق WGS-84) هم پیادهسازی شده. این یعنی هم سرعت (با Haversine) و هم دقت بالا (با Vincenty) رو در یک پکیج سبک و ساده دارید.
ویژگیها
پشتیبانی از واحدهای مختلف (متر، کیلومتر، مایل، مایل دریایی)
محاسبهی فاصله، زاویهی اولیه (bearing) و نقطهی میانی (midpoint)
طراحی ساده و قابل استفاده در هر فریمورک PHP
تست واحد کامل با PHPUnit
پشتیبانی از PHP 8.1 به بالا
نصب
composer require donyatorabi/geo-measure
@DevTwitter | <Donya Torabi/>
GeoMeasure: https://github.com/donyatorabi/geo-measure
مشکل
خیلی وقتها برای پروژههای مختلف نیاز داریم فاصلهی بین دو نقطهی جغرافیایی (بر اساس مختصات lat/lon) رو حساب کنیم. اکثر مواقع فقط فرمول سادهی Haversine استفاده میشه که زمین رو کروی فرض میکنه و در مسافتهای طولانی یا محاسبات دقیق خطا ایجاد میکنه.
راهحل
در این کتابخانه علاوه بر Haversine، الگوریتم دقیقتر Vincenty (با در نظر گرفتن بیضوی بودن زمین طبق WGS-84) هم پیادهسازی شده. این یعنی هم سرعت (با Haversine) و هم دقت بالا (با Vincenty) رو در یک پکیج سبک و ساده دارید.
ویژگیها
پشتیبانی از واحدهای مختلف (متر، کیلومتر، مایل، مایل دریایی)
محاسبهی فاصله، زاویهی اولیه (bearing) و نقطهی میانی (midpoint)
طراحی ساده و قابل استفاده در هر فریمورک PHP
تست واحد کامل با PHPUnit
پشتیبانی از PHP 8.1 به بالا
نصب
composer require donyatorabi/geo-measure
@DevTwitter | <Donya Torabi/>
👍55🔥12👎6❤5
یکی از مشکلات بزرگ کتب برنامهنویسی همیشه این بوده که موضوع Encapsulation رو به شکلی تدریس کردهاند که انگار موضوعی است که فقط و فقط مختص به OOP هست؛ و از اون بدتر، این موضوع رو جوری جا انداختن که افراد فکر میکنند Encapsulation یعنی همان Access modifiers ها (private,public).
برای همین هست که بیشتر افراد هیچگونه تصوری از این ندارند که Encapsulation خارج از OOP چگونه است، و حتی در همون پارادایم OOP هم بدرستی نمیتونن کپسوله سازی رو پیاده سازی کنن و اجزای مختلف کدهاشون درهم و برهم هست.
موضوع Encapsulation یک موضوع منطقی است و برعکس چیزی که بیشتر کتابها بهتون میگن ربطی به Access modifier ها ندارد. Access modifier ها صرفا یک برچسب هستند که به طور عمده دو وظیفه رو دنبال میکنن: یک اینکه کامپایلر بتواند جلوی اشتباهات سهوی شما در بکارگیری برخی فیلدها رو بگیره (که این مدل اشتباه فوق العاده نادر هست)؛ و دلیل دیگر اینکه سایر برنامهنویسها موقع خواندن کدها، متوجه منظور شما بشن. مثلا متوجه بشن که شما خواسته ات در هنگام نوشتن کد این بوده که خارج از فلان محدوده از فلان فیلد استفاده نشود.
صرفا چون تعدادی از فیلدها را پرایوت کرده اید و تعدادی دیگر را پابلیک، فکر نکنید که Encapsulation انجام داده اید. بود و نبود این برچسبها، هیچ تاثیری در روند پیاده سازی Encapsulation در کدهای شما ندارند. اگر دوست دارید تمام فیلدها را پابلیک کنید! چه کسی، و چگونه، میخواهد یواشکی از فیلدهای شما استفاده کند؟ مگر میشود بخشی از کد، همینطور سرخود بیاید و از فیلدهای فلان بخش استفاده کند؟ شما باید مشخصا چنین کدی رو تایپ کنید وگرنه کدها از خودشان ارادهای ندارند که بتوانند قسمتهای مختلف یکدیگر رو دستکاری کنند!
موضوع Encapsulation یک فرآیند منطقی در هنگام طراحی سیستم هست که طی اون اجزای مختلف سیستم در یونیتهای مستقل کپسوله سازی میشن؛ این فرآیند، پیش نیاز تولید کدهای ماژولار هست. در این فرآیند کدها به شکل منطقی از هم جدا میشن، و در فاز بعدی که به سیستم ماژول میرسید، کدها متناسب با این طراحی، به شکل فیزیکی از هم جدا میشن.
متاسفانه برخی زبانهای معروف OOP مثل جاوا یا سی پلاس پلاس، تا سالها یک سیستم ماژول درست حسابی نداشتند و باعث شدند Access modifier ها در ذهن برنامهنویسها مترادف با Encapsulation و کدهای ماژولار بشوند؛ به این شکل که در نبود اونها، اصلا هیچ تصوری از اینکه Encapsulation چیست و قرار است طی آن چه اتفاقی بیفتد ندارند!
در زبانی که دارای یک سیستم ماژول خوب است، موضوع Access modifier ها چیزی هست که جزو مکانیزمهای مربوط به سیستم ماژول اون زبان هستند. در این مدل زبانها این مکانیزمها جزو قابلیتهای کمکی در زمینه دسته بندی و طبقه بندی فیزیکی کدها هستند (در کنار کمک به سایر برنامهنویسان در زمینه خوانایی) و باعث میشن کمتر این شبهه در ذهن برنامهنویس پیش بیاد که به صرف استفاده از این برچسبها، داره عمل کپسوله سازی رو انجام میده.
@DevTwitter | <Amirreza Gh/>
برای همین هست که بیشتر افراد هیچگونه تصوری از این ندارند که Encapsulation خارج از OOP چگونه است، و حتی در همون پارادایم OOP هم بدرستی نمیتونن کپسوله سازی رو پیاده سازی کنن و اجزای مختلف کدهاشون درهم و برهم هست.
موضوع Encapsulation یک موضوع منطقی است و برعکس چیزی که بیشتر کتابها بهتون میگن ربطی به Access modifier ها ندارد. Access modifier ها صرفا یک برچسب هستند که به طور عمده دو وظیفه رو دنبال میکنن: یک اینکه کامپایلر بتواند جلوی اشتباهات سهوی شما در بکارگیری برخی فیلدها رو بگیره (که این مدل اشتباه فوق العاده نادر هست)؛ و دلیل دیگر اینکه سایر برنامهنویسها موقع خواندن کدها، متوجه منظور شما بشن. مثلا متوجه بشن که شما خواسته ات در هنگام نوشتن کد این بوده که خارج از فلان محدوده از فلان فیلد استفاده نشود.
صرفا چون تعدادی از فیلدها را پرایوت کرده اید و تعدادی دیگر را پابلیک، فکر نکنید که Encapsulation انجام داده اید. بود و نبود این برچسبها، هیچ تاثیری در روند پیاده سازی Encapsulation در کدهای شما ندارند. اگر دوست دارید تمام فیلدها را پابلیک کنید! چه کسی، و چگونه، میخواهد یواشکی از فیلدهای شما استفاده کند؟ مگر میشود بخشی از کد، همینطور سرخود بیاید و از فیلدهای فلان بخش استفاده کند؟ شما باید مشخصا چنین کدی رو تایپ کنید وگرنه کدها از خودشان ارادهای ندارند که بتوانند قسمتهای مختلف یکدیگر رو دستکاری کنند!
موضوع Encapsulation یک فرآیند منطقی در هنگام طراحی سیستم هست که طی اون اجزای مختلف سیستم در یونیتهای مستقل کپسوله سازی میشن؛ این فرآیند، پیش نیاز تولید کدهای ماژولار هست. در این فرآیند کدها به شکل منطقی از هم جدا میشن، و در فاز بعدی که به سیستم ماژول میرسید، کدها متناسب با این طراحی، به شکل فیزیکی از هم جدا میشن.
متاسفانه برخی زبانهای معروف OOP مثل جاوا یا سی پلاس پلاس، تا سالها یک سیستم ماژول درست حسابی نداشتند و باعث شدند Access modifier ها در ذهن برنامهنویسها مترادف با Encapsulation و کدهای ماژولار بشوند؛ به این شکل که در نبود اونها، اصلا هیچ تصوری از اینکه Encapsulation چیست و قرار است طی آن چه اتفاقی بیفتد ندارند!
در زبانی که دارای یک سیستم ماژول خوب است، موضوع Access modifier ها چیزی هست که جزو مکانیزمهای مربوط به سیستم ماژول اون زبان هستند. در این مدل زبانها این مکانیزمها جزو قابلیتهای کمکی در زمینه دسته بندی و طبقه بندی فیزیکی کدها هستند (در کنار کمک به سایر برنامهنویسان در زمینه خوانایی) و باعث میشن کمتر این شبهه در ذهن برنامهنویس پیش بیاد که به صرف استفاده از این برچسبها، داره عمل کپسوله سازی رو انجام میده.
@DevTwitter | <Amirreza Gh/>
👍52👎15❤12🔥1
دیدید داخل فرم های ورودی بعضی سایتا وقتی شماره تلفن یا مثلا شماره کارت وارد می کنید اونو برای خوانایی بیشتر چند رقم چند رقم جدا میکنه؟ این لایبری براتون اون کارو میکنه همه ورودی هارم ساپورت میکنه.
http://nosir.github.io/cleave.js
@DevTwitter | <Nimo/>
http://nosir.github.io/cleave.js
@DevTwitter | <Nimo/>
❤33👎8👍7🔥2
دو تا توصیه "قبل از هر چیزی" دارم برای دوستانی که احتمالا بعد از ابلاغ لایحه اصلاح واحد پولی (حذف چهار صفر) ناچار به اعمال تغییرات تو سامانههاشون خواهند بود:
۱. اعمال تغییرات روی دیتابیس رو کلا فراموش کنید
بسیاری از دوستان تا میشنون واحد پولی جدید دو رقم اعشار داره، فوری به تغییر تایپ ستونهای مبالغ از integer به float فکر میکنن؛ نکنید دوستان! بذارید همه چیز intrger باقی بمونه و اعمال exponent و اعشار رو به اینترفیسها (چه در ui و چه در apiها) واگذار کنید. خیلی از ماها هیچوقت با دادههای اعشاری تو موضوعات مالی کار نکردیم و نهایتا مختصات نقطهها و امتیاز (rating) رو اعشاری ذخیره کردیم که تو این مدل کاربردها هم خطاهای رندینگ و floating point error خیلی خودشون رو نشون نمیدن. برای از دست دادن شغلتون، کافیه تو یه سیستم مالی حاصل جمع 0.1 و 0.2 رو 0.3 فرض کنید، یا تصور کنید حاصل ده بار جمع زدن 0.1 میشه یک! (که متاسفانه نمیشه!)
۲. از همین امروز دو رقم آخر مبالغ ریالی رو صفر کنید
حذف چهار صفر و اضافه شدن دو رقم اعشار، تو عمل یعنی فقط حذف دو رقم آخر (یکان و دهگان). از همین امروز از پذیرفتن ورودیهای ریالی جدیدی که به ۱۰۰ بخشپذیر نیستن جلوگیری کنید و اگه لازمه مجوزهای لازم برای این کار رو بگیرید. این کار باعث میشه بعدا که خواستید ۶۹۹۰۰ ریال قدیم رو به ۶.۹۹ تومان جدید تغییر بدید دیگه بابت از دست رفتن اون دو صفر آخر تو مقدار ریالی نگران نباشید و با آمادگی قبلی به استقبال تغییرات برین.
@DevTwitter | <Hossein Pourbahrami/>
۱. اعمال تغییرات روی دیتابیس رو کلا فراموش کنید
بسیاری از دوستان تا میشنون واحد پولی جدید دو رقم اعشار داره، فوری به تغییر تایپ ستونهای مبالغ از integer به float فکر میکنن؛ نکنید دوستان! بذارید همه چیز intrger باقی بمونه و اعمال exponent و اعشار رو به اینترفیسها (چه در ui و چه در apiها) واگذار کنید. خیلی از ماها هیچوقت با دادههای اعشاری تو موضوعات مالی کار نکردیم و نهایتا مختصات نقطهها و امتیاز (rating) رو اعشاری ذخیره کردیم که تو این مدل کاربردها هم خطاهای رندینگ و floating point error خیلی خودشون رو نشون نمیدن. برای از دست دادن شغلتون، کافیه تو یه سیستم مالی حاصل جمع 0.1 و 0.2 رو 0.3 فرض کنید، یا تصور کنید حاصل ده بار جمع زدن 0.1 میشه یک! (که متاسفانه نمیشه!)
۲. از همین امروز دو رقم آخر مبالغ ریالی رو صفر کنید
حذف چهار صفر و اضافه شدن دو رقم اعشار، تو عمل یعنی فقط حذف دو رقم آخر (یکان و دهگان). از همین امروز از پذیرفتن ورودیهای ریالی جدیدی که به ۱۰۰ بخشپذیر نیستن جلوگیری کنید و اگه لازمه مجوزهای لازم برای این کار رو بگیرید. این کار باعث میشه بعدا که خواستید ۶۹۹۰۰ ریال قدیم رو به ۶.۹۹ تومان جدید تغییر بدید دیگه بابت از دست رفتن اون دو صفر آخر تو مقدار ریالی نگران نباشید و با آمادگی قبلی به استقبال تغییرات برین.
@DevTwitter | <Hossein Pourbahrami/>
👎47👍24❤9🔥2
#browser_extension
ما یک افزونه به اسم امگا هوش توسعه دادبم که یک Ai برای دستیار برنامه نویسی شما هست. بدون محدودیت میتونید توی کد نویسیتون استفاده کنی.
کاربردشم این هست که کد رو براتون کامل میکنه، کد رو براتون توضیح میده و توی کد نویسی کمکتون میکنه.
برای نصبش هم میتونید از طریق لینک زیر نصبش کنید.
https://marketplace.visualstudio.com/items?itemName=PouriaHosseini.omga-ai
@DevTwitter | <Pouria Hosseini/>
ما یک افزونه به اسم امگا هوش توسعه دادبم که یک Ai برای دستیار برنامه نویسی شما هست. بدون محدودیت میتونید توی کد نویسیتون استفاده کنی.
کاربردشم این هست که کد رو براتون کامل میکنه، کد رو براتون توضیح میده و توی کد نویسی کمکتون میکنه.
برای نصبش هم میتونید از طریق لینک زیر نصبش کنید.
https://marketplace.visualstudio.com/items?itemName=PouriaHosseini.omga-ai
@DevTwitter | <Pouria Hosseini/>
❤39👎10👍3🔥1
اگه AI Agent درست میکنید حتما این دوتا تکنولوژی را یاد بگیرید:
۱- ابزار google ADK که یک فریمورک بسیار قوی برای ساختن ایجنت هست. الان به سرعت داره تو صنعت فراگیر میشه.
۲- پروتکل Agent2Agent (A2A).که برای ارتباط ایجنتها با همدیگه است.
خود ریپوهای این ابزارها کلی مثال عالی داره که میتونید سریع یاد بگیرید.
-A2A: https://github.com/a2aproject/A2A
- ADK: https://google.github.io/adk-docs/
@DevTwitter | <Mehdi Allahyari/>
۱- ابزار google ADK که یک فریمورک بسیار قوی برای ساختن ایجنت هست. الان به سرعت داره تو صنعت فراگیر میشه.
۲- پروتکل Agent2Agent (A2A).که برای ارتباط ایجنتها با همدیگه است.
خود ریپوهای این ابزارها کلی مثال عالی داره که میتونید سریع یاد بگیرید.
-A2A: https://github.com/a2aproject/A2A
- ADK: https://google.github.io/adk-docs/
@DevTwitter | <Mehdi Allahyari/>
👍19❤6👎1
دیتابیس Chroma، یه دیتابیس برای برنامه های مرتبط با ai هست که با زبان راست نوشته شده و با اون میتونید قدرت LLM ها رو خیلی بیشتر کنید
این دیتابیس میتونه سند ها و داکیومنت ها رو به راحتی و با سرعت ذخیره و بازیابی کنه
برای پروژههای AI و RAG عالیه!
لینک ریپوش
https://github.com/chroma-core/chroma
@DevTwitter | <ixAbolfazl/>
این دیتابیس میتونه سند ها و داکیومنت ها رو به راحتی و با سرعت ذخیره و بازیابی کنه
برای پروژههای AI و RAG عالیه!
لینک ریپوش
https://github.com/chroma-core/chroma
@DevTwitter | <ixAbolfazl/>
👍16❤6👎2
ی اسکنر داریم که شما url رو وارد میکنی + لیست تست خودت(ی تعداد محدودی رو دیفالت چک میکنه خودش ولی پیشنهاد میکنم لیست خودتونم بدید بهش) و براتون end-point های سایت مورد نظرتون رو نمایش میده. برای کسانی که توی حوزه امنیت و تست نفوذ فعالیت دارن.
https://github.com/manirazii/end-point-finder
@DevTwitter | <پسر لوسیفر/>
https://github.com/manirazii/end-point-finder
@DevTwitter | <پسر لوسیفر/>
👍20👎5🔥1