کدهک
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 اِسکیلی Skilly (Kambiz Asadzadeh)
یکی از مشکلاتی که این روز‌ها بسیار دیده می‌شود، این است که چگونه باید قیمت بدیم و چطور با مشتری برخورد کنیم!

برنامه‌نویس حرفه‌ای و واقعی هیچ‌گاه پشت تلفن و با یک جلسه ملاقات هزینه و زمان برای انجام پروژه را مشخص نمی‌کند. بر خلاف انتظاری که مشتری از شما دارد، به هیچ عنوان نباید هزینه‌های زمانی و مالی را بدون تجزیه تحلیل اولیه بیان کنید. چرا که اگر مشتری شما واقعاً مصمم در انجام پروژه‌ای باشد که هدفمند است، در این صورت حتماً از شما انتظار یاری و مشاروهٔ را خواهد داشت.

بنابراین توصیه می‌کنم، شدیداً به این نکته توجه داشته باشید که به هیچ عنوان در ملاقات اولیه و یا حتی در پشت تلفن قیمت و زمان برای پروژهٔ پیشنهادی از طرف مشتری ارائه نکنید. این نشان‌گر این است که شما به اندازهٔ کافی به زمان، مهارت و تخصص خود مطمئن نیستید.

پیشنهاد می‌شود هر پروژه‌ای که به شما پیشنهاد شد، آن رو در یک زمان مناسب بررسی و مواردی که فکر می‌کنید نیاز است مشتری در جریان آن قرار بگیرد را به زبان ساده‌تر به او انتقال دهید.


1️⃣ ابتدا نیاز مشتری را به خوبی درک کنید، در قدم بعدی بررسی زمانی و سپس بررسی روش‌ها و ابزار‌هایی که قرار است در توسعهٔ پروژه مورد استفاده برار بگیرد را برای خودتان مشخص کنید.

2️⃣ مهارت خود را همراه با دانش، اطلاعاتِ تکیه بر تجربیات خود برای پیاده‌سازیِ پروژهٔ پیشنهادی مرور کرده و آن را بر اساس نتیجهٔ حاصل شده ارزیابی کنید.

3️⃣ زمانی را که در طی چند ساعت، روز، هفته و ماه نیاز دارید به طور تقریبی و نزدیک به واقعیت محاسبه کنید. (زمان از نظر مشتری بسیار مهم است، او انتظار دارد در زمانی که شما طی کرده‌اید به نتیجه برسد).

4️⃣ قیمت را به صراحت و جدی برای مشتریِ خود مشخص کنید (مشخص کردن قیمت ترسی ندارد و شما باید واقعیت را بیان کنید) مهم نیست که مشتری چه واکنشی نشان خواهد داد. شما واقعیت را بیان کنید (بیان کردن واقعیت یعنی یک قدم برای تعریف ارزش برنامه‌نویسی به طرف مقابل) تا دیگر فرصتی برای بی ارزش کردن کار شما وجود نداشته باشد.

5️⃣ اگر مشتری با شنیدن هزینهٔ پیشنهادی شما جهت انجام کار شروع به مثال آوردن از برنامه‌نویسانی کرد که متخصص در این حوزه نیستند، مطمئن شوید که او ارزش پروژهٔ خود را به خوبی نمی‌داند. (اگر مشتری شخصیت انتقاد پذیری داشته باشد، می‌توانید او را قانع کنید که کاملاً در اشتباه است) در غیر این صورت نباید در مورد هزینه‌ها اصرار و تأکید داشته باشد، چرا که هزینه‌ها بر اساس نیاز‌ها و معیار های واقعی مطرح می‌شوند.

5️⃣ تخفیف در برنامه‌نویسی در قدم اول معنی ندارد! در همان لحظه که احساس می‌کنید مشتریِ شما بیشتر به فکر هزینه است تا به فکر کیفیت، شک نکنید که در نهایت رضایت دو جانبه‌ای وجود نخواهد داشت! چون این قرارداد یک طرفه و صرفاً بر اساس هزینه‌ها بسته می‌شود.

6️⃣ به مشتری اطمینان خاطر بدهید که پروژهٔ او در بهترین حالت ممکن تولید خواهد شد! اگر بتوانید و اگر مهارت شما در حدی باشد که محصولی مشابه محصولات استاندارد و جهانی بسازید شک نکنید که موفق خواهید شد. تأکید می‌کنم مشتری در قدم اول هیچ کاری با کد‌های شما ندارد و صرفاً منتظر نتیجه‌ای است که باید ببیند و آن را حس و درک کند.

7️⃣ مشاوره را در هر مرحله از توسعهٔ پروژه در نظر بگیرید، سعی کنید نظرات مشتری را در مباحث تجربه‌کاربری گوش بدهید، اما اجازه ندهید در مورد مباحث فنی نظری را ارائه کنند! مگر دلایل قانع کننده و اساسی که در شرایط خاص توسط مشاورین فنی در پروژه‌های بزرگ و اساسی پیشنهاد می‌شود.

