کدهک
1.95K subscribers
1.29K photos
7 videos
1 file
672 links
آموزشگاه تخصصی دات نت

https://codehaks.com

لینکدین :
https://www.linkedin.com/in/codehaks

یوتیوب:
https://www.youtube.com/@codehaksfa

ارتباط با مدیر :
Admin: @codehak
Email: ghods.hakim@hotmail.com
call: 09380146555
Download Telegram
Forwarded from DotNetZoom (ALI_1992)
#Technical_Debt #Software_Engineering #معرفی_سایت

بدهی فنی (Technical Debt) چیست؟
بدهی فنی یکی از موارد کلیدی در موفقیت تجاری نرم‌افزارهای توسعه‌داده‌شده است. این اصطلاح توسط وارد کانیگهام در سال ۱۹۹۲ ابداع شد. او چنین چیزی گفت: «انتشار اولین کد مثل بدهکار شدن است. کمی بدهی، سرعت توسعه را بهبود می‌بخشد؛ به شرطی که در اولین فرصت با بازنویسی کد، تسویه شود... خطر زمانی رخ می‌دهد که تسویه نشود. هر دقیقه که صرف کد نامطلوب شود به عنوان بهره تلقی می‌شود. تمامی یک سازمان مهندسی می‌تواند تحت بار بدهی این کد نامستحکم، به حالت توقف کشانده شود.»

🔸تشبیه بدهی فنی ارتباط نزدیکی با بدهی مالی دارد و مربوط به انتشار سریع یک چیز و در نتیجه بدهکار شدن است. بعداً باید این بدهی را با بهبود کیفیت، تسویه کنید و اگر این کار را نکنید مجبور به پرداخت نرخ بهره هستید چون بهره‌وری شما کاهش پیدا می‌کند و توسعه‌تان کند می‌شود.

🔹دلایل بدهی فنی:
- فشار زمانی
- استفاده از یک فناوری جدید برای نخستین بار بدون درک درست از آن
- طراحی اشتباه به دلیل نداشتن شناخت صحیح از نیازمندی های حوزه ی کسب وکار
- پوسیدگی نرم‌افزار

🔸اما بدهی فنی همیشه بد نیست. در واقع بدهی فنی یک راهبرد است. چون می‌توانیم با بدهکار شدن به سرعت به هدف کسب و کار برسیم. بهتر است چیزی را سریع بنویسید و به کاربر برسانید و ببینید که آیا برای کسی مفید است؟ اگر برای کسی مفید است آن وقت است که بدهی فنی را پرداخت می‌کنیم. اگر کد بی‌نقصی برای عملکردی که نمی‌دانیم مفید است یا نه بنویسیم هدر دادن زمان است.

🔹این ها بخشی از صحبت های سوِن یوهان و ابرهارد ولف در مورد بدهی فنی از مجموعه پادکست های صوتی سایت SE Radio است که توسط سایت http://se-topics.ir/ به خوبی ترجمه و در اختیار توسعه دهندگان فارسی زبان قرار داده شده است.
این سایت از جمله سایت های خوب فارسی در حوزه ی مهندسی نرم افزار است و به تهیه ترجمه از پادکست‌های صوتی و تصویری از افراد خبره در این حوزه می پردازد. همچنین در صورت تمایل می توانید به جمع مترجمان این سایت بپیوندید و در ترجمه ی پادکست ها با این سایت همکاری داشته باشید تا مقاله تان با ذکر نام خودتان بر روی سایت قرار گیرد.

🔰متن کامل مقاله:
http://se-topics.ir/topicview?id=54

🔰مطالعه ی بیشتر در مورد بدهی فنی:
https://www.infoq.com/articles/managing-technical-debt


_______
@DotNetZoom
Forwarded from کدهک
از یک فستفود در فاصله ی 10 کیلومتری پیتزا سفارش میدهید. اگر پیتزا از قبل آماده ارسال باشد و پیک هم با سرعت 100 کیلومتر بر ساعت حرکت کند حداقل 6 دقیقه طول میکشد تا پیتزا به دست شما برسد و 12 دقیقه طول میکشد تا فستفود از تحویل باخبر شود.

تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.

پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.

در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.

مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
Forwarded from کدهک
اطلاعات Claims در کوکی نگه داری میشوند و به این ترتیب نیاز نیست برای خواندن آنها به دیتابیس مراجعه کنیم.

این موضوع در UserId و UserName همینطور متد IsInRole که سمت کاربر را چک میکند کار را چک میکند استفاده میشود.

در این ویدیو می خواهیم فیلدهای درون ApplicationUser را به Claims تبدیل کنیم بدون اینکه از جدول Claims در دیتابیس Identity استفاده کنیم.

https://tinyurl.com/cdhk-claims-id
ابزار watch در دات نت به شما امکان میدهد هنگامی که تغییری در سورس کدهای سی شارپ اعمال می کنید سرور به صورت خودکار ریستارت شود. با کمک watch می توانید به سرعت خروجی را در مرورگر مشاهده کنید.


https://codehaks.com/go/ucv
تخفیف 50 درصدی ویژه عید قربان

به مناسبت عید قربان می توانید همه دوره های آموزشی کدهک را با تخفیف 50 درصد تهیه کنید.

کد تخفیف : qorban

https://codehaks.com/shop
Forwarded from اِسکیلی Skilly (مهدی کرامتی)
🔈🤑 تخفیف 40% کلیه پکیج های آموزش ویدئویی برنامه نویس - ویژه عید قربان

کد تخفیف: Qurban
تاریخ انقضای کد تخفیف فوق: دوشنبه، 13 مرداد 99، ساعت 12 شب

لازم به ذکر است قیمت پکیج های آموزشی نیز جهت رفاه حال شما عزیزان کاهش یافته است، بدین صورت که پس از اعمال کد تخفیف فوق، قیمت هر یک از پکیج های ASP.NET MVC و ASP.NET Core و Angular 8 مبلغ 90.000 تومان، قیمت پکیج سی شارپ سطح 1 مبلغ 60.000 تومان، و پکیج های آموزش مفاهیم وب مبلغ 30.000 تومان خواهد بود.

همچنین، آموزش های ارائه شده در پکیج های آموزش ASP.NET Core، بدون هیچ تغییری در ASP.NET Core 3.1 نیز قابل استفاده است.

خبر جدید نیز این است که مراحل ضبط پکیج آموزش سی شارپ - سطح 2 نیز به پایان رسیده، و به تدریج پس از اتمام مراحل ویرایش روی سایت در دسترس مخاطبین گرامی قرار خواهد گرفت. بنابراین، از هم اکنون می توانید با استفاده از کد تخفیف فوق نسبت به ثبت نام در پکیج آموزشی فوق نیز اقدام فرمائید.

با تقدیم احترام
#مهدی_کرامتی
#تخفیف
@barnamenevis_net
@barnamenevis_org
Forwarded from کدهک
در این دوره پیاده سازی یک اپ تک صفحه ای با استفاده از Vue.js و دیتابیس MongoDb در ASP NET Core آموزش داده میشود.

اگر می خواهید خیلی سریع و ساده با ابزاری مثل MongoDb و ASP NET Core Web API و Vuejs آشنا شوید و نحوه پیاده کردن یک اپ تک صفحه ای در محیط وب را فرا بگیرید این دوره مناسب شماست.

https://codehaks.com/go/xfa
کنفرانس دات نت درباره میکروسرویس ها و آخرین ابزار و امکاناتی که در محیط دات نت برای پیاده سازی این پترن تهیه شده است تا ساعتی دیگر برگزار میشود.

برای تماشای زنده می توانید به لینک زیر بروید.

https://codehaks.com/go/rok
آموزش AutoMapper در ASP NET Core

اتومپر ابزاری برای مپ کردن (کپی کردن فیلد به فیلد) یک شی به شی دیگر است. این ابزار سالهاست که در بسیاری از پروژه ها استفاده میشود. در این ویدیو به آموزش استفاده از AutoMapper در یک پروژه ASP NET Core می پردازیم.


https://codehaks.com/go/mpz
Forwarded from کدهک
نگاهی به Async/Await در پروژه های وب

در این ویدیو به بررسی مکانیزم Threading در ASP NET Core می پردازیم و درباره ConfigureAwait و Synchronization Context صحب می کنیم.

https://codehaks.com/video/107
Forwarded from DotNetZoom (Ali)
🔰 یک نکته پرفرمنسی درباره Logging

🔸استفاده از تامین کننده Console برای Logging در حین ارائه نهایی (Production) به شدت باعث کند شدن و کاهش کارآیی برنامه خواهد شد. بهتر است این تامین کننده را صرفا در محیط Development تنظیم کنید (مانند تصویر)

🔹اگر از WebHost.CreateDefaultBuilder استفاده می‌کنید، به صورت پیش‌فرض سه تامین کننده Console و Debug و EventSource ثبت خواهند شد پس لازم است ابتدا آن ها را توسط متد ClearProviders حذف کنید
#PerformanceTuning
_________
@DotNetZoom
آیا برای شروع یادگیری ASP NET Core استفاده از داکیومنتهای مایکروسافت را پیشنهاد می کنید؟
Anonymous Poll
57%
بله
43%
خیر
لوگ کردن رویدادها می تواند در رفع باگها و رهگیری خطاهای برنامه کمک زیادی کند. با استفاده از کتابخانه Serilog می توانید داده های لوگ را به روشهای مختلف نمایش دهید یا در انواه دیتابیس ها ذخیره کنید. در این ویدیو نحوه اضافه کردن Serilog به یک پروژه ASP NET Core و ثبت اطلاعات لوگ در دیتابیس SQL Server آموزش داده میشود.

https://codehaks.com/go/pno
به مناسبت عید غدیر تمدید شد...

تخفیف 50 درصدی ویژه عید قربان

به مناسبت عید قربان می توانید همه دوره های آموزشی کدهک را با تخفیف 50 درصد تهیه کنید.

کد تخفیف : qorban

https://codehaks.com/shop
در این دوره به آموزش Entity Framework می پردازیم. کار را با یک پروژه کاملا خالی شروع می کنیم و سپس کتابخانه های لازم برای کار با روش Code First در Entity Framework را به آن اضافه می کنیم. گام به گام پیش میرویم تا دیتابیس ایجاد کنیم و اطلاعات را در آن ذخیره کنیم.


https://codehaks.com/go/efk
رقابت بسیار نزدیک پرفورمنس gRPC در دات نت 5 در کنار RUST و ++C و Go

آدرس بنچمارک:
https://codehaks.com/go/ykn
در بسیاری از پروژه های وب نیاز به نمایش Select داریم که داده های آن از دیتابیس خوانده میشود. در این ویدیو به نحوه پیاده سازی آن در ASP .NET Core و Razor Page آشنا میشویم.


https://codehaks.com/go/pzo
Forwarded from کدهک
با استفاده از ابزار Health Checks در ASP NET Core می توانید سلامتی اپلیکیشن خود را به دیگر سرویس ها اطلاع دهید. این ابزار امکان میدهد مواردی مانند اتصال به اینترنت، بالا بودن سرور دیتابیس یا دسترسی به سرویس پیامک و ... را چک کنیم و در صورت وجود مشکل به دیگران اطلاع دهیم.

https://codehaks.com/go/tpk
آموزش RabbitMQ و پیاده سازی الگوی Messaging

در این ویدیو به معرفی RabbitMQ می پردازیم و نحوه استفاده از آن را در NET Core. بررسی می کنیم. از RabbitMQ به عنوان Message Broker استفاده میشود که میتواند پیامها را درون صف نگه دارد و به ترتیب در اختیار سایر سرویس ها قرار دهد. این ابزار در پیاده سازی Distributed System ها و میکروسرویس ها کاربرد زیادی دارد.

https://codehaks.com/go/fpw