Learning With M
2.29K subscribers
108 photos
50 videos
3 files
129 links
سلام.
من مسعود دانش پور هستم.
همسر، پدر، پسر، برادر، انسان و مهندس نرم افزار.👻

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

آکادمی یادگیری با M :
https://academy.daneshpour.ir
Download Telegram
Forwarded from TechTube 𝕏 تک توب
مارگارت همیلتون یکی از پیشگامان مهندسی نرم افزار چند روز پیش در سن 90 سالگی درگذشت.

خانم همیلتون دانشمند علوم کامپیوتر در دانشگاه MIT بود که در دهه 1960 میلادی مسئولیت هدایت تیم توسعه نرم افزار پرواز ماموریت اپولوی ناسا رو دست گرفت و در نهایت منجر به اولین فرود انسان روی ماه در تاریخ شد.

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

🔎 mit

📍 @TechTube
سلام.
ما یک پوزیشن Software Engineer در دیجی کالا ادز داریم که می خوایم با یک Staff Engineer پرش کنیم.
کاری که قراره بکنید روی سیستم های پر تراکنش(حدود 50 میلیون درخواست در روز) کار کنید که برای سازمان بسیار مهم و با ارزشه.
تمرکز این فرد روی بازطراحی و بهبود این سرویس ها و توسعه اونهاست.

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



#استخدام
#جذب
Forwarded from .NET Internals
به نظرم این پروژه واقعاً ارزش بررسی داره: https://github.com/morluto/rea

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

به نظرم این دقیقاً یکی از حوزه‌هاییه که ترکیب AI و مهندسی نرم‌افزار می‌تونه تأثیر جدی بذاره؛ جایی که ایجنت صرفاً کد تولید نمی‌کنه، بلکه باید تحلیل کنه، فرضیه بسازه، شواهد رو بررسی کنه و بر اساس اون‌ها به راه‌حل برسه.

فکر می‌کنم ارزش اصلی چنین پروژه‌هایی در حرکت از تولید صرف کد به سمت درک و تحلیل سیستم‌های پیچیده‌ست. قطعاً بررسی معماری و قابلیت‌های REA می‌تونه دید جالبی نسبت به آینده‌ی AI-assisted reverse engineering بده.

قبلا میگفتیم همه محصولات یه کپی چینی دارن الان در حوزه نرم افزار هم داره ابن اتفاق میفته (نمونش مثلا PhotoCraft یکی اومده کلا فتوشاپ رو از اول نوشته و اپن سورس کرده!)
Forwarded from Product Drafts
یه رفتار خیلی سمی وجود داره که احتمالا همه‌مون یه جایی تجربه‌ش کردیم. اینکه یکی نقطه ضعفی از یه نفر پیدا می‌کنه و از اون به بعد مدام همون نقطه رو هدف می‌گیره. انگار که پیدا کردن یه نقطه ضعف، فرصتی برای ضربه زدنه.

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

اینکه بتونی نقطه ضعف آدم‌ها رو بشناسی، اما به جای استفاده ازشون، مراقبشون باشی. حتی مهم‌تر اینکه حواست باشه بقیه هم از اون نقطه ضعف برای آسیب زدن بهشون استفاده نکنن.

به نظرم یکی از انسانی‌ترین کارهایی که می‌تونیم برای آدم‌های اطرافمون انجام بدیم همینه. اینکه بدونیم کجا آسیب‌پذیرن و درست همون‌جا مراقبشون باشیم.

شاید مدیریت خوب فقط به این نباشه که چقدر به رشد آدم‌ها کمک می‌کنیم، گاهی به اینه که چقدر مراقب آسیب‌پذیری‌هاشون هستیم.
ما هیچ، ما نگاه.
#SoftwareArchitecture
#فان
ایده های مسعود بیگی، یکی از یکی نو آورانه ترن.
Forwarded from شبگفتار
امشب با احمد سجادیان عزیز از آلمان درباره شرایط کاری و انعطاف و ... بین کارمند و بیزنس ها گپ میزنیم

ساعت شروع برنامه : 22:30
مسیر ورود به برنامه : Shabgoftar.ir
همزمان با صحبت های مجری و میهمان شما هم می تونید از طریق بخش گفتگو سایت نظراتتون رو در لحظه با ما در میون بگذارید.
پیشاپیش از همراهی تون سپاس گزاریم

#گزارش_کار #شبگفتار
Forwarded from tech-afternoon (Amin Mesbahi)
🔗 معرفی LayerFS برای وقتی ایجنت‌ها زیاد می‌شن!

فرض کنین یه پروژه نرم‌افزاری بزرگ دارین و به‌جای اینکه یه ایجنت رو مأمور Refactoring کنین، تصمیم می‌گیرین ۲۰ تا ایجنت رو هم‌زمان به کار بگیرین؛ ۵ تا برای refactoring، پنج‌تا هم برای پیدا کردن و رفع Bug، پنج‌تا برای نوشتن تست و پنج‌تای دیگه هم برای امتحان کردن روش‌های مختلف بهینه‌سازی performance. خب؟

روی کاغذ خوبه؛ ولی یه مشکل اساسی داریم: هر Agent برای کارش به سورس‌کد پروژه، dependencyها و یه محیط اجرایی مستقل نیاز داره.

راه‌حل‌های دوران پیشاهوشواره (ماقبل AI) مثل git تا حد خوبی این نیاز رو برطرف می‌کنن، ولی وقتی تعداد Agentها به ده‌ها یا صدها برسه، مدیریت این محیط‌ها، نگهداری فایل‌های تکراری، آماده‌سازی dependencyها و هماهنگی تغییرات، خودش تبدیل به یه چالش جدی می‌شه.

