net-interview-questions_copy.pdf
3.9 MB
۱۵۰ سوال مصاحبهی فنی داتنت از antondevtips.com
پاسخ ندارند ولی خب فقط کافیه سوال رو کپی/پیست کنید برای هر LLM ای.
پاسخ ندارند ولی خب فقط کافیه سوال رو کپی/پیست کنید برای هر LLM ای.
👍2🙊1
عجیبترین مصاحبهی فنیای که تا حالا داشتم برای پوزیشن بکاند دولوپر |:
یک برگه A4 شامل تمام تکنولوژیهایی که میتونید تصورش رو کنید گذاشتن جلوم و گفتن بر حسب درصد بنویس به هرکدوم چقدر تسلط داری :)) حالا تکنولوژیها چیها بودن مثلا؟
PowerPoint, ASP.NET, Word, ASP.NET Core, ... :)))
داشتم خودم رو قانع میکردم که دیگه از این بدتر نمیشه که، و منتظر مصاحبهکننده بودم که بیاد مصاحبهی اصلی رو انجام بده، دیدم یک نفر اومد ۵ صفحه A4 (هرکدوم ۵۰ سوال تشریحی) از تکنولوژیها و لایبرریهای مرتبط گذاشت جلوم و گفت ۴۰ دقیقه فرصت داری با خودکار و روی کاغذ اینها رو به انگلیسی (همین که نگفتند فارسی بینظیره) جواب بدی 🥹 زیاد تلاش خاصی نکردم ولی حتی ۴۰ دقیقه هم فرصت ندادن و سر ۳۰ دقیقه برگشت 😂.
و دیگه احتمالا تا اینجا حدس زده باشید که کل زیرساختشون روی net. framework و asp classic بود 😄
نمیدونم والا، شاید مشکل از ما هست و اون درصد تسلط به تکنولوژیها رو ۱۰۰٪ نیستیم 😆.
یک برگه A4 شامل تمام تکنولوژیهایی که میتونید تصورش رو کنید گذاشتن جلوم و گفتن بر حسب درصد بنویس به هرکدوم چقدر تسلط داری :)) حالا تکنولوژیها چیها بودن مثلا؟
PowerPoint, ASP.NET, Word, ASP.NET Core, ... :)))
داشتم خودم رو قانع میکردم که دیگه از این بدتر نمیشه که، و منتظر مصاحبهکننده بودم که بیاد مصاحبهی اصلی رو انجام بده، دیدم یک نفر اومد ۵ صفحه A4 (هرکدوم ۵۰ سوال تشریحی) از تکنولوژیها و لایبرریهای مرتبط گذاشت جلوم و گفت ۴۰ دقیقه فرصت داری با خودکار و روی کاغذ اینها رو به انگلیسی (همین که نگفتند فارسی بینظیره) جواب بدی 🥹 زیاد تلاش خاصی نکردم ولی حتی ۴۰ دقیقه هم فرصت ندادن و سر ۳۰ دقیقه برگشت 😂.
و دیگه احتمالا تا اینجا حدس زده باشید که کل زیرساختشون روی net. framework و asp classic بود 😄
نمیدونم والا، شاید مشکل از ما هست و اون درصد تسلط به تکنولوژیها رو ۱۰۰٪ نیستیم 😆.
💔14🤣5 2🙊1
IOptions<T> 🔹 تنظیمات فقط یکبار در زمان راهاندازی برنامه خونده و کش میشن.
🔹 مناسب برای تنظیماتی که در زمان اجرا تغییر نمیکنن (مثل کلیدهای API یا مقادیر ثابت).
IOptionsSnapshot<T> 🔹 تنظیمات رو بهصورت scoped دریافت میکنه (مثلاً در هر درخواست HTTP جدید).
🔹 مناسب برای پروژههای وب که نیاز دارن در هر درخواست، آخرین تغییرات تنظیمات رو دریافت کنن.
IOptionsMonitor<T> 🔹 تنظیمات رو بهصورت singleton اما real-time ارائه میده.
🔹 امکان ثبت event برای زمانی که تنظیمات تغییر میکنن (OnChange) رو فراهم میکنه.
🔹 مناسب برای سرویسهای background یا سناریوهایی که نیاز به واکنش به تغییرات تنظیمات در لحظه دارن.
اطلاعات بیشتر:
learn.microsoft.com/en-us/dotnet/core/extensions/options
Please open Telegram to view this post
VIEW IN TELEGRAM
سناریوی محتمل:
- کاربر قصد داره خریدی انجام بده و اتصال اینترنت ضعیفی داره
- روی دکمهی «پرداخت» کلیک میکنه
- درخواست به سرور میره، پردازش میشه و پول از حساب کسر میشه
- اما ریسپانس به دلیل قطعی لحظهای اینترنت به کاربر نمیرسه
- کاربر فکر میکنه دکمه کار نکرده و دوباره (یا چندبار) روی دکمهی پرداخت کلیک میکنه
نتیجه: سرور شما تمام درخواستها رو میگیره و هردفعه اعتبار رو کم میکنه.
به زبان ساده، Idempotency یعنی «مهم نیست یک درخواست چندبار به سمت سرور ارسال میشه، نتیجهی نهایی باید همیشه یکسان باشه و تغییر اضافه در سیستم ایجاد نکنه»
برای پیادهسازی این مورد در متدهای
POST یا PATCH، میتونیم از یک شناسهی یکتا و Idempotency Key استفاده کنیم.X-Idempotency-Key: 123e4567-e89b-12d3-a456-426614174020نکتهی مهم این هست که اگر درخواست به هردلیلی fail شد و کلاینت خواست retry انجام بده، باید همون کلید قبلی ارسال شه.
در سمت سرور هم، باید یک middleware یا مکانیزمی طراحی شه که قبل از رسیدن درخواست به Controller، وجود اون کلید رو چک کنه و درصورت وجود، ریسپانس اون رو مستقیما از Redis برگردونه و کدهای اصلی بیزنس رو اجرا نکنه.
اگر هم وجود نداشت که خب اجازه میده کد اجرا شه و سپس نتیجهی اون رو توی Redis یا هر مکانیزم کش دیگهای ذخیره میکنه.
Please open Telegram to view this post
VIEW IN TELEGRAM
1 9👍4
Mahi in Tech
یک نمونه پیادهسازی خیلی ساده در asp.net
👍5
Forwarded from رقصنده با کد (Ali KhodaeiDoost)
shahriaarrr
مطلب فنی کافیه، یکی جلوی AI رو بگیره :))))))-
2 19 6
یکی از دوستان کاربلد و تیمش مدتیه که روی یه سرویس جذاب به اسم «مثلث» کار میکنن؛ یه پلتفرم تولید محتوای خودکار با هوش مصنوعی (AI) که الان به بلوغ خیلی خوبی رسیده و نتایجش واقعاً دیدنیه.
چیزی که من از خروجیهاش دیدم، قشنگ کار ۳ نیروی انسانی رو براتون انجام میده 😄. انگار بهجای استخدام چند نفر، یه سیستم خودکار دارید که:
- هر روز سایتتون رو با محتوای سئو شده و کامل بهروز میکنه.
- مستقیماً به سرچکنسول وصل میشه تا آمار واقعی بده.
- توی ۶۰ روز میتونه رشد ۳۰ تا ۵۰ درصدی توی کلیک و ایمپرشن ایجاد کنه.
- وقتی به صفحه اول گوگل (Top 10) برسید، خودش بهتون خبر میده.
اگه دنبال رشد بیدردسر سایتتون هستید، پیشنهاد میکنم تستش کنید.
رایگان امتحان کنید:
کد تخفیف ۵۰٪ هم توی تصویر هست، میتونید استفاده کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3
توی یکی از پروژههای فرانتاندی اخیر، قصد داشتم مثل همیشه از swagger codegen استفاده کنم تا از مزایاش برای ارتباط راحتتر با api بهرهمند شم (در ادامه میگم)، ولی خب از اونجایی فایل executableش یک فایل jar بود و نیاز به نصب جاوا داشت و منطقی نبود 😁 تصمیم گرفتم دنبال پکیج جایگزینی بگردم، که با Orval آشنا شدم.
حالا این چیکار میکنه و چرا باید ازش استفاده کرد؟
سناریوی دردناک و رایج:
تیم بکاند تغییری در خروجی API میده (مثلاً userName تبدیل میشه به fullName).
فرانتاند کار از این تغییر بیخبره یا فراموش میکنه اینترفیسهای TypeScript رو آپدیت کنه.
پروژه بیلد میشه، اما توی مرورگر کاربر به خطای undefined میخوره و کرش میکنه!
جدا از این، نوشتن دستی Typeها و Interfaceها برای هر API وقتگیر و خستهکنندهست.
✅ راه حل: ابزار Orval به شما کمک میکنه بهجای اینکه دستی کدهای ارتباط با API یا Schemaـها رو بنویسید، میاد و فایل Swagger/OpenAPI بکاند رو میخونه و تمام کدهای مورد نیاز فرانتاند (مثل هوکهای React Query، کلاینت Axios و تایپهای TypeScript) رو بهصورت خودکار و ساختاریافته تولید میکنه.
⚙️ چطوری کار میکنه؟ کافیه آدرس فایل swagger.json خروجی گرفته شده از ASP.NET (یا هر تکنولوژی دیگهای) رو به Orval بدید.
نتیجه:
- تولید خودکار هوکها: مثلاً بهجای نوشتن دستی useQuery، خودش ()useGetUsers رو با تایپ دقیق ورودی و خروجی بهت میده.
- امن بودن تغییرات (Type Safety): اگر بکاند اسم فیلدی رو عوض کنه، کد فرانتاند دیگه بیلد نمیشه (Compile Error) و همون لحظه متوجه میشی، نه هنگام استفاده!
- هماهنگی ۱۰۰٪: فرانتاند همیشه با آخرین تغییرات داکیومنت بکاند سینک میمونه.
اطلاعات بیشتر:
github.com/orval-labs/orval
حالا این چیکار میکنه و چرا باید ازش استفاده کرد؟
سناریوی دردناک و رایج:
تیم بکاند تغییری در خروجی API میده (مثلاً userName تبدیل میشه به fullName).
فرانتاند کار از این تغییر بیخبره یا فراموش میکنه اینترفیسهای TypeScript رو آپدیت کنه.
پروژه بیلد میشه، اما توی مرورگر کاربر به خطای undefined میخوره و کرش میکنه!
جدا از این، نوشتن دستی Typeها و Interfaceها برای هر API وقتگیر و خستهکنندهست.
نتیجه:
- تولید خودکار هوکها: مثلاً بهجای نوشتن دستی useQuery، خودش ()useGetUsers رو با تایپ دقیق ورودی و خروجی بهت میده.
- امن بودن تغییرات (Type Safety): اگر بکاند اسم فیلدی رو عوض کنه، کد فرانتاند دیگه بیلد نمیشه (Compile Error) و همون لحظه متوجه میشی، نه هنگام استفاده!
- هماهنگی ۱۰۰٪: فرانتاند همیشه با آخرین تغییرات داکیومنت بکاند سینک میمونه.
اطلاعات بیشتر:
github.com/orval-labs/orval
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - orval-labs/orval: orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI…
orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺 - orval-labs/orval
4👍7 4
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰7
Forwarded from Software Philosophy
بازنویسی تاریخی در دنیای داتنت با 9 NET.!
تیم NuGet در مایکروسافت موفق شد الگوریتم Restore را در نسخه 9 NET. بهطور کامل بازنویسی کند؛ نتیجه؟ افزایش سرعت تا ۱۶ برابر!
📉 زمان Restore برای پروژههای بزرگ از ۳۲ دقیقه به فقط ۲ دقیقه رسید!
چرا این اتفاق افتاد؟
- الگوریتم قبلی بیش از ۱۰ سال بدون تغییر باقی مانده بود.
- پروژههای بزرگ مثل TeamX با کندی شدید مواجه شده بودند.
- ساختار بازگشتی و حافظهبر باعث دیباگ سخت و مصرف منابع بالا شده بود.
چه تغییراتی اعمال شد؟
- حذف ساخت گراف کامل و جایگزینی با ساختار تخت و تصمیمگیری لحظهای.
- بهینهسازی حافظه، کاهش تعداد تکرارها و حذف نودهای تکراری.
- اضافه شدن ویژگیهایی مثل transitive pinning و مدیریت بهتر خطاها.
📈 نتیجه نهایی:
- افزایش چشمگیر بهرهوری توسعهدهندگان.
- صرفهجویی در منابع زیرساختی.
- آمادهسازی برای مقیاسپذیری در پروژههای عظیم.
🔗 توضیحات کامل را در این لینک ببینید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
تیم NuGet در مایکروسافت موفق شد الگوریتم Restore را در نسخه 9 NET. بهطور کامل بازنویسی کند؛ نتیجه؟ افزایش سرعت تا ۱۶ برابر!
📉 زمان Restore برای پروژههای بزرگ از ۳۲ دقیقه به فقط ۲ دقیقه رسید!
چرا این اتفاق افتاد؟
- الگوریتم قبلی بیش از ۱۰ سال بدون تغییر باقی مانده بود.
- پروژههای بزرگ مثل TeamX با کندی شدید مواجه شده بودند.
- ساختار بازگشتی و حافظهبر باعث دیباگ سخت و مصرف منابع بالا شده بود.
چه تغییراتی اعمال شد؟
- حذف ساخت گراف کامل و جایگزینی با ساختار تخت و تصمیمگیری لحظهای.
- بهینهسازی حافظه، کاهش تعداد تکرارها و حذف نودهای تکراری.
- اضافه شدن ویژگیهایی مثل transitive pinning و مدیریت بهتر خطاها.
📈 نتیجه نهایی:
- افزایش چشمگیر بهرهوری توسعهدهندگان.
- صرفهجویی در منابع زیرساختی.
- آمادهسازی برای مقیاسپذیری در پروژههای عظیم.
🔗 توضیحات کامل را در این لینک ببینید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
Microsoft News
How we ended up rewriting NuGet Restore in .NET 9
Learn about the journey that led to a full rewrite of the NuGet Restore algorithm in .NET 9, achieving break-through scale and performance.
🤩2