دو مقاله شیک و قشنگ در مورد دیتابیس ها بصورت کلی و postgres
Things I Wished More Developers Knew About Databases
https://rakyll.medium.com/things-i-wished-more-developers-knew-about-databases-2d0178464f78
What I Wish Someone Told Me About Postgres
https://challahscript.com/what_i_wish_someone_told_me_about_postgres
@DevTwitter | <Hossein Nazari/>
Things I Wished More Developers Knew About Databases
https://rakyll.medium.com/things-i-wished-more-developers-knew-about-databases-2d0178464f78
What I Wish Someone Told Me About Postgres
https://challahscript.com/what_i_wish_someone_told_me_about_postgres
@DevTwitter | <Hossein Nazari/>
👍16❤3
This media is not supported in your browser
VIEW IN TELEGRAM
یک ریپو جدید اومده که خیلی هم گل کرده توی github. چه کاری میکنه؟ یه ابزار ترجمه و دوبله (dubb) ویدیو با کیفیت خیلی بالا و با کپشن در حد و استاندارد Netflix-quality هست.
کاملا اپن سورس هست. فعلا ۸ تا زبان را پشتیبانی میکنه که فارسی توش نیست. ولی میشه از زبانهای دیگه به انگلیسی ترجمه کرد و بعد (با ابزارهای دیگه) به فارسی. همچنین چون مدلهایی که استفاده میکنه برای قسمتهای مختلف، یا فارسی را ساپورت میکنن یا میشه با مدلهای دیگه که این کارو میکنن جایگزین کرد، میشه فارسی را هم بهش اضافه کرد.
با داکر هم راحت میشه آوردش بالا و به صورت لوکال لذتش را برد. میشه به صورت یک کمپانی هم درش آورد.
Github: https://github.com/Huanshere/VideoLingo
@DevTwitter | <Hossein Nazari/>
کاملا اپن سورس هست. فعلا ۸ تا زبان را پشتیبانی میکنه که فارسی توش نیست. ولی میشه از زبانهای دیگه به انگلیسی ترجمه کرد و بعد (با ابزارهای دیگه) به فارسی. همچنین چون مدلهایی که استفاده میکنه برای قسمتهای مختلف، یا فارسی را ساپورت میکنن یا میشه با مدلهای دیگه که این کارو میکنن جایگزین کرد، میشه فارسی را هم بهش اضافه کرد.
با داکر هم راحت میشه آوردش بالا و به صورت لوکال لذتش را برد. میشه به صورت یک کمپانی هم درش آورد.
Github: https://github.com/Huanshere/VideoLingo
@DevTwitter | <Hossein Nazari/>
👍26🔥8🤣1
گِرِپ - سریعترین موتور جستجوی کد
گِرِپ به توسعهدهندگان این امکان رو میده تا بهسرعت در بیشتر از ۵۰۰ هزار ریپو پابلیک گیت هاب، کد مورد نظر خودشون رو جستجو کنند.
لینک سایت گرپ:
https://grep.app
ویژگیهای کلیدی
1.با جستجوی پیام خطا، مکان دقیق تولیدش رو پیدا کنید و سریعتر دیباگ کنید.
2.با یافتن نمونههای استفاده از توابع و کلاسهای جدیدی که قصد استفاده ازشون رو دارید، سریعتر یاد بگیرید.
3.با پیدا کردن قطعهکدهای مرتبط، سریعتر کار روی پروژه را شروع کنید.
@DevTwitter | <Reza Jafari/>
گِرِپ به توسعهدهندگان این امکان رو میده تا بهسرعت در بیشتر از ۵۰۰ هزار ریپو پابلیک گیت هاب، کد مورد نظر خودشون رو جستجو کنند.
لینک سایت گرپ:
https://grep.app
ویژگیهای کلیدی
1.با جستجوی پیام خطا، مکان دقیق تولیدش رو پیدا کنید و سریعتر دیباگ کنید.
2.با یافتن نمونههای استفاده از توابع و کلاسهای جدیدی که قصد استفاده ازشون رو دارید، سریعتر یاد بگیرید.
3.با پیدا کردن قطعهکدهای مرتبط، سریعتر کار روی پروژه را شروع کنید.
@DevTwitter | <Reza Jafari/>
👍44🔥8❤4👎2
انتخاب یه مدل LLM خوب که مناسب نیازت باشه سخته جدی، مخصوصاً اینکه بخوای ازش بهعنوان API استفاده کنی!
اینجا یه برنامه نوشتم که میتونی از کلی مدل بنچمارک بگیری، بدون نیاز به بررسی کیفیت پاسخهاشون بهصورت تجربی وقتگیر:
https://gist.github.com/sheikhartin/a6647c89e0a2bac1da3a392e4f1af4ac#file-llms_evaluator-py
@DevTwitter | <Artin | آرتین/>
اینجا یه برنامه نوشتم که میتونی از کلی مدل بنچمارک بگیری، بدون نیاز به بررسی کیفیت پاسخهاشون بهصورت تجربی وقتگیر:
https://gist.github.com/sheikhartin/a6647c89e0a2bac1da3a392e4f1af4ac#file-llms_evaluator-py
@DevTwitter | <Artin | آرتین/>
👍13🔥3
کانال یوتیوب Machine Learning Street Talk جزو تولیدکنندگان خاص محتوای هوش مصنوعیه
مطالبی که تو این کانال مورد بحث قرار میگیره و در موردشون صحبت میشه رو من کمتر جای دیگه تونستم پیدا کنم
از دست ندید
لینک کانال یوتیوب:
https://www.youtube.com/@MachineLearningStreetTalk/videos
@DevTwitter | <Reza Jafari/>
مطالبی که تو این کانال مورد بحث قرار میگیره و در موردشون صحبت میشه رو من کمتر جای دیگه تونستم پیدا کنم
از دست ندید
لینک کانال یوتیوب:
https://www.youtube.com/@MachineLearningStreetTalk/videos
@DevTwitter | <Reza Jafari/>
❤14👍4
من این ابزار دیشب دیدم و یکمی هم نظرات رو خوندم. برای تست وب سایت های ریاکت خوبه ولی باید مراقب هم بود باعث نشه کلی کار اضافه کرد. بی خودی مهندسی اضافه نباید کرد خیلی از ری رندر ها حتی خیلی خیلی منطقی هم نباشه بازم مشکلی ایجاد نمی کنه
https://github.com/aidenybai/react-scan
@DevTwitter | <Tagarg/>
https://github.com/aidenybai/react-scan
@DevTwitter | <Tagarg/>
👍22🔥4
بین تسک هام ؛
یک پروژه جدید پوش کردم توی گیت هابم، اگر دارید Go یاد میگیرید و نیاز به پروژه های کوچیک و ساده دارید و میخواید مفهوم کد رو بدونید، میتونه مفید باشه براتون
اگر هم قابل بود، Star کنید چون قرار بیشتر بزارم
https://github.com/MisaghMomeniB/Task-Tracker-CLI-Go
@DevTwitter | <Misagh Momeni Bashusqeh/>
یک پروژه جدید پوش کردم توی گیت هابم، اگر دارید Go یاد میگیرید و نیاز به پروژه های کوچیک و ساده دارید و میخواید مفهوم کد رو بدونید، میتونه مفید باشه براتون
اگر هم قابل بود، Star کنید چون قرار بیشتر بزارم
https://github.com/MisaghMomeniB/Task-Tracker-CLI-Go
@DevTwitter | <Misagh Momeni Bashusqeh/>
👍41🤣12👎5❤3
پنج ساله که برای برنامه ریزی کردن از پلتفورم Notion استفاده میکنم.
مجموعه ای از تمپلیت هایی که بسیار ازشون استفاده کردم و خیلی کمکم کرده ن رو اینجا به اشتراک گذاشتم:
https://www.notion.so/@jasmine_1997
@DevTwitter | <Birdy/>
مجموعه ای از تمپلیت هایی که بسیار ازشون استفاده کردم و خیلی کمکم کرده ن رو اینجا به اشتراک گذاشتم:
https://www.notion.so/@jasmine_1997
@DevTwitter | <Birdy/>
👎48👍8🤣6❤5
این را نیمنگاهی به آن داشته باشید!
ابزار Darkflare، ترافیک TCP را بهصورت HTTPS در آورده و از طریق CDNهایی مثل Cloudflare عبور میدهد.
اینگونه ترافیک از طریق زیرساختهای رمزنگاریشده CDN منتقل شده و از محدودیتهای شبکهای عبور میکنید!
https://github.com/doxx/darkflare
@DevTwitter | <Vahid Nameni/>
ابزار Darkflare، ترافیک TCP را بهصورت HTTPS در آورده و از طریق CDNهایی مثل Cloudflare عبور میدهد.
اینگونه ترافیک از طریق زیرساختهای رمزنگاریشده CDN منتقل شده و از محدودیتهای شبکهای عبور میکنید!
https://github.com/doxx/darkflare
@DevTwitter | <Vahid Nameni/>
👍33👎1
یه پکیج ساده و سبک برای Context نوشتم یسری قابلیات گذاشتم مثل بایند کردن مقدار ها و جداسازی کانتکس ها داخل جاوا اسکریپت و همینطور میتونین کانتینر ایجاد کنین برای هندلر هاتون که یک سری داده رو منتقل کنید توی فضای خاص
بنچ مارک و یه اسکریپت دیباگ هم داخل پکیج هست که میتونیم از نظر پرفرمنس بررسیش کنید
و همینطور باعث افتخاره اگه موردی بود داخل گیتهاب پروژه بگین.
لینک پکیج:
npmjs.com/package/the-context-js
@DevTwitter | <madman/>
بنچ مارک و یه اسکریپت دیباگ هم داخل پکیج هست که میتونیم از نظر پرفرمنس بررسیش کنید
و همینطور باعث افتخاره اگه موردی بود داخل گیتهاب پروژه بگین.
لینک پکیج:
npmjs.com/package/the-context-js
@DevTwitter | <madman/>
❤12👍1
پیاده سازی معماری میکروسرویس در express
با استفاده از پکیج http-proxy-middleware میتونید میکروسرویس هاتون رو پروکسی کنید به سرویس اصلی
به این صورت که 3 تا پروژه ی جداگانه میسازید (user, product, main)
و توی user, product میاید endpoint های مختلف خودتون رو پیاده سازی میکنید
و توی main با استفاده از http-proxy-middleware اون دوتا سرویس رو وصل میکنید به پروژه اصلی
http://localhost:3000/users/getAll
http://localhost:3000/products/getAll
@DevTwitter | <Arash Altafi/>
با استفاده از پکیج http-proxy-middleware میتونید میکروسرویس هاتون رو پروکسی کنید به سرویس اصلی
به این صورت که 3 تا پروژه ی جداگانه میسازید (user, product, main)
و توی user, product میاید endpoint های مختلف خودتون رو پیاده سازی میکنید
و توی main با استفاده از http-proxy-middleware اون دوتا سرویس رو وصل میکنید به پروژه اصلی
http://localhost:3000/users/getAll
http://localhost:3000/products/getAll
@DevTwitter | <Arash Altafi/>
❤18👍13🔥3🤣3
اولین بتای Tailwind 4.0 به صورت عمومی منتشر شد.
بریم یه نگاه اولیه داشته باشیم که توی نسخه ۴ چه اتفاقاتی افتاده و آیندهی این فریمورک فوق العاده محبوب قراره چه شکلی باشه.
پرفورمنس عالی: این نسخه با بیلدهایی در حد میکروثانیه قراره حسابی سریع باشه. بیلد کامل (full build) تا ۵ برابر و بیلد های incremental بیش از ۱۰۰ برابر سریع تر شدن.
ابزار سرخود: خیلی از ابزار های مورد نیاز برای کارایی مثل import handling و prefixing به صورت داخلی و built in درون خود tailwind قرار داده شدن و دیگه نیازی به کتابخونه های مجزا نداریم.
کانفیگ با طعم css: دیگه لازم نیست برای کاستوم کردن و انجام تنظیمات tailwind با یه فایل جاوااسکریپتی سر و کله بزنیم بلکه تنظیمات و کانفیگ ها به صورت CSS-first قراره انجام بشن.
طراحی شده برای وب مدرن: همون طور که احتمالا مستحضر هستید، خیلی از چیزایی که قبلا با ترفند های مختلف توی محیط وب پیاده شون میکردیم، الان دیگه به صورت native توسط مرورگر ها استاندارد و پیاده سازی شدن؛ از popover ها گرفته تا wide-gamut colors، تیم tailwind نسخه جدید رو برای و بر اساس وب مدرن پیاده سازی کردن.
اینا صرفا بعضی از مهم ترین اتفاقات در نسخه چهارم بودن و هنوز حرف برای گفتن زیاده. سعی میکنم بعد از بررسی های جامع تر مطالب کامل تری منتشر کنم
@DevTwitter | <Abolfazl Baghlani/>
بریم یه نگاه اولیه داشته باشیم که توی نسخه ۴ چه اتفاقاتی افتاده و آیندهی این فریمورک فوق العاده محبوب قراره چه شکلی باشه.
پرفورمنس عالی: این نسخه با بیلدهایی در حد میکروثانیه قراره حسابی سریع باشه. بیلد کامل (full build) تا ۵ برابر و بیلد های incremental بیش از ۱۰۰ برابر سریع تر شدن.
ابزار سرخود: خیلی از ابزار های مورد نیاز برای کارایی مثل import handling و prefixing به صورت داخلی و built in درون خود tailwind قرار داده شدن و دیگه نیازی به کتابخونه های مجزا نداریم.
کانفیگ با طعم css: دیگه لازم نیست برای کاستوم کردن و انجام تنظیمات tailwind با یه فایل جاوااسکریپتی سر و کله بزنیم بلکه تنظیمات و کانفیگ ها به صورت CSS-first قراره انجام بشن.
طراحی شده برای وب مدرن: همون طور که احتمالا مستحضر هستید، خیلی از چیزایی که قبلا با ترفند های مختلف توی محیط وب پیاده شون میکردیم، الان دیگه به صورت native توسط مرورگر ها استاندارد و پیاده سازی شدن؛ از popover ها گرفته تا wide-gamut colors، تیم tailwind نسخه جدید رو برای و بر اساس وب مدرن پیاده سازی کردن.
اینا صرفا بعضی از مهم ترین اتفاقات در نسخه چهارم بودن و هنوز حرف برای گفتن زیاده. سعی میکنم بعد از بررسی های جامع تر مطالب کامل تری منتشر کنم
@DevTwitter | <Abolfazl Baghlani/>
👍43🔥6❤2
چگونه یک سیستم رزرو بلیت هواپیما با معماری Event-Driven و Saga پیادهسازی کنیم؟
تو این مقاله توضیح دادم چطور با ترکیب Event-Driven Architecture، RabbitMQ و Saga Pattern تونستم سیستمهای رزرو بلیت هواپیما رو به یه سطح دیگه ببرم. اگه دنبال معماریهای مقیاسپذیر و پایدار هستی، حتماً این مطلب رو بخون!
لینک مقاله
@DevTwitter | <mostafa jafarzadeh/>
تو این مقاله توضیح دادم چطور با ترکیب Event-Driven Architecture، RabbitMQ و Saga Pattern تونستم سیستمهای رزرو بلیت هواپیما رو به یه سطح دیگه ببرم. اگه دنبال معماریهای مقیاسپذیر و پایدار هستی، حتماً این مطلب رو بخون!
لینک مقاله
@DevTwitter | <mostafa jafarzadeh/>
👎16❤5👍5
چالش روزانه یک سرور:
امروز با یک مشکل عجیب روبرو شدم! سرور ما ناگهان از دسترس خارج شد و خطای ۵۰۳ میداد. بعد از بررسی، فهمیدم که حجم سرور پر شده!
با دستور 𝚍̲𝚞̲ ̲–̲𝚑̲𝚍̲𝟷̲ متوجه شدم یکی از پروژهها، که به نظر ساده میرسید، حجم عظیمی از سرور را گرفته بود. پس از بررسی دقیقتر دیدم که پوشه دیتابیس بیش از حد بزرگ شده است. دلیل؟ فایلهای 𝗕𝗶𝗻𝗮𝗿𝘆 𝗟𝗼𝗴 که به صورت خودکار ذخیره شده بودند ولی هیچ وقت پاک نشده بودند.
چطور مشکل را حل کردم؟
فایلها را به صورت دستی پاک کردم.
و با اضافه کردن --𝘴𝘬𝘪𝘱-𝘭𝘰𝘨-𝘣𝘪𝘯 در تنظیمات 𝗗𝗼𝗰𝗸𝗲𝗿 𝗖𝗼𝗺𝗽𝗼𝘀𝗲، از ذخیره شدن این لاگها جلوگیری کردم.
درسهایی که گرفتم:
همیشه به فضای ذخیرهسازی سرور دقت کنید.
اگر به 𝗕𝗶𝗻𝗹𝗼𝗴 نیاز ندارید، آن را غیرفعال کنید یا پاکسازی خودکار تنظیم کنید.
@DevTwitter |<Reza Parsian/>
امروز با یک مشکل عجیب روبرو شدم! سرور ما ناگهان از دسترس خارج شد و خطای ۵۰۳ میداد. بعد از بررسی، فهمیدم که حجم سرور پر شده!
با دستور 𝚍̲𝚞̲ ̲–̲𝚑̲𝚍̲𝟷̲ متوجه شدم یکی از پروژهها، که به نظر ساده میرسید، حجم عظیمی از سرور را گرفته بود. پس از بررسی دقیقتر دیدم که پوشه دیتابیس بیش از حد بزرگ شده است. دلیل؟ فایلهای 𝗕𝗶𝗻𝗮𝗿𝘆 𝗟𝗼𝗴 که به صورت خودکار ذخیره شده بودند ولی هیچ وقت پاک نشده بودند.
چطور مشکل را حل کردم؟
فایلها را به صورت دستی پاک کردم.
و با اضافه کردن --𝘴𝘬𝘪𝘱-𝘭𝘰𝘨-𝘣𝘪𝘯 در تنظیمات 𝗗𝗼𝗰𝗸𝗲𝗿 𝗖𝗼𝗺𝗽𝗼𝘀𝗲، از ذخیره شدن این لاگها جلوگیری کردم.
درسهایی که گرفتم:
همیشه به فضای ذخیرهسازی سرور دقت کنید.
اگر به 𝗕𝗶𝗻𝗹𝗼𝗴 نیاز ندارید، آن را غیرفعال کنید یا پاکسازی خودکار تنظیم کنید.
@DevTwitter |<Reza Parsian/>
🔥52👍36🤣5
داشتم دنبال شل PHP میگشتم که سرور پاک نکنه!
پیدا نکردم!
از این به عنوان ابزار بررسی و ریویو کد و در نهایت کد نویسی شل خودم استفاده کردم!
تبدیل تهدید به فرصت و از این چیزا!
https://github.com/pheditor/pheditor
@DevTwitter | <exploitio/>
پیدا نکردم!
از این به عنوان ابزار بررسی و ریویو کد و در نهایت کد نویسی شل خودم استفاده کردم!
تبدیل تهدید به فرصت و از این چیزا!
https://github.com/pheditor/pheditor
@DevTwitter | <exploitio/>
1👍10🔥6🤣6
تو این ویدئو بیش از 100 سوال مصاحبهی Frontend رو باهم حل کنیم و هر کدوم رو به زبان ساده توضیح میدیم.
لینک بخش 1:
aparat.com/v/hhg6aj9
لینک بخش 2:
aparat.com/v/kqk4t98
نمونهی کوچیکی از سوالاتی که بررسی میکنیم:
1. مفهوم Hoisting چیه و چه زمانی اتفاق میفته؟
2. مفهوم Closure چیه و چه زمانی ایجاد میشه؟
3. مفهوم Event Loop چیه و چطور کار میکنه؟
4. مفهوم Callback Hell چیه و چجوری میشه رفعش کرد؟
5. مفهوم Specificity تو CSS چیه و چجوری کار میکنه؟
6. مفهوم Virtual DOM چیه و چرا React ازش استفاده میکنه؟
7. مفهوم HOC یا HOF چیه و چه کاربردی داره؟
8. مفهوم Memoization چیه و چجوری به کار میره؟
9. مفهوم Pure Function چیه و کجا استفاده میشه؟
10. تفاوت Mutable و Immutable چیه؟
11. تفاوت defer و async چیه؟
12. تفاوت em و rem چیه و هر کدوم کجا باید استفاده شه؟
13. چرا NaN مساوی با NaN نیست؟
14. از 'use strict' در JavaScript چه استفادهای میشه؟
@DevTwitter | <Bijan Eisapour/>
لینک بخش 1:
aparat.com/v/hhg6aj9
لینک بخش 2:
aparat.com/v/kqk4t98
نمونهی کوچیکی از سوالاتی که بررسی میکنیم:
1. مفهوم Hoisting چیه و چه زمانی اتفاق میفته؟
2. مفهوم Closure چیه و چه زمانی ایجاد میشه؟
3. مفهوم Event Loop چیه و چطور کار میکنه؟
4. مفهوم Callback Hell چیه و چجوری میشه رفعش کرد؟
5. مفهوم Specificity تو CSS چیه و چجوری کار میکنه؟
6. مفهوم Virtual DOM چیه و چرا React ازش استفاده میکنه؟
7. مفهوم HOC یا HOF چیه و چه کاربردی داره؟
8. مفهوم Memoization چیه و چجوری به کار میره؟
9. مفهوم Pure Function چیه و کجا استفاده میشه؟
10. تفاوت Mutable و Immutable چیه؟
11. تفاوت defer و async چیه؟
12. تفاوت em و rem چیه و هر کدوم کجا باید استفاده شه؟
13. چرا NaN مساوی با NaN نیست؟
14. از 'use strict' در JavaScript چه استفادهای میشه؟
@DevTwitter | <Bijan Eisapour/>
👍28🤣5❤3
سلام و درود
ری اکت روتر ۷ (react router 7) بالاخره ریلیز شد ،
و تغییرات بزرگی رو توی خودش جای داده
و زین پس نه تنها میشه به عنوان یک لایبری برای هندل کردن روتینگ بهش نگاه کرد ، بلکه با توجه به قابلیت های جدیدی که بهش اضافه شده میتونه نقش یک فریمورک برای هندل کردن ssr رو هم به عهده بگیره
سعی میکنم بعد ازینکه داکیومنتشو کامل خوندن یه پست درباره ی قابلیت های جدیدش بذارم
برای منکه شخصا از نکست خوشم نمیومد خبر خوبی بود
https://remix.run/blog/react-router-v7
https://reactrouter.com/home
@DevTwitter | <Amir Abbas Dakhily/>
ری اکت روتر ۷ (react router 7) بالاخره ریلیز شد ،
و تغییرات بزرگی رو توی خودش جای داده
و زین پس نه تنها میشه به عنوان یک لایبری برای هندل کردن روتینگ بهش نگاه کرد ، بلکه با توجه به قابلیت های جدیدی که بهش اضافه شده میتونه نقش یک فریمورک برای هندل کردن ssr رو هم به عهده بگیره
سعی میکنم بعد ازینکه داکیومنتشو کامل خوندن یه پست درباره ی قابلیت های جدیدش بذارم
برای منکه شخصا از نکست خوشم نمیومد خبر خوبی بود
https://remix.run/blog/react-router-v7
https://reactrouter.com/home
@DevTwitter | <Amir Abbas Dakhily/>
🔥28👍11👎4
کدت رو بنویس و دیگه نگران تست نوشتن نباش، من مینویسم برات!
این شعار هوش مصنوعی جدیدی هستش به اسم Celp که در مقام یک دستیار تمام عیار در کنارتونه و دیگه شما رو از شر دغدغه تست نوشتنهای روزمره راحت میکنه
https://www.celp.ai
@DevTwitter | <Mohammadreza Hajian/>
این شعار هوش مصنوعی جدیدی هستش به اسم Celp که در مقام یک دستیار تمام عیار در کنارتونه و دیگه شما رو از شر دغدغه تست نوشتنهای روزمره راحت میکنه
https://www.celp.ai
@DevTwitter | <Mohammadreza Hajian/>
👍44❤5🔥5🤣5👎2
ساختاربندی پروژهها در Golang
یکی از چالشهایی که اوایل یادگیری Golang باهاش دستوپنجه نرم میکردم، ساختاربندی درست پروژهها بود. راستش چون از Laravel به Golang مهاجرت کرده بودم، برام سخت بود. Laravel یه ساختار آماده و چارچوب مشخص داره، ولی اینجا باید خودم دست به کار میشدم و انتخاب میکردم.
امروز داشتم یه سری مقاله تو Medium میخوندم که به یه مطلب خیلی خوب برخوردم. تو این مقاله چندتا از ساختارهای محبوب پروژه تو Golang معرفی شده بودن و به سادهترین شکل ممکن درباره ویژگیها و کاربردهاشون توضیح داده بود. ساختارهایی مثل:
- Clean Architecture
- CQRS
- Hexagonal Architecture
- Monorepo Structure
- ...
از خوندنش واقعاً لذت بردم و گفتم با شما هم به اشتراک بذارم.
لینک مقاله:
https://medium.com/@smart_byte_labs/organize-like-a-pro-a-simple-guide-to-go-project-folder-structures-e85e9c1769c2
چند نکته که باید حتماً در نظر بگیرید:
1- اسم فولدرها رو با توجه به نیاز خودتون انتخاب کنید.
لازم نیست دقیقاً مثل این مقاله عمل کنید. هر اسمی که به تیم شما کمک کنه راحتتر بفهمه داخل اون فولدر چه خبره، گزینه درستیه!
2- ساختارها رو میتونید ترکیب کنید.
مثلاً من خودم ترکیب Monorepo، Clean Architecture، Hexagonal Architecture و CQRS رو خیلی دوست دارم و معمولاً ازش استفاده میکنم.
3- سمها باید کاربرد فولدر رو مشخص کنن.
اصلاً نیازی نیست که حتماً از کلمات رایج مثل controller استفاده کنید. چیزی رو انتخاب کنید که برای پروژهتون مناسبتره.
امیدوارم این مقاله به دردتون بخوره. اگر تجربه خاصی تو این زمینه دارید یا از ساختارهای دیگهای استفاده میکنید، خوشحال میشم تجربیاتتون رو بشنوم!
@DevTwitter | <Adel Hadadi/>
یکی از چالشهایی که اوایل یادگیری Golang باهاش دستوپنجه نرم میکردم، ساختاربندی درست پروژهها بود. راستش چون از Laravel به Golang مهاجرت کرده بودم، برام سخت بود. Laravel یه ساختار آماده و چارچوب مشخص داره، ولی اینجا باید خودم دست به کار میشدم و انتخاب میکردم.
امروز داشتم یه سری مقاله تو Medium میخوندم که به یه مطلب خیلی خوب برخوردم. تو این مقاله چندتا از ساختارهای محبوب پروژه تو Golang معرفی شده بودن و به سادهترین شکل ممکن درباره ویژگیها و کاربردهاشون توضیح داده بود. ساختارهایی مثل:
- Clean Architecture
- CQRS
- Hexagonal Architecture
- Monorepo Structure
- ...
از خوندنش واقعاً لذت بردم و گفتم با شما هم به اشتراک بذارم.
لینک مقاله:
https://medium.com/@smart_byte_labs/organize-like-a-pro-a-simple-guide-to-go-project-folder-structures-e85e9c1769c2
چند نکته که باید حتماً در نظر بگیرید:
1- اسم فولدرها رو با توجه به نیاز خودتون انتخاب کنید.
لازم نیست دقیقاً مثل این مقاله عمل کنید. هر اسمی که به تیم شما کمک کنه راحتتر بفهمه داخل اون فولدر چه خبره، گزینه درستیه!
2- ساختارها رو میتونید ترکیب کنید.
مثلاً من خودم ترکیب Monorepo، Clean Architecture، Hexagonal Architecture و CQRS رو خیلی دوست دارم و معمولاً ازش استفاده میکنم.
3- سمها باید کاربرد فولدر رو مشخص کنن.
اصلاً نیازی نیست که حتماً از کلمات رایج مثل controller استفاده کنید. چیزی رو انتخاب کنید که برای پروژهتون مناسبتره.
امیدوارم این مقاله به دردتون بخوره. اگر تجربه خاصی تو این زمینه دارید یا از ساختارهای دیگهای استفاده میکنید، خوشحال میشم تجربیاتتون رو بشنوم!
@DevTwitter | <Adel Hadadi/>
👍26🤣15
احتمالاً توی پروژههاتون که نیاز به درگاه پرداخت داشتید، کلی اذیت شدید (مخصوصاً برای گرفتن merchant_id) و میخواستید سرتون رو بکوبید به دیوار
حالا چرا اینارو میگم؟
من یه پکیج پایتونی توسعه دادم که همین مشکلات رو براتون حل کنه
توی این پکیج از درگاه پرداخت Zibal Co استفاده شده و کلی سادهسازی کردم که کار باهاش فوقالعاده راحت باشه. فیچرهای اصلی که برای درگاه پرداخت نیاز دارید پیاده شده و همینطور:
- ارور هندلینگ قوی
- لاگینگ حرفهای
- و مثالهای آماده برای استفاده
این پکیج توی هر برنامه پایتونی ( از جمله فریم ورک ها) قابل استفادهست و دردسری براتون ایجاد نمیکنه.
اگر هم علاقه دارید، خوشحال میشم به پروژه کانتربیوتر بشید و فیچرهای جدید یا درگاههای دیگه اضافه کنید.
https://github.com/Mohammad222PR/zibal-payment
https://pypi.org/project/zibal-payment/
@DevTwitter | <Mohammad Eslami/>
حالا چرا اینارو میگم؟
من یه پکیج پایتونی توسعه دادم که همین مشکلات رو براتون حل کنه
توی این پکیج از درگاه پرداخت Zibal Co استفاده شده و کلی سادهسازی کردم که کار باهاش فوقالعاده راحت باشه. فیچرهای اصلی که برای درگاه پرداخت نیاز دارید پیاده شده و همینطور:
- ارور هندلینگ قوی
- لاگینگ حرفهای
- و مثالهای آماده برای استفاده
این پکیج توی هر برنامه پایتونی ( از جمله فریم ورک ها) قابل استفادهست و دردسری براتون ایجاد نمیکنه.
اگر هم علاقه دارید، خوشحال میشم به پروژه کانتربیوتر بشید و فیچرهای جدید یا درگاههای دیگه اضافه کنید.
https://github.com/Mohammad222PR/zibal-payment
https://pypi.org/project/zibal-payment/
@DevTwitter | <Mohammad Eslami/>
❤38👍10🤣9👎3