برنامه نویسی front-end و برنامه نویسی back-end
در سالهای اخیر اصطلاحات برنامه نویسی و توسعه Back-End و Front-End در دنیای توسعه نرم افزار بسیار رایج است. به نظر میرسد بیشتر شرکتهای نرافزاری و حتی برنامه نویسان فری لنس، تمایل دارند طراحی و پیاده سازی دو بخش واسط کاربری و منطق برنامه خود را کاملا از هم مجزا کنند تا از مزیت های ساخت یافتگی چنین معماری نرم افزاری بهره ببرند. پیش از این و هم اکنون هم توسعه نرم افزار به صورت MVC تا حد بالایی توانسته است منطق برنامه را از ویژگی های UI یا واسط کاربری آن جدا کند و نگاهی تازه به استفاده از پایگاه داده ها با مدلسازی و لایه بندی آن ایجاد کند.
در دنیای مهندسی نرم افزار به ویژه در بحث سیستم های توزیع شده، معماری های مختلفی برای اتصال ماژو لهای جداگانه یک نرم افزار ارئه شده است. یکی از این معماریها، توسعه کلاینت/سرور یا همان سرویس دهنده و سرویس گیرنده میباشد. در این نوع معماری بخشی از برنامه که وظیفه پیاده سازی الگوریتم های مختلف و دسترسی به منابع سیستمی را دارد در یک سمت به عنوان سرویس دهنده و بخشی دیگر که وظیفه ارتباط با کاربران را به صورت واسط بر عهده دارد در سمتی دیگر توسعه پیدا میکند. از این رو اصطلاح برنامه سمت سرور (server-side) و برنامه سمت کلاینت (client-side) استفاده شده است.
نحوه اتصال این دوبخش بیشتر بر اساس سرویس ها یا API هایی در بستر وب و یا سایر پروتکلهای ارتباطی است. از این رو برنامه سمت سرور با توسعه API هایی امکان دسترسی برنامه سمت کلاینت را به منابع سیستمی به صورت حساب شده و امن و در ضمن از راه دور فراهم می آورد. این کار مزیت های زیادی دارد از جمله :
- جدا سازی منطق برنامه از واسط کاربری.
- جداسازی عملیات پایگاه داده از منطق برنامه (اگر برنامه به صورت MVC در سرور پیاده سازی شود).
- تمرکز برنامه نویسان سمت کلاینت و طراحان بر تکنیک های UI و UX.
- تمرکز برنامه نویسان سمت سرور بر منطق برنامه.
- ایزوله سازی عملیات اشکالزدایی جهت امن ماندن سایر بخش های نرم افزار.
- نوشتن انواع کلاینت ها بر روی یک برنامه سمت سرور.
در دنیای وب با ظهور NodeJS به عنوان runtime مستقل زبان جاوااسکریپت، جهش بزرگی برای ارئه کتابخانه ها و بسترهای پیشرفته برنامه نویسی سمت کلاینت اتفاق افتاد و در نتیجه بستر هایی مانند Angular,React و Vue.js که با جاوا اسکریپت توسعه داده میشوند عرضه شدند که منجر به نگاهی جدید فنی مهندسی به برنامه نویسی سمت کلاینت شد.
از طرف دیگر کتابخانه ها و پلتفرمهایی برای نوشتن برنامه های سمت سرور ارائه شدند که منطق آنها نه بر واسط کاربری بلکه بر پردازش درخواستهای کلاینتها و سرعت و دقت و سادگی در این پاسخگویی و ارتباط موثر با پایگاه داده ها است. و بسترهایی که با شیوه های سنتی و ترکیبی ارائه شده بودند مانند ASP.Net در جهت ایجاد API های موثر تغییر مسیر دادند.(برای یادگیری نود جی و ری اکت جی اس می توانید از دوره های آموزشی سایت استفاده کنید.)
حال میدانیم که منظور از توسعه برنامه یا برنامه نویسی Front-End همان برنامه نویسی در یکی از بسترهای سمت کلاینت مانند React است و برنامه نویس Back-End همان کسی است که با یکی از زبانهای برنامه نویسی و بسترهایی که معرفی میشوند برای ارائه API ها برنامه نویسی میکنند. و اگر شما در هردو سمت برنامه نویسی می کنید به اصطلاح full-stack-developer هستید.
پیشنهاد شگفت انگیز کدفرند،دانلود به تمامی دوره های آموزشی کدفرند تنها با ۹۹ هزار تومان
برای اینکه بدانید چه ابزاری را در جای مناسب انتخاب کنید و توسط آن سیستم نرم افزاری مورد نظر را پیاده سازی کنید برخی از بستر های توسعه در هردو بخش front-end و back-end را در زیر مشاهده کنید:
برنامه نویسی Front-End
- – اصول برنامه نویسی javascript و کتابخانه Jquery (به عنوان پایه و اساس نگاه فرانت اند).
- – کتابخانه Reacrt (بسیار مناسب برای ایجاد وب سایتهای شبکه اجتماعی و چت آنلاین).
- – پلتفرم Angular-2 برای توسعه سیستم های اینترپرایز تحت وب.
- – بستر Vuejs برای توسعه وب سایتهایی مانند فروشگاههای الکترونیکی و بلاگ ها.
برنامه نویسی Back-End
- – ASP.net Core با زبان برنامه نویسی #C برای ایجاد API های سریع در سطح سیستم های متوسط و بزرگ.
- – Spring Boot با زبان برنامه نویسی Java برای پیاده سازی بخش سرور برنامه هایی بزرگ با معماری توزیع شده و پیچیده تر.
- – کتابخانه Flask با زبان برنامه نویسی Python برای نوشتن API های کوچک و سریع و کاربردی.
- – پلتفرم Django برای نوشتن API هایی برای برنامه های متوسط به پایین.
- – پلتفرم Laravel با زبان برنامه نویسی PHP برای نوشتن API های برنامه های متوسط.
- – فریم ورک Falcon با زبان برنامه نویسی PHP برای توسعه سرویس هایی متوسط با توان عملکردی بالا.
- – NodeJS برای ارائه برنامه های سمت سرور که ویژگی IO بالایی دارند (برنامه های چت).
در مقالاتی دیگر سعی خواهیم کرد نگاهی عمیق و کارشناسی به پلتفرمهای برنامه نویسی سمت سرور بیندازیم.