یکی از استارتاپای حوزه آموزش که خیلی با مدلش حال میکنم، roadmapSh عه:
به هر کس مطابق به علاقه و چیزی که میخواد یاد بگیره، یک نقشه راه مرحله به مرحله میده، و هر مرحله از بهترین آموزشهای آنلاین و ابزارهای آموزشی پروژه محوره.
جدیدا با هوش مصنوعی، بهش AI Tutor اضافه کرده که این AI Tutor میتونه دورههای شخصی سازی شده برای هر شخص تولید کنه.
این دورهها با استفاده از آموزشهای آنلاینی که Curate شده و با توجه به پروفایل هر شخص و دورههای مشابه موجود، برای هر شخص متفاوت خواهد بود.
(البته نسخه اولیهش فعلا بیرون اومده و خیییلی جای کار داره)
مهمترین نکته این سرویس اینه که فرآیند Curation و ساخت دورهها، تماما جمع سپاری شده است و توسط یک گروه انجام نشده، که همین باعث شده بتونه واقعا راهنماها و محتوای آموزشیی منتشر کنه که به برنامهنویسها کمک کنه مسیر یادگیریشون رو پیدا کنن و راحتتر جلو برن:
roadmap.sh
@DevTwitter | <Farokh/>
به هر کس مطابق به علاقه و چیزی که میخواد یاد بگیره، یک نقشه راه مرحله به مرحله میده، و هر مرحله از بهترین آموزشهای آنلاین و ابزارهای آموزشی پروژه محوره.
جدیدا با هوش مصنوعی، بهش AI Tutor اضافه کرده که این AI Tutor میتونه دورههای شخصی سازی شده برای هر شخص تولید کنه.
این دورهها با استفاده از آموزشهای آنلاینی که Curate شده و با توجه به پروفایل هر شخص و دورههای مشابه موجود، برای هر شخص متفاوت خواهد بود.
(البته نسخه اولیهش فعلا بیرون اومده و خیییلی جای کار داره)
مهمترین نکته این سرویس اینه که فرآیند Curation و ساخت دورهها، تماما جمع سپاری شده است و توسط یک گروه انجام نشده، که همین باعث شده بتونه واقعا راهنماها و محتوای آموزشیی منتشر کنه که به برنامهنویسها کمک کنه مسیر یادگیریشون رو پیدا کنن و راحتتر جلو برن:
roadmap.sh
@DevTwitter | <Farokh/>
معرفی AxonJs: فریمورک مدرن Node.js برای API RESTful ها
امروز خوشحالم که اولین مقالهٔ جامع خودم رو دربارهی AxonJs روی Medium.com و Dev.to منتشر کردم!
فریمورک AxonJs (که البته هنوز درحال توسعه است) با معماری ماژولار، پشتیبانی از TypeScript و CLI اختصاصی، توسعهی RESTful API رو سریعتر و لذتبخشتر میکنه. طبق بنچمارکها، سرعتش تا دو برابر Express.js بالاتره و با سیستم پلاگین و اعتبارسنجی سریع، نیاز به کتابخانههای اضافی رو حذف میکنه.
اگر دنبال فریمورکی هستید که هم ساده باشه و هم قدرت بالا، حتماً نگاهی به AxonJs بندازید. نظرات و مشارکت شما برای توسعهی این پروژهٔ متنباز ارزشمنده!
خواندن مقاله در Medium.com:
https://mr-mkz.medium.com/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-b99a4aac7f83
خواندن مقاله در Dev.to:
https://dev.to/mrmkz/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-3a03
GitHub:
https://github.com/AxonJsLabs/AxonJs
@DevTwitter | <Erfan Karimi/>
امروز خوشحالم که اولین مقالهٔ جامع خودم رو دربارهی AxonJs روی Medium.com و Dev.to منتشر کردم!
فریمورک AxonJs (که البته هنوز درحال توسعه است) با معماری ماژولار، پشتیبانی از TypeScript و CLI اختصاصی، توسعهی RESTful API رو سریعتر و لذتبخشتر میکنه. طبق بنچمارکها، سرعتش تا دو برابر Express.js بالاتره و با سیستم پلاگین و اعتبارسنجی سریع، نیاز به کتابخانههای اضافی رو حذف میکنه.
اگر دنبال فریمورکی هستید که هم ساده باشه و هم قدرت بالا، حتماً نگاهی به AxonJs بندازید. نظرات و مشارکت شما برای توسعهی این پروژهٔ متنباز ارزشمنده!
خواندن مقاله در Medium.com:
https://mr-mkz.medium.com/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-b99a4aac7f83
خواندن مقاله در Dev.to:
https://dev.to/mrmkz/meet-axonjs-the-express-slayer-that-doubles-your-api-speed-3a03
GitHub:
https://github.com/AxonJsLabs/AxonJs
@DevTwitter | <Erfan Karimi/>
سالها با jQuery زندگی کردیم.
هر افکتی میخواستیم، هر eventی، هر manipulation عجیبی… اون همیشه آماده بود.
ولی پروژههای مدرن نیاز به چیزی بیشتر از «کنترل DOM» دارن؛
نیاز به تعامل هوشمند با دادهها، ساختار تمیز، و سرعت بالا دارن.
همینجا بود که Alpine.js وارد شد:
نه مثل Vue یا React سنگین،
و نه مثل jQuery خطی و procedural.
یه ابزار سبک، مستقیم، و دقیقاً هممسیر با فلسفهی Laravel و Blade.
نصب خاصی نمیخواد، ساختار جدید نمیخواد، فقط تو HTML خودت کدت رو زنده میکنی!
ابزار Alpine کاری میکنه که تجربه کاربر سریعتر و تمیزتر بشه — بدون اینکه بار اضافه به پروژهات وارد بشه.
و از اون مهمتر:
نگاهت به تعامل با فرانتاند رو عوض میکنه.
اگه تا حالا Alpine رو تست نکردی، پیشنهاد میکنم فقط یک فایل blade باز کن و امتحانش کن.
باور نمیکنی چقدر تمیز و لذتبخشه!
@DevTwitter | <Mohammad asadi/>
هر افکتی میخواستیم، هر eventی، هر manipulation عجیبی… اون همیشه آماده بود.
ولی پروژههای مدرن نیاز به چیزی بیشتر از «کنترل DOM» دارن؛
نیاز به تعامل هوشمند با دادهها، ساختار تمیز، و سرعت بالا دارن.
همینجا بود که Alpine.js وارد شد:
نه مثل Vue یا React سنگین،
و نه مثل jQuery خطی و procedural.
یه ابزار سبک، مستقیم، و دقیقاً هممسیر با فلسفهی Laravel و Blade.
نصب خاصی نمیخواد، ساختار جدید نمیخواد، فقط تو HTML خودت کدت رو زنده میکنی!
ابزار Alpine کاری میکنه که تجربه کاربر سریعتر و تمیزتر بشه — بدون اینکه بار اضافه به پروژهات وارد بشه.
و از اون مهمتر:
نگاهت به تعامل با فرانتاند رو عوض میکنه.
اگه تا حالا Alpine رو تست نکردی، پیشنهاد میکنم فقط یک فایل blade باز کن و امتحانش کن.
باور نمیکنی چقدر تمیز و لذتبخشه!
@DevTwitter | <Mohammad asadi/>
لیستی از پروژههای پیشنهادی GenAI که میتونه بهتون کمک کنه رزومه بهتری در این حوزه داشته باشید، از دستش ندید!
https://github.com/aishwaryanr/awesome-generative-ai-guide/blob/main/resources/60_ai_projects.md
@DevTwitter | <Reza Jafari/>
https://github.com/aishwaryanr/awesome-generative-ai-guide/blob/main/resources/60_ai_projects.md
@DevTwitter | <Reza Jafari/>
اگه از hyprland استفاده میکنید، حتما این کانفیگ رو ببینید که میتونه زیباترین و پرکاربرد ترین دسکتاپ عمرتون رو بسازه!
من هرچی خودم کانفیگ کرده بودم ریختم دور...
https://github.com/end-4/dots-hyprland
@DevTwitter | <Mohsen Khodabakhshi/>
من هرچی خودم کانفیگ کرده بودم ریختم دور...
https://github.com/end-4/dots-hyprland
@DevTwitter | <Mohsen Khodabakhshi/>
یه چیزی توی مرورگرها هست که خیلیا خبر ندارن:
اگه چند تب از یه سایت باز باشه، چطور میشه به همهشون همزمان گفت "کاربر logout شده" یا یه پیغام فوری نشون داد؟
بدون WebSocket
بدون سر زدن به سرور
حتی بدون ور رفتن با localStorage :)
راهحل: BroadcastChannel API
توی این مقاله با یه دید عمیق توضیح دادم:
که BroadcastChannel دقیقاً چیه
چطور با IPC و internal message bus مرورگر کار میکنه
چه الگوها و مفاهیم سیستمی پشتشه
مزایا و معایبش چی هستن
و در نهایت یه مثال کاربردی با React برای logout بین تبها رو باهاش میبینیم
اگه میخوای بدونی مرورگر چطوری بین تبها ارتباط ایجاد میکنه، این مقاله رو از دست نده
https://medium.com/@ajblog7070/broadcastchannel-api-the-secret-message-bus-between-browser-tabs-7a8485732051
@DevTwitter | <Ali Jafarian/>
اگه چند تب از یه سایت باز باشه، چطور میشه به همهشون همزمان گفت "کاربر logout شده" یا یه پیغام فوری نشون داد؟
بدون WebSocket
بدون سر زدن به سرور
حتی بدون ور رفتن با localStorage :)
راهحل: BroadcastChannel API
توی این مقاله با یه دید عمیق توضیح دادم:
که BroadcastChannel دقیقاً چیه
چطور با IPC و internal message bus مرورگر کار میکنه
چه الگوها و مفاهیم سیستمی پشتشه
مزایا و معایبش چی هستن
و در نهایت یه مثال کاربردی با React برای logout بین تبها رو باهاش میبینیم
اگه میخوای بدونی مرورگر چطوری بین تبها ارتباط ایجاد میکنه، این مقاله رو از دست نده
https://medium.com/@ajblog7070/broadcastchannel-api-the-secret-message-bus-between-browser-tabs-7a8485732051
@DevTwitter | <Ali Jafarian/>
بازآفرینی یا Refactoring بدون Business Insight، فقط Code Cleanup است!!!
در طراحی مبتنی بر دامنه (DDD)، هر بار که درک ما از واقعیت کسبوکار تغییر میکند، مدل هم باید تغییر کند.
همانطور که Eric Evans در کتاب آبی معروفش میگوید:
"The model must change because our understanding has changed."
اگر تغییرات ما صرفاً در سطح کد و معماری باشد و مدل همچنان همان مدل قبلی بماند، در واقع فقط ظاهر سیستم را مرتب کردهایم، بدون آنکه ریشهی مشکل را حل کنیم.
و Refactoring وقتی ارزشمند است که همراه با کشف مفهومهای تازه در دامنه و بازتعریف مدل باشد.
وگرنه همان legacy code با ظاهر تمیزتر است.
@DevTwitter | <Mostafa Hosseinkhani/>
در طراحی مبتنی بر دامنه (DDD)، هر بار که درک ما از واقعیت کسبوکار تغییر میکند، مدل هم باید تغییر کند.
همانطور که Eric Evans در کتاب آبی معروفش میگوید:
"The model must change because our understanding has changed."
اگر تغییرات ما صرفاً در سطح کد و معماری باشد و مدل همچنان همان مدل قبلی بماند، در واقع فقط ظاهر سیستم را مرتب کردهایم، بدون آنکه ریشهی مشکل را حل کنیم.
و Refactoring وقتی ارزشمند است که همراه با کشف مفهومهای تازه در دامنه و بازتعریف مدل باشد.
وگرنه همان legacy code با ظاهر تمیزتر است.
@DevTwitter | <Mostafa Hosseinkhani/>
دیتاست کامل کانال «دِوتوییتر»
بالاخره کل تاریخچه پیامهای کانال دِوتوییتر به صورت JSON منتشر شد!
این دیتاست شامل تمام پیامها از ابتدای شکلگیری کانال در سال ۱۳۹۹ تا الان هست.
مناسب برای:
- تمرین دیتاساینس و NLP روی محتوای فارسی برنامهنویسی
- تحلیل روند تکنولوژیها در جامعه توسعهدهندگان ایرانی
- استخراج منابع آموزشی و لینکهای مفید
- تحلیل واکنشها و محبوبیت محتوا
لینک دسترسی:
github.com/devtwitter/devtwitter-data
یادتون نره ستاره بدین :))
@DevTwitter
بالاخره کل تاریخچه پیامهای کانال دِوتوییتر به صورت JSON منتشر شد!
این دیتاست شامل تمام پیامها از ابتدای شکلگیری کانال در سال ۱۳۹۹ تا الان هست.
مناسب برای:
- تمرین دیتاساینس و NLP روی محتوای فارسی برنامهنویسی
- تحلیل روند تکنولوژیها در جامعه توسعهدهندگان ایرانی
- استخراج منابع آموزشی و لینکهای مفید
- تحلیل واکنشها و محبوبیت محتوا
لینک دسترسی:
github.com/devtwitter/devtwitter-data
یادتون نره ستاره بدین :))
@DevTwitter
توی vs code حالا میتونید از ollama و مدل های لوکال خودتون تو copilot استفاده کنین
کافیه Command Palette (F1) رو باز کنین و از بخش Configure Models فعال کنین
@DevTwitter | <Shojaei/>
کافیه Command Palette (F1) رو باز کنین و از بخش Configure Models فعال کنین
@DevTwitter | <Shojaei/>
یه تم ادمین جدید و باحال برای جنگو که با نصب خیلی ساده میتونید پنل ادمین جنگو رو زیباتر کنید! این تم با فریمورک DaisyUI ساخته شده و بهراحتی ظاهر پنل رو مدرن و ریسپانسیو میکنه.
https://github.com/hypy13/django-daisy
@DevTwitter | <hossein/>
https://github.com/hypy13/django-daisy
@DevTwitter | <hossein/>
یه پکیج پایتون جمعوجور نوشتم که باهاش میتونید خیلی راحت حالت maintenance رو روی اپ FastAPI تون فعال/غیرفعال کنید.
ساده راهاندازی میشه، منعطفه، میتونید بعضی اندپوینتها exclude یا فورس کنید و ریسپانسهای سفارشی برگردونید.
گیتهاب:
https://github.com/msamsami/fastapi-maintenance
@DevTwitter | <Mehdi/>
ساده راهاندازی میشه، منعطفه، میتونید بعضی اندپوینتها exclude یا فورس کنید و ریسپانسهای سفارشی برگردونید.
گیتهاب:
https://github.com/msamsami/fastapi-maintenance
@DevTwitter | <Mehdi/>
کلمه پر کاربر Bottleneck به چه معنیه؟
تصور کن یه بطری آب داری (bottle)، و میخوای خیلی سریع آب داخلش رو خالی کنی.
اما چون دهانهی بطری باریکه (neck)، سرعت خالی شدن آب کم میشه.
این قسمت باریک شده که جلوی سرعت رو میگیره، میگن bottleneck
تو برنامهنویسی:
یعنی بخشی از برنامه که باعث کند شدن کل عملکرد میشه.
مهم نیست بقیهی سیستم چقدر سریع باشن، تا وقتی bottleneck وجود داره، کار کل سیستم لنگ میمونه.
با Instrumentation میفهمی Bottleneck کجاست
مثلاً با Tracing:
میبینی یه درخواست API کل سیستم رو سریع رد میکنه، ولی توی مرحلهی `FindUser()`، یهو ۸ ثانیه مکث میکنه → Bottleneck همینه!
یا با Metrics:
نمودار نشون میده که وقتی درخواستها زیاد میشن، مصرف CPU میره بالا، اما فقط برای یه سرویس خاص.
چرا باید Bottleneck رو پیدا کنی؟
چون بهت میگه:
کجا باید بهینهسازی کنی
کدوم سرویس باید scale بشه
چه منابعی داری هدر میدی
@DevTwitter | <Alireza Feizi/>
تصور کن یه بطری آب داری (bottle)، و میخوای خیلی سریع آب داخلش رو خالی کنی.
اما چون دهانهی بطری باریکه (neck)، سرعت خالی شدن آب کم میشه.
این قسمت باریک شده که جلوی سرعت رو میگیره، میگن bottleneck
تو برنامهنویسی:
یعنی بخشی از برنامه که باعث کند شدن کل عملکرد میشه.
مهم نیست بقیهی سیستم چقدر سریع باشن، تا وقتی bottleneck وجود داره، کار کل سیستم لنگ میمونه.
با Instrumentation میفهمی Bottleneck کجاست
مثلاً با Tracing:
میبینی یه درخواست API کل سیستم رو سریع رد میکنه، ولی توی مرحلهی `FindUser()`، یهو ۸ ثانیه مکث میکنه → Bottleneck همینه!
یا با Metrics:
نمودار نشون میده که وقتی درخواستها زیاد میشن، مصرف CPU میره بالا، اما فقط برای یه سرویس خاص.
چرا باید Bottleneck رو پیدا کنی؟
چون بهت میگه:
کجا باید بهینهسازی کنی
کدوم سرویس باید scale بشه
چه منابعی داری هدر میدی
@DevTwitter | <Alireza Feizi/>
تو سایت زیر مجموعه از مقالات با تمرکز بر دیتاساینس لیست شده که بهتون کمک میکنه کد پایتون رو بهینهتر و بهتر و سریعتر بنویسید، از دستش ندید!
https://pythonspeed.com/datascience/
@DevTwitter | <Reza Jafari/>
https://pythonspeed.com/datascience/
@DevTwitter | <Reza Jafari/>
این مخزن گیتهاب شامل بیش از ۱۵۷ پرامپت متنوع و کاربردی برای ChatGPT و مدلهای مشابهه که تو زمینههای مختلف کمکت میکنه،از جمله:
- برنامهنویسی و رفع اشکال
- تولید محتوا و نوشتن مقاله
- آموزش و یادگیری مفاهیم پیچیده
https://github.com/f/awesome-chatgpt-prompts
@DevTwitter | <OmiD/>
- برنامهنویسی و رفع اشکال
- تولید محتوا و نوشتن مقاله
- آموزش و یادگیری مفاهیم پیچیده
https://github.com/f/awesome-chatgpt-prompts
@DevTwitter | <OmiD/>
در دنیای امروز، سرعت و کارایی در توسعه اپلیکیشنها از اهمیت بالایی برخوردار است. یکی از ابزارهایی که به طرز چشمگیری میتواند عملکرد اپلیکیشنها را بهبود دهد، Redis است.
اما چرا استفاده از Redis در لاراول اهمیت دارد؟
ردیس یک سیستم کش (Caching) بسیار سریع است که به ذخیرهسازی دادهها در حافظه (RAM) پرداخته و سرعت دسترسی به آنها را به طرز چشمگیری افزایش میدهد. این ویژگی بهویژه در پروژههایی که نیاز به پردازش دادههای سنگین دارند، بسیار مفید است.
مزایای استفاده از Redis در لاراول:
افزایش سرعت:
ردیس با ذخیره دادهها در حافظه و جلوگیری از دسترسی مکرر به پایگاه داده، سرعت اپلیکیشن را بهطور قابل توجهی افزایش میدهد.
کاهش بار پایگاه داده:
با کش کردن نتایج کوئریها یا دادههای ثابت، Redis بار زیادی را از روی پایگاه داده برداشته و عملکرد کلی سیستم را بهبود میبخشد.
مقیاسپذیری بالا:
ردیس به راحتی میتواند با سیستمهای بزرگ و پیچیده کنار بیاید و در مواقع نیاز به مقیاسپذیری، بهطور خودکار عملکرد خود را حفظ میکند.
پشتیبانی از دادههای پیچیده:
ردیس از دادههای پیچیده مانند Listها، Setها، Hashها و Sorted Setها پشتیبانی میکند، که در مقایسه با کشهای سنتی ویژگی منحصر به فردی است.
پشتیبانی از کشهای چند سطحی:
ردیس امکان ساخت کشهایی با اولویتهای مختلف را فراهم میکند و میتواند دادهها را بهطور هوشمند ذخیره و بازیابی کند.
@DevTwitter | <Parham Mahmoodi/>
اما چرا استفاده از Redis در لاراول اهمیت دارد؟
ردیس یک سیستم کش (Caching) بسیار سریع است که به ذخیرهسازی دادهها در حافظه (RAM) پرداخته و سرعت دسترسی به آنها را به طرز چشمگیری افزایش میدهد. این ویژگی بهویژه در پروژههایی که نیاز به پردازش دادههای سنگین دارند، بسیار مفید است.
مزایای استفاده از Redis در لاراول:
افزایش سرعت:
ردیس با ذخیره دادهها در حافظه و جلوگیری از دسترسی مکرر به پایگاه داده، سرعت اپلیکیشن را بهطور قابل توجهی افزایش میدهد.
کاهش بار پایگاه داده:
با کش کردن نتایج کوئریها یا دادههای ثابت، Redis بار زیادی را از روی پایگاه داده برداشته و عملکرد کلی سیستم را بهبود میبخشد.
مقیاسپذیری بالا:
ردیس به راحتی میتواند با سیستمهای بزرگ و پیچیده کنار بیاید و در مواقع نیاز به مقیاسپذیری، بهطور خودکار عملکرد خود را حفظ میکند.
پشتیبانی از دادههای پیچیده:
ردیس از دادههای پیچیده مانند Listها، Setها، Hashها و Sorted Setها پشتیبانی میکند، که در مقایسه با کشهای سنتی ویژگی منحصر به فردی است.
پشتیبانی از کشهای چند سطحی:
ردیس امکان ساخت کشهایی با اولویتهای مختلف را فراهم میکند و میتواند دادهها را بهطور هوشمند ذخیره و بازیابی کند.
@DevTwitter | <Parham Mahmoodi/>
This media is not supported in your browser
VIEW IN TELEGRAM
کمپانی HuggingFace یک دوره جدید گذاشته برای یادگیری MCP، که پروتکلی هست که توسط کمپانی Anthropic معرفی شده و مدلهای AI مثل LLM ها را به یک سری قابلیت، مثل ابزارهای مختلف وصل میکنه.
لینک:
https://huggingface.co/learn/mcp-course/unit0/introduction
@DevTwitter | <Mehdi Allahyari/>
لینک:
https://huggingface.co/learn/mcp-course/unit0/introduction
@DevTwitter | <Mehdi Allahyari/>
جدی فکر نمیکردم این ردیسی که از codecrafters شروع کردم رو تموم کنم. روز اولی که نوشتم حتی بلد نبودم هش مپ بنویسم الان کلی C یاد گرفتم و چیزای دیگه.
و اینکه ۶۰ ۷۰ ساعت متمرکز کار کردم رو میتونم ببینم چون همه ویدیوهاش هست.
https://www.youtube.com/playlist?list=PL41E3XFK25FcJQRyg06xoYFu-m6GB7Tj-
@DevTwitter | <Shaygan/>
و اینکه ۶۰ ۷۰ ساعت متمرکز کار کردم رو میتونم ببینم چون همه ویدیوهاش هست.
https://www.youtube.com/playlist?list=PL41E3XFK25FcJQRyg06xoYFu-m6GB7Tj-
@DevTwitter | <Shaygan/>
Media is too big
VIEW IN TELEGRAM
یک پروژه جالبی به اسم BrowserBee رو در گیتهاب دیدم که دولوپرش هم پارسا غفاری بود.
حرکتی که ایشون زدن شبیه مرورگر Dia هست (در وضعیت فعلی البته), یک دستیار هوش مصنوعی کنار صفحه ایجاد میشه و میتونید با تجربه ای نزدیک به این مرورگر باهاش کار کنید.
پیشنهاد میدم حتما یکبار تستش کنید.
https://github.com/parsaghaffari/browserbee
@DevTwitter | <Sanguine(Ali)™/>
حرکتی که ایشون زدن شبیه مرورگر Dia هست (در وضعیت فعلی البته), یک دستیار هوش مصنوعی کنار صفحه ایجاد میشه و میتونید با تجربه ای نزدیک به این مرورگر باهاش کار کنید.
پیشنهاد میدم حتما یکبار تستش کنید.
https://github.com/parsaghaffari/browserbee
@DevTwitter | <Sanguine(Ali)™/>