آموزش برنامه نوسی

آموزش برنامه نویسی سی شارپ asp,net mvc asp.net core angular emberjs و ...

آموزش برنامه نویسی سی شارپ asp,net mvc asp.net core angular emberjs و ...

نمیدانم چه میخواهم بگویم


<a href="https://www.zangin.ir">بهترین نرم افزار اتوماسیون اداری</a>

۳۷ مطلب در اسفند ۱۳۹۶ ثبت شده است

چیزی که شرکت ها را ورشکست می کند، بدهی فنی است نه بدهی مالی

اصطلاح بدهی فنی (Technical Debt) اساسا برای این به وجود آمد تا افراد حوزه بیزینس و مدیران را متوجه آسیبی کند که با فرامین نابجا، زمان بندی های تنگ و ترش و دید غیرواقعی و غیرمهندسی شان می توانند به نرم افزارها وارد کنند. از آنجایی که این دسته از افراد نسبت به بدهی مالی حساس هستند و درک بسیار خوبی از آن دارند، از عبارت بدهی فنی استفاده می کنیم تا بتوانیم حساسیت آن ها را جلب کنیم.

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

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

بازپرداخت بدهی فنی یعنی refactor کردن کد و تر و تمیز کردن نرم افزار و قطعا هر چه زمان بیشتری گذشته باشد، این امر به تدریج غیرممکن خواهد شد. در نتیجه دیگر در این کد نمی توان ویژگی ها را به سرعت اضافه کرد و هر تغییری منجر به شکست سایر نقاط خواهد شد و عواقب پیشبینی نشده خواهد داشت. کد به تدریج به کدی کهنه تبدیل می شود که از اصول و روش های مدرن فاصله خواهد گرفت. توسعه محصولی که به سرعت وارد بازار شده بود، به شدت کند خواهد شد و باگ هایش و سرویس دهی پایین اش سازمان را دچار بحران اعتبار در میان مشتریان اش خواهد کرد که بزرگ ترین آسیب می باشد.
از سوی دیگر سازمان در تعامل با نیروهای برنامه نویس اش به مرور درمانده خواهد شد. آن ها با کدی کهنه و بد درگیر خواهند شد و اشتیاقی به ادامه کار نخواهند داشت. از دوستان و رقبای شان عقب خواهند افتاد، سازمان به دلیل کندی کارها و عدم پیشرفت مناسب از آن ها ناراضی است و هر کسی کار را به دوش دیگری می اندازد و دیگری را مقصر می دانند و به مرور کد بدتر و بدتر خواهد شد، کیفیت پایین می آید و برنامه نویس ها به دلیل نارضایتی از سازمان می روند و یا تنش بین آن ها ایجاد خواهد شد و در نهایت هم بیزینس ضربه سنگینی از این موضوع خواهد خورد.
همه این ها هم به خاطر بدهی فنی ایی است که هیچگاه توسط مدیریت سازمان دیده و بازپرداخت نشده است.

این نوشته بر گرفته از کانال تلگرامی است

http://zangin.ir


http://tablokar.ir

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ اسفند ۹۶ ، ۲۳:۱۳
کدچی

تحقق یک رویا: پشتیبانی توکار از دات نت در همه مرورگرهای مدرن

به لطف استاندارد مدرن - و هنوز فراگیر نشده - WebAssembly، امروزه همه مرورگر های مدرن می توانند به جای اجرای جاوا اسکریپت، یک زبان bytecode استانداردِ سطح پایین و شبیه به زبان اسمبلی را اجرا کنند. استفاده از WebAssembly می تواند موجب اجرای سریع تر کد و کاهش حجم آن شود. اما مهمترین مزیت این هست که امروز می توانیم همه زبان های قدرتمند نظیر سی شارپ را به نحوی کامپایل کنیم که خروجیِ نهایی، منطیق با استاندارد webassembly باشد و به صورت native در مرورگرها دات نت را اجرا کنیم.

کامپایل سی شارپ به WebAssembly توسط تیم Mono مایکروسافت انجام شده و عمده مشکلات فنی سر راه برداشته شده اند. اما برای اینکه عملا بشود از دات نت در مرورگر ها استفاده کرد، مایکروسافت در پی پیاده سازی پروژه جاه طلبانه ای به نام Blazor می باشد. در واقع Blazor فریم ورک Client-Side مبتنی بر دات نت خواهد بود، الهام گرفته از فریم ورک های کنونی (مانند Angular و React) و رقیبی جدید برای آن ها. فریم ورک Blazor هم مانند آن ها حول مفهوم Component شکل گرفته است. کامپوننت هایی که کلاس های سی شارپی هستند و با زبان Razor توسعه داده شده اند.

استفاده از دات نت در مرورگر ها می تواند موجب این شود که کد بیشتری را بین سرور و کلاینت بتوانیم به اشتراک بگذاریم و نیاز به دوباره کاری در هر دو سمت نداشته باشیم. علاوه بر این توسعه دهندگان سی شارپ کمی بیشتر به مفهوم Full Stack Developer نزدیک خواهند شد.
همچنین با استفاده از WebAssembly می توانیم به تمام کتابخانه های موجود جاوااسکریپتی هم دسترسی داشته باشیم و محدودیتی در این زمینه وجود ندارد. همچنین می توان DOM را هم از این طریق مدیریت و دستکاری کرد.

در حال حاضر تیم AspNet عهده دار کار بر روی پروژه Blazor شده است. از نوشته های آن ها چنین بر می آید که تا نهایی شدن این پروژه هنوز باید صبر کنیم.

* گیت هاب Blazor:
https://github.com/aspnet/Blazor

* کمی فنی تر:
http://blog.stevensanderson.com/2018/02/06/blazor-intro/

* بلاگ تیم AspNet در رابطه با پروژه جدید Blazor:
https://blogs.msdn.microsoft.com/webdev/2018/02/06/blazor-experimental-project/

*پادکست اسکات هنسلمن در مورد وب اسمبلی با یکی از توسعه دهنده گان فایرفاکس:
https://hanselminutes.com/581/inside-webassembly-with-mozilla-fellow-david-bryant

@irandotnet

این نوشته بر گرفته از کانال تلگرامی است

http://zangin.ir


http://tablokar.ir

۰ نظر موافقین ۱ مخالفین ۰ ۰۱ اسفند ۹۶ ، ۲۳:۱۳
کدچی