الگوهای ماکروسرویس که هر مهندس نرمافزار باید بدونه. این الگوها کمک میکنن سیستمهای نرمافزاری مقاوم در برابر خطا و قابل نگهداری طراحی کنید
https://blog.amigoscode.com/p/mircroservices-best-practices
@DevTwitter | <Mohammad Roshandelpoor/>
https://blog.amigoscode.com/p/mircroservices-best-practices
@DevTwitter | <Mohammad Roshandelpoor/>
🔥14👍7👎1
ذات فرانتاند به طرز وحشتناکی پیچیدهست. اینو زمانی متوجه میشید که بخواید یه تیکه از کد یه باندلر مثل ESbuild یا Rollup رو بخونید. یا بخواید درباره الگوریتمهای Virtual DOM توی مثلا ریکت یا Vue بخونید. فکر میکنید سادهاس چون فقط یه تیکه از رنگ دادن به دکمه رو توی فرانت دیدید.
@DevTwitter | <Yasha/>
@DevTwitter | <Yasha/>
👍149🤣44👎12🔥7
این مقاله جالب در مورد ده تا سوال راجع به promise ها توی جاوااسکریپت هست
https://medium.com/frontend-canteen/can-you-answer-this-senior-level-javanoscript-promise-interview-question-69f7b6ffc2e7
سطح سوالات بالاس و تقریبا سوالات مصاحبهس همشون
@DevTwitter | <ممد کاکل به سر/>
https://medium.com/frontend-canteen/can-you-answer-this-senior-level-javanoscript-promise-interview-question-69f7b6ffc2e7
سطح سوالات بالاس و تقریبا سوالات مصاحبهس همشون
@DevTwitter | <ممد کاکل به سر/>
👍18🔥2
اگر یک developer ساده مثل من هستید و هر از گاهی مجبورید پروژهای خودتون رو روی سرور دیپلوی کنید این چندتا کامند داکر به دردتون میخوره(دراصل برای خودم درست کردم که فراموش نکنم)
https://gist.github.com/mthri/fc0a594cb3d4ed06fc6b6c117e819a1c
@DevTwitter | <Amir Motahari/>
https://gist.github.com/mthri/fc0a594cb3d4ed06fc6b6c117e819a1c
@DevTwitter | <Amir Motahari/>
❤32👍13🤣8
سرعت پروژهتون رو با php opcode ببرید بالا
https://inspector.dev/php-opcode-improve-application-performance-without-changing-your-code/
@DevTwitter | <لادویا/>
https://inspector.dev/php-opcode-improve-application-performance-without-changing-your-code/
@DevTwitter | <لادویا/>
🤣26👍12❤3👎3
بعد سه بار خوندن کتاب You Don't Know JS شروع کردم به خلاصه کردنش و تو گیتهابم به اشتراک گذاشتم. ممنون میشم چکش کنید و اگه نظری داشتید بهم بگی و لطف کنید اگه خوشتون اومد یه ستاره بدید بهش
4 جلدش رو کامل خلاصه کردم و مشغول خلاصه کردن دو جلد آخرشم.
https://github.com/Masoud-z/You-Dont-Know-JS-summary
@DevTwitter | <Masoud/>
4 جلدش رو کامل خلاصه کردم و مشغول خلاصه کردن دو جلد آخرشم.
https://github.com/Masoud-z/You-Dont-Know-JS-summary
@DevTwitter | <Masoud/>
👍72❤22🔥7🤣4
بیش از ۵ ماه شده که دارم روی ریپوی دیزاین پترن ها کار می کنم. توی آپدیت جدید چندتا دیزاین پترن جدید اضافه شد. ممنون که با استار دادن بهش باعث میشین که ادامه بدم.
نکاتی که تو این ریپو هست:
- توضیح به همراه پیاده سازی و دیاگرام
- پیاده سازی بَد پرکتیس
- تست نویسی برای همه پترن ها
- مثال هایی که در دنیای واقعی پیش میاد (اکثرا برای خودم پیش اومده و قبلا مشابهش رو پیاده سازی کردم)
- و داکیومنت کامل برای نحوه اجرا و توسعه
https://github.com/vahidvdn/realworld-design-patterns
@DevTwitter | <Vahid/>
نکاتی که تو این ریپو هست:
- توضیح به همراه پیاده سازی و دیاگرام
- پیاده سازی بَد پرکتیس
- تست نویسی برای همه پترن ها
- مثال هایی که در دنیای واقعی پیش میاد (اکثرا برای خودم پیش اومده و قبلا مشابهش رو پیاده سازی کردم)
- و داکیومنت کامل برای نحوه اجرا و توسعه
https://github.com/vahidvdn/realworld-design-patterns
@DevTwitter | <Vahid/>
👍27🔥7
یه متن بلندبالا برای یادگیری گیت و دستوراتش
و یه خلاصه خفن برای یادگیری سریع markdown نوشتم وسط مریضی
دوست داشتین نگاهی بندازین
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
و یه خلاصه خفن برای یادگیری سریع markdown نوشتم وسط مریضی
دوست داشتین نگاهی بندازین
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
👍30❤5
مدلهای Llama، واقعاً بهترین مدلهای اپن سورس هستن و برای ساخت محصول خیلی مناسبن. آخرین ورژن این مدل، Llama 3.2 هست و 4 مدل مختلف داره:
مدل 1B و 3B برای دستگاههای Edge
مدل 11B و 90B که مالتیمدل هستن
دوره زیر در مورد این مدلها رو از دست ندید.
https://www.deeplearning.ai/short-courses/introducing-multimodal-llama-3-2/
@DevTwitter | <Reza Jafari/>
مدل 1B و 3B برای دستگاههای Edge
مدل 11B و 90B که مالتیمدل هستن
دوره زیر در مورد این مدلها رو از دست ندید.
https://www.deeplearning.ai/short-courses/introducing-multimodal-llama-3-2/
@DevTwitter | <Reza Jafari/>
👍19🤣2
اون زمان چون همه سایتها http بودن میتونستن همچین صفحهای رو نمایش بدن، یه جوری مثل این بود که انگار شما نامه بزنی به دوستت، ولی شرکت پست نامه رو تحویل نده و خودش نامتو جواب بده.
این به لطف https عوض شد، دیگه نتونستن از این کارا بکنن.
@DevTwitter | <Soroush Ahmadi/>
این به لطف https عوض شد، دیگه نتونستن از این کارا بکنن.
@DevTwitter | <Soroush Ahmadi/>
🤣179👎13👍7🔥3
به نظرم بعد از یادگیری یک زبان، مهم ترین فاکتوری که میتونه شما رو از برنامه نویس مبتدی به لول بعدی ببره، رعایت کردن best practice های اون زبانه.
سایت زیر که البته ورژن پی دی اف هم داره، تو فصل اول این بست پرکتیس ها رو توضیح داده. خیلی خوشم اومد واقعا!
https://github.com/rust-unofficial/patterns
@DevTwitter | <Soroush Sardashti/>
سایت زیر که البته ورژن پی دی اف هم داره، تو فصل اول این بست پرکتیس ها رو توضیح داده. خیلی خوشم اومد واقعا!
https://github.com/rust-unofficial/patterns
@DevTwitter | <Soroush Sardashti/>
👍29❤6🤣2
#بدرد
یه سری سایتا آتیش زدن به مالشون
پس تو هم تا میتونی بمالشون (ازشون تشکر کن)
ارائه دهنده های هاست رایگان (نه صرفا سی پنل و دایرکت ادمین):
- Netlify
- Firebase
- Github
- InfinityFree
- Wix
- 000WebHost
- Google Cloud Hosting
- AwardSpace
- versal
- Freehostia
- FreeHosting
- Searge
- Render
- Glitch
- Fleek
- Begin
- InfinityFree
- ByetHost
- HyperPHP
- FreeWebHostingArea
@DevTwitter
یه سری سایتا آتیش زدن به مالشون
پس تو هم تا میتونی بمالشون (ازشون تشکر کن)
ارائه دهنده های هاست رایگان (نه صرفا سی پنل و دایرکت ادمین):
- Netlify
- Firebase
- Github
- InfinityFree
- Wix
- 000WebHost
- Google Cloud Hosting
- AwardSpace
- versal
- Freehostia
- FreeHosting
- Searge
- Render
- Glitch
- Fleek
- Begin
- InfinityFree
- ByetHost
- HyperPHP
- FreeWebHostingArea
@DevTwitter
👍53👎26❤6🤣3
دوره رایگان پایتون با این تفاوت که این دوره در دو بخش توسط کمپانی سیسکو لانچ و منتشر شده
Python Essentials 1
https://netacad.com/courses/python-essentials-1?courseLang=en-US
Python Essentials 2
https://netacad.com/courses/python-essentials-2?courseLang=en-US
@DevTwitter | <Amir/>
Python Essentials 1
https://netacad.com/courses/python-essentials-1?courseLang=en-US
Python Essentials 2
https://netacad.com/courses/python-essentials-2?courseLang=en-US
@DevTwitter | <Amir/>
👍23👎3
بتونم امروز تو وقت خالیم بخش اول این پروژه شخصی رو تموم کنم. هدف اینه که فایل .torrent بگیره و دانلودش کنه. بعد magnet link رو هم بهش اضافه میکنم. یوزر دیتابیس رو با diesel هندل میکنم و در نهایت با tauri یه اپ دسکتاپ برای دانلود تورنت باید بشه ازش در آورد.
https://github.com/Soroushsrd/Torrs
@DevTwitter | <Soroush Sardashti/>
https://github.com/Soroushsrd/Torrs
@DevTwitter | <Soroush Sardashti/>
🔥19👍7🤣3❤1
بچه ها من با react و express یدونه برنامه تبدیل عکس به PDF نوشتم برای فان، کلا UI و پرفورمنسش باحال شده ، خودکار هم بعد 30 ثانیه لینک دانلود expire میشه و فایل ها پاک میشن ، اگه دوست داشتید توی github بهش استار بدید و خودتونم استفاده کنید ،چیز کاربردیه
https://github.com/Mehranlip/XImage-to-PDF
@DevTwitter | <Mehran/>
https://github.com/Mehranlip/XImage-to-PDF
@DevTwitter | <Mehran/>
👍47🔥12👎8
خیلی وسوسه انگیزه ولی چرا نباید از فیلدهای جیسون در پایگاههای داده رابطهای مانند PostgreSQL و MySQL برای دادههای تراکنشی استفاده کرد؟
به دلایل زیر:
١) کاهش کارایی جستجو و عملکرد:
جستجو و فیلتر کردن دادهها در یک فیلد JSON به طور کلی کندتر از جستجو در جداول ساختاریافته است. برای دادههای تراکنشی که نیاز به جستجوهای سریع و مکرر دارند، کار با فیلدهای JSON میتواند منجر به کاهش کارایی شود. این به دلیل عدم امکان استفاده کامل از ایندکسهای کارآمد درون فیلدهای JSON است.
۲) فرم ها:
پایگاه دادههای رابطهای بر اساس طراحی ساختاریافته جداول با کلیدهای اصلی و خارجی استوار هستند تا بتوان روابط بین دادهها را بهینه مدیریت کرد. استفاده از فیلدهای JSON میتواند به ایجاد دادههای غیر نرمال (Denormalized) منجر شود، که این امر مدیریت و بهروزرسانی دادهها را پیچیدهتر میکند و میتواند منجر به ناسازگاری دادهها شود.
۳) مشکل در صحت دادهها (Data Integrity):
در جداول ساختاریافته، میتوان محدودیتهایی مانند نوع داده و روابط بین جداول را تعریف کرد که صحت دادهها را تضمین کند. در JSON، این نوع کنترلها به طور ذاتی وجود ندارد و دادهها به صورت آزاد وارد میشوند، که میتواند منجر به ورود دادههای نادرست یا ناسازگار شود.
۴) گزارش گیری:
بسیاری از ابزارهای گزارشگیری و تحلیلی به دادههای ساختاریافته نیاز دارند. دادههای ذخیره شده به صورت JSON نیاز به تجزیه و تبدیل به قالبهای ساختاریافته دارند، که این کار اضافهای است و ممکن است بر سرعت و کارایی تحلیل دادهها تأثیر منفی بگذارد.
۵) افزایش پیچیدگی مدیریت تراکنشها:
مدیریت تراکنشها و قفلگذاری دادهها (locking) برای فیلدهای JSON در برخی موارد پیچیدهتر میشود. همچنین اگر بخواهید چندین مقدار درون یک فیلد JSON را همزمان بهروزرسانی کنید، ممکن است کنترل نسخهگذاری و سازگاری دادهها دشوارتر شود.
۶) مشکل در ایندکسگذاری کارآمد:
اگرچه PostgreSQL و MySQL قابلیت ایندکسگذاری محدود روی فیلدهای JSON را فراهم میکنند، اما این ایندکسها در مقایسه با ایندکسهای سنتی روی جداول ساختاریافته به اندازه کافی کارآمد نیستند و ممکن است در حجمهای بزرگ داده باعث کاهش عملکرد شوند.
چکار باید کرد؟
۱- استفاده ترکیبی از فیلدهای رابطهای و فیلد JSON
۲- ایجاد جداول مرتبط برای دادههای غیرساختاریافته با این شرط که حجم جیسون شما محدوده
۳- ایندکس فیلد JSON (فقط در صورت استفاده)
۴ - طرحی برای تبدیل و مهاجرت تدریجی
۵ - استفاده از NoSQL در کنار پایگاه داده رابطهای
چکار نباید کرد؟
۱- ذخیره کل دادههای مهم در فیلد JSON
۲- عدم استفاده از ایندکسگذاری برای فیلد JSON
۳- استفاده از JSON به جای نرمالسازی دادهها
۴- نادیده گرفتن نیازهای گزارشگیری و تحلیلی
۵- استفاده از JSON برای دادههایی که اغلب تغییر میکنند
۶- عدم در نظر گرفتن تراکنشها و قفلگذاری مناسب
۷- ذخیرهسازی دادههای حجیم به صورت JSON
۸- عدم طراحی برای مهاجرت به ساختارهای بهتر
۹- عدم استفاده از ابزارها و توابع مناسب برای کار با JSON
خلاصه:
با توجه به این نکات، برای دادههای تراکنشی که نیاز به عملکرد سریع، جستجوهای مکرر، و یکپارچگی داده دارند، بهتر است از جداول ساختاریافته با طرحهای نرمال استفاده شود و JSON را تنها در مواردی به کار برد که نیاز به انعطافپذیری زیاد در ساختار دادهها دارید، مانند ذخیرهسازی دادههای غیرساختاریافته یا لاگهای پیچیده.
درصورت نیاز اجتناب ناپذیر مطمئن باشید که با برنامه این کار رو انجام میدهید در غیر اینصورت خبر بدی دارم براتون، به زودی مشکل پرفرمنس جدی خواهید داشت و کسب و کارتون با ریسک جدی روبرو خواهد شد. اگر هزینه برای شما مطرح نیست از گزینه هایی مثل Cassandra همینطور Google Bigtable به راحتی رد نشید.
@DevTwitter | <Mohammad Javidan Darugar/>
به دلایل زیر:
١) کاهش کارایی جستجو و عملکرد:
جستجو و فیلتر کردن دادهها در یک فیلد JSON به طور کلی کندتر از جستجو در جداول ساختاریافته است. برای دادههای تراکنشی که نیاز به جستجوهای سریع و مکرر دارند، کار با فیلدهای JSON میتواند منجر به کاهش کارایی شود. این به دلیل عدم امکان استفاده کامل از ایندکسهای کارآمد درون فیلدهای JSON است.
۲) فرم ها:
پایگاه دادههای رابطهای بر اساس طراحی ساختاریافته جداول با کلیدهای اصلی و خارجی استوار هستند تا بتوان روابط بین دادهها را بهینه مدیریت کرد. استفاده از فیلدهای JSON میتواند به ایجاد دادههای غیر نرمال (Denormalized) منجر شود، که این امر مدیریت و بهروزرسانی دادهها را پیچیدهتر میکند و میتواند منجر به ناسازگاری دادهها شود.
۳) مشکل در صحت دادهها (Data Integrity):
در جداول ساختاریافته، میتوان محدودیتهایی مانند نوع داده و روابط بین جداول را تعریف کرد که صحت دادهها را تضمین کند. در JSON، این نوع کنترلها به طور ذاتی وجود ندارد و دادهها به صورت آزاد وارد میشوند، که میتواند منجر به ورود دادههای نادرست یا ناسازگار شود.
۴) گزارش گیری:
بسیاری از ابزارهای گزارشگیری و تحلیلی به دادههای ساختاریافته نیاز دارند. دادههای ذخیره شده به صورت JSON نیاز به تجزیه و تبدیل به قالبهای ساختاریافته دارند، که این کار اضافهای است و ممکن است بر سرعت و کارایی تحلیل دادهها تأثیر منفی بگذارد.
۵) افزایش پیچیدگی مدیریت تراکنشها:
مدیریت تراکنشها و قفلگذاری دادهها (locking) برای فیلدهای JSON در برخی موارد پیچیدهتر میشود. همچنین اگر بخواهید چندین مقدار درون یک فیلد JSON را همزمان بهروزرسانی کنید، ممکن است کنترل نسخهگذاری و سازگاری دادهها دشوارتر شود.
۶) مشکل در ایندکسگذاری کارآمد:
اگرچه PostgreSQL و MySQL قابلیت ایندکسگذاری محدود روی فیلدهای JSON را فراهم میکنند، اما این ایندکسها در مقایسه با ایندکسهای سنتی روی جداول ساختاریافته به اندازه کافی کارآمد نیستند و ممکن است در حجمهای بزرگ داده باعث کاهش عملکرد شوند.
چکار باید کرد؟
۱- استفاده ترکیبی از فیلدهای رابطهای و فیلد JSON
۲- ایجاد جداول مرتبط برای دادههای غیرساختاریافته با این شرط که حجم جیسون شما محدوده
۳- ایندکس فیلد JSON (فقط در صورت استفاده)
۴ - طرحی برای تبدیل و مهاجرت تدریجی
۵ - استفاده از NoSQL در کنار پایگاه داده رابطهای
چکار نباید کرد؟
۱- ذخیره کل دادههای مهم در فیلد JSON
۲- عدم استفاده از ایندکسگذاری برای فیلد JSON
۳- استفاده از JSON به جای نرمالسازی دادهها
۴- نادیده گرفتن نیازهای گزارشگیری و تحلیلی
۵- استفاده از JSON برای دادههایی که اغلب تغییر میکنند
۶- عدم در نظر گرفتن تراکنشها و قفلگذاری مناسب
۷- ذخیرهسازی دادههای حجیم به صورت JSON
۸- عدم طراحی برای مهاجرت به ساختارهای بهتر
۹- عدم استفاده از ابزارها و توابع مناسب برای کار با JSON
خلاصه:
با توجه به این نکات، برای دادههای تراکنشی که نیاز به عملکرد سریع، جستجوهای مکرر، و یکپارچگی داده دارند، بهتر است از جداول ساختاریافته با طرحهای نرمال استفاده شود و JSON را تنها در مواردی به کار برد که نیاز به انعطافپذیری زیاد در ساختار دادهها دارید، مانند ذخیرهسازی دادههای غیرساختاریافته یا لاگهای پیچیده.
درصورت نیاز اجتناب ناپذیر مطمئن باشید که با برنامه این کار رو انجام میدهید در غیر اینصورت خبر بدی دارم براتون، به زودی مشکل پرفرمنس جدی خواهید داشت و کسب و کارتون با ریسک جدی روبرو خواهد شد. اگر هزینه برای شما مطرح نیست از گزینه هایی مثل Cassandra همینطور Google Bigtable به راحتی رد نشید.
@DevTwitter | <Mohammad Javidan Darugar/>
👍35👎11
450 تا سیستم دیزاین برای ML و LLM
یکی از منابع خوب برای ارتقای کارمون اینه که ببینیم حرفه ای های این حوزه چطوری کار میکنن، کد میزنن و اصلا فکر میکنن.. مهم ترین بخش همین فکر کردنه..
https://www.evidentlyai.com/ml-system-design
@DevTwitter | <Sam92/>
یکی از منابع خوب برای ارتقای کارمون اینه که ببینیم حرفه ای های این حوزه چطوری کار میکنن، کد میزنن و اصلا فکر میکنن.. مهم ترین بخش همین فکر کردنه..
https://www.evidentlyai.com/ml-system-design
@DevTwitter | <Sam92/>
❤18👍9👎1
دیشب که ما خواب بودیم، OpenAI به صورت خیلی سوسکی، فریمورکاش رو برای Mutli-Agentic systems رو معرفی کرد.
نکته جالب اینکه به نظرم توی نگاه اول یه چیزی بین LangGraph و ell هست.
گفتن که پروژه در مرحله experimental هست.
https://github.com/openai/swarm
@DevTwitter | <Von Datawarehausen/>
نکته جالب اینکه به نظرم توی نگاه اول یه چیزی بین LangGraph و ell هست.
گفتن که پروژه در مرحله experimental هست.
https://github.com/openai/swarm
@DevTwitter | <Von Datawarehausen/>
👍13🤣11👎2