کدهک
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
در 6 ماه گذشته آمار بازدید کانال آپارات کدهک از 11 هزار دقیقه در ماه به 31 هزار دقیقه رسید.

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

کانال کدهک از 135 هزار بازدید به 151 هزار رسید.

در سه سال گذشته 235 ویدیو به مدت بیش از 30 ساعت آموزش رایگان در کانال آپارات کدهک قرار گرفته است.

کدهک هیچ درآمدی از پخش ویدیوها در آپارات ندارد اما شما می توانید با دنبال کردن ما از مطالب آموزشی متنوع دنیای دات نت و ASP NET Core استفاده کنید.

ممنون از اینکه کدهک را همراهی می کنید.

https://www.aparat.com/codehaks
با استفاده از تگ هلپر Cache می توانید محتوای صفحات وب را در حافظه کش ذخیره کنید.

https://codehaks.com/go/xrt
Forwarded from DotNetZoom (ALI_1992)
#Interface #Pattern #DI

❇️از اینترفیس ها بیش از حد استفاده نکنید!

یکی از نشانه های برنامه نویسانِ بزرگ و حرفه ای، استفاده ی به جا، مناسب و به دور از اغراق، از مفاهیم و الگوهای برنامه نویسی است. هدف همه ی ما، داشتن کدی تمیز و خوانا، با قابلیت نگهداری بالا و امکانِ استفاده ی مجدد است .
خوشبختانه اینترفیس ها (Interface)، تحققِ بسیاری از این موارد را برایمان ممکن کرده اند. مخصوصا وقتی صحبت از تزریق وابستگی ها (Dependency Injection) و یا انجام آزمون های واحد (Unit Testing) به میان می آید، بدون کوچکترین تعلل به سراغ تعریف اینترفیس به ازای تک تک کلاس ها می رویم. اما آیا واقعا در تمامی موارد و سناریوها نیاز به تعریف این اینترفیس ها داریم؟!

اگر شما هم از آن دسته از برنامه نویسانی هستید، که عادت به تعریف اینترفیس ها و پیچیده کردنِ روال، بدون در نظر گرفتن و ارزیابیِ شرایطِ موجود را دارید، مطالعه ی مقاله ی زیر شاید موجب تجدید نظر در این دیدگاه شود:

http://blog.hovland.xyz/2017-04-22-stop-overusing-interfaces/

_______
@DotNetZoom
Forwarded from کدهک
استریم کردن دو طرفه در gRPC

استریم دو طرفه به ما امکان میده داده هایی رو از کلاینت به سرور و از سرور به کلایت به صورت موازی ارسال کنیم.

در این ویدیو قابلیت Bidirectional Streaming رو در gRPC بررسی می کنیم سپس به مقایسه SignalR و gRPC می پردازیم.

https://codehaks.com/go/kjf
کدی برای 1000 سال بعد

به تازگی گیتهاب برچسب هایی بین کاربران پخش میکند مبنی بر اینکه در پروژه Arctic Code Vault مشارکت کرده اند. بر اساس این پروژه گیتهاب در تاریخ 02/02/2020 (5 ماه پیش) سورس همه پروژه های عمومی گیتهاب را در قطب شمال و در عمق 250 متری از سطح زمین دفن کرده است. این پروژه با هدف آرشیو و حفظ کدها برای آیندگان راه اندازی شده است.

گیتهاب با همکاری چند شرکت و سازمان تصمیم دارد به صورت جدی سورس نرم افزارهای امروز را برای آیندگان حفظ کند. نگه داری اطلاعات در هوای سرد قطب شمال می تواند طول عمر آنها را تا 1000 سال افزایش دهد. اطلاعات در منطقه Svalbard نگه داری میشود که دور از دسترس عمومی است و طبق تعهدنامه جهانی باید غیر نظامی بماند. هر چند تغییرات آب و هوا ممکن است باعث آب شدن یخ ها شود اما بعید به نظر میرسد این تغییرات در عمق 250 متری اثر گذار باشد.

پروژه بعدی SILICA است که با همکاری تیم تحقیقاتی مایکروسافت انجام میشود. قرار است سورس ها روی کریستال های Quartz حک شود که طول عمر آنها را تا 10 هزار سال افزایش میدهد.

https://archiveprogram.github.com/
کتابخانه Polly دارای قابلیت Circuit Breaker است که در صورت وجود خطا در سرویس از اجرای آن صرف نظر میکند. این قابلیت کمک می کند کدهایی با پایداری بالا داشته باشیم و در برابر خطاهای احتمالی پیش بینی های لازم را انجام دهیم.

https://codehaks.com/go/hwo
با استفاده از EF Core می توانید بجای آپدیت مستقیم روی دیتابیس اسکریپت آن را تولید کنید تا بعدا روی سرور اجرا کنید. در بسیاری از موارد ما به طور مستقیم به دیتابیس دسترسی نداریم و لازم است برای هر نوع تغییری در دیتابیس از اسکریپت استفاده کنیم. در EF Core می توانید اسکریپت مورد نظر را به راحتی بازسازی کنید.

https://codehaks.com/go/pzy
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%
خیر