.NET Internals
519 subscribers
44 photos
2 videos
1 file
40 links
سلام من سعیدم و اینجا در مورد موضوعات عمیق تر دات نت و کلا مهندسی نرم افزار صحبت میکنیم!
Download Telegram
در باب همکاری کردن و اشتراک دانش

حافظ یه بیت خیلی عمیقی داره:

اگر شراب خوری جرعه ای فشان بر خاک
از آن گناه که نفعی رسد به غیر چه باک

میشه خیلی بسطش داد اینجا میتونیم بگیم شراب همون دانش ماست اگر دانشی داریم و ممکنه بدرد همکار/دوست/غریبه بخوره چرا به اشتراک نذاریم

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

شما از شراب خودتون جرعه ای به خاک میریزید؟
9👍6😍3
Forwarded from iCodeNext
چند وقت میشه یه پروژه رو شروع کردم، که تقریبا الان در انتهای فاز اول هستش، پروژه باحالیه و خیلی کار داره، اما خوب تنهایی تا یه جایی میشه پیش برد.

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

استک هایی هم که الان توی پروژه هست رو مینویسم که هر کسی توی هر حوزه ای خواست میتونه کمک کنه. پروژه ماژول های متفاوتی داره بخاطر همین استک های متفاوتی هم توش پیاده شده.

- .Net 9
- Next
- python
- go
- node js
- Typescript

امیدوارم بتونیم کار مشتی جمع کنیم و پابلیش کنیم.

❤️❤️ ممنون میشم توی گروه هایی که فکر میکنید استک مناسب داره، پست کنید.

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

از دو روز پیش نوشتن یه نوگت پکیج رو شروع کردم به نام:
Detester

ایده اصلی اینه که یه مقداری رفتار مدل های AI رو بتونیم کنترل کنیم یا به قولی Deterministic کرد.

هنوز اول راهه و کار بسیاد داره!
خوشحال میشم ریپو رو چک کنید و اگر ایده ای دارید مشارکت کنید.

https://github.com/sa-es-ir/detester
🔥10👍65
Forwarded from tech-afternoon (Amin Mesbahi)
🐊 بدترین مهندس نرم‌افزار دنیا چه شکلیه؟ شاید هم خودمونیم؟؟

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


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

۱. نداشتن صداقت و اخلاق حرفه‌ای
یادمون نره: بدترین برنامه‌نویس، کسی نیست که اشتباه می‌کنه؛ کسیه که اشتباهش رو پنهان می‌کنه.

✏️ مصداق‌ها:
- وانمود می‌کنه چیزی رو بلده ولی بلد نیست
- دروغ می‌گه که پیشرفت پروژه خوبه، در‌حالی‌که نیست (green shifting)
- عامدانه code review تقلبی می‌ده؛ فقط یه ابزار آنالیز خودکار باز کرده
- باگ‌ها رو قایم می‌کنه

😡 چرا بده؟ چون اعتماد تیم رو نابود می‌کنه. بدون اعتماد، حتی بهترین فرآیندها هم به لجن کشیده می‌شن. این افراد به خودشون هم دروغ می‌گن. تقلب می‌کنن و کار کردن با کسی که عامدانه دروغ می‌گه و بهش عادت کرده، دیگ داغیست از دیگ‌های داغ جهنم!

۲. بی‌سؤالی، تعصب، توقف رشد
بزرگ‌ترین ریسک صنعت ما توقف یادگیریه؛ نه نابلدی!

🧠 کسی که سوال نداره، انگار دیگه دنبال بهتر شدن نیست.
🔒 کسی که تعصب داره (فقط فلان زبان، فقط فلان ابزار)، راه اصلاح رو به خودش بسته؛ شاید فکر کنه داره یاد می‌گیره؛ ولی داره مهارتش در یاد نگرفتن و توجیه نادانی‌اش رو تقویت می‌کنه.
🙈 کسی که اشتباه می‌کنه، ولی فکر می‌کنه تقصیر دنیاست، یعنی از دورِ یادگیری خارج شده.

فرق کسی که رو به جلو می‌ره و کسی که رو به زواله توی همین چیزاست.

۳. بی‌مالکیتی و انفعال

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

📡 نشونه‌ها:
- فقط همون کاری رو می‌کنه که دقیقاً بهش گفتن
- هیچ پیش‌فرضی رو به چالش نمی‌کشه (تفکر نقادانه نداره اساسا)
- تغییرات رو با مقاومت پاسخ می‌ده (فناوری، فرآیند، ابزار)
- کارش رو فقط "تا اینجا وظیفه‌م بود" می‌بینه

چرا بده؟ چون تیم رو از یه گروه خلاق به یه کارخانه "دستور بگیر - خروجی بده" تبدیل می‌کنه. هیچ self-organization واقعی‌ای شکل نمی‌گیره. (توی پست نرم‌افزار و این روزهای ایران مفصل نوشتم)

💡 پشت همهٔ اینا یه چیزه...
ریشه همهٔ این‌ها، نداشتن principle (به فارسی پرنسیپ گفته می‌شه). یعنی کسی که هیچ چارچوب فکری و اخلاقی برای خودش نساخته. درسته که می‌شه چارچوب بد هم داشت ولی این کلمه در ذاتش بار مثبت اخلاقی داره. کسی که principle نداره نه از خودش نمی‌پرسه:
«این رفتار درسته؟»
«چرا دارم این کار رو اینجوری انجام می‌دم؟»
«اصلاً من دارم رشد می‌کنم یا درجا می‌زنم؟»
«آیا آدم‌ها از تعامل با من خوشحالن؟ آیا مفیدم؟ چجوری بهتر بشم؟»

یه آدم فاقد principle، بر اساس منفعت لحظه‌ای رفتار می‌کنه. یه بار پنهان می‌کنه، یه بار تقلب می‌کنه، یه بار مقاومت در برابر حرف صحیح، یه بار انفعاله... چون "راهنمای درونی" نداره.

🤝 و آخرش اینه:
- می‌شه چیزی رو بلد نبود، ولی یاد گرفت، «سوال خوب داشت»
- می‌شه هم‌تیمی خوبی نبود، ولی مهارت کار تیمی رو تقویت کرد
- می‌شه اشتباه کرد، ولی پنهانش نکرد، دنبال راه‌حل گشت، مقاومت و فرافکنی نکرد و دیگه تکرار نکرد
- می‌شه بهترین نبود، بهترین جا نبود؛ ولی با ساکن و منفعل نبودن، جای بهتری قرار گرفت، محیط بهتری ساخت...

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

💬 حالا نوبت شماست:
کامنت کنید؛ شاید کمک کنه فردا کمی بهتر از امروز باشیم 🌱
Please open Telegram to view this post
VIEW IN TELEGRAM
11
نطرتون در مورد کد بالا چیه؟!

یکی از دوستان واسم فرستاد، به نظرم بسیار کار بدیه توی کدبیس بزرگ.

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

مهم ترین ویژگی کد خوب سادگی اون هست و مهم ترین فاکتور برای داشتن سادگی، Visibility یا قابل رویت بودن کد هست.

کد رو پنهان نکنیم پشت این پکیج ها چون باعث میشه خوندن کد سخت و پیچیده بشه و کنترل از دستمون در بره!

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

یه سنیور باید تفاوت اینها رو بدونه.
👍23