توسعه دهنده ی back-end چیست؟

توسعه دهندگان front-end بر روی کار با ابزارها، فن آوری ها و زبان های برنامه نویسی که در مرورگرهای وب قابل اجرا هستند، تمرکز می کنند. توسعه دهندگان back-end بر روی .... تمام چیزهای دیگر تمرکز می کنند.

پس در واقع  back-end شامل چیست؟ بیایید یکم گسترده تر به موضوع نگاه کنیم.

 

بیایید در مورد چگونگی کارکرد برنامه های وب صحبت کنیم.

- در ابتدا، یک مرورگر وب به اینترنت متصل شده و درخواست به مرورگر میرسد و مرورگر آن چه که به عنوان درخواست های http دریافت میکند را به آدرس های شناخته شده url می فرستد.

- اتفاق شگفت انگیزی (جادو) در بستر اینترنت رخ می دهد.

- در نهایت، به یک سرور (در کامپیوتر) که شما به عنوان یک توسعه دهنده وب بر آن کنترل دارید متصل می شود.

کار شما به عنوان توسعه دهنده وب این است که " آن اتفاق شگفت انگیز را بسازید" و آنچه را که کاربر توقع دارد ببیند، ارائه دهید.

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

 

Database ها

در کامپیوترتان، احتمالا بیشتر اطلاعات را در  فایل هایی بر روی سیستم فایل خود (file system) ذخیره کرده اید. سرورهای شما دارای فایل هایی هستند که می توانید به آنها نیز دسترسی داشته باشید، اما به طور کلی، شما می خواهید داده ها را در پایگاه های داده ذخیره کنید.

پایگاه های داده به شما اجازه افزودن، حذف ، ویرایش، و دسترسی راحت تر به همه چیز مانند داده های تولید شده توسط کاربر را می دهد. تقریبا تمام برنامه های وب از پایگاه های داده استفاده می کنند، و دو نوع متفاوت از پایگاه های داده وجود دارد: SQL و NoSQL.

اکثر برنامه های وب از پایگاه داده SQL استفاده می کنند و برای ساخت برنامه های کاربردی وب که به شما اجازه ساخت ، خواندن، ویرایش کردن ردیف ها را می دهد، رایج است. این موضوع به اختصار “CRUD” گفته می شود.

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

 

(Model / View / Controller Architecture) معماری MVC

تقریبا تمامی برنامه های مدرن وب از یک استاندارد معماری MVC استفاده می کنند. Ruby on Rails و سایر فریم ورک ها مانند ExpressJS این کار را می کنند. این فریم ورک، مسئولیت های مختلف در یک برنامه را جدا می کند و به بخش های مختلف برنامه اجازه می دهد به هر مسئولیت رسیدگی کند.

Model  بخشی از برنامه وب  است که به طور مستقیم با پایگاه داده ارتباط برقرار می کند. به عنوان یک لایه عمل می کند که تمامی کوئری های موردنیاز دیتابیس را اجرا می کند.

View یک صفحه ی  htmlاست که مرورگر وب باید ببیند در حالی که view یک مولفه front-end می باشد، ولی اکثر توسعه دهندگان back-end اگر لازم باشد قادر هستند سریعا چیزی را به صفحه وب اضافه کنند.

Controller نقش یک رابط بین بخش های مختلف برنامه وب است.

معماری RESTful. REST ، مفهومِ تفکر در موردِ معنای اساسی اینکه ، درخواست های HTTP واقعا چه هستند، می باشد. توسعه دهندگان سمت سرور قادرند در خصوص چگونگی درخواستهایhttp  که یک برنامه تحت وب قادر هست ببیند، فکر کنند و آن درخواست را  از طریق چیزی که به آن مسیریابی می گویند، به برنامه خود (به ویژه کنترل کنندگان آن) مرتبط کنند.

Business Logic (منطق تجارت). در نرم افزار کامپیوتر، business logic یا domain logic بخشی از برنامه است که قوانین کسب و کار دنیای واقعی را کد گذاری می کند که تعیین کند چگونه می توان داده را ایجاد، ذخیره و تغییر داد.

اگر شما در مورد ساخت یک بازی شطرنج فکر می کردید، یک مثال از business logic (منطق کسب و کار)، کد گذاری اطلاعاتی است که یک رخ به شیوه ای متفاوت از یک وزیر حرکت می کند.

 

نکات مهم در توسعه ی front end

توسعه دهندگان Back-end با سرورها و پایگاه های داده سر و کار دارند.  آنها همچنین به تبدیل درخواست های HTTP به پاسخ واقعی از اینترنت، کمک می کنند.

 

در اینجا به بررسی این که چرا برنامه نویس full-stack بهتر است میپردازیم:

توسعه دهندگان  full-stack قادرند که هم front-end بنویسند و هم با کدهایی که روی سرور اجرا میشوند سر و کار داشته باشند.

دلایل متعددی برای این که تلاش های خود را روی توسعه دهنده ی  full-stack شدن متمرکز کنید وجود دارد.

اول اینکه توسعه دهندگان  full-stack میتوانند روی هر جنبه ای از یک ویژگی کار کنند این به این معنی است که یک توسعه دهنده  full-stack میتواند به جای اینکه ایده های خود را فقط تا نیمه راه پیش ببرد ، تا انتها و تبدیل شدن به واقعیت پیش می برد.

این به این معنی است که چه شما ...

در یک شرکت برای اضافه کردن یک ویژگی کار کنید

ایده ای برای یک پروژه جانبی ایجاد کنید

اشکالات یک برنامه موجود را رفع کنید

... قادر خواهید بود با تمام جنبه های کد کار کنید.

 

دوم، حتی اگر شما تمایل بیشتری به کد front-end یا کد back-end داشته باشید، باید پایه و اساس در جنبه دیگر نیز داشته باشید.

شما نمی توانید یک توسعه دهنده front-end عالی باشید بدون اینکه قادر به صحبت با توسعه دهنده back-end در مورد مفاهیم ساختارهای پایگاه داده باشید.

همچنین نمی توانید یک توسعه دهنده back-end عالی باشید اگر درک نکنید که چطور انواع RESTful API هایی که برای توسعه دهندگان front-end آسان است که با آنها ادغام شوند، ساخته می شوند.

سوم، برنامه های وب همیشه شامل هر دو بخش می باشند. به منظور درک کامل از آنچه در یک برنامه وب رخ می دهد، شما نیاز به درک قوی از front-end  و back-end دارید.

بیایید به مقایسه فروشگاه بازگردیم اگر شما یک فروشگاه را مدیریت میکنید میخواهید متوجه شوید چگونه تجربه هایی که مشتریان میبنند را طراحی کنید هم چنین میخواهید بدانید قسمتی که مشتریان نمیبینند یعنی بخش های ذخیره سازی چگونه کار میکنند.

بهترین مدیر ممکن فروشگاه، مدیر فروشگاه "FULL STACK" است که  می داند هر قسمت چگونه کار میکند و  اینکه چگونه روی قسمت های دیگر تاثیر میگذارد را متوجه میشود.

 

درست همان چیزی است که در توسعه صدق می کند.

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

یک توسعه دهنده که قادر به نوشتن کد در هر قسمت از پروژه ی خود است، خیلی بیشتر با استعداد و تطبیق پذیر است.

ابزار مورد نیاز جهت توسعه وب سایت با backend

زبان برنامه نویسی php
زبان برنامه نویسی asp.net
زبان برنامه نویسی python
زبان برنامه نویسی java
زبان برنامه نویسی ruby

منبع:برنامه نویسان و آسمونی