خرسِ برنامه نویس
167 subscribers
166 photos
12 videos
1 file
281 links
من 5 درصد موسیقی ام! 30 درصد خواب! و بقیه به دنبال یافتن چیزی !!!
Download Telegram
Audio
صوت جلسه 8 خوانش کتاب یادگیری تفکر سیستمی

مواردی که خارج از کتاب بهشون اشاره شد در جلسه.
- اشاره به اثر مشاهده‌گر (Observer Effect) و معرفی این ویدئو توسط بهنیا عزیز
5🔥2
خب بریم سراغ نتایج StackOverFlow Developer Survey سال ۲۰۲۵
فقط یک چهارم developerها از شغل فعلی شون رضایت دارن
استفاده کنندگان از AI agentها اکثرا معتقدند که productivityشون زیاد شده
بیشتر developerها به نتایج AI tools اعتماد ندارن که بنظرم منطقی هم هست
استفاده از python هفت درصد نسبت به پارسال رشد داشته که از بقیه زبان ها بیشتر بوده

همچنان Visual Studio Code و Visual Studio پرکاربردترین development environmentها هستند
از most admiredها بگیم. این نشون میده که برنامه نویسا هر چیزی رو چقدر ستایش میکنن و دوست دارن (لزوما به معنی استفاده و کاربرد نیست)
زبان Rust و بعدش Gleam و Elixir و Zig تحسین برانگیزترین(محبوب ترین) زبان ها هستند.
تحسین برانگیزترین مدل AI هم claude sonnet شده هر چند که most desired یا اونی که بیشتر استفاده میشه یا قصد استفاده دارن ChatGPT بوده
Claude Sonnet is the most admired AI model
گزارش کامل ش رو میتونید تو این لینک ببینید
https://survey.stackoverflow.co/2025

@DevTwitter | <Hossein Nazari/>
3🔥2
😁
🤣6🔥2
Comfortably Numb
Pink Floyd
مهاجرت و اینا، بیحالی و ناتوانی از تمرکز

#ProgRock
3🔥2
ما وقتی برنامه Go مون رو می‌بندیم، فقط یه Ctrl+C می‌زنیم و می‌گیم:
“خب، shutdown شد!”
و تمام!
ولی واقعیت اینه که خاموش شدن یه سرویس واقعی، اونم توی Production،
خیلی بیشتر از یه سیگنال ساده‌ست.


اگه درست پیاده‌سازی نشه:
- ممکنه وسط ارسال درخواست، ارتباط قطع شه
- جاب‌ها در حال پردازش نصفه‌کاره بمونن
- کانکشن‌ها به دیتابیس یا Redis نشت کنن
- و حتی برنامه قبل از تموم شدن goroutineها، کلاً بسته شه


تو این مقاله، به‌صورت خلاصه نوشتم:
- چطور با signal.NotifyContext درست shutdown رو هندل کنیم
- چطور http.Server رو با Shutdown(ctx) ببندیم
- چطور workerها رو با context و sync.WaitGroup تمیز ببندیم
- و تو Kubernetes چطور از terminationGracePeriodSeconds درست استفاده کنیم

https://medium.com/@a.mousavi/graceful-shutdown-in-go-part-1-build-production-ready-services-without-dropping-requests-b55934c217c1

@DevTwitter | <Arash Mousavi/>
🔥5
بماند اینجا، روز خیلی سختی بود امیدوارم تبدیل به یک چیز زیبا بشه.
8🔥1
Forwarded from tech-afternoon (Amin Mesbahi)
💡 آیا مایکروسرویس و DDD برای تیم‌های کوچک مناسبه؟

از اونجایی که تعداد تیم‌هایی که تلاش کردن/می‌کنن تا DDD رو پیاده‌سازی کنن و یا محصول مبتنی بر معماری مایکروسرویس توسعه بدن، ولی در میانه‌ی راه متوجه دشواری‌ها، مشکلات و یا اشتباهات متعدد طراحی و پیاده‌سازی می‌شن، کم نیست؛ خوبه تا پرسش رو مرور کنیم، تا اگر موضوع مورد اقبالی بود بیشتر در موردش گپ بزنیم.

ریشه و خواستگاه این طراحی و معماری کجاست؟
تا حالا به خواستگاه و پیشینه‌ی خالقین DDD یا Microservice توجه داشتید؟ منظورم «خواستگاه نیازهایی» است که به خاطر برطرف شدن اون نیازها، افرادی با «پیشینه و تجربه‌ی مشخص در تعامل با نوع خاصی از مسائل و سازمان‌ها» شروع به طراحی راهکار یا پاسخ برای اون نیازها در اون سازمان‌ها کردن؛ و بعدتر این راهکارها در سازمان‌هایی با چه مختصات و ابعادی، توسط چه افرادی توسعه و تکامل پیدا کرد تا امروز به انضمام این تعداد کتاب و مقاله و ویدیو و کنفرانس، در اختیار ما باشه؟!

