Forwarded from Gopher Academy
🧭 راهنمای ساختاربندی پروژههای Go
1. ساختار را بر اساس نیاز پروژه انتخاب کنید
سبکهای ساختاری بسته به نوع پروژه (CLI، کتابخانه، وباپ/میکروسرویس) متفاوت است و «یک ساختار برتر» وجود ندارد .
2. کارآمدی مهمتر از کمال
هدف این باشد که ساختار پروژه قابل فهم، قابل تغییر و قابل نگهداری باشد؛ نه لزوماً کامل و بینقص .
3. از روی عادت به ساختار زبانهای دیگر نقل رعایت نکنید
اGo فلسفهٔ ساده خود را دارد؛ تقلید ساختار Django یا Rails ممکن است منجر به سردرگمی شود .
4. هر پوشه=هر package
ایجاد فولدر فقط به دلیل نظم ظاهری اشتباه است. فقط هنگامی package بسازید که منطق مستقلی بخواهید .
5. با یک skeleton استاندارد شروع کنید
پروژههای کوچک: همهٔ فایلها در روت
main.go, foo.go, bar.go
وقتی پکیجهای داخلی نیاز بود:
internal/foo/foo.go
main.go
پروژههای بزرگتر با چند executable:
cmd/app1/, cmd/app2/, internal/, go.mod, README.md
6. اجازه دهید ساختار با رشد پروژه تغییر کند
نیاز به تغییر ساختار را با توسعه واقعی پروژه شناسایی کنید؛ نه از ابتدا همهچیز را طراحی کنید .
7. اگر بلاتکلیف هستید، با دو فایل شروع کنید
فقط go.mod و main.go؛ باقی را با نیاز واقعی اضافه کنید .
8. موارد مرتبط را در کنار هم نگه دارید
توابع کمکی، typeها و متدها مرتبط را نزدیک هم نگه دارید تا خوانایی بیشتر شود .
9. اندازه فایل مهم نیست، تا وقتی درست است
فایلهای بزرگ ایرادی ندارند، مگر اینکه واقعا نگهداری را سخت کنند .
10. پکیجسازی فقط وقتی لازم باشد
پکیجهای خیلی کوچک یا کماهمیت اضافه نکنید؛ مگر برای استفاده مجدد یا جداسازی لایهها .
11. به علائم هشدار توجه کنید
مشکل در پیدا کردن کد
تغییرات کوچک توزیعشده در کل پروژه
پیچیدگی در debugging
وابستگیهای دورانی و مشکل در error handling
→ وقت بازنگری ساختار است .
⚡ جمعبندی
هدف: ساختاری موثر، خوانا، و قابل نگهداری.
روش:
1. شروع ساده،
2. استفاده از ساختار پیشنهادی (مثل پوشههای cmd/, internal/)،
3. اجازه دهید پروژه رشد کند و ساختار با آن عینا وفق پیدا کند.
هشدار: وقتی احساس کردید ساختار کارآمد نیست، فکری برای بازطراحی آن بکنید.
https://t.iss.one/addlist/QtXiQlynEJwzODBk
1. ساختار را بر اساس نیاز پروژه انتخاب کنید
سبکهای ساختاری بسته به نوع پروژه (CLI، کتابخانه، وباپ/میکروسرویس) متفاوت است و «یک ساختار برتر» وجود ندارد .
2. کارآمدی مهمتر از کمال
هدف این باشد که ساختار پروژه قابل فهم، قابل تغییر و قابل نگهداری باشد؛ نه لزوماً کامل و بینقص .
3. از روی عادت به ساختار زبانهای دیگر نقل رعایت نکنید
اGo فلسفهٔ ساده خود را دارد؛ تقلید ساختار Django یا Rails ممکن است منجر به سردرگمی شود .
4. هر پوشه=هر package
ایجاد فولدر فقط به دلیل نظم ظاهری اشتباه است. فقط هنگامی package بسازید که منطق مستقلی بخواهید .
5. با یک skeleton استاندارد شروع کنید
پروژههای کوچک: همهٔ فایلها در روت
main.go, foo.go, bar.go
وقتی پکیجهای داخلی نیاز بود:
internal/foo/foo.go
main.go
پروژههای بزرگتر با چند executable:
cmd/app1/, cmd/app2/, internal/, go.mod, README.md
6. اجازه دهید ساختار با رشد پروژه تغییر کند
نیاز به تغییر ساختار را با توسعه واقعی پروژه شناسایی کنید؛ نه از ابتدا همهچیز را طراحی کنید .
7. اگر بلاتکلیف هستید، با دو فایل شروع کنید
فقط go.mod و main.go؛ باقی را با نیاز واقعی اضافه کنید .
8. موارد مرتبط را در کنار هم نگه دارید
توابع کمکی، typeها و متدها مرتبط را نزدیک هم نگه دارید تا خوانایی بیشتر شود .
9. اندازه فایل مهم نیست، تا وقتی درست است
فایلهای بزرگ ایرادی ندارند، مگر اینکه واقعا نگهداری را سخت کنند .
10. پکیجسازی فقط وقتی لازم باشد
پکیجهای خیلی کوچک یا کماهمیت اضافه نکنید؛ مگر برای استفاده مجدد یا جداسازی لایهها .
11. به علائم هشدار توجه کنید
مشکل در پیدا کردن کد
تغییرات کوچک توزیعشده در کل پروژه
پیچیدگی در debugging
وابستگیهای دورانی و مشکل در error handling
→ وقت بازنگری ساختار است .
⚡ جمعبندی
هدف: ساختاری موثر، خوانا، و قابل نگهداری.
روش:
1. شروع ساده،
2. استفاده از ساختار پیشنهادی (مثل پوشههای cmd/, internal/)،
3. اجازه دهید پروژه رشد کند و ساختار با آن عینا وفق پیدا کند.
هشدار: وقتی احساس کردید ساختار کارآمد نیست، فکری برای بازطراحی آن بکنید.
https://t.iss.one/addlist/QtXiQlynEJwzODBk
Forwarded from DevTwitter | توییت برنامه نویسی
این چند وقته با تحریم خیلی مشکل داشتم، یه ابزار کوچیک نوشتم توش dns هایی که تونستم واسه رفع تحریم پیدا کنم رو گذاشتم که اتوماتیک بینشون میتونین سویچ کنین. اگه خواستین میتونین استفاده کنین
https://github.com/itpourya/beshkan
@DevTwitter | <پوریا/>
https://github.com/itpourya/beshkan
@DevTwitter | <پوریا/>
Forwarded from کانال اطلاعرسانی توزیع پارچ
در بیلد بعدی پارچ، نشست X11 از گنوم و کیدیای پلاسما حذف میشود.
این عمل از سوی بستهبندی بالادستی آرچ رخ میدهد، در کیدیای به صورت دستی میتوانید مجدداً X11 را فعال کنید.
همچنین نگارشهای سنتی نیز مانند XFCE پارچ همراه با labwc و پشتیبانی از ویلند منتشر میشوند.
@ParchLinux
این عمل از سوی بستهبندی بالادستی آرچ رخ میدهد، در کیدیای به صورت دستی میتوانید مجدداً X11 را فعال کنید.
همچنین نگارشهای سنتی نیز مانند XFCE پارچ همراه با labwc و پشتیبانی از ویلند منتشر میشوند.
@ParchLinux
Forwarded from New Elizaium
" تخفیف ویژه ChatGPT Plus "
فقط برای صرفا این یک ماه آینده که امتحانات و پروژه ها و پایان نامه ها ... نزدیک هست !
۱ ماهه اشتراکی - یک دستگاه : 285t
۳ ماهه اشتراکی - یک دستگاه : 697t
۶ ماهه اشتراکی - یک دستگاه : 1.247t
* بدون هیچگونه بن و ارور Suspicious *
جهت تهیه ، رزرو و کسب اطلاعات بیشتر : @ElizaiumHelp
فقط برای صرفا این یک ماه آینده که امتحانات و پروژه ها و پایان نامه ها ... نزدیک هست !
۱ ماهه اشتراکی - یک دستگاه : 285t
۳ ماهه اشتراکی - یک دستگاه : 697t
۶ ماهه اشتراکی - یک دستگاه : 1.247t
* بدون هیچگونه بن و ارور Suspicious *
جهت تهیه ، رزرو و کسب اطلاعات بیشتر : @ElizaiumHelp
❤1
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
Forwarded from SoniaCircuit (Sonia Fatholahi)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
یک اسکریپت پیدا کردم که قابلیت ساخت Appimage از بستههای نصب شده آرچ رو به شما میده، این اسکریپت در مواقع قطعی اینترنت بینالملل میتونه برای افراد کاربردی باشه که بتونن برنامههایی که نصب داشتن رو با بقیه به عنوان یک بسته Appimage به اشتراک بذارن.
https://github.com/ivan-hc/Arch-Deployer
@DevTwitter | <Sohrab Behdani/>
https://github.com/ivan-hc/Arch-Deployer
@DevTwitter | <Sohrab Behdani/>
Forwarded from CleverDevs (Mammad)
لاراگرام یه فریمورک برای توسعه ربات تلگرامه که توسط امیرحسین با الهام گرفتن از فریمورک لاراول توسعه داده شده که اکثر فیچر های مورد نیاز برای ساخت ربات تلگرامی رو داره که میتونید یه نگاه به گیتهابش بندازید و اگه خوشتون اومد استفاده کنید
https://github.com/laraXgram/LaraGram
@CleverDevs - @CleverDevsGp
https://github.com/laraXgram/LaraGram
@CleverDevs - @CleverDevsGp
Forwarded from Gopher Academy
🔵 عنوان مقاله
Kubernetes Best Practices 2025: Comprehensive White Paper
🟢 خلاصه مقاله:
مقالهای در مورد بهبود امنیت، قابلیت اطمینان و کنترل هزینه در کلاسترهای Kubernetes با استفاده از راهنماییهای عملی بر اساس تجربیات واقعی ارائه شده است. در بخش امنیت، تاکید بر سیاستهای شبکه، بروزرسانیهای منظم و مکانیزمهای دسترسی امن است. برای قابلیت اطمینان، طراحی برای مقابله با شکست و استفاده از استراتژیهایی مانند خودترمیمی و استقرار در چندین منطقه پیشنهاد شده است. نیز، کنترل هزینهها از طریق بهینهسازی استفاده از منابع و پیادهسازی سیستمهای کارآمد لاگبرداری و نظارت تأکید شده است. این راهکارها به کاربران Kubernetes کمک میکنند تا امنیت، قابلیت اطمینان و کفایت هزینه در کلاسترهای خود را بهبود بخشند.
🟣لینک مقاله:
https://golangweekly.com/link/171853/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Kubernetes Best Practices 2025: Comprehensive White Paper
🟢 خلاصه مقاله:
مقالهای در مورد بهبود امنیت، قابلیت اطمینان و کنترل هزینه در کلاسترهای Kubernetes با استفاده از راهنماییهای عملی بر اساس تجربیات واقعی ارائه شده است. در بخش امنیت، تاکید بر سیاستهای شبکه، بروزرسانیهای منظم و مکانیزمهای دسترسی امن است. برای قابلیت اطمینان، طراحی برای مقابله با شکست و استفاده از استراتژیهایی مانند خودترمیمی و استقرار در چندین منطقه پیشنهاد شده است. نیز، کنترل هزینهها از طریق بهینهسازی استفاده از منابع و پیادهسازی سیستمهای کارآمد لاگبرداری و نظارت تأکید شده است. این راهکارها به کاربران Kubernetes کمک میکنند تا امنیت، قابلیت اطمینان و کفایت هزینه در کلاسترهای خود را بهبود بخشند.
🟣لینک مقاله:
https://golangweekly.com/link/171853/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Fairwinds
Kubernetes Best Practices Resource
Get the updated Kubernetes best practices whitepaper for advice on Kubernetes security, reliability, efficiency, policy and monitoring.
Forwarded from Gopher Academy
Graceful Goroutine Shutdowns in Go: A Practical Guide
https://dev.to/jones_charles_ad50858dbc0/graceful-goroutine-shutdowns-in-go-a-practical-guide-2b9a
https://dev.to/jones_charles_ad50858dbc0/graceful-goroutine-shutdowns-in-go-a-practical-guide-2b9a
DEV Community
Graceful Goroutine Shutdowns in Go: A Practical Guide
Hey there, Go developer! If you’ve been writing Go for a year or two, you’re probably comfy with...
Forwarded from a pessimistic researcher (Kc)
همه اینا رو گفتم که بگم ایونت گرامیداشت ایشون به صورت آنلاین هم برگزار میشه و شما میتونید از طریق لینک zoom ای که روی وبسایت گذاشتن وارد بشید و در جلسات این ایونت شرکت کنید.
این ایونت فردا برگزار میشه و به وقت ایران از ساعت ۱۰:۳۰ صبح شروع و تا ساعت ۷:۳۰ عصر هم ادامه خواهد داشت
این ایونت فردا برگزار میشه و به وقت ایران از ساعت ۱۰:۳۰ صبح شروع و تا ساعت ۷:۳۰ عصر هم ادامه خواهد داشت
Forwarded from a pessimistic researcher (Kc)
گرامیداشت Symbolic Model Checking
————————————
توی کنفرانس CAV یه ایونت ورکشاپ مانندی ترتیب دیدن برای گرامی داشت و تقدیر از زحمات آقای Kenneth McMillan، کسی که بیشک اگر نبود، نه CAV بود و شاید نه Software Model Checking به معنای امروز. ایشون تقریبا اولین کسی بود که با ارائهی یک تکنیک خلاقانه، راهی جدید برای مقابله با State Space Explosion ارائه کرد. مسئله به زبان ساده بدین صورته : مدل چکینگ کلاسیک ایدهاش این بود که ما بیایم تمامی رفتارهای ممکن یک سیستم رو در قالب یک state machine محاسبه کنیم. یعنی یک گراف با مجموعهای از state های اولیه و پایانی و میانی و تعدادی یال یا transition بینشون. در نتیجه میشد مسئلهی verification سیستم رو به مسئلهی Graph Reachability تقلیل داد. در وهلهی اول به نظر میومد که این تکنیک بسیار موثر باشه، چرا که مسئلهی graph reachability یک مسئلهی polynomial هستش و میشه به راحتی حلش کرد. اما چیزی نگذشت که دانشمندان در اون دوران فهمیدن که فضا حالت یک سیستم میتونه به قدری بزرگ باشه که در وهلهی اول اصلا نشه اون فضای حالت رو ذخیره و بازنمایی کرد و در وهله دوم اگر این کار رو هم بکنن، پروسهی reachability تا پایان عمرشون هم به پایان نمیرسه. تصور کنید که یک برنامهی ساده دارید که داخلش یک آرایه به سایز ۱۰ از تایپ int تعریف کردید و هیچ متغیر دیگهای تو برنامه تون وجود نداره. با فرض اینکه هر متغیر int اندازهاش تو حافظه ۳۲ بیت باشه، میتونه
2^32
مقدار مختلف رو بپذیره. حالا شما نه یکی که ده تا دارید و فضای حالت تون معادل
(2^32)^10
حالت میشه. تازه ما تعداد transition هاش رو هم حساب نکردیم.
آقای McMillan با یک ایدهی جدید میان و سعی میکنن که تمام state ها و transition های یک سیستم رو در قالب تعداد محدودی فرمول logical نمایش بدن. بنابراین مشکل اول رو حل کردن یعنی ما حالا میتونستیم به راحتی فضای حالت یک سیستم رو بازنمایی و ذخیره کنیم. در حقیقت ایشون اومدن و مسئلهی Graph Reachability رو به مسئلهی Satisfiablity فرمولهای logical تقلیل دادن.
از اونجایی که ما تو دپارتمانهای CS مون اثبات کردیم که مسئلهی SAT روی منطق گزارهای NP-complete هستش و روی منطق First-order تصمیم ناپذیره، پیش خودمون گفتیم که پس قرار نیست که یک SAT Solver ای روزی ساخته بشه که ما بهش فرمول لاجیکال رو بدیم و اون بهمون بگه که آیا SAT هست یا نه. منتهی یه سریا بودن که توی دپارتمان برق بودن و خیلی به حرفای ما باور نداشتن و شروع با ساختن SAT Solver ها کردند و اون جنبش باعث شد که امروزه SAT و SMT solver هایی داشته باشیم که بسیار خوب و قوی دارن کار میکنن.
به لطف جنبش دپارتمان برقیها امروزه کارای آقای McMillan بیشتر مورد توجه قرار گرفته. چرا که دانشمندان در اون زمان بر این باور بودند که راهکار آقای McMillan فقط مشکل اول مدل چکینگ کلاسیک رو حل کرده و مشکل دوم هنوز سر جاشه. ولی خب به لطف جنبش دپارتمان برقیها اون مشکل تا حد خوبی حل شده و اکثر تکنیکهای مدل چکینگ تو حوزه هاردور و سافتور بر اساس ایدههای ایشون ساخته میشه.
————————————
توی کنفرانس CAV یه ایونت ورکشاپ مانندی ترتیب دیدن برای گرامی داشت و تقدیر از زحمات آقای Kenneth McMillan، کسی که بیشک اگر نبود، نه CAV بود و شاید نه Software Model Checking به معنای امروز. ایشون تقریبا اولین کسی بود که با ارائهی یک تکنیک خلاقانه، راهی جدید برای مقابله با State Space Explosion ارائه کرد. مسئله به زبان ساده بدین صورته : مدل چکینگ کلاسیک ایدهاش این بود که ما بیایم تمامی رفتارهای ممکن یک سیستم رو در قالب یک state machine محاسبه کنیم. یعنی یک گراف با مجموعهای از state های اولیه و پایانی و میانی و تعدادی یال یا transition بینشون. در نتیجه میشد مسئلهی verification سیستم رو به مسئلهی Graph Reachability تقلیل داد. در وهلهی اول به نظر میومد که این تکنیک بسیار موثر باشه، چرا که مسئلهی graph reachability یک مسئلهی polynomial هستش و میشه به راحتی حلش کرد. اما چیزی نگذشت که دانشمندان در اون دوران فهمیدن که فضا حالت یک سیستم میتونه به قدری بزرگ باشه که در وهلهی اول اصلا نشه اون فضای حالت رو ذخیره و بازنمایی کرد و در وهله دوم اگر این کار رو هم بکنن، پروسهی reachability تا پایان عمرشون هم به پایان نمیرسه. تصور کنید که یک برنامهی ساده دارید که داخلش یک آرایه به سایز ۱۰ از تایپ int تعریف کردید و هیچ متغیر دیگهای تو برنامه تون وجود نداره. با فرض اینکه هر متغیر int اندازهاش تو حافظه ۳۲ بیت باشه، میتونه
2^32
مقدار مختلف رو بپذیره. حالا شما نه یکی که ده تا دارید و فضای حالت تون معادل
(2^32)^10
حالت میشه. تازه ما تعداد transition هاش رو هم حساب نکردیم.
آقای McMillan با یک ایدهی جدید میان و سعی میکنن که تمام state ها و transition های یک سیستم رو در قالب تعداد محدودی فرمول logical نمایش بدن. بنابراین مشکل اول رو حل کردن یعنی ما حالا میتونستیم به راحتی فضای حالت یک سیستم رو بازنمایی و ذخیره کنیم. در حقیقت ایشون اومدن و مسئلهی Graph Reachability رو به مسئلهی Satisfiablity فرمولهای logical تقلیل دادن.
از اونجایی که ما تو دپارتمانهای CS مون اثبات کردیم که مسئلهی SAT روی منطق گزارهای NP-complete هستش و روی منطق First-order تصمیم ناپذیره، پیش خودمون گفتیم که پس قرار نیست که یک SAT Solver ای روزی ساخته بشه که ما بهش فرمول لاجیکال رو بدیم و اون بهمون بگه که آیا SAT هست یا نه. منتهی یه سریا بودن که توی دپارتمان برق بودن و خیلی به حرفای ما باور نداشتن و شروع با ساختن SAT Solver ها کردند و اون جنبش باعث شد که امروزه SAT و SMT solver هایی داشته باشیم که بسیار خوب و قوی دارن کار میکنن.
به لطف جنبش دپارتمان برقیها امروزه کارای آقای McMillan بیشتر مورد توجه قرار گرفته. چرا که دانشمندان در اون زمان بر این باور بودند که راهکار آقای McMillan فقط مشکل اول مدل چکینگ کلاسیک رو حل کرده و مشکل دوم هنوز سر جاشه. ولی خب به لطف جنبش دپارتمان برقیها اون مشکل تا حد خوبی حل شده و اکثر تکنیکهای مدل چکینگ تو حوزه هاردور و سافتور بر اساس ایدههای ایشون ساخته میشه.
❤1
Forwarded from Persepolis Download Manager
Persepolis Download Manager 5.2.0 is released. We have made some positive changes. Please read the release notes.
@persepolisdm
@persepolisdm
Forwarded from DevTwitter | توییت برنامه نویسی
اگر به مباحث یادگیری تقویتی تو مدلهای زبانی علاقهدارید، دوره زیر از دانشگاه UCLA رو از دست ندید.
https://youtube.com/playlist?list=PLir0BWtR5vRp5dqaouyMU-oTSzaU5LK9r&si=bGoBe0-FCmbRa34f
@DevTwitter | <Reza Jafari/>
https://youtube.com/playlist?list=PLir0BWtR5vRp5dqaouyMU-oTSzaU5LK9r&si=bGoBe0-FCmbRa34f
@DevTwitter | <Reza Jafari/>
Forwarded from Ai Casts | Ai for Software
فقط یاد بگیرید!
عصر ai عصر یادگیریه
تو دوره ای هستیم که کارهای روتین رو agentهای هوش مصنوعی در چند دقیقه انجام میدن. چیزی که قبلا شاید روزها طول میکشید.
اما agentها هنوز خیلی کارها رو نمیتونن انجام بدن. یا بهتره بگم یه کار رو به هزار شیوه میتونن انجام بدن.
شما باید تصمیم بگیری که کدوم شیوه درسته و agentرو هدایت کنی به سمتش.
این تصمیم گیری ها بقدری تعدادشون زیاده و خاص منظوره هستن که نیازمند کسب تجربه و یادگیریه.
اگه قبلا ۲۰و ۳۰ درصد تایم به یادگیری مشغول بودید و ۷۰ درصد کار میکردید الان این موازنه باید کامل عوض بشه. چون کارهای سطح پایین و معمولی رو agentها به خوبی انجام میدن. مهم اینه که طراحی چطور باشه. ساختار چی باشه. در هر قسمت کد چه الگو و patternی انتخاب بشه.
دقیقا چند روزه دارم به چنین مثالی که در متن هست فکر میکنم. شما باید از agent بخواید که exponential backoff به کدتون اضافه کنه. و گرنه اگه بهش بگید make it more robust to errors اون هزارتا راه خوب و بد جلوی دست ش داره...
اینکه به agent بگیم code as a senior engineer تفاوتی در نتیجه ایجاد نمیکنه!! باید در مورد تک تک جزییات ازش بخواید که فلان کارو انجام بده.
حتی در مرحله قبل از کدنویسی هم میتونید در مورد چالش و تصمیمات تون مشورت کنید با ai و بعدش تصمیم نهایی تون رو در مرحله کدنویسی دقیق ازش بخواید اجرا کنه.
@gocasts
Ai for Software
@aicasts_ir
عصر ai عصر یادگیریه
تو دوره ای هستیم که کارهای روتین رو agentهای هوش مصنوعی در چند دقیقه انجام میدن. چیزی که قبلا شاید روزها طول میکشید.
اما agentها هنوز خیلی کارها رو نمیتونن انجام بدن. یا بهتره بگم یه کار رو به هزار شیوه میتونن انجام بدن.
شما باید تصمیم بگیری که کدوم شیوه درسته و agentرو هدایت کنی به سمتش.
این تصمیم گیری ها بقدری تعدادشون زیاده و خاص منظوره هستن که نیازمند کسب تجربه و یادگیریه.
اگه قبلا ۲۰و ۳۰ درصد تایم به یادگیری مشغول بودید و ۷۰ درصد کار میکردید الان این موازنه باید کامل عوض بشه. چون کارهای سطح پایین و معمولی رو agentها به خوبی انجام میدن. مهم اینه که طراحی چطور باشه. ساختار چی باشه. در هر قسمت کد چه الگو و patternی انتخاب بشه.
دقیقا چند روزه دارم به چنین مثالی که در متن هست فکر میکنم. شما باید از agent بخواید که exponential backoff به کدتون اضافه کنه. و گرنه اگه بهش بگید make it more robust to errors اون هزارتا راه خوب و بد جلوی دست ش داره...
اینکه به agent بگیم code as a senior engineer تفاوتی در نتیجه ایجاد نمیکنه!! باید در مورد تک تک جزییات ازش بخواید که فلان کارو انجام بده.
حتی در مرحله قبل از کدنویسی هم میتونید در مورد چالش و تصمیمات تون مشورت کنید با ai و بعدش تصمیم نهایی تون رو در مرحله کدنویسی دقیق ازش بخواید اجرا کنه.
@gocasts
Ai for Software
@aicasts_ir
Forwarded from Gopher Academy
نسخه ۱.۷.۰ پکیج env منتشر شد 🥳:
https://github.com/nasermirzaei89/env
چرا این پکیج رو نوشتم؟
- چون تقریبا همیشه اپلیکیشنهام درون Dockerfile قرار میگیره و صرفا گرفتن کانفیگ از متغیرهای محیطی کافیه
- به جای فقط متغیر رشتهای نوع های دیگه رو هم میخونه، از جمله bool، عدد، اسلایس...
توی نسخه جدید چی شده؟
- پکیج testify با چندتا تابع دستنویس جایگزین شده تا این کتابخونه Zero Dependency بشه
ای کسانی که از کتابخونه های بزرگ کانفیگ استفاده میکنید
ترکیب این کتابخونه و
github.com/joho/godotenv
بینظیره 😎
اما مثلا وقتی از
github.com/spf13/viper
استفاده میکنید با خودش نزدیک ۲۰ تا دیپندنسی داره، دیگه خود دانید 🫠
https://github.com/nasermirzaei89/env
چرا این پکیج رو نوشتم؟
- چون تقریبا همیشه اپلیکیشنهام درون Dockerfile قرار میگیره و صرفا گرفتن کانفیگ از متغیرهای محیطی کافیه
- به جای فقط متغیر رشتهای نوع های دیگه رو هم میخونه، از جمله bool، عدد، اسلایس...
توی نسخه جدید چی شده؟
- پکیج testify با چندتا تابع دستنویس جایگزین شده تا این کتابخونه Zero Dependency بشه
ای کسانی که از کتابخونه های بزرگ کانفیگ استفاده میکنید
ترکیب این کتابخونه و
github.com/joho/godotenv
بینظیره 😎
اما مثلا وقتی از
github.com/spf13/viper
استفاده میکنید با خودش نزدیک ۲۰ تا دیپندنسی داره، دیگه خود دانید 🫠
Forwarded from a pessimistic researcher (Kc)
بزرگوار اومد دقیقا نشست رو به روم و تا پرواز هم ۲ ساعت مونده. احتمال این که تو این زمان بپرم بغلش کنم از اینکه یه روزی تورینگ ببره خیلی بیشتره