شاگردی تأثیرگذار است، زیرا در انسان اشتیاقی مادامالعمر برای تسلط بر هنر میکارد. این اشتیاق به یادگیری پیوسته، شاگرد را در مسیر تبدیلشدن به یک توسعهدهندهی بزرگ قرار میدهد. — پیت مکبریـن
مسیر رشد در برنامهنویسی با همین جمله شروع میشود: اشتیاق برای تسلط، نه صرفاً یادگیری. برنامهنویس معمولی دنبال راهحل و ابزار است، اما شاگرد واقعی دنبال بهتر شدن خودش. فرقشان همین است. شاگردی یعنی هر روز بخواهی نسخهی امروزت از دیروز بهتر باشد.
برنامهنویسی شغل نیست؛ یک راهِ رشد است. اگر عاشق یادگیری باشی، تا آخر عمر میشود ادامهاش داد. ولی اگر رشدت را با عنوان و حقوق اندازه بگیری، به اولین پست مدیریتی یا اولین منطقهی امن فکری که برسی، متوقف میشی.
رشد واقعی با فروتنی آغاز میشود. باید بپذیری که خیلی چیزها را نمیدانی. باید جرأت داشته باشی بپرسی، حتی جلوی آدمهایی که از تو باتجربهترند. این همان الگوی آشکار کردن نادانی خود است. در لحظهای که بگویی نمیدانم و از دیگران یاد بگیری، واقعاً شروع کردهای.
دیو هوور این را در عمل فهمید: وقتی در یادگیری پرل شکست خورد، وقتی جاوا برایش سخت بود، و فقط وقتی پیشرفت کرد که مربی پیدا کرد و با پروژهای واقعی یاد گرفت. اولین بار که خودش را شکستپذیر دید و کمک خواست، در حقیقت وارد مسیر شاگردی شد. بعدتر هم که روبی یاد گرفت، دوباره از صفر شروع کرد، کمربند سفید بست و ذهنش را از عادتهای قدیمی پاک کرد. این فروتنی باعث شد کدنویسی برایش تبدیل به رشد شخصی شود.
رشد در محیطهای سخت اتفاق میافتد. در تیمهای بینظم، با مدیرهای بیفکر، در پروژههای طاقتفرسا. چون شاگرد واقعی یاد گرفته حتی از بینظمی هم درس بگیرد. منتظر شرایط ایدهآل نیست، بلکه شرایط را برای یادگیری میسازد.
نویسندگان به الگوی قدیمی اصناف اشاره میکنند: شاگرد، دستیار و استاد. در دنیای امروز هم همین سه مرحله وجود دارد، اما نه با همان ساختار خشک و بسته. شاگرد روی رشد درونی کار میکند؛ یاد میگیرد چطور یاد بگیرد. دستیار نگاهش را گسترش میدهد، به تیم، به ارتباطات، به آموزش دیگران. و استاد کسی است که فراتر از خودش میرود — دانشی میسازد، ابزاری خلق میکند، یا نسل بعدی را رشد میدهد.
اما گذر از یک مرحله به بعد ناگهانی نیست. هیچ روز خاصی وجود ندارد که کسی بیاید و بگوید از امروز تو دستیار شدی. رشد در سکوت اتفاق میافتد؛ تدریجی و آرام، تا وقتی روزی به عقب نگاه کنی و ببینی دیگر آن آدم قبلی نیستی.
فکر میکنم شاگرد بودن یعنی این نگرش که همیشه راهی بهتر، هوشمندانهتر و سریعتر برای انجام کاری که کردی وجود دارد. — مارتن گوستافسون
همین نگرش قلب مسیر است. شاگردی یعنی ماندن در وضعیت رشد، یعنی همیشه در جستوجوی بهتر شدن بودن، حتی اگر هیچکس تو را راهنمایی نکند.
در دنیای واقعی، اغلب ما استاد واقعی نداریم. باید در دل شلوغیها و فشارها خودمان مسیر یادگیری را بسازیم. باید دنبال آدمهایی باشیم که بتوانیم ازشان بیاموزیم، حتی اگر رسمی شاگردشان نباشیم.
در نهایت، شاگردی فقط دربارهی syntax و ابزار نیست؛ دربارهی یاد گرفتن حرفهای بودن است، دربارهی شبیه شدن به کسانی که کدنویسی را مثل یک هنر زندگی میکنند.
در این مسیر هیچ دستورالعمل ثابتی نیست. فقط باید با ذهن باز و شجاعت شکست خوردن جلو بروی. چون تلاش است که تو را باهوش یا بااستعداد میکند، و هر بار که میافتی و دوباره بلند میشوی، داری به همان مهارتورزی نزدیکتر میشی که میگوید:
دانش برای خودت نیست؛ باید آن را با دیگران تقسیم کنی تا زنده بماند.
وقتی به آن نقطه برسی، یعنی دیگر فقط شاگرد نیستی، تو خودت بخشی از مسیر شدهای.
فصل اول - الگوهای کارآموزی
❤4🔥2👏2
فردا روز بزرگ داتنتیهاست!
مایکروسافت قراره NET 10. رو منتشر کنه 🎉
نسخهای که کلی قابلیت جدید، بهبود عملکرد و آیندهی داتنت رو با خودش میاره 💪
آماده باشید برای شروع یه فصل تازه در دنیای NET. 🔥
مایکروسافت قراره NET 10. رو منتشر کنه 🎉
نسخهای که کلی قابلیت جدید، بهبود عملکرد و آیندهی داتنت رو با خودش میاره 💪
آماده باشید برای شروع یه فصل تازه در دنیای NET. 🔥
🔥10🥰1
🚀 برنامهنویسهای Visual Studio! وقتشه یک لول برید بالاتر با AI
اگه هنوز داری کل کدت رو خودت مینویسی، خطاها رو خودت پیدا میکنی و تازه برای فهمیدن کدهای پروژههای جدید وقت میذاری… باید بگم یک دنیا عقب موندی! 😅
امروز میخوام چیزی رو بهت معرفی کنم که برنامهنویسی با ویژوال استودیو رو به شکل دیوونهکنندهای سریعتر، تمیزتر و لذتبخشتر میکنه:
GitHub Copilot + Visual Studio 🤖🔥
با کوپایلت میتونی:
✅ کد رو به جای خودت بنویسه
✅ خطاها رو پیدا کنه و رفع کنه
✅ پیشبینی کد و تکمیل هوشمند داشته باشه
✅ کد پروژه جدید رو توضیح بده تا منطق و بیزنسش رو سریع بفهمی
🛠 چطور فعالش کنیم؟ (خیلی ساده!)
1️⃣ آخرین نسخه Visual Studio رو نصب یا آپدیت کن
→ موقع نصب، تو بخش Individual Components تیک GitHub Copilot رو بزن ✅
2️⃣ بعد از نصب، بالای ویژوال استودیو آیکن Copilot ظاهر میشه
3️⃣ وارد اکانت گیتهابت شو
→ بخش Settings > Copilot
→ دسترسیها رو ALL ALLOW کن
4️⃣ برگرد به ویژوال استودیو و Sign in with GitHub Copilot
→ Continue → Done! 😎
5️⃣ از منوی View → GitHub Copilot Chat
→ حالا میتونی مثل ChatGPT باهاش حرف بزنی، کد بخوای، خطا بپرسی و حتی ریفکتورهای حرفهای بگیری!
و نکتهی خفنتر:
✨ وقتی حالت Agent فعاله، خودش اتومات فایل میسازه، کد تولید میکنه، اصلاح میکنه و برنامه رو جلو میبره!
✨ روی کد راستکلیک کن → Ask Copilot → مستقیم همونجا ادیت، تولید کد یا رفع خطا 🔥
👇 یک جمله مهم
اگه برنامهنویس Visual Studio هستی و Copilot استفاده نمیکنی، داری ۳ تا ۵ برابر بیشتر وقت هدر میدی.
🔗 LinkedIn
اگه هنوز داری کل کدت رو خودت مینویسی، خطاها رو خودت پیدا میکنی و تازه برای فهمیدن کدهای پروژههای جدید وقت میذاری… باید بگم یک دنیا عقب موندی! 😅
امروز میخوام چیزی رو بهت معرفی کنم که برنامهنویسی با ویژوال استودیو رو به شکل دیوونهکنندهای سریعتر، تمیزتر و لذتبخشتر میکنه:
GitHub Copilot + Visual Studio 🤖🔥
با کوپایلت میتونی:
✅ کد رو به جای خودت بنویسه
✅ خطاها رو پیدا کنه و رفع کنه
✅ پیشبینی کد و تکمیل هوشمند داشته باشه
✅ کد پروژه جدید رو توضیح بده تا منطق و بیزنسش رو سریع بفهمی
🛠 چطور فعالش کنیم؟ (خیلی ساده!)
1️⃣ آخرین نسخه Visual Studio رو نصب یا آپدیت کن
→ موقع نصب، تو بخش Individual Components تیک GitHub Copilot رو بزن ✅
2️⃣ بعد از نصب، بالای ویژوال استودیو آیکن Copilot ظاهر میشه
3️⃣ وارد اکانت گیتهابت شو
→ بخش Settings > Copilot
→ دسترسیها رو ALL ALLOW کن
4️⃣ برگرد به ویژوال استودیو و Sign in with GitHub Copilot
→ Continue → Done! 😎
5️⃣ از منوی View → GitHub Copilot Chat
→ حالا میتونی مثل ChatGPT باهاش حرف بزنی، کد بخوای، خطا بپرسی و حتی ریفکتورهای حرفهای بگیری!
و نکتهی خفنتر:
✨ وقتی حالت Agent فعاله، خودش اتومات فایل میسازه، کد تولید میکنه، اصلاح میکنه و برنامه رو جلو میبره!
✨ روی کد راستکلیک کن → Ask Copilot → مستقیم همونجا ادیت، تولید کد یا رفع خطا 🔥
👇 یک جمله مهم
اگه برنامهنویس Visual Studio هستی و Copilot استفاده نمیکنی، داری ۳ تا ۵ برابر بیشتر وقت هدر میدی.
❤5👍1
ترجمه فارسی کتاب The Linux Command Line بالاخره کامل شد. این پروژه یک فورک از ریپوی اصلی بود و من همراه با یکی از دوستانم روی تکمیل ترجمه و ویرایش نهایی کار کردیم.
این کتاب یکی از منابع معتبر برای یادگیری ترمینال و دستورهای لینوکس بهصورت کاربردی و قدمبهقدم است.
نسخه کامل ترجمه، بهصورت رایگان و متنباز از طریق لینک زیر در دسترس است:
https://github.com/hheydarian/TLCL-Persian
اگر این پروژه براتون مفید بود، خوشحال میشم با ⭐️ دادن، ازش حمایت کنید.
این کتاب یکی از منابع معتبر برای یادگیری ترمینال و دستورهای لینوکس بهصورت کاربردی و قدمبهقدم است.
نسخه کامل ترجمه، بهصورت رایگان و متنباز از طریق لینک زیر در دسترس است:
https://github.com/hheydarian/TLCL-Persian
اگر این پروژه براتون مفید بود، خوشحال میشم با ⭐️ دادن، ازش حمایت کنید.
1❤2🔥1👏1
فصل دوم - الگو های کارآموزی
خالی کردن فنجان
گاهی بزرگترین مانع یادگیری، چیزهایی نیست که نمیدانیم… بلکه چیزهایی است که فکر میکنیم میدانیم. ذهنی که پر از قطعیتها و عادتهای قدیمی است، جایی برای رشد ندارد. مثل فنجانی که لبریز شده؛ حتی اگر بهترین چای دنیا را در آن بریزی، باز هم فقط بیرون میریزد.
نویسندگان این فصل با همین استعاره شروع میکنند: اگر میخواهی چیزی یاد بگیری، اول باید جا باز کنی. باید باورهای قبلی، غرور دانستن، و فکر کردن به اینکه بلدم را کنار بزنی. فروتنی واقعی یعنی همین — خالی کردن فنجان.
برنامهنویسهایی که با ذهن پر کار میکنند، معمولاً گیر میافتند:
وقتی یک زبان بلدند، همهچیز برایشان شبیه همان زبان است.
وقتی چندسال تجربه دارند، حرف تازه به سختی در ذهنشان جا میگیرد.
وقتی فکر میکنند این روش همیشه جواب داده، فرصت دیدن روشهای بهتر را از دست میدهند.
اما شاگرد واقعی میداند هر زبان جدید، هر ابزار، هر تیم و هر فرهنگ کاری… یک جهان تازه است. و برای ورود به هر جهان، باید از صفر شروع کرد. باید کمربند سفید بست، حتی اگر ده سال تجربه داشته باشی.
این فصل یادآور میشود که یادگیری واقعی با پذیرفتن نادانی شروع میشود.
وقتی با خودت روراست باشی که نمیدانم.
وقتی بپرسی.
وقتی اشتباه کنی و سخت نگیری.
وقتی اجازه بدهی نکتهای ساده اما مهم دوباره به تو یاد داده شود.
خالی کردن فنجان فقط دربارهی تکنیک نیست؛ دربارهی نگرش است. نگرشی که میگوید:
آنچه دیروز میدانستم، امروز ممکن است مانع من باشد.
هرکس که در برنامهنویسی رشد میکند، این مرحله را تجربه کرده: لحظهای که متوجه میشود باید همهچیز را دوباره نگاه کند. بهترین چیزها معمولاً وقتی اتفاق میافتد که ذهن را از پیشفرضها پاک میکنی و با چشم یک تازهکار جلو میروی.
در نهایت، پیام این فصل ساده اما قدرتمند است:
ذهنی که پر است، یاد نمیگیرد.
ذهنی که باز است، رشد میکند.
و مسیر شاگردی دقیقاً از همینجا شروع میشود با خالی کردن فنجان.
👍3❤1
کیانوش مختاریان
مدیر و رهبر فنی سابق در گوگل
فرق کار تو گوگل و ایران چیه؟
همه رفتند ولی اون برگشته به ایران ...
#ویدئو_کدنویس
🔗 YouTube
مدیر و رهبر فنی سابق در گوگل
فرق کار تو گوگل و ایران چیه؟
همه رفتند ولی اون برگشته به ایران ...
#ویدئو_کدنویس
🔗 YouTube
❤3👍1🔥1
net-interview-questions.pdf
3.9 MB
۱۵۰ سوال برای آماده شدن در مصاحبه NET.
هر سؤال طوری طراحی شده که بهت کمک کنه درک واقعیتری از نحوه کار سیستمها پیدا کنی—نه اینکه فقط برای مباحث تئوری آماده بشی.
فرقی نمیکنه هدفت موقعیت جونیور، میدل یا سینیور باشه؛ این مجموعه بهت وضوح و اعتمادبهنفس لازم برای قبولی در مصاحبهها رو میده.
هر سؤال طوری طراحی شده که بهت کمک کنه درک واقعیتری از نحوه کار سیستمها پیدا کنی—نه اینکه فقط برای مباحث تئوری آماده بشی.
فرقی نمیکنه هدفت موقعیت جونیور، میدل یا سینیور باشه؛ این مجموعه بهت وضوح و اعتمادبهنفس لازم برای قبولی در مصاحبهها رو میده.
🔥3❤1
#استخدام
☑️ برنامه_نویس بک اند
✅ پرتو بیتا (تهران)
💬 شرایط:
- تسلط به NET 7+، Clean Architecture، DDD، CQRS
- رعایت Clean Code + استانداردهای کدنویسی
- رویکرد TDD و Unit Test و Integration Test
- کار با Git و TFS Board.
- مهارت Test Automation، Automated Build، Deploy
- تحلیل و رفع باگها
🏅چرا اینجا؟
- بیمه تکمیلی رایگان شخص همکار
- اهدای فصلی پک ارزاق و مواد غذایی
- سرو میان وعده
- اعطای کمک هزینه ناهاری
- ولکام پکیج در شروع همکاری
- نزدیکی لوکیشن سازمان به ایستگاه مترو توحید
📧https://lnkd.in/dUx2HMVK
🔗 LinkedIn
☑️ برنامه_نویس بک اند
✅ پرتو بیتا (تهران)
💬 شرایط:
- تسلط به NET 7+، Clean Architecture، DDD، CQRS
- رعایت Clean Code + استانداردهای کدنویسی
- رویکرد TDD و Unit Test و Integration Test
- کار با Git و TFS Board.
- مهارت Test Automation، Automated Build، Deploy
- تحلیل و رفع باگها
🏅چرا اینجا؟
- بیمه تکمیلی رایگان شخص همکار
- اهدای فصلی پک ارزاق و مواد غذایی
- سرو میان وعده
- اعطای کمک هزینه ناهاری
- ولکام پکیج در شروع همکاری
- نزدیکی لوکیشن سازمان به ایستگاه مترو توحید
📧https://lnkd.in/dUx2HMVK
👍3
فصل سوم - الگوهای کارآموزی
پیمودن راه طولانی
مسئله فقط فتح قلهای ناشناخته نیست، بلکه ترسیم گام بهگام مسیری تازه به سوی آن است.
گوستاو مالر، موسیقیدان و آهنگساز
استادی در برنامهنویسی شبیه یک سفر طولانی است؛ سفری که هرچه بیشتر جلو بروی، بیشتر میفهمی چقدر راه مانده. دیو هم همین را تجربه کرد؛ با مدرکها و دورهها شروع کرد، اما وقتی با برنامهنویسهای واقعی روبهرو شد دید که تازه نوک کوه را لمس کرده. این مسیر در جهانی که دنبال سرعت، ترفیع فوری و نتیجهی فوری است، کمی نامتعارف بهنظر میرسد، اما کسی که دنبال رشد واقعی است باید آیندهی بلندمدت را به جای موفقیت زودگذر انتخاب کند.
برنامهنویسی در ذاتش یک پیشه است. نرمافزاری که میسازی باید به کار بیاید، برای یک آدم واقعی مشکل حل کند. زیبایی و ظرافت هم شیریناند، اما اول باید مفید باشی. صنعتگر بودن یعنی از وسوسهی ساختن چیزهای درخشانِ بیفایده فاصله بگیری و تمرکزت را روی چیزی بگذاری که برای مشتری ارزش دارد، نه برای رزومهات.
راه طولانی همیشه روزهای خوب ندارد. پروژههای شلخته، مدیرهای بیصبر، کارهای تکراری و بینظم انرژی را میمکند. برای همین باید انگیزهای داشته باشی که دوام بیاورد: عشق به یادگیری، کار روی بخشهایی که کیف میدهند، ارتباط با آدمهای همفکر، و ساخت ابزارها و پروژههای کوچکی که برای خودت میسازی. اگر مراقب نباشی، گرفتار قفل طلایی میشوی؛ جایی که پول خوب نمیگذارد یاد بگیری و جلو بروی.
هیچکس مسیر تو را طراحی نمیکند. خودت باید مقصد، قدمهای کوچک و راهت را مشخص کنی. اگر مسیر شغلی سازمان با مسیر رشدت همسو نیست، باید تغییر مسیر بدهی یا سازمان را عوض کنی. عنوان شغلی هم معیار ارزش تو نیست؛ فقط نشانهای است از اینکه سازمان در چه جایگاهی ایستاده، نه تو.
گاهی ترفیعها تو را از کدنویسی دور میکنند. اگر میخواهی در مسیر استاد شدن بمانی، باید در عمل بمانی. هر روزی که کد نمیزنی یک قدم از مسیر دور میشوی. اگر سازمان میخواهد پاداشت را با نقشی غیر فنی بدهد، باید مذاکره کنی یا مسیر شغلیات را جایی ادامه بدهی که همچنان در سنگر بمانی.
و اگر روزی فهمیدی راهت عوض شده، اشکالی ندارد. شاید مسیر جدید با ارزشهای امروزت سازگارتر باشد. آنچه در دوران شاگردی یاد گرفتهای با تو میماند و در هر جایی که بروی کمکت میکند.
در نهایت، استادی از یک مجموعه انتخابهای کوچک ساخته میشود، انتخابهایی که کمکم شکل مسیر را تعیین میکنند. هیچ لحظهی خاصی وجود ندارد که ناگهان استاد شوی؛ فقط قدمبهقدم جلو میروی و یک روز میبینی نسخهای از خودت شدهای که با روز اول قابل مقایسه نیست.
❤1🔥1🆒1
🎲7 بازی SQL که حسابی مهارتهای تحلیل داده رو تقویت میکنه!
👨🏻💻 یکی از سختترین بخشهای یادگیری SQL اینه که ساعتها بشینی پای ویدئوهای آموزشی و یه عالمه آموزش تئوری ببینی. حوصله ات از آموزشهای خشک و خالی سر میره مگه نه؟
💻 ولی اگه بشه با بازی کردن SQL رو یاد گرفت چی؟ اینجا ۷ تا بازی SQL رو معرفی میکردم که به نظرم هم سرگرمکننده هستن و هم یه جور تمرین حرفهای برای تقویت مهارتهای SQL.
1️⃣ بازی SQL Island
https://lnkd.in/eEvx-Wgd
🤳 تصور کنین توی یه جزیره ناشناخته گیر افتادین! با استفاده از مهارتهای SQL باید راه نجات خودتون رو پیدا کنین. ترکیب چالش و ماجراجویی، اونم توی دنیای SQL!
2️⃣ بازی SQL Murder Mystery
https://lnkd.in/e2pb9XEc
🤳 فرض کنید یه قتل توی شهر SQL اتفاق افتاده! حالا باید از دانش SQL استفاده کنین تا سرنخها رو کنار هم بذارین و قاتل رو پیدا کنید. جذابتر از این؟
3️⃣ بازی Lost at SQL
https://lnkd.in/eypHVzXH
🤳 تو یه دنیای پر از چالشهای SQL گم شدین! باید معماها رو حل کنین تا به سطح بعدی برین.
4️⃣ بازی SQL Police Department
https://sqlpd.com/
🤳 اینجا شما به تیم پلیس SQL میپیوندین. قراره پروندههای مختلف رو حل کنین و همزمان کلی نکته جدید درباره SQL یاد بگیرین. یه تجربه هیجانانگیز و آموزنده!
5️⃣ بازی Querymon
https://lnkd.in/eiRv6riG
🤳 اگه تازه کارین و میخواین SQL رو از پایه یاد بگیرین، این بازی بهترین نقطهی شروعه!
6️⃣ بازی Schemaverse
https://schemaverse.com/
🤳 این یکی یه بازی استراتژی فضاییه که توی PostgreSQL پیاده شده. با دستورات خام SQL به ناوگان فضایی تون فرمان بدین و توی یه رقابت آنلاین، دیگران رو شکست بدین.
7️⃣ بازی CodinGame
https://lnkd.in/eQCUCtYQ
🤳 تمرین SQL همراه با چالشهای برنامهنویسی جذاب، توی یه پلتفرم که کلی زبان دیگه رو هم ساپورت میکنه.
🔗 LinkedIn
👨🏻💻 یکی از سختترین بخشهای یادگیری SQL اینه که ساعتها بشینی پای ویدئوهای آموزشی و یه عالمه آموزش تئوری ببینی. حوصله ات از آموزشهای خشک و خالی سر میره مگه نه؟
💻 ولی اگه بشه با بازی کردن SQL رو یاد گرفت چی؟ اینجا ۷ تا بازی SQL رو معرفی میکردم که به نظرم هم سرگرمکننده هستن و هم یه جور تمرین حرفهای برای تقویت مهارتهای SQL.
1️⃣ بازی SQL Island
https://lnkd.in/eEvx-Wgd
🤳 تصور کنین توی یه جزیره ناشناخته گیر افتادین! با استفاده از مهارتهای SQL باید راه نجات خودتون رو پیدا کنین. ترکیب چالش و ماجراجویی، اونم توی دنیای SQL!
2️⃣ بازی SQL Murder Mystery
https://lnkd.in/e2pb9XEc
🤳 فرض کنید یه قتل توی شهر SQL اتفاق افتاده! حالا باید از دانش SQL استفاده کنین تا سرنخها رو کنار هم بذارین و قاتل رو پیدا کنید. جذابتر از این؟
3️⃣ بازی Lost at SQL
https://lnkd.in/eypHVzXH
🤳 تو یه دنیای پر از چالشهای SQL گم شدین! باید معماها رو حل کنین تا به سطح بعدی برین.
4️⃣ بازی SQL Police Department
https://sqlpd.com/
🤳 اینجا شما به تیم پلیس SQL میپیوندین. قراره پروندههای مختلف رو حل کنین و همزمان کلی نکته جدید درباره SQL یاد بگیرین. یه تجربه هیجانانگیز و آموزنده!
5️⃣ بازی Querymon
https://lnkd.in/eiRv6riG
🤳 اگه تازه کارین و میخواین SQL رو از پایه یاد بگیرین، این بازی بهترین نقطهی شروعه!
6️⃣ بازی Schemaverse
https://schemaverse.com/
🤳 این یکی یه بازی استراتژی فضاییه که توی PostgreSQL پیاده شده. با دستورات خام SQL به ناوگان فضایی تون فرمان بدین و توی یه رقابت آنلاین، دیگران رو شکست بدین.
7️⃣ بازی CodinGame
https://lnkd.in/eQCUCtYQ
🤳 تمرین SQL همراه با چالشهای برنامهنویسی جذاب، توی یه پلتفرم که کلی زبان دیگه رو هم ساپورت میکنه.
👍6
یکی از تصمیمهای کلیدی در کار با زمان در .NET، انتخاب بین DateTimeOffset.Now و DateTimeOffset.UtcNow هست. یک انتخاب اشتباه اینجا میتونه باعث باگهای پیچیدهای بشه که فقط در Time Zone های خاصی خودشون رو نشون میدن.
خلاصه تفاوت این دو:
DateTimeOffset.Now
زمان محلی سیستمی که کد روش اجرا میشه رو برمیگردونه. این مقدار کاملاً به Time Zone سرور یا کامپیوتر کاربر وابسته است.
DateTimeOffset.UtcNow
زمان جهانی (UTC) رو با Offset صفر (+00:00) برمیگردونه. این مقدار هیچ وابستگی به تنظیمات محلی نداره و برای همه در یک لحظه، یکسان و ثابته.
اصل کلی اینه: "با UTC ذخیره کن، با زمان محلی نمایش بده."
همیشه برای ثبت زمان در دیتابیس، لاگها یا هر نوع Storage دیگهای، از DateTimeOffset.UtcNow استفاده کنید. این کار یک (Source of Truth) بدون ابهام و قابل مقایسه ایجاد میکنه.
نمایش زمان به کاربر نهایی باید در لایه UI و بر اساس Time Zone خود کاربر انجام بشه.
این رویکرد ساده، جلوی بسیاری از مشکلات در سیستمهای توزیعشده (Distributed Systems) رو میگیره.
خلاصه تفاوت این دو:
DateTimeOffset.Now
زمان محلی سیستمی که کد روش اجرا میشه رو برمیگردونه. این مقدار کاملاً به Time Zone سرور یا کامپیوتر کاربر وابسته است.
DateTimeOffset.UtcNow
زمان جهانی (UTC) رو با Offset صفر (+00:00) برمیگردونه. این مقدار هیچ وابستگی به تنظیمات محلی نداره و برای همه در یک لحظه، یکسان و ثابته.
اصل کلی اینه: "با UTC ذخیره کن، با زمان محلی نمایش بده."
همیشه برای ثبت زمان در دیتابیس، لاگها یا هر نوع Storage دیگهای، از DateTimeOffset.UtcNow استفاده کنید. این کار یک (Source of Truth) بدون ابهام و قابل مقایسه ایجاد میکنه.
نمایش زمان به کاربر نهایی باید در لایه UI و بر اساس Time Zone خود کاربر انجام بشه.
این رویکرد ساده، جلوی بسیاری از مشکلات در سیستمهای توزیعشده (Distributed Systems) رو میگیره.
👍8❤1👏1
فصل چهارم - الگوهای کارآموزی
ارزیابی دقیق خود
خطرناکترین جایگاه برای یک برنامهنویس، جایی است که احساس کند بهترین است. ماهی بزرگ در برکهی کوچک بودن، شاید حس غرور بدهد، اما در حقیقت پایانِ رشد توست.
بزرگترین تهدید برای کسی که سریع یاد میگیرد، توهمِ رسیدن است. اینکه نگاهی به اطرافت بیندازی، ببینی از همتیمیهایت جلوتری و با خودت بگویی: من دیگر استاد شدهام. اما واقعیت تلخ این است که در اقیانوس نرمافزار، همیشه ماهیهای بزرگتری هم هستند. اگر میخواهی رشد کنی، باید جرأت داشته باشی و از این برکهی امن بیرون بیایی.
نویسندگان در این فصل یک الگوی عجیب اما حیاتی را معرفی میکنند: بدترین باش!
این ایده از پت متنی (نوازنده جاز) میآید: همیشه در گروهی ساز بزن که در آن تو بدترین نوازنده هستی.
وقتی ضعیفترین عضو تیم باشی، مجبوری بدوی تا برسی. مجبوری مشاهده کنی، بپرسی و تقلید کنی. بودن در کنار آدمهای قویتر، دردناک است چون ضعفهایت را به رخ میکشد، اما تنها راهی است که سقف تواناییهایت را میشکند.
اما این مسیر به تنهایی طی نمیشود. باید مربی پیدا کنی.
شاید دسترسی به یک استاد تمامعیار نداشته باشی، اما مربیها همهجا هستند: نویسندگان کتابهایی که میخوانی، سخنرانان کنفرانسها، یا حتی آدمهای باتجربهتری که در اینترنت مینویسند. و اگر مربی نیافتی، دنبال روحهای همفکر باش. کسانی که مثل تو تشنهی یادگیریاند. جامعهای که در آن به جای رقابت، دانش جریان دارد.
یادگیری واقعی هم پشت میز و در انزوا اتفاق نمیافتد؛ بلکه در ساییدن آرنجها (Rubbing Elbows) رخ میدهد. باید کنار یک حرفهای بنشینی، کد زدنش را ببینی، و ریزهکاریهایی را یاد بگیری که در هیچ کتابی نوشته نشده است. دانشی که فقط در عمل و همنشینی منتقل میشود.
و در نهایت، رشد با تواضع گره خورده است. الگوی جارو کردن زمین درس بزرگی دارد:
تازهکار نباید انتظار داشته باشد از روز اول معماری سیستم را دستش بدهند. گاهی باید کارهای کوچک را انجام دهی، تستها را درست کنی، مستندات را مرتب کنی یا باگهای خستهکننده را بگیری. این کارها بیارزش نیستند؛ اینها راهی هستند برای جلب اعتماد تیم و شناخت عمیق سیستم از پایینترین سطح.
این فصل یک هشدار جدی است:
اگر در کارت احساس راحتی میکنی، اگر کسی نیست که تو را به چالش بکشد، و اگر فکر میکنی همه چیز را بلدی، احتمالاً متوقف شدهای.
ارزیابی دقیق خود یعنی شجاعتِ دیدنِ نادانیهایت. یعنی بدانی که این مسیر، یک دوی سرعت نیست؛ یک ماراتن طولانی است که در آن، فروتنی سوختِ حرکت توست.
همیشه تیمی را پیدا کن که در آن بتوانی دوباره شاگرد باشی.
👍4🐳1
معیار واقعی کیفیت نرمافزار: WTF در ساعت
روش های زیادی برای سنجیدن کیفیت نرمافزار وجود داره — از code coverage تا پیچیدگی و ابزارهای مختلف تحلیل.
اما یک معیار ساده همیشه دقیقتر از بقیه بوده:
WTF/H — «چند بار در ساعت میگی این دیگه چی بود؟»
یعنی چند بار وسط خوندن کد مکث میکنی و با خودت میگی «چی شد؟!»
همین معیار ساده خیلی چیزها دربارهی کیفیت کد و فرهنگ تیم مشخص میکنه:
WTF/H پایین:
ساختار مشخص، نامگذاری درست، رفتار قابل پیشبینی و تستهای قابل اعتماد.
اینجا میتونی راحت فکر کنی و مشکل حل کنی.
WTF/H متوسط:
کد کار میکنه، اما فهمیدنش زمان میبره.
ترکیبی از تصمیمهای قدیمی و میانبرهای که هنوز موندن.
WTF/H بالا:
فانکشنهای طولانی، منطق نامشخص، تغییرات پرریسک.
هر تغییری میتونه مشکل درست کنه.
در نهایت کیفیت نرمافزار فقط به ابزار و استانداردها ربط نداره؛
به این ربط داره که مهندس بعدی چقدر راحت بتونه کد رو بخونه.
هرچه WTF/H کمتر باشه، توسعه سریعتر و تیم خوشحال تر.
🔗 LinkedIn
روش های زیادی برای سنجیدن کیفیت نرمافزار وجود داره — از code coverage تا پیچیدگی و ابزارهای مختلف تحلیل.
اما یک معیار ساده همیشه دقیقتر از بقیه بوده:
WTF/H — «چند بار در ساعت میگی این دیگه چی بود؟»
یعنی چند بار وسط خوندن کد مکث میکنی و با خودت میگی «چی شد؟!»
همین معیار ساده خیلی چیزها دربارهی کیفیت کد و فرهنگ تیم مشخص میکنه:
WTF/H پایین:
ساختار مشخص، نامگذاری درست، رفتار قابل پیشبینی و تستهای قابل اعتماد.
اینجا میتونی راحت فکر کنی و مشکل حل کنی.
WTF/H متوسط:
کد کار میکنه، اما فهمیدنش زمان میبره.
ترکیبی از تصمیمهای قدیمی و میانبرهای که هنوز موندن.
WTF/H بالا:
فانکشنهای طولانی، منطق نامشخص، تغییرات پرریسک.
هر تغییری میتونه مشکل درست کنه.
در نهایت کیفیت نرمافزار فقط به ابزار و استانداردها ربط نداره؛
به این ربط داره که مهندس بعدی چقدر راحت بتونه کد رو بخونه.
هرچه WTF/H کمتر باشه، توسعه سریعتر و تیم خوشحال تر.
👍3❤1
#استخدام
استخدام برنامه نویس Dotnet (دورکار)
با سلام، وقت بخیر
برای توسعه نیرو های پروژه نیاز به دو همکار Backend داریم که Mid-Level یا Senior باشند.
تسط به موارد زیر اجباری می باشد :
1. Dotnet 9-10
2. T-SQL
3. EFCore 9-10
4. ASP .NET Core Web API
5. AzureDevops (Git)
6. DDD (Domain Driven Design)
7. Onion or Clean Architecture
8. SSMS
9. RabbitMQ یا Kafka
تسط به موارد زیر دارای امتیاز مثبت خواهد بود :
1. تجربه کار پروژه ای با معماری Microservices
2. تجربه کار با APIGateway Ocelot
3. تجربه کار با Docker file
4. تجربه کار با Pipeline های Azuredevops
شرایط شرکت :
· محل کار : دورکار
· شرکت : گروه صنعتی گلرنگ
· پرداخت حقوق : پرداختی حقوق توافق شده سر ماه
· بیمه : تامین اجتماعی و بیمه تکمیلی
· روز های کاری : شنبه تا چهارشنبه
لطفا دوستان عزیز حقوق درخواستی مورد نظر برای سال 1404 رو ذکر کنند در ایمیل، که من به همکاران HR اعلام کنم.
ارسال رزومه :
ali.poustdouzan@gmail.com
LinkedIn
استخدام برنامه نویس Dotnet (دورکار)
با سلام، وقت بخیر
برای توسعه نیرو های پروژه نیاز به دو همکار Backend داریم که Mid-Level یا Senior باشند.
تسط به موارد زیر اجباری می باشد :
1. Dotnet 9-10
2. T-SQL
3. EFCore 9-10
4. ASP .NET Core Web API
5. AzureDevops (Git)
6. DDD (Domain Driven Design)
7. Onion or Clean Architecture
8. SSMS
9. RabbitMQ یا Kafka
تسط به موارد زیر دارای امتیاز مثبت خواهد بود :
1. تجربه کار پروژه ای با معماری Microservices
2. تجربه کار با APIGateway Ocelot
3. تجربه کار با Docker file
4. تجربه کار با Pipeline های Azuredevops
شرایط شرکت :
· محل کار : دورکار
· شرکت : گروه صنعتی گلرنگ
· پرداخت حقوق : پرداختی حقوق توافق شده سر ماه
· بیمه : تامین اجتماعی و بیمه تکمیلی
· روز های کاری : شنبه تا چهارشنبه
لطفا دوستان عزیز حقوق درخواستی مورد نظر برای سال 1404 رو ذکر کنند در ایمیل، که من به همکاران HR اعلام کنم.
ارسال رزومه :
ali.poustdouzan@gmail.com
👍3❤1🔥1
فصل پنجم - الگوهای کارآموزی
یادگیری همیشگی
توسعهی نرمافزار تولید محصول نیست؛ بلکه فعالیتِ کسبِ دانش است.
نرمافزار فقط جایی است که ما دانشی را که به دست آوردهایم، ذخیره میکنیم.
خیلیها منتظرند تا "شرایط مناسب" از راه برسد تا یادگیری را شروع کنند. وقتی پروژه تمام شد، وقتی سرشان خلوت شد، وقتی استرس کم شد...
اما سی. اس. لوئیس حقیقت تلخی را میگوید: شرایط مناسب هرگز نخواهد آمد. تنها کسانی موفق میشوند که در میانهی جنگ و آشوب، با ولع به دنبال دانش میگردند.
نویسندگان در این فصل، تفاوت حیاتی میان کار کردن و تمرین کردن را روشن میکنند.
نوازندگان بزرگ، ساعتها در تنهایی تمرین میکنند تا فقط یک ساعت اجرا کنند. اما برنامهنویسان چه؟ ما معمولاً تمام روز را در حال اجرا (کدنویسی برای پروژه) هستیم و هیچ وقتی برای تمرین (بدون استرسِ تحویل) نمیگذاریم.
برای اینکه در مسیر استادی بمانید، باید این الگوها را زندگی کنید:
۱. تمرین، تمرین، تمرین:
همانطور که در هنرهای رزمی کاتا وجود دارد، در برنامهنویسی هم باید زمانهایی را به حل مسائل تکراری و ساختگی اختصاص دهید. جایی که اشتباه کردن هزینه ندارد. اگر در زمان کار اشتباه کنید، باگ تولید کردهاید؛ اما در زمان تمرین، اشتباه یعنی یادگیری.
۲. اسباببازیهای شکستنی (Breakable Toys):
لینوس توروالدز لینوکس را نساخت چون میخواست دنیا را تغییر دهد؛ آن را ساخت چون فقط یک سرگرمی بود.
شما هم باید پروژههایی داشته باشید که فقط مال خودتان باشد. یک ویکی شخصی بسازید، یک بازی بنویسید، یا یک سیستمعامل ساده و ناقص طراحی کنید. اینها اسباببازیهایی هستند که اجازه دارید آنها را بشکنید، خراب کنید و از دلِ خرابیهایشان معماری واقعی را یاد بگیرید.
۳. استفاده از کد منبع (Use the Source):
فقط کتاب نخوانید؛ کد بخوانید. بیل گیتس میگفت سطل زبالههای مرکز کامپیوتر را میگشت تا کدهای سیستمعامل دیگران را پیدا کند و بخواند. کد، داور نهایی است. خواندنِ کدهای متنبازِ خوب، به شما یاد میدهد که بزرگان این صنعت چگونه فکر میکنند.
۴. یادگیری را ثبت کن و به اشتراک بگذار:
وبلاگ بنویس، نه برای اینکه مشهور شوی، بلکه برای اینکه وقتی مینویسی، مجبور میشوی عمیقتر فکر کنی. وقتی یکی درس میدهد، دو نفر یاد میگیرند.
این فصل یک هشدار بزرگ دارد:
تجربه با تکرار فرق دارد.
بسیاری از برنامهنویسان ۱۰ سال تجربه ندارند؛ آنها ۱ سال تجربه دارند که ۱۰ بار تکرار شده است.
یادگیری همیشگی یعنی هر روز به دنبال راهی باشی تا نادانیات را به مهارت تبدیل کنی، حتی اگر این فرآیند دردناک باشد. چون دردِ یادگیری، تنها نشانهی رشد است.
❤4👍1👏1
برنامهنویسی داتنت بدون این اصطلاحات، مثل رانندگی بدون ترمز و کلاچه! 🚗
این ۲۰ مفهوم حیاتی داتنت به زبان ساده و خودمونی:
🏗 زیرساخت (Engine Room)
۱. CLR:
قلب تپنده داتنت! مدیریت اجرا، حافظه و امنیت با ایشونه. بدون CLR کدت اجرا نمیشه.
۲. IL:
کد سیشارپ اول به زبان میانی (IL) تبدیل میشه، نه مستقیم به زبان ماشین.
۳. JIT:
مترجم لحظه آخر! موقع اجرا، کد IL رو به زبان ماشین تبدیل میکنه تا سرعت بره بالا.
۴. GC:
رفتگر حافظه! اتوماتیک آبجکتهای بلااستفاده رو از رم پاک میکنه.
۵. Roslyn:
کامپایلر مدرن داتنت. همزمان با تایپ، کد رو تحلیل میکنه (مثل خط قرمزهای ویژوال استودیو).
🌐 وب و ASP .NET Core
۶. Kestrel:
وبسرور سبک، سریع و کراسپلتفرم که پیشفرض ASP .NET Core هست.
۷. Middleware:
ایستگاه بازرسی درخواستها. هر Request از این لایهها (مثل لاگین) رد میشه تا به Response برسه.
۸. DI:
تزریق وابستگی؛ بجای new کردن، آبجکت رو از سیستم میگیری. قلب معماری ASP .NET Core.
۹. Razor:
موتور ترکیب سیشارپ با HTML برای ساخت صفحات وب پویا (مثل cshtml.).
۱۰. Blazor:
جادوی مایکروسافت! نوشتن فرانتاند با سی شارپ (جای React) که توی مرورگر اجرا میشه.
🛠 ابزارها
۱۱. NuGet:
پکیج منیجر داتنت. معدن هزاران کتابخونه آماده تا چرخ رو دوباره اختراع نکنی.
۱۲. LINQ:
سینتکس جادویی برای فیلتر و جستجو در لیستها و دیتابیس با کدی تمیز.
۱۳. EF Core:
رابط دیتابیس (ORM). بجای SQL، با کلاسهای سی شارپ کار میکنی؛ تبدیل به کوئری با خودشه.
۱۴. Async/Await:
کلید سرعت! وقتی برنامه منتظر I/O هست، قفل نمیشه و کارهای دیگه رو انجام میده.
۱۵. SDK vs Runtime:
اولی جعبهابزار برای ساخته، دومی موتور اجرا برای سرور مشتری.
🎯 پیشرفته
۱۶. TFM:
شناسه نسخه داتنت پروژه. مثلاً net8.0.
۱۷. LTS:
نسخههای با پشتیبانی طولانی ۳ سال آپدیت؛ مثل .NET 8.
۱۸. Poco:
کلاسهای ساده (فقط پراپرتی) بدون وابستگی خاص.
۱۹. Scaffolding:
ساخت اتوماتیک کنترلر و ویو بر اساس مدلها برای افزایش سرعت.
۲۰. Minimal API:
نوشتن API بدون کنترلر و پیچیدگی. فقط کد اصلی و تمام!
این ۲۰ مفهوم حیاتی داتنت به زبان ساده و خودمونی:
🏗 زیرساخت (Engine Room)
۱. CLR:
قلب تپنده داتنت! مدیریت اجرا، حافظه و امنیت با ایشونه. بدون CLR کدت اجرا نمیشه.
۲. IL:
کد سیشارپ اول به زبان میانی (IL) تبدیل میشه، نه مستقیم به زبان ماشین.
۳. JIT:
مترجم لحظه آخر! موقع اجرا، کد IL رو به زبان ماشین تبدیل میکنه تا سرعت بره بالا.
۴. GC:
رفتگر حافظه! اتوماتیک آبجکتهای بلااستفاده رو از رم پاک میکنه.
۵. Roslyn:
کامپایلر مدرن داتنت. همزمان با تایپ، کد رو تحلیل میکنه (مثل خط قرمزهای ویژوال استودیو).
🌐 وب و ASP .NET Core
۶. Kestrel:
وبسرور سبک، سریع و کراسپلتفرم که پیشفرض ASP .NET Core هست.
۷. Middleware:
ایستگاه بازرسی درخواستها. هر Request از این لایهها (مثل لاگین) رد میشه تا به Response برسه.
۸. DI:
تزریق وابستگی؛ بجای new کردن، آبجکت رو از سیستم میگیری. قلب معماری ASP .NET Core.
۹. Razor:
موتور ترکیب سیشارپ با HTML برای ساخت صفحات وب پویا (مثل cshtml.).
۱۰. Blazor:
جادوی مایکروسافت! نوشتن فرانتاند با سی شارپ (جای React) که توی مرورگر اجرا میشه.
🛠 ابزارها
۱۱. NuGet:
پکیج منیجر داتنت. معدن هزاران کتابخونه آماده تا چرخ رو دوباره اختراع نکنی.
۱۲. LINQ:
سینتکس جادویی برای فیلتر و جستجو در لیستها و دیتابیس با کدی تمیز.
۱۳. EF Core:
رابط دیتابیس (ORM). بجای SQL، با کلاسهای سی شارپ کار میکنی؛ تبدیل به کوئری با خودشه.
۱۴. Async/Await:
کلید سرعت! وقتی برنامه منتظر I/O هست، قفل نمیشه و کارهای دیگه رو انجام میده.
۱۵. SDK vs Runtime:
اولی جعبهابزار برای ساخته، دومی موتور اجرا برای سرور مشتری.
🎯 پیشرفته
۱۶. TFM:
شناسه نسخه داتنت پروژه. مثلاً net8.0.
۱۷. LTS:
نسخههای با پشتیبانی طولانی ۳ سال آپدیت؛ مثل .NET 8.
۱۸. Poco:
کلاسهای ساده (فقط پراپرتی) بدون وابستگی خاص.
۱۹. Scaffolding:
ساخت اتوماتیک کنترلر و ویو بر اساس مدلها برای افزایش سرعت.
۲۰. Minimal API:
نوشتن API بدون کنترلر و پیچیدگی. فقط کد اصلی و تمام!
👍7❤1🆒1
۲۰ اصطلاح داتنت که شما را از سطح جونیور به مید-لول میرساند!
(قسمت دوم)
اگر لیست قبلی الفبا بود، این لیست گرامر داتنت حساب میشه. بریم سراغش:
🧠 مفاهیم عمیقتر (Deep Dive)
۱. Stack vs Heap:
دو ناحیه حافظه. Stack برای متغیرهای کوچیک و سریعه (مثل int)، Heap برای آبجکتهای بزرگ و موندگار. تفاوتش رو ندونی، مموری لیک (Memory Leak) در کمینته!
۲. Generics:
جادوی <T>! بهت اجازه میده کدی بنویسی که با هر نوع دادهای کار کنه، بدون اینکه برای هر کدوم جداگانه کد بزنی.
۳. Delegate & Event:
سیستم خبررسانی داتنت. Delegate اشارهگر به یک متده، و Event یعنی وقتی اتفاقی افتاد (مثل کلیک)، به بقیه خبر بده.
۴. Lambda Expression:
اون فلش معروف =>. روشی مختصر برای نوشتن توابع بینام و جمعوجور توی یک خط.
۵. Reflection:
قابلیت "خودآگاهی" کد! برنامهای که میتونه در زمان اجرا، کلاسها و متدهای خودش رو ببینه و دستکاری کنه (البته با احتیاط مصرف شود!).
🏗️ معماری و الگوها (Architecture)
۶. DTO (Data Transfer Object):
پیک موتوریِ دادهها! اشیایی که فقط برای جابجایی داده بین لایه ها ساخته شدن و هیچ منطق یا لاجیکی ندارن.
۷. Repository Pattern:
انباردارِ پروژه. لایه ای که بین کد شما و دیتابیس قرار میگیره تا مستقیم با دیتابیس درگیر نشید.
۸. CQRS:
قانون "تفکیک قوا". یعنی مسیر خوندن اطلاعات (Query) رو از مسیر نوشتن و تغییر اطلاعات (Command) جدا کنی تا سیستم تمیزتر بشه.
۹. Microservices:
شکستن غولِ نرمافزار به سرویسهای کوچیک و مستقل که هر کدوم کار خودشون رو میکنن و با هم حرف میزنن.
۱۰. Solid Principles:
۵ قانون مقدس در طراحی شی گرا که اگر رعایت نکنی، کدت بعد از ۶ ماه غیرقابل نگهداری میشه!
🌐 وب مدرن و ارتباطات
۱۱. SignalR:
کتابخونه ای برای ارتباط Real-time (در لحظه). جون میده برای ساخت چتروم، داشبوردهای زنده و نوتیفیکیشن.
۱۲. gRPC:
جایگزین مدرن و فوق سریع برای REST API. گوگل ساختش و توی داتنت برای ارتباط بین میکروسرویس ها عالیه.
۱۳. JWT (JSON Web Token):
کارت ورود دیجیتال. روشی امن و استاندارد برای احراز هویت (Authentication) در APIها.
۱۴. Swagger / OpenAPI:
مستندات زنده! ابزاری که APIهای شما رو اسکن میکنه و یک صفحه شیک میسازه تا بقیه بتونن راحت تستش کنن.
۱۵. CORS:
نگهبان مرورگر. قانونی که تعیین میکنه آیا سایت A اجازه داره به منابع سایت B دسترسی داشته باشه یا نه.
⚡ تکنیکهای حرفهای (Pro Features)
۱۶. Records:
نوع داده جدید (C# 9.0+) که مخصوص نگهداری دادههای ثابته (Immutable). امنتر و خلاصهتر از Class معمولی.
۱۷. Span:
مدیریت حافظه بدون کپی کردن! برای کار با متنها و آرایه های بزرگ، سرعت رو فضایی بالا میبره.
۱۸. Extension Methods:
روشی برای چسبوندن متدهای جدید به کلاس های قدیمی (حتی کلاس های خود داتنت مثل String) بدون دستکاری اونها.
۱۹. Hot Reload:
قابلیت جذاب ویژوال استودیو که میذاره وقتی برنامه در حال اجراست، کد رو عوض کنی و نتیجه رو همون لحظه ببینی.
۲۰. AOT (Ahead-of-Time):
کامپایل پیش از موعد. برنامه رو مستقیم به کد ماشین تبدیل میکنه تا بدون نیاز به JIT، توی کسری از ثانیه اجرا بشه.
کدوم یکی از اینا اخیراً بیشتر به کارتون اومده؟ 😎
(قسمت دوم)
اگر لیست قبلی الفبا بود، این لیست گرامر داتنت حساب میشه. بریم سراغش:
🧠 مفاهیم عمیقتر (Deep Dive)
۱. Stack vs Heap:
دو ناحیه حافظه. Stack برای متغیرهای کوچیک و سریعه (مثل int)، Heap برای آبجکتهای بزرگ و موندگار. تفاوتش رو ندونی، مموری لیک (Memory Leak) در کمینته!
۲. Generics:
جادوی <T>! بهت اجازه میده کدی بنویسی که با هر نوع دادهای کار کنه، بدون اینکه برای هر کدوم جداگانه کد بزنی.
۳. Delegate & Event:
سیستم خبررسانی داتنت. Delegate اشارهگر به یک متده، و Event یعنی وقتی اتفاقی افتاد (مثل کلیک)، به بقیه خبر بده.
۴. Lambda Expression:
اون فلش معروف =>. روشی مختصر برای نوشتن توابع بینام و جمعوجور توی یک خط.
۵. Reflection:
قابلیت "خودآگاهی" کد! برنامهای که میتونه در زمان اجرا، کلاسها و متدهای خودش رو ببینه و دستکاری کنه (البته با احتیاط مصرف شود!).
🏗️ معماری و الگوها (Architecture)
۶. DTO (Data Transfer Object):
پیک موتوریِ دادهها! اشیایی که فقط برای جابجایی داده بین لایه ها ساخته شدن و هیچ منطق یا لاجیکی ندارن.
۷. Repository Pattern:
انباردارِ پروژه. لایه ای که بین کد شما و دیتابیس قرار میگیره تا مستقیم با دیتابیس درگیر نشید.
۸. CQRS:
قانون "تفکیک قوا". یعنی مسیر خوندن اطلاعات (Query) رو از مسیر نوشتن و تغییر اطلاعات (Command) جدا کنی تا سیستم تمیزتر بشه.
۹. Microservices:
شکستن غولِ نرمافزار به سرویسهای کوچیک و مستقل که هر کدوم کار خودشون رو میکنن و با هم حرف میزنن.
۱۰. Solid Principles:
۵ قانون مقدس در طراحی شی گرا که اگر رعایت نکنی، کدت بعد از ۶ ماه غیرقابل نگهداری میشه!
🌐 وب مدرن و ارتباطات
۱۱. SignalR:
کتابخونه ای برای ارتباط Real-time (در لحظه). جون میده برای ساخت چتروم، داشبوردهای زنده و نوتیفیکیشن.
۱۲. gRPC:
جایگزین مدرن و فوق سریع برای REST API. گوگل ساختش و توی داتنت برای ارتباط بین میکروسرویس ها عالیه.
۱۳. JWT (JSON Web Token):
کارت ورود دیجیتال. روشی امن و استاندارد برای احراز هویت (Authentication) در APIها.
۱۴. Swagger / OpenAPI:
مستندات زنده! ابزاری که APIهای شما رو اسکن میکنه و یک صفحه شیک میسازه تا بقیه بتونن راحت تستش کنن.
۱۵. CORS:
نگهبان مرورگر. قانونی که تعیین میکنه آیا سایت A اجازه داره به منابع سایت B دسترسی داشته باشه یا نه.
⚡ تکنیکهای حرفهای (Pro Features)
۱۶. Records:
نوع داده جدید (C# 9.0+) که مخصوص نگهداری دادههای ثابته (Immutable). امنتر و خلاصهتر از Class معمولی.
۱۷. Span:
مدیریت حافظه بدون کپی کردن! برای کار با متنها و آرایه های بزرگ، سرعت رو فضایی بالا میبره.
۱۸. Extension Methods:
روشی برای چسبوندن متدهای جدید به کلاس های قدیمی (حتی کلاس های خود داتنت مثل String) بدون دستکاری اونها.
۱۹. Hot Reload:
قابلیت جذاب ویژوال استودیو که میذاره وقتی برنامه در حال اجراست، کد رو عوض کنی و نتیجه رو همون لحظه ببینی.
۲۰. AOT (Ahead-of-Time):
کامپایل پیش از موعد. برنامه رو مستقیم به کد ماشین تبدیل میکنه تا بدون نیاز به JIT، توی کسری از ثانیه اجرا بشه.
کدوم یکی از اینا اخیراً بیشتر به کارتون اومده؟ 😎
👍4❤2🐳1