آشنایی با مفهوم Front-End و Back-End
در واقع در مورد قسمتی از وب صحبت میکنیم که برای شما قابل مشاهده است. فرانت اند معمولا شامل دو بخش طراحی وب و توسعه رابط کاربری است.
در گذشته لغت «توسعه» تنها برای بخش سمت سرور به کار گرفته میشد اما به مرور زمان برعضی طراحان، جدای از فتوشاپ، با کدهای HTML و CSS و JavaScript درگیر شدند و لغت توسعه دهنده برای گروه اخیر هم به کار میرود.
تمامی بخشی که شما در وبسایتهای مختلف میبینید ترکیبی از HTML و CSS و JavaScript هستند. برای مثال همین سایت جهش که الان در آن هستید دارای منوها، فرمها، نوشتهها، طراحیها و برخی عناصر واکنشگرا است که همگی ترکیبی از سه زبان بالا است.
طبیعی است که با این تعریف، حدس بزنیم که یک توسعه دهنده رابط کاربری و طراح وب باید بر سه زبان بالا تسلط داشته باشد.
Back-end به طور معمول از سه بخش تشکیل شده. یک سرور، یک برنامه(application) و پایگاه داده(database).
در یک سایت خرید کالا، اگر شما اقدام به خرید کنید، در مراحل مختلف در حال تعامل با فرانت اند یا رابط کاربری آن وبسایت هستید و اطلاعات خود را وارد میکنید. وقتی که شما اطلاعات خودتان را وارد میکنید و درخواست خرید میدهید، برنامه یا اپلیکیشن وظیفه ذخیره سازی این اطلاعات را بر روی پایگاه داده برعهده دارد. برای این که پایگاه داده برای شما قابل لمستر باشد میتوانید آن را شبیه به یک صفحه اکسل در نظر بگیرید که اطلاعات مختلف در خانههای مختلف آن ذخیره شدهاند.
تمامی اطلاعات بر روی سرور ذخیره میشود و هرگاه که شما دوباره به وبسایت مورد نظرتان برگردید تا فرآیند خرید را تکمیل کنید یا خرید دیگری را انجام دهید، اطلاعات شما همانجا خواهند بود.
زبانها و تکنولوژیهای مختلفی برای توسعه سمت سرور ویا بک اند وجود دارد. ازجمله این تکنولوژیها میتوان از PHP، Ruby و Python نام برد. برای استفاده راحتتر از این تکنولوژیها فرم ورکهای (Framework) مختلفی ایجاد شدهاند که از میان مهمترین آنها میتوان به Django، Laravel و Ruby on Rails اشاره کرد.
اگر بخواهیم به صورت خیلی ساده مباحث گفته شده را مرور کنیم، بخش رابط کاربری مانند طراحی ظاهری نما و داخل ساختمان است. این که دیوارها چه رنگی باشند، از چه کفپوشی استفاده شود و چینش وسایل خانه چطور باشد و نمای ساختمان به چه شکلی باشد.
بخش سمت سرور هم مانند خود ساختمان است که پوسته ظاهری یا طراحی داخلی و نما بر روی آن مینشیند. اگر ساختمانی وجود نداشته باشد، طراحی ظاهر آن معنی پیدا نمیکند و اگر نمای زیبایی نباشد، یک ساختمان هرقدر هم که مستحکم و اصولی ساخته شد باشد، افراد زیادی را به سمت خود جذب نمیکند.
برنامه نویس Front End
“Front End” به طور کلی به چیزهایی که شما دقیقا بر روی مرورگرتان مشاهده میکنید اشاره میکند که بعضی افراد از آن با نام کلاینت-ساید یا همان “client-side” یاد میکنند . که نحوه ی ارائه ی محتوای رابط کاربری با تمامی جزئیات آن مانند منو ها و … . Front End باید بتواند هم با کاربر و هم با back end ارتباط برقرار کند .
یک توسعه دهنده front end بیشتر اوقات بر درک و یادگیری HTML و CSS و JavaScipt که همان طراحی سایت است تمرکز میکنند . نیازی نیست که آن ها بر روی زیبا کردن عناصر سایت تمرکز کنند ، این کار معمولا به یک طراح محول میشود ، اما اطمینان از اینکه اطلاعات به صورت کار آمد ارائه میشوند و اینکه تعامل کاربران با صفحات وب به میران کافی روان است یا نه به عهده ی اوست .
برنامه نویس Back End
“Back End” به طور کلی به عمق برنامه ای که در سرور اجرا میشود اشاره میکند که بعضی از افراد آن از آن به عنوان سرور-ساید یا همان “server-side” یاد میکنند. بک اند بیشتر روی ارسال اطلاعات صحیح به مرورگر تمرکز میکند . آن تکه ای از یک توده ی یخ شناوری است که زیر سطح آب قرار دارد . چیز های زیادی نیاز دارند که به صورت صحیح ارسال شوند تا front end بتواند آن را نمایش دهد .
ممکن است که از نظر ما گوگل یک موتور جستجوی سرراست باشد . اما آن ها یک ارتش از مهندسین را استخدام کرده اند که مطمئن شوند تمامی قطعاتی که شما آنها را نمیبینید به صورت صحیح کار میکنند با خیر .
برنامه نویس Full Stack
توسعه دهنده های Full Stack هر دو را با هم انجام میدهند . برای یادگیری هر دوی آن ها باید اطلاعات زیادی کسب شود ، یک توسعه دهنده ی Full Stack میتواند به راحتی با هر دو( پایگاه داده و طراحی سایت ) ارتباط برقرار کند . این روز ها روند به گونه ای است که شرکت ها به دنبال توسعه دهنده هایی میگردند که در هر دو زمینه دانش بالایی داشته باشد . پیدا کردن شغل برای توسعه دهنده Full Stack به خاطر انعطاف پذیری هایش بسیار آسان تر است . همچنین یاد گیری را بسیار لذت بخش تر میکند زیرا شما میتوانید به طور کامل اپلیکیشن ها را به زندگیتان وارد کنید .
یک برنامه نویس حرفه ای یا همان فول اِستک دولپر میبایست مهارتهای زیر را دارا باشد:
- مسلط به زبانهای برنامه نویسی پایه
- آشنایی با UX و UI
- کنترل کیفیت محصول
- انواع فناوریها و کتابخانهها
- انواع دیتابیس و مدیریت آنها
- هک و امنیت
- بهینه سازی موتورهای جستجو
- درک نیازهای کاربران در محصول
- آشنایی با سیستم عاملهای مختلف
- آشنایی با کراس پلتفرم
- آشنایی با شبکه
- آشنایی با مدیریت سرور و هاستینگ
- آشنایی با سیستم های مدیریتی و مجازی مانند VM
- آشنایی با سخت افزار
- آشنایی با رابط های برنامه نویسی API ها
- آشنایی با انواع محیط های توسعه
- و موارد دیگر که در یک پروژه از صفر تا صد میتوان به آنها نیاز پیدا کرد
برنامه نویس های Full-Stack Developer به تنهایی میتوانند درتولید و توسعه یک محصول موثر باشند و زمانی که با مشکلی مواجه شوند نمیگویند من آن را بلد نیستم٬ بلکه حتما آن را حل خواهند کرد.