مثلاً وقتی یه پروژه‌ با سورس‌کد ۱۰۰ گیگابایتی دارین؛ چرا باید برای هر Agent یک کپی جداگانه از همه‌چیز داشته باشین؟ از طرفی هم نمی‌شه همه از یه نسخه مشترک استفاده کنن و فقط تغییرات خودشون رو مستقل نگه دارن؟

دلیل پیدایش پروژه متن‌باز LayerFS همین مسئله بود! ایده اصلیش Ephemeral Workspaces, Durable Shared History است؛ یعنی محیط‌های کاری موقت، با تاریخچه تغییرات ماندگار و مشترک.

به زبون ساده، هر ایجنت یه workspace مستقل داره، بدون اینکه لازم باشه همه فایل‌ها و dependencyهای پروژه براش کپی بشن. همه از یه پایه مشترک استفاده می‌کنن و فقط تغییرات اختصاصی خودشون رو نگه می‌دارن.

قابلیت جذاب‌ترش اینکه تغییرات می‌تونن به‌صورت checkpoint ثبت بشن. فرض کنین یه ایجنت برای refactoring چهار مرحله جلو رفته، ولی توی مرحله چهارم به بن‌بست رسیده. می‌شه از مرحله دوم یه branch جدید ساخت و به چند ایجنت دیگه سپرد تا مسیرهای متفاوتی رو امتحان کنن.

حتی می‌شه ۵۰ تا ایجنت رو روی ۵۰ راه‌حل متفاوت برای یه مسئله به کار گرفت، بعد خروجی‌ها رو تست و مقایسه کرد و بهترین گزینه رو انتخاب کرد. البته انتخاب بهترین راه‌حل کار خود LayerFS نیست؛ این زیرساخت فقط اجرای چنین الگویی رو ساده‌تر می‌کنه.

از نظر فنی هم پروژه با ترکیبی از تکنیک‌های شناخته‌شده و حتی قدیمی مثل Copy-on-Write، Content-Addressed Storage و SQLite پیاده‌سازی شده و ادعاهای جالبی درباره کاهش مصرف استورج و زمان آماده‌سازی Workspaceها داره.

البته هنوز محدودیت‌هایی هم داره، مثل محدودیت اشتراک Store بین ماشین‌های مستقل، یا مدیریت Conflictهای منطقی و بعضی ملاحظات مربوط به Durability.

بنابراین فعلاً نباید بهش به‌عنوان «امروزه، عصر، عسر LayerFS است و هر کس بلد نباشه یا استفاده نکنه، ابله است» نگاه کنیم.

💡 اما به نظرم نکته مهم‌تر از خود LayerFS؛ مسئله‌ایه که داره حل می‌کنه.
ما داریم به سمتی می‌ریم که توسعه نرم‌افزار لزوماً به معنی همکاری یه برنامه‌نویس با یه ایجنت نیست. ممکنه به معنی اجرای ده‌ها یا صدها ایجنت باشه که هم‌زمان فرضیه‌های مختلف رو امتحان می‌کنن، شکست می‌خورن، به عقب برمی‌گردن و مسیرهای جدیدی رو پیش می‌گیرن.

برای چنین آینده‌ای، فقط مدل‌های هوشمندتر کافی نیستن. به زیرساخت‌هایی نیاز داریم که این شکل از توسعه رو از نظر هزینه، سرعت، مدیریت state و قابلیت ردیابی عملی کنن.

و LayerFS قرار نیست ایجنت‌ها رو باهوش‌تر کنه؛ می‌خواد کاری کنه که بتونیم تعداد خیلی بیشتری از اون‌ها رو به شکل مؤثر، کنار هم به کار بگیریم و هزینه منابع رو در سطح استورج و زمان، کنترل کنیم.

و شاید این بخشِ کمتر دیده‌شده‌ یا کمتر پرداخته‌شده‌ای از تحول AI-Native Software Engineering باشه: تحول توی زیرساخت توسعه، نه صرفاً ابزار تولید کد یا حتی محصول.

🔗 وب‌سایتش
🔗 سورس‌کدش
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from مسعود بیگی (مسعود بیگی)
بچه ها این کتاب Data-intensive (فعلا رایگانه و اشتراک نمیخواد) رو یه گوشی بدین، ببینین خوبه کتاب های فنی این شکلی رو خلاصه صوتی بسازیم ؟
مخصوصا شما حسن جان
https://shabgoftar.ir/programs/book-summaries/designing-data-intensive-applications/
Forwarded from .NET Fun
یادش بخیر…

یه زمانی غرق بحث‌های تکنیکال بودیم.
می‌نشستیم بحث می‌کردیم که چرا GC نمیاد LOH رو Compact کنه!
سر پارتیشن‌بندی‌های کافکا و انواع‌واقسام Partition Assignment حرف می‌زدیم.
سر روش‌های مختلف پیاده‌سازی Idempotency با هم بحث می‌کردیم، گاهی حتی دعوامون می‌شد!

الان اما همه‌چی شده AI.

گاهی فکر می‌کنم همون‌طور که ما آخرین نسلی بودیم که توی کوچه‌خیابون بازی می‌کردیم، شاید آخرین نسلی هم باشیم که از ساعت‌ها بحث و کلنجار رفتن سر جزئیات تکنیکال، از خودِ تکنولوژی و از یاد گرفتن چیزهای جدید لذت می‌بردیم.

انگار یه چیزی از لذت مهندسی نرم‌افزار، وسط این همه هیاهوی AI مرد...