بیاید با هم چند تا سوال کاریکاتوریزه رو مرور کنیم:

۱: از نظر امکانات در دسترس: آیا یک پزشک حاذق که تمام عمرش در پیشرفته‌ترین بیمارستان‌های ژاپن یا سوییس تحصیل و کسب‌تجربه کرده؛ به صورت مستقیم (و طبیعتا بدون تغییر و سازگارپذیری) می‌تونه بره در یکی از مناطق محروم اتیوپی شروع به درمان کنه؟

۲: از نظر مقیاس‌ها: آیا مرسومه که از ابزارآلات تعمیر ماشین‌های معدن در کارگاه ساعت‌سازی استفاده کنن یا برعکس؟

هدفم از طرح این دو سوال، اینه که خیلی از مشکلاتی که می‌بینیم به خاطر یک عدم سازگاری یا تناسب بین نیاز، شرایط، و راهکاره! توجه به پیش‌نیازهای محیطی، و بستری که یک معماری می‌تونه توش به شکل صحیح پیاده بشه، یا کمتر مورد توجه قرار می‌گیره یا با خطای ادراکی روبرو می‌شه و نتیجه‌اش یا شکسته، یا دردسر، یا موجود عجیب‌الخلقه‌ای که کسی قادر به درکش نیست!

🔑 چاره کار چیه؟
» اگر دنبال یک مسیر قابل تعمیم به عام باشیم، راه رو به خطا رفتیم؛ عملا عیار یک architect یا software engineer سنیور یا بالاتر (بسته به سایز سازمان و محصول) در میزان موفقیت و ظرافت‌های طراحی مسیر، راهکار و معماری مشخص می‌شه. قرار هم نبوده و نیست، همه یک میزان موفقیت کسب کنن. خیلی‌ها هم شکست میخورن یا پیروزی‌نمایی می‌کنن.

اگر دوست داشتید این بحث ادامه پیدا کنه لطفا با ⚙️ اعلام کنید تا در اگر به حدنصاب رسید ادامه بدیم..
(موضوعاتی مثل Strategic DDD یا Modular Monolith/Modulith، شناسایی پیش‌نیازها، فازبندی تغییرات و پیاده‌سازی، امکان‌پذیری transformation و... می‌تونن محور این سری از مطالب باشن)


🗽 سخن بزرگان:

👨🏼‍🦳 مارتین فالر: توی مقاله معروف "Microservice Prerequisites" سه تا پیش‌نیاز اساسی رو مطرح می‌کند:

قابلیت Rapid provisioning: قابلیت راه‌اندازی سریع infrastructure
قابلیت Basic monitoring: نظارت و observability
قابلیت Rapid application deployment: استقرار سریع نرم‌افزار
«در صورت ادامه بحث، چند مورد دیگه رو هم من بنا به تجربه اضافه خواهم کرد»

👨🏼‍🦳 کریس ریچاردسون توی کتاب "Microservices Patterns" بحث pattern-based approach رو ارائه می‌کنه وبارها تأکید داره مایکروسرویس «نسخه‌ی واحد برای همه» نیست و باید دید کِی و چرا سراغش بریم؛ حتی «دلایل نادرست برای پذیرش مایکروسرویس» رو هم مستند کرده.

👨🏼‍🦳 استفان تیلکوف توی مقاله «Don’t start with a monolith» می‌گه وقتی هدف نهایی شما معماریِ مایکروسرویس باشه (به‌ویژه برای سیستم‌های بزرگ)، «شروع با مونولیت» غالباً انتخاب درستی نیست و باید از اول به مرزبندی‌های سخت‌گیرانه و سیستم‌های مستقل فکر کرد. بعدتر تیلکوف الگوی Self-Contained Systems (SCS) رو هم به‌عنوان رویکرد هم‌خانواده و کم‌اصطکاک‌تر معرفی می‌کنه. ۴ سال بعدش، سم نیومن میاد روی روش‌ها و الگوهای تکاملی برای شکستن مونولیت تمرکز می‌کنه (نه نفی یا اثبات مطلق هر کدوم)، و راهکارهای عملی برای مهاجرت تدریجی ارائه می‌ده. کتاب معروف نیومن یعنی "Monolith to Microservices" عملاً پاسخ عملیِ «چگونه از مونولیت به مایکروسرویس برسیم؟» حساب می‌شه (اینو گفتم که بگم بین علما و بزرگان هم تفاوت نظر وجود داره 😁 خصوصا در مورد فالر و ریچاردسون؛ چون فالر استراتژی «اول مونولیت» برای شروع کارهای جدید رو طرح می‌کنه و می‌گه با این نکته که حتی اگه بعداً احتمالاً به مایکروسرویس برسید! این دیدگاه روبه‌روی موضع تیلکوف قرار می‌گیره و نشون می‌ده اختلاف‌نظر معنادار بین علما جدیه! )
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🥴2
جریان‌های کاریِ معیوب و چگونگی درست کردنشان

اگر صبح‌ها احساس می‌کنید کار از لحظه‌ی اول «گیر» می‌کند یا هر پیام کاری «فوری»‌تر از قبلی میشود و یا هر جلسه برای حل جلسه‌ی قبل است احتمالاً مسئله شما تنبلی یا چیزهایی از این جنس نیست؛ «جریان کار»تان خراب است. خبر خوب؟ درست‌کردنش پیچیده و گران نیست؛ فقط نیاز به نگاه کردنِ درست دارد.
کتاب‌ها و تجربه‌ها یک نکته‌ی طلایی می‌گویند: بروید و ببینید کار واقعاً چگونه انجام می‌شود. پشت داشبوردها همه‌چیز مرتب است، اما کفِ کار، گره‌های کوچک، کوه می‌شوند. یک استاد مدیریت تعریف می‌کرد که چرا عمل‌های پیوند دیر شروع می‌شدند؛ همه دنبال «دکتر مقصر» بودند، اما با کمی مشاهده معلوم شد گره اصلی «پارکینگ» است! یک اصلاح ساده، کل برنامه را روان کرد.

مشکل رایج بعدی، برچسب “فوری” است. وقتی هر چیزی «اولویت یک» می‌شود، هیچ‌چیز اولویت ندارد. راه‌حل: یک صفِ مشترک و شفاف بسازید؛ کارها را رتبه‌بندی کنید و قبل از شروع مورد بعدی، مورد فعلی را ببندید. یک بانک بین‌المللی با همین کارو یک جلسه‌ی هفتگی که همه‌ی ذی‌نفعان در آن روی یک فهرست مشترک تصمیم می‌گرفتند—میانگینِ زمانِ تأیید پروژه‌ها را از ۱۲۰ روز به ۲۰ روز رساند.

نکته‌ی غیر شهودی اما حیاتی: استفاده‌ی ۱۰۰٪ از آدم‌ها، خروجی را بیشتر نمی‌کند؛ گلوگاه می‌سازد. کمی فضای خالی برای فکر و اصلاح بگذارید. هر جا حس کردید تیم برای عبور از یک پیچ، «میان‌بُر» می‌زند، بدانید سیستم دارد سیگنال می‌دهد: فرایند را ترمیم کنید، نه آدم‌ها را فرسوده.

برای راه‌انداختنِ جریان، از همین چند حرکت ساده شروع کنید:
•تعریف «تمام‌شدن» را برای هر کار بنویسید (چه تحویلی، با چه معیار).
•کارهای هم‌زمان را محدود کنید؛ به‌جای ۱۰ کار نیمه‌تمام، ۳ کار کامل.
•تابلوی دیداری بزنید (فیزیکی یا دیجیتال): «در صف / در حال انجام / تمام».
•جلسه‌ی هفتگیِ یک‌ساعته‌ی بین‌وظیفه‌ای برگزار کنید؛ یک فهرست مشترک، تصمیمِ واحد.
•بازخوردِ کفِ کار بگیرید؛ اگر از آنچه می‌بینید خجالت‌زده نمی‌شوید، کافی دقیق نشده‌اید.
•اندازه بگیرید: زمانِ انتظار، زمانِ انجام، و نرخ بازگشت کار برای اصلاح. فقط همین سه تا.

فلسفه‌اش ساده است: کارخانه‌ی خوب، «قهرمان» ندارد؛ جریانِ خوب دارد. هر جا کار گیر کرد، به‌جای فشار بیشتر، اصطکاک را کم کنید. با شفاف‌سازی، محدودکردن کارِ در جریان، و دیدن واقعیتِ کفِ کار، شلوغیِ بی‌حاصل به ثباتِ سودمند بدل می‌شود و ناگهان می‌بینید بدون اضافه‌کاری، خروجی بیشتر شده است
#مدیریت #رهبری #جریان_کار #گلوگاه #بهبود_فرایند #اکونومیست #سپندارند⁩⁩