Learning With M
2.24K subscribers
101 photos
49 videos
3 files
120 links
سلام.
من مسعود دانش پور هستم.
همسر، پدر، پسر، برادر، انسان و مهندس نرم افزار.👻

اینجا جایی هست که من تلاش می کنم موضوعاتی که برای یک مهندس نرم افزار مهم و لازمه رو بازگو کنم.

آکادمی یادگیری با M :
https://academy.daneshpour.ir
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
من اهل این طرز فکرم.
واقعا زندگی رو راحت می کنه.

@learning_with_m
یک نادان، فقط یک کار رو بارها و بارها به یک شکل انجام میده و هر بار انتظار خروجی متفاوت داره.


بیایم امروز که اول هفته هست، کارهایی که همیشه انجام می‌دادیم و از نتایجش راضی نبودیم رو به یک شکل دیگه انجام بدیم.

#تفکر
Forwarded from tech-afternoon (Amin Mesbahi)
💡مرور الگوی outbox/inbox

توی نظرسنجی آخر، گزینه Inbox/Outbox Pattern رأی دوم رو آورد، بالاخره امروز مطلب رو جمع‌جور کردم. با اینکه «مرور» است ولی از نظر حجم کمی بیشتر از مطالب رایج شد (چون اصل داستان سیستم‌های توزیع شده، خیلی مبحث گسترده‌ایه و مرور یک مفهوم رایج و دم‌دستی‌اش هم نیاز به توضیح بیشتری داشت.

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

- مرور الگوی outbox/inbox
- مسئله اصلی: Dual Write Problem
- الگوی Outbox
- الگوی Inbox
- بررسی جزئی‌تر مفهوم Idempotency
- طراحی بهتر پیام‌ها
- تفاوت Domain Event و Integration Event
- روش‌های پیاده‌سازی Outbox Publisher
- ابزارها و فریم‌ورک‌های رایج برای پیاده‌سازی inbox/outbox
- مفاهیم مکمل: Poison Message، Retry و Dead Letter
- لزوم Observability و Monitoring
- کاربرد Ordering پیام‌ها
- پاک‌سازی داده‌ها
- تفاوت Outbox با Event Sourcing
- نسبت Outbox و Inbox با Saga
- چه زمانی واقعا به Inbox و Outbox نیاز داریم؟


🔗 لینک مطلب
Please open Telegram to view this post
VIEW IN TELEGRAM
#فان یا شاید #جدی ؟
حالا باز برو همه چیز رو از gpt بپرس و عمیق نشو !
در زندگی :

یک جامعه وقتی رشد میکنه که پیرمردی درختانی بکاره که می دونه زیر سایشون قرار نیست بشینه.


در کد:
وقتی وارد کدی شدی، وقتی کارت تموم شد، تمیز تر از وقتی که دیدیش ازش بیا بیرون. حتی اگر فقط برای خوندنش رفته بودی.

#تفکر
یک دامین قیمت کردم.
۱۲ میلیارد تومان.
اعتماد به نفس اینا رو من داشتم الان جای ترامپ داشتم به دنیا حکومت می کردم !

دامین .com که ۵ حرفی بود رو ۳۰۰ میلیون یکی خرید، دات آی آر زپرتی رو ۱۲ میلیارد قیمت میدن 😄
Learning With M
یک دامین قیمت کردم. ۱۲ میلیارد تومان. اعتماد به نفس اینا رو من داشتم الان جای ترامپ داشتم به دنیا حکومت می کردم ! دامین .com که ۵ حرفی بود رو ۳۰۰ میلیون یکی خرید، دات آی آر زپرتی رو ۱۲ میلیارد قیمت میدن 😄
فارغ از بامزه بازی این آدم ها، دنیای آینده از نگاه من دنیای وبسایت ها نیست.

دنیای اجنت هاست، توی این دنیا دیگه آدرس سایت مهم نیست، آدرس ایجنت مهمه. خدا رو چی دیدی، شاید یه چیزی مثل آدرس دامین برای ایجنت ها بیاد.
Forwarded from Happy Developer (Ashkan Rahmani)
چند روزه دارم از 9Router استفاده می‌کنم و تا الان واقعا راضی بودم. ایده‌ش هم خیلی باحاله.
اول از اشتراک‌هایی که خودت داری (مثل Claude Code، Codex، Gemini و ...) استفاده می‌کنه. اگه سهمیه‌شون تموم بشه، خودش اتومات میره سراغ مدل‌های ارزون‌تر و در نهایت هم روی مدل‌های رایگان سوییچ می‌کنه.

میتونی کمبوهای مختلف درست کنی که به شیوه های مختلف روی اکنتا سوییچ کنه.

در نهایت یک توکن درست میکنی و میتونی ازش توی هر ابزاری که میخوای استفاده کنی. کدکس،کلاد کد، هرمس، ...


عملاً خیلی سخت پیش میاد که به خاطر لیمیت، کارت متوقف بشه. علاوه بر اینا، به بیش از ۶۰ تا AI Provider وصل میشه، مصرف توکن رو هم به صورت دیفالت با RTK و Caveman کمتر می‌کنه و آمار مصرف رو هم لحظه‌ای نشون میده.

https://9router.com/
#عجیب_دنیایی_شد
فورد بعد از اینکه نیروهاش رو با هوش مصنوعی جایگزین کرده بود، ۳۵۰ تا مهندس رو دوباره استخدام کرد.
معاون مهندسی فورد گفته که شرکت اشتباه فکر می‌ کرد هوش مصنوعی به‌تنهایی می‌ تونه جای مهندس‌ های باتجربه رو بگیره و همچنان ماشین‌ های با کیفیت تولید کنه.
اما نتیجه برعکس شد؛ بعد از اینکه از سال ۲۰۲۰ بیش از ۵۰۰۰ نفر رو تعدیل کرد، امسال فورد بیشتر از هر خودروساز دیگه‌ ای در آمریکا مجبور شده خودرو هاش رو فراخوان کنه.
جالبه که مدیرعامل فورد، Jim Farley، قبلاً گفته بود:
«هوش مصنوعی قراره واقعاً جای نیمی از کارمند های دفتری (white-collar) رو بگیره.»

نکشیمون پیشگوی بزرگ
Forwarded from tech-afternoon (Amin Mesbahi)
مفهوم Loop Engineering:
لایه‌ی بعد از Prompt، Context و Harness Engineering

چون هنوز این اصطلاح هنوز خیلی جا نیفتاده، اول یه تعریف ساده از Loop Engineering:
تا قبل از این، هر بار که با یه ایجنت یا مدل زبانی کار می‌کردیم، خودمون پشت فرمون بودیم:
پرامپت می‌نوشتیم،
نتیجه رو نگاه می‌کردیم،
اگه غلط بود دوباره پرامپت رو اصلاح می‌کردیم،
دوباره اجرا می‌کردیم.

این چرخه دستی بود، و آدمیزاد حلقه‌ی کنترل (control loop) رو با دست می‌چرخوند. ولی Loop Engineering دقیقاً یعنی همین حلقه رو از دست آدم دربیاری و بدی دست یه سیستم کوچیک. یعنی به‌جای این‌که خودت هر بار prompt بزنی، ببینی جواب چی شد، بعد دوباره prompt بزنی، یه لایه‌ی نرم‌افزاری می‌سازی که این کار رو برات تکرار می‌کنه: goal رو تعریف می‌کنه، کار رو به ایجنت می‌ده، نتیجه رو verify می‌کنه، اگه قبول بود state رو ذخیره می‌کنه و می‌ره سراغ کار بعدی، اگه رد بود دلیل رد شدن رو ثبت می‌کنه و دوباره تلاش می‌کنه. این یعنی همون loop، و مهندسی‌اش میشه Loop Engineering.
نکته‌ی مهم اینه که این لایه، لایه‌های قبلی رو حذف نمی‌کنه، روشون سوار می‌شه. یعنی کماکان Prompt و Context وجود دارن، فقط دیگه آدم نیست که هر دور دستی بنویسدشون؛ خود loop این کار رو انجام می‌ده.

🕠 مرور تاریخچه:

اگه مسیر رو دنبال کنیم، چهار مرحله داشتیم:

توی Prompt Engineering یاد گرفتیم چطور با مدل حرف بزنیم. (۲۰۲۲-۲۰۲۳)

توی Context Engineering یاد گرفتیم چه چیزی رو به مدل نشون بدیم. (۲۰۲۴-۲۰۲۵)

توی Harness Engineering یاد گرفتیم چطور ایجنت رو امن* اجرا کنیم. (اوایل ۲۰۲۶)

توی Loop Engineering یاد می‌گیریم چجوری سیستمی بسازیم که خودش چرخه‌ی کار رو جلو ببره، اما فقط تا جایی که بتونه ثابت کنه واقعا به مقصد تعیین شده رسیده. (اواسط ۲۰۲۶)


اگر علاقه داشتید وارد جزئیاتش بشم، بنویسید 😊

توضیح: منظورم از کلمه امن، امنیت به معنی پیشگیری از حملات سایبری نیست، دامنه وسیعی از انتظارات تحت کنترل است. شاید طی مطلب کامل، بهتر از با یک کلمه بهش توصیف کرد.
Forwarded from tech-afternoon (Amin Mesbahi)
نقش Forward Deployed Engineer یا FDE

توصیف ساده FDE کسیه که برای تولید محصول، به جای منتظرِ requirement موندن، خودش می‌ره وسط میدون، requirement رو کشف می‌کنه، ابهام‌ها رو کم می‌کنه، prototype یا راه‌حل production-ready می‌سازه، سیستم رو با محیط واقعی customer fit می‌کنه و فیدبک‌ها رو برمی‌گردونه به محصول.

کِی FDE کاربرد داره؟
ریشه پیدایش چنین نقشی بیشتر به شرکت‌هایی مثل Palantir برمی‌گرده.
وقتی محصول خیلی تکنیکال باشه، در عین حال، مشتری که می‌تونه کاربر درون‌سازمانی هم باشه؛ خیلی technical نیست. مثلا شرکت Palantir، محصولاتی مثل پلتفرم‌های AI/Agentic، یا ابزارهای پیچیده انترپرایز که توی صنایع سنتی مثل manufacturing، aviation، CPG و HR استفاده می‌شن داره. یعنی جایی که مشتری، مسئله بزرگ یا خیلی بزرگ داره، ولی توان فنی کافی برای تبدیل مسئله به راه‌حل نرم‌افزاری نداره.

دقت کنیم که FDE به هیچ وجه Sales Engineer یا Software Engineer معمولی یا Consultant / Professional Services نیست!
به‌طور خلاصه، FDE یک مهندس مشتری‌محوره که بین consulting، product management و software engineering می‌ایسته، ولی خروجی نهاییش باید نرم‌افزار و outcome واقعی برای مشتری باشه، نه فقط دمو، تحلیل یا توصیه.

فرق بین ownership of project و ownership of problem اینجا خیلی مهمه. آدمی که project ownership دارد ممکنه آدم سخت‌کوشی باشه، ساعات زیادی کار کنه و پروژه رو هم تموم کنه. ولی FDE باید problem ownership داشته باشه. یعنی موفقیتش با این سنجیده می‌شه که آیا مشکل مشتری واقعاً حل شده یا نه، نه اینکه PR merge شده یا ticket بسته شده.

چنین افرادی برای سازمان‌ها خیلی ارزشمندن. چه برای مصاحبه کردن چه در ارزیابی خودتون می‌تونید از ۳ بُعد بررسی کنید که به صورت کلیدواژه و خلاصه می‌گم:

بُعد Communication -> شنیدن فعال، شفاف حرف زدن، آماده بودن و executive presence

بُعد Product sense -> توضیح تصمیم‌ها، انتخاب scope درست و trade-off prioritization

بُعد Engineering -> درک عمیق از completeness، test cases، edge cases misuse cases، end-to-end delivery

نکته مهم هم اینه که FDE برای همه‌جا مناسب نیست. برای محیط‌های پویا و خلاق و پیشرفته؛ ارزش زیادی داره، چون فرد می‌تونه کنار تیم بیزینس یا عملیات بنشینه و سریع adjustment رو انجام بده. اما توی سیستم‌های سنتی، stable، heavily governed و با release process سخت‌گیرانه، این مدل اگه درست کنترل نشه می‌تونه ریسک تولید کنه.

این هم فراموش نکنیم که عنوان‌های جدید، همیشه با خودشون جوگیری رو هم میارن؛ خصوصا این روزها و با وجود AI!
توی تیم هاتون همیشه حواستون باشه:

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

راستش منو می ترسونه !
This media is not supported in your browser
VIEW IN TELEGRAM
دستور مصرف: هر صبح، حداقل یک بار بلافاصله بعد از بیدار شدن از خواب

پ.ن: الان تو کدوم ظرف برنجیم؟
یا شاید ظرف ها؟
Media is too big
VIEW IN TELEGRAM
این ویدیو رو ببینید و در مورد سوال های زیر در ساختار تیم سازی، رهبری و مدیریت پاسخ بدید:
۱. نفر اول چه نقشی داره؟
۲. نفرات دوم و سوم چه نقشی دارند؟
۳. بیشترین تاثیر رو چه کسی داره؟
۴. رهبر کدوم فرد یا افرادن؟
۵. این حر‌کت موفقیت آمیز بوده و رهبر و یا رهبرانش موفق شدن؟

من پاسخ خودم رو آخر شب ارسال میکنم توی گروه.

#یادگیری
خب بیایم یه چیز جدید یادبگیریم، مدل رهبری Co-Active Leadership Model که به نظرم نگاه جالبی به رهبری داره.

حرف اصلیش اینه که رهبری فقط این نیست که یکی جلو بایسته و بقیه دنبالش راه بیفتن. رهبری می تونه از چند جای مختلف اتفاق بیفته.

این مدل میگه ما ۵ حالت رهبری داریم:

۱. رهبری از درون

یعنی اول از خودت شروع کنی. بدونی چی می خوای، چرا داری کاری رو انجام میدی، ارزش هات چیه و چقدر نسبت به رفتارت اگاه هستی.

۲. رهبری از جلو

اینجا همون حالتیه که یکی جلو می ایسته، مسیر میده، تصمیم می گیره، چشم انداز می سازه و بقیه رو دعوت می کنه که همراهش بشن.

۳. رهبری از پشت صحنه

اینجا رهبر لزوما وسط صحنه نیست. بیشتر کمک می کنه بقیه دیده بشن، رشد کنن، قدرت بگیرن و خودشون جلو بیان.

۴. رهبری از کنار

یعنی رهبری مشارکتی. نه از بالا، نه از پایین. کنار بقیه. با هم تصمیم گرفتن، با هم ساختن، با هم مسوولیت گرفتن.

۵. رهبری در میدان

این یکی خیلی جذابه. یعنی بتونی فضای تیم، انرژی جلسه، تنش های پنهان، سکوت ها، مقاومت ها و فرصت های لحظه ای رو بخونی و درست واکنش بدی.

چیزی که من از این مدل دوست دارم اینه که نمیگه فقط یک مدل رهبر خوب وجود داره. میگه رهبر خوب کسیه که بفهمه الان کدوم حالت رهبری لازمه.

یه جا باید جلو بایستی.
یه جا باید کنار تیم باشی.
یه جا باید بری پشت صحنه و بقیه رو بالا بیاری.
یه جا باید فقط فضا رو بخونی.
یه جا هم باید اول خودت رو جمع کنی.

رهبری یعنی همین جابه جا شدن اگاهانه بین این نقش ها.

شما کدوم مدل رهبر رو تجربه کردید ؟ کدوم رهبر هایی که باهاشون کار کردید، کدوم یکی از این مدل ها رو داشتند ؟

اشتراک گذاری این مطلب ممکنه به کسی کمک کنه. دریغ نکنید از انتشار یادگیری. کامیونیتیمون بهش نیاز داره.


#یادگیری

@learning_with_m
Learning With M
این ویدیو رو ببینید و در مورد سوال های زیر در ساختار تیم سازی، رهبری و مدیریت پاسخ بدید: ۱. نفر اول چه نقشی داره؟ ۲. نفرات دوم و سوم چه نقشی دارند؟ ۳. بیشترین تاثیر رو چه کسی داره؟ ۴. رهبر کدوم فرد یا افرادن؟ ۵. این حر‌کت موفقیت آمیز بوده و رهبر و یا رهبرانش…
خب حالا نگاه من به این ویدیو.
اگر مساله رو با مدل Co-Active Leadership نگاه کنیم، خیلی چیزهای خوبی درباره رهبری میشه ازش فهمید.

نفر اولی که شروع می کنه به رقصیدن، داره رهبری از جلو انجام میده.
یعنی بدون اینکه منتظر تایید جمع بمونه، شروع می کنه. هزینه اول بودن رو میده. دیده میشه، ممکنه قضاوت بشه، ممکنه مسخره بشه، ولی حرکت رو شروع می کنه.

اینجا یک بخش دیگه هم داره: رهبری از درون.
چون کسی که اول شروع می کنه، باید یک حدی از خودباوری و راحتی با خودش داشته باشه. باید بتونه بدون گرفتن تایید از بقیه، یک کاری رو شروع کنه.

ولی نکته مهم اینه:
نفر اول تا وقتی تنهاست، هنوز رهبر یک حرکت نیست. فقط یک نفره که داره یک کاری می کنه.

اتفاق اصلی وقتی میفته که نفر دوم اضافه میشه.

نفر دوم به نظرم خیلی نقش مهمی داره. شاید حتی از نفر اول مهم تر. چون نفر دوم اون حرکت عجیب رو تبدیل می کنه به یک حرکت قابل پیوستن.

تا قبل از نفر دوم، بقیه ممکنه بگن این یارو چیکار داره می کنه.
ولی وقتی نفر دوم میاد، پیام عوض میشه:
پس میشه به این حرکت اضافه شد.

نفر دوم داره رهبری از کنار انجام میده.
نمیاد جای نفر اول رو بگیره. نمیاد جهت رو عوض کنه. میاد کنار نفر اول می ایسته و با همین کار، حرکت رو معتبر می کنه.

نفر سوم هم کارش خیلی مهمه.
نفر سوم باعث میشه ماجرا از حالت «دو نفر» خارج بشه و شبیه یک گروه بشه. از اینجا به بعد پیوستن برای بقیه خیلی راحت تر میشه.

به زبان ساده:

نفر اول جرقه رو میزنه.
نفر دوم به جرقه اعتبار میده.
نفر سوم شروع تبدیل شدن جرقه به جریان رو ممکن می کنه.

این دقیقا توی سازمان هم هست.

خیلی وقت ها یک نفر ایده جدید میده، یک تغییر رو شروع می کنه، یک مسیر تازه پیشنهاد میده. ولی تا وقتی تنهاست، بقیه یا نگاهش می کنن، یا صبر می کنن ببینن چی میشه.

اولین کسی که بهش اضافه میشه خیلی مهمه. چون ریسک اجتماعی اون تغییر رو کم می کنه.

در سازمان، نفر دوم همون کسیه که میگه:
منم هستم.
این ایده ارزش امتحان کردن داره.
این تغییر فقط حرف یک نفر نیست.

بعد نفر سوم میاد و کمک می کنه اون تغییر از حالت استثنا خارج بشه.

حالا فیلم بردار هم نقش جالبی داره.
فیلم بردار وارد رقص نمیشه، ولی داره روایت رو می سازه. داره قاب میده. داره کمک می کنه ما بفهمیم چه اتفاقی داره میفته.

این میشه رهبری در میدان و تا حدی رهبری از پشت صحنه.

چون فیلم بردار فضا رو می خونه، لحظه رو تشخیص میده، چیزی که در حال شکل گرفتنه رو ثبت می کنه و با روایتش اون حرکت رو بزرگ تر می کنه.

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


برداشت مدیریتی من از این ویدیو اینه:

رهبر فقط نفر اول نیست.
گاهی رهبر واقعی نفر دومه، چون باعث میشه بقیه جرات کنن اضافه بشن.
گاهی نفر سومه، چون حرکت رو از اتفاق تصادفی تبدیل می کنه به الگو.
گاهی هم فیلم برداره، چون بدون اینکه وسط صحنه باشه، داره به حرکت معنا و قاب میده.

توی تیم ها هم همینطوره.

یکی تغییر رو شروع می کنه.
یکی باهاش همراه میشه و بهش اعتبار میده.
یکی کمک می کنه اون تغییر تبدیل به رفتار تیمی بشه.
یکی هم داستانش رو می سازه و کاری می کنه بقیه بفهمن چه اتفاقی افتاده.

رهبری همیشه به معنی جلو ایستادن نیست.
گاهی رهبری یعنی اولین کسی باشی که به یک حرکت درست اضافه میشه.

اشتراک گذاری این مطلب ممکنه به کسی کمک کنه. دریغ نکنید از انتشار یادگیری. کامیونیتیمون بهش نیاز داره.


#تفکر
@learning_with_m
1
بهترین زمان کاشت درخت، ۲۰ سال پیش بوده.
دومین تایم مناسبش الانه.
- ضرب المثل ژاپنی


#تفکر
@learning_with_m
This media is not supported in your browser
VIEW IN TELEGRAM
یه تغییر کوچک میتونه با استمرار به پدیده تبدیل بشه.

امروزت مثل دیروزت نباشه.
بردار اون کتاب رو، یک صفحه بخون، ۳ دقیقه نرمش کن، ۵ دقیقه سکوت کن.

#استمرار
@learning_with_m
Forwarded from Happy Developer (Ashkan Rahmani)
در یک دنیای آزاد این شکلی رقابت.

از اونور کلاد دسترسی به مدل پرچمدار Fable رو تمدید کرد.

از اینور Codex گفت نه تنها فعلا لیمیت ۵ ساعته رو برمیدارم، بلکه یک ریست لیمیت هم زد رفتتت.

وقتی تعیین کننده میشه کاربر نهایی و بازار آزاد تصمیم میگیره.

نتیجه نهایی رقابت هم به نفع ما هست.

بریم یکم توکن بسوزونیم که عقبیم 😎🔥💻