کدهک
چرخه ی گارتنر نشان میدهد که هر تکنولوژی جدید در ابتدا خیلی سریع رشد می کند و مورد توجه قرار میگیرد. بعد جامعه علاقه اش را ازدست میدهد. ولی در دراز مدت جایگاه خودش را پیدا میکند.
بر مبنای همین تئوری فریم ورکی مانند Node.js در ابتدا خیلی سریع رشد کرد و همه گیر شد. اما الان در دوره ی افول به سر میبرد. بسیاری از کسانی که در ابتدا جذب نود شدند الان در حال برگشت به تکنولوژی های قدیمی تر و با ثبات تر مانند ASP و PHP هستند. اینکه Node.js بتواند دوباره خودش را بالا بکشد جای سوال دارد. این امر اگه چه ممکن است اما به عوامل بسیاری بستگی دارد.
میکرو سرویس چیست ؟
وقتی بازدید یک سایت بالا میرود دیگر یک سرور جوابگوی ترافیک بوجود آمده نیست. در این مواقع اولین راه حل استفاده از سرورهای قویتر است. اما هزینه سرورهای قویتر رشد تساعدی دارد و در میزان ظرقیت آنها هم محدودیت وجود دارد. در دراز مدت تنها چاره استفاده از چند سرور برای پاسخگویی به کاربران است. اینجا Microservice ها مهم میشوند.
تیم برنامه نویسی قسمتهایی از سایت که ترافیک بالایی دارند را به سایتهای کوچک با دیتابیس مجزا میشکند و آنها را در سرورهای مستقل قرار میدهد. مثلا سیستم آپلود فایل در یک سایت فروش فایل یا سیستم ارسال Notification در یک شبکه ی اجتماعی می تواند جدا سازی شود و حجم زیادی از ترافیک سرور اصلی را کم کند.
هر کدام از Microservice ها می توانند با تکنولوژی متفاوتی پیاده شوند که دست برنامه نویسان را برای انتخاب بهترین ها باز میگذارد. مثلا میشود سایتی داشت که همزمان از ASP و PHP و Node استفاده کند و دیتابیس های آن هم ترکیبی از SQL Server و NoSQL و MangoDB باشد.
این جدا سازی باعث میشود بتوان یک قسمت از سایت را بدون درگیر کردن سایر قسمتها بروز رسانی کرد و در صورت بروز مشکل در یک قسمت کل سایت از کار نمی افتد.
استفاده از میکروسرویسها چالشهای زیادی هم دارد. بعد از جدا کردن فریم ورکها و دیتابیس ها باید راهی برای برقراری ارتباط بین آنها ایجاد کرد. معمولا از سیستمهای پیام رسان استفاده میشود که پیاده سازی پیچیده ای دارند.
وقتی بازدید یک سایت بالا میرود دیگر یک سرور جوابگوی ترافیک بوجود آمده نیست. در این مواقع اولین راه حل استفاده از سرورهای قویتر است. اما هزینه سرورهای قویتر رشد تساعدی دارد و در میزان ظرقیت آنها هم محدودیت وجود دارد. در دراز مدت تنها چاره استفاده از چند سرور برای پاسخگویی به کاربران است. اینجا Microservice ها مهم میشوند.
تیم برنامه نویسی قسمتهایی از سایت که ترافیک بالایی دارند را به سایتهای کوچک با دیتابیس مجزا میشکند و آنها را در سرورهای مستقل قرار میدهد. مثلا سیستم آپلود فایل در یک سایت فروش فایل یا سیستم ارسال Notification در یک شبکه ی اجتماعی می تواند جدا سازی شود و حجم زیادی از ترافیک سرور اصلی را کم کند.
هر کدام از Microservice ها می توانند با تکنولوژی متفاوتی پیاده شوند که دست برنامه نویسان را برای انتخاب بهترین ها باز میگذارد. مثلا میشود سایتی داشت که همزمان از ASP و PHP و Node استفاده کند و دیتابیس های آن هم ترکیبی از SQL Server و NoSQL و MangoDB باشد.
این جدا سازی باعث میشود بتوان یک قسمت از سایت را بدون درگیر کردن سایر قسمتها بروز رسانی کرد و در صورت بروز مشکل در یک قسمت کل سایت از کار نمی افتد.
استفاده از میکروسرویسها چالشهای زیادی هم دارد. بعد از جدا کردن فریم ورکها و دیتابیس ها باید راهی برای برقراری ارتباط بین آنها ایجاد کرد. معمولا از سیستمهای پیام رسان استفاده میشود که پیاده سازی پیچیده ای دارند.
با استفاده از سایت https://jsfiddle.net می توانید پروژه های تست جاوا اسکریپت و Html بسازید و آنها را با دیگران به اشتراک بگذارید. jsFiddle یک ادیتور کد آنلاین است که به شما امکان اجرای دستورات جاوا اسکریپت را میدهد.
jsfiddle.net
JSFiddle - Code Playground
JSFiddle - Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle.
مقایسه تست سرعت فریم ورکهای زبان #C
در این تست فریم ورک باید عبارت "Hello,world" را برگرداند. میبینید که ارقام ASP.NET Core با ASP.NET قابل مقایسه نیستند.
منبع : www.techempower.com
در این تست فریم ورک باید عبارت "Hello,world" را برگرداند. میبینید که ارقام ASP.NET Core با ASP.NET قابل مقایسه نیستند.
منبع : www.techempower.com
قالب آماده (فارسی) برای ایجاد پروژه های ASP.NET Core 2 را می توانید در آدرس زیر دانلود کنید :
https://github.com/codehaks/Portal-Core-Fa
https://github.com/codehaks/Portal-Core-Fa
معرفی پروژه Portal
این پروژه به صورت چند لایه پیاده سازی شده است . لایه ها با استفاده از سیستم تزریق وابستگی جدید ASP Core به هم وصل شده اند.
برای دیتابیس از SQLite استفاده شده است ولی شما می توانید آن را به راحتی تغییر دهید.
در این پروژه از AutoMapper جهت مپ کردن کلاسهای مدل و ویو مدل استفاده شده است. همچنین پنل Admin و User هم در دو Area مجزا پیاده شده است.
همچنین این قالب شامل پروژه تست با استفاده از xUnit است که ابزار مورد استفاده ی تیم برنامه نویسی ASP Core در مایکروسافت است.
این پروژه به صورت چند لایه پیاده سازی شده است . لایه ها با استفاده از سیستم تزریق وابستگی جدید ASP Core به هم وصل شده اند.
برای دیتابیس از SQLite استفاده شده است ولی شما می توانید آن را به راحتی تغییر دهید.
در این پروژه از AutoMapper جهت مپ کردن کلاسهای مدل و ویو مدل استفاده شده است. همچنین پنل Admin و User هم در دو Area مجزا پیاده شده است.
همچنین این قالب شامل پروژه تست با استفاده از xUnit است که ابزار مورد استفاده ی تیم برنامه نویسی ASP Core در مایکروسافت است.
ابزار BaaS چیست ؟
بسیاری از اپلیکیشن های موبایل نیاز به یک سیستم ذخیره سازی آنلاین دارند. برای اینکار باید یک وب سرویس داشته باشند و سروری که اطلاعات را درون یک دیتابیس ذخیره کند. مشکل اصلی برای برنامه نویسان موبایل این است که باید پیاده سازی این وب سرویس را به یک برنامه نویس وب بسپارند.
در بسیاری از موارد وب سرویس کار زیادی انجام نمی دهد. هدف اصلی استفاده از وب سرویس ذخیره سازی اطلاعات کاربر یا تشخیص هویت آن است. اما در این میان هزینه ی تهیه ی سرور ، پیاده سازی سایت و وب سرویس و بروز نگاه داشتن آن کار مشکلی است.
در اینجا BaaS وارد میشود. این ابزار یک پنل مدیریتی در اختیار برنامه نویس قرار میدهد که سیستمهای تشخیص هویت و ذخیره سازی اطلاعات را قبلا پیاده کرده است. برنامه نویس موبایل با طراحی دیتابیس یک وب سرویس آماده تحویل میگیرد. بدون آنکه برای آن کدی بنویسد. همینطور امکان تغییر یا انجام تنظمیمات در دیتابیس از طریق API نیز در دسترس هست.
با استفاده از BaaS یک برنامه نویس Angular که فقط با JavaScript برنامه نویسی می کند می تواند بدون استفاده از دانش سمت سرور و طراحی دیتابیس و فقط با استفاده از API های BaaS تمامی نیازهای Backend را برطرف کند و دیگر نیاز به کسب دانش در مورد PHP یا ASP یا برنامه نویسی سمت سرور ندارد.
بسیاری از اپلیکیشن های موبایل نیاز به یک سیستم ذخیره سازی آنلاین دارند. برای اینکار باید یک وب سرویس داشته باشند و سروری که اطلاعات را درون یک دیتابیس ذخیره کند. مشکل اصلی برای برنامه نویسان موبایل این است که باید پیاده سازی این وب سرویس را به یک برنامه نویس وب بسپارند.
در بسیاری از موارد وب سرویس کار زیادی انجام نمی دهد. هدف اصلی استفاده از وب سرویس ذخیره سازی اطلاعات کاربر یا تشخیص هویت آن است. اما در این میان هزینه ی تهیه ی سرور ، پیاده سازی سایت و وب سرویس و بروز نگاه داشتن آن کار مشکلی است.
در اینجا BaaS وارد میشود. این ابزار یک پنل مدیریتی در اختیار برنامه نویس قرار میدهد که سیستمهای تشخیص هویت و ذخیره سازی اطلاعات را قبلا پیاده کرده است. برنامه نویس موبایل با طراحی دیتابیس یک وب سرویس آماده تحویل میگیرد. بدون آنکه برای آن کدی بنویسد. همینطور امکان تغییر یا انجام تنظمیمات در دیتابیس از طریق API نیز در دسترس هست.
با استفاده از BaaS یک برنامه نویس Angular که فقط با JavaScript برنامه نویسی می کند می تواند بدون استفاده از دانش سمت سرور و طراحی دیتابیس و فقط با استفاده از API های BaaS تمامی نیازهای Backend را برطرف کند و دیگر نیاز به کسب دانش در مورد PHP یا ASP یا برنامه نویسی سمت سرور ندارد.
آیا SPA گزینه ی خوبی است ؟
استفاده از Single Page Application ها به تازگی طرفداران زیادی پیدا کرده است. خیلی از برنامه نویسان وب رویای SPA را دارند. اما آیا پیاده سازی سایت ها به روش SPA گزینه ی درستی است ؟
مشکل این است که 80 درصد سایتهای اینترنتی نیازی به چنین ابزاری ندارند. شما اینقدر در یک سایت کار ندارید که نیاز به چرخش مداوم در صفحات آن داشته باشید. پس روانتر کردن فرم ظاهری چندان در کاربر تاثیر ندارد. در کنار اینها کندی بارگذاری اولیه SPA را هم اضافه کنید که کاربر را آزرده میدهد.
اگر هدف شما پیاده سازی یک اتوماسیون اداری تحت وب است که تعداد زیادی کارمند ساعتها در صفحات آن در رفت و آمد هستند SPA خوب است .اما به چه قیمتی ؟
هزینه ی پیاده سازی SPA حداقل دو تا سه برابر سایتهای دیگر است. علاوه بر اینکه وقت بیشتری میطلبد برنامه نویسانی با مهارت بسیار بالا نیاز دارد . این برنامه نویسان ارزان کار نمیکنند. جاوا اسکریپت به خودی خود زبان پیچیده ای است به این پیچیدگی فریم ورکهای SPA را هم اضافه کنید تا در یک کلاف سردرگم گیر کنید.
استفاده از Single Page Application ها به تازگی طرفداران زیادی پیدا کرده است. خیلی از برنامه نویسان وب رویای SPA را دارند. اما آیا پیاده سازی سایت ها به روش SPA گزینه ی درستی است ؟
مشکل این است که 80 درصد سایتهای اینترنتی نیازی به چنین ابزاری ندارند. شما اینقدر در یک سایت کار ندارید که نیاز به چرخش مداوم در صفحات آن داشته باشید. پس روانتر کردن فرم ظاهری چندان در کاربر تاثیر ندارد. در کنار اینها کندی بارگذاری اولیه SPA را هم اضافه کنید که کاربر را آزرده میدهد.
اگر هدف شما پیاده سازی یک اتوماسیون اداری تحت وب است که تعداد زیادی کارمند ساعتها در صفحات آن در رفت و آمد هستند SPA خوب است .اما به چه قیمتی ؟
هزینه ی پیاده سازی SPA حداقل دو تا سه برابر سایتهای دیگر است. علاوه بر اینکه وقت بیشتری میطلبد برنامه نویسانی با مهارت بسیار بالا نیاز دارد . این برنامه نویسان ارزان کار نمیکنند. جاوا اسکریپت به خودی خود زبان پیچیده ای است به این پیچیدگی فریم ورکهای SPA را هم اضافه کنید تا در یک کلاف سردرگم گیر کنید.
https://chrome.google.com/webstore/detail/frameworks/jgghnecdoiloelcogfmgjgcacadpaejf?hl=en
تا حالا کنجکاو شدید که یک سایت با چه ابزاری پیاده شده ؟
این افزونه ی کروم می تواند فریم ورکهای جاوا اسکریپت استفاده شده در یک سایت را نمایش دهد.
تا حالا کنجکاو شدید که یک سایت با چه ابزاری پیاده شده ؟
این افزونه ی کروم می تواند فریم ورکهای جاوا اسکریپت استفاده شده در یک سایت را نمایش دهد.
Google
Frameworks
Displays JavaScript frameworks used on a site.