8️⃣ در صورتی که در داخل یک تیم کار می‌کنید، تعامل تنها روش ممکن برای موفقیت است! بحث و جدال با هم‌تیمی‌ها هیچ فایده‌ای به جز نا رضایتی نخواهد داشت.

9️⃣ اگر با مشکلاتی مواجه می‌شوید که باعث می‌شود شما کم کاری کنید آن را باید مدیریت کنید! نگذارید مشتری شما احساس کند که هر موقع حوصله داشتید روی پروژهٔ او کار می‌کنید. بنابراین برای حفظ ارزش‌ها و درک برای احترام‌های متقابل حتماً از برنامهٔ زمان‌بندی شده برای مشتری خود ارائه کنید.

0️⃣1️⃣ عقد قرارداد و تفاهم نامه در رابطه با عدم افشای اطلاعات مهم است! اگر می‌خواهید حرفه‌ای باشید و با شما حرفه‌ای رفتار شود همیشه خودتان پیش قدم برای عقد قرارداد‌های تضمین شده برای دو طرف را باشید.

1️⃣1️⃣ سعی کنید پروژه‌ای که واقعاً آن را دوست ندارید را انجام ندهید! برنامه‌نویسی باید همراه با لذت باشد، در غیر این صورت کار بر روی آن بسیار خسته‌کننده خواهد بود که باعث ناراحتی و مشکلات احتمالی خواهد شد؛ بنابراین سعی کنید توسعهٔ پروژه برای شما جذاب و لذت‌ بخش باشد.

2️⃣1️⃣ برنامه‌نویسی شغل بسیار موثر و سطح بالایی در این دوره زمانه است، بنابراین طوری رفتار کنید که در شأن آن هستید و قدر آن را بدانید.

[ @KambizAsadzadeh ]
Forwarded from اِسکیلی Skilly (Kambiz Asadzadeh)
3️⃣1️⃣ سطح معلومات خود رو مدام افزایش دهید، توانایی درک مسائل و حل آن‌ها بسیار مهم است.

4️⃣1️⃣ به‌روز رسانی ابزار‌ها را جدی بگیرید و مدام مستندات مراجع رو مطالعه کنید.

5️⃣1️⃣ زبان‌های برنامه‌نویسی را ابزار‌های موجود در جعبه ابزار خود بدانید و از هر کدام در جای مناسب استفاده کنید.

6️⃣1️⃣ شکرگزار باشید و از تلاش منصرف نشوید، من قبلاً در مقالات و کتاب‌های خود به این موضوع اشاره کرده‌ام، زمانی که خسته شده‌اید و احساس می‌کنید توان ادامه ندارید، در این لحظه شک نکنید، که شما به موفقیت بسیار نزدیک شده‌اید.

#نکته #پند #توصیه #نکات #مشاوره #رایگان #برنامه‌نویس #برنامه‌نویسی #مشتری #اصول

[ @KambizAsadzadeh ]
آشنایی با Git در Visual Studio

در این مجموعه ویدیو ها به معرفی ابزار و قابلیت های Git در Visual Studio می پردازیم و نحوه استفاده از آن را در ASP NET Core بررسی می کنیم.

https://codehaks.com/go/pra
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ مجموعه آموزش های Microservices در NET Core.

اگر در اینترنت به دنبال آموزش های Microservices گشته باشین متوجه میشین که اکثر مقالات یا به صورت کلی و عمومی هستند (نه مختص دات نت) و یا برای زبان های دیگه اند و در نهایت اونایی هم مختص دات نت باشن به صورت پراکنده در فضای اینترنت پخش شده اند

علاوه بر این، مبحث Microservices دارای موضوعات متعدد و بزرگی هست و نمیشه اون رو با یک یا چند مقاله جسته و گریخته یاد گرفت واسه همین به یک سری آموزش نیاز دارید.
همچنین بعد از یادگیری مفاهیم پایه این مبحث، بهترین چیزی که میتونه شما رو بر روی این موضوع مسلط کنه، بررسی سورس نمونه پروژه های واقعی که بر پایه Microservices و NET Core. نوشته شده اند هست

🔰ریپازیتوری زیر سعی کرده بهترین آموزش های Microservices که مختص NET Core. هستند رو گردآوری کنه و در پایان لیستی از پروژه های سورس باز گیتهاب که با این معماری نوشته شده اند رو جمع آوری کنه

اگر علاقمند به یادگیری Microservices در NET Core. هستید این بهترین منبع رایگانی هست که میتونه به شما کمک کنه

https://github.com/mjebrahimi/Awesome-Microservices-NetCore
__________
@DotNetZoom
Forwarded from کدهک
شروع کار با SignalR Core

در این مجموعه 8 قسمتی و در 30 دقیقه به آموزش برنامه نویسی Real-time در ASP NET Core می پردازیم.



تماشا در یوتیوب :

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

کد تخفیف: DevDay1399
تاریخ انقضای کد تخفیف فوق: یکشنبه، 23 شهریور 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 نیز قابل استفاده است.

با تقدیم احترام
#مهدی_کرامتی
#تخفیف
@barnamenevis_net
@barnamenevis_org
آشنایی با xUnit و نحوه پیاده سازی تست واحد در دات نت

https://tinyurl.com/cdhks-xunt
Forwarded from DotNetZoom (Ali)
🔰 #آیا_میدانستید
توی کنسول مروگر میتونین با دستور console.table، آرایه ها و لیست ها تون رو به صورت جدولی نشون بدین؟

var exampleArray = [
"First item in the array",
"I'm the second item in this array",
"Obviously i'm the last item"
];
console.table(exampleArray);

مثال های بیشتر:
https://www.telerik.com/blogs/better-visualization-of-console-data-with-tables
__________
@DotNetZoom
Forwarded from کدهک
منظور از Availability در یک سیستم در دسترس بودن آن است.

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

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

تعداد 9 ها یا The Nines اصطلاحی است که جهت نشان دادن درصد دسترسی به یک سیستم استفاده میشود.

برای بدست آوردن تعداد 9 های یک سیستم ابتدا باید با پیاده سازی سیستم مونیتورینگ مناسب میزان Down-Time را اندازه گرفت و با تقسیم آن در بازه زمانی درصد Availability را بدست آورد.

بسته به اینکه چه سرویسی ارائه می کنید میزان دسترسی مورد نیاز تغییر میکند.

سرویس شما به چه میزان Availability نیاز دارد؟
تعداد 9 های سرویس شما چندتاست؟
Forwarded from کدهک
با استفاده از اینترفیس IActionResult میتوان در ASP NET Core نوع بازگشتی اختصاصی ایجاد کرد. در این ویدیو می بنیم که چطور یک کاکشن را به صورت فایل CSV در خروجی اکشن تولید کنیم.

https://codehaks.com/go/dyk
نگاهی به آخرین آپدیت dotNet 5.0

در این ویدیو نگاهی به بعضی از قابلیت های جدید دات نت 5 و سی شارپ 9 می اندازیم و سپس در باره امکانات جدید ASP NET Core و EF Core صحبت می کنیم.


https://codehaks.com/go/lkh
آموزش مهاجرت از دات نت 3 به دات نت 5 در ASP

در این ویدیو به آموزش نحوه مهاجرت از یک پروژه NET Core 3.1 به نسخه NET 5.0 می پردازیم و درباره تکنیک استفاده از برنچ در گیت همچنین نحوه استفاده از global json صحبت می کنیم. همچنین به موضوع نسخه LTS دات نت و زمان آپدیت های بعدی می پردازیم.

https://codehaks.com/go/vdt
در این ویدیو یک پروژه خالی دات نت 5.0 ایجاد می کنیم و سپس به آن EF Core اضافه می کنیم. DbContext تعریف می کنیم و سپس رابطه ی چند به چند پیاده می کنیم.

https://codehaks.com/go/tlw
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ مقایسه کارآیی روش‌های مختلف جایگزین کردن حروف در یک رشته در برنامه‌های NET.

چند وقت با وحید نصیری dotnettips.info واسه یکی از ریپازیتوری هاش در مورد یه موضوع performance ایی بحث میکردیم و من یه Sample زدم براش
https://github.com/mjebrahimi/Micro-Optimization-Samples/tree/master/Replace-CharArray-Benchmark

🔸حالا وحید عزیز زحمت کشیدند و یه مقاله آموزشی کامل درباره این موضوع تهیه کرده
هرچند که این موضوع micro optimization ایی هست و به درد جونیور یا میدل ها نمیخوره ولی به سنیور ها خوندنشو پیشنهاد میکنم
https://www.dotnettips.info/post/3242

🔹در اینجا از Span برای افزایش سرعت و همچنین کاهش میزان memory allocation استفاده کردم
از این تکنیک جهت کار با رشته ها توی وب سرور Kesterl به شدت استفاده شده و میزان زیادی از پرفرمنسش رو مدیون این تکنیک هست

توی این ریپو برخی نکات micro optimization ایی که بهش برمیخورم و بنچمارک میگیرم رو نگهداری میکنم
دیدن خالی از لطف نیست و نکات جالب و advance ایی توش هست
https://github.com/mjebrahimi/Micro-Optimization-Samples
_______________
@DotNetZoom
Forwarded from کدهک
کتابخانه Polly دارای قابلیت Circuit Breaker است که در صورت وجود خطا در سرویس از اجرای آن صرف نظر میکند. این قابلیت کمک می کند کدهایی با پایداری بالا داشته باشیم و در برابر خطاهای احتمالی پیش بینی های لازم را انجام دهیم.

https://codehaks.com/go/hwo