برای اینکه در دنیای وب موفق شوید نیاز است که شما با دو مفهموم مهم و کاربردی در دنیای وب، Frontend و Backend و تفاوت بین این دو آشنا باشید و بتوانید با توجه به نیازتان از آن ها بهره مند شوید. در این مقاله سعی بر این است که در مورد این دو مفهوم و تفاوت بین آن ها، مطالب آموزنده و مفیدی در اختیار شما عزیزان قرار گیرد. با ماگرتا همراه باشید.
اگر تازه شروع به یادگیری توسعه وب کرده اید، احتمالا در مورد frontend و backend زیاد شنیده اید. اما دقیقاً منظورچیست؟ اگر شما یک مبتدی در این زمینه هستید، شناخت نسبت به آن ها و اینکه هر کدام چه مواردی را پوشش می دهند مشکل است.
در حالی که توسعه دهنده frontend و backend به طور مشخصی از یکدیگر متمایز شده اند و مانند دو روی یک سکه مشابه هستند. عملکرد وب سایت این گونه است که با هر طرف که ارتباط برقرار می کند به آن اعتماد کرده و به طور موثر با طرف دیگر به عنوان یک واحد تنها عمل می کند. آیا یکی از دیگری مهم تر است؟ نه. هر دوی آن ها نقش بسیار مهمی در توسعه وب دارند. پس ما باید از کجا شروع کنیم؟ بیایید با یک سکه موضوع را بررسی کنیم.
فرانت اند “Frontend” چیست؟
زمانی که در مورد فرانت اند “Frontend” وب صحبت می کنیم، منظور آن بخشی است که قابل دیدن است و با آن تعامل می کنیم. فرانت اند “Frontend” معمولا از دو بخش تشکیل می شود: طراحی سایت و توسعه فرانت اند وب.
در گذشته اگر کسی از توسعه صحبت می کرد، عموما مربوط به بک اند “Backend” بود، اما در چند سال گذشته این موضوع بسیار تغییر کرده است و نیاز داریم میان کسی که سایت را در نرم افزاری مانند فوتوشاپ طراحی می کند و کسی که آنها را تبدیل به کد های HTML و CSS می کند، تفاوت بگذاریم. این موضوع زمانی که طراحان به سوی استفاده از JavaScript و JQuery (که از کتابخانه های جاواسکریپت است) روی آوردند بسیار جدی تر شد.
به همین خاطر، اگر اکنون می گوییم “طراح سایت”، منظور هم افرادی است که با فوتوشاپ و نرم افزارهای گرافیکی مشابه کار می کنند و هم افرادی که آن طرح ها را به کد های HTML، CSS، جاوا اسکریپت و JQuery بدل می کنند.
تمام چیزی که شما در یک وب سایت می بینید، مجموعه ای است از HTML، CSS و جاوا اسکریپت که تماما با مرورگر وب شما کنترل می شوند. مانند صفحات، منو ها، دکمه ها، فونتها، فرم های تماس و … .
بک اند “Backend” چیست؟
بک اند “Backend” عموما از سه بخش تشکیل می شود: یک سرور، یک برنامه و یک پایگاه داده ها (دیتا بیس). اگر به عنوان مثال قصد خرید یک بلیت از وب سایتی را داشته باشید، معمولا سایت را باز میکنید و با فرانت اند “Frontend” تعامل می کنید. زمانی که اطلاعات را وارد کردید، برنامه آن اطلاعات را در پایگاه داده هایی که روی سرور قرار دارد ذخیره می کند.
تمام اطلاعاتی که وارد کردید در سرور باقی می مانند و مثلا زمانی که برای پرینت بلیت دوباره وارد حساب کاربری آن وب سایت شوید، تمام آنها برای شما قابل مشاهده می باشند.
فردی که با استفاده از تمام این تکنولوژی ها استفاده می کند تا با یکدیگر کار کنند توسعه دهنده بک اند “Backend Developer” می گوییم. تکنولوژی های بک اند عموما شامل زبانهای برنامه نویسی مانندAsp.net، PHP، Ruby، Python و غیره می باشند. همچنین برای اینکه این تکنولوژی ها آسان تر نیز شوند گاهی از فریم ورک هایی مانند Ruby on Rails، Cake PHP و … برای سرعت دادن به توسعه برنامه استفاده می شود.
برنامه نویس Full Stack کیست؟
توسعه دهنده های Full Stack هر دو را با هم انجام میدهند . برای یادگیری هر دوی آن ها باید اطلاعات زیادی کسب شود ، یک توسعه دهنده ی Full Stack میتواند به راحتی با هر دو( پایگاه داده و طراحی سایت ) ارتباط برقرار کند . این روز ها روند به گونه ای است که شرکت ها به دنبال توسعه دهنده هایی میگردند که در هر دو زمینه دانش بالایی داشته باشد . پیدا کردن شغل برای توسعه دهندهFull Stack به خاطر انعطاف پذیری هایش بسیار آسان تر است . همچنین یاد گیری را بسیار لذت بخش تر میکند زیرا شما میتوانید به طور کامل اپلیکیشن ها را به زندگیتان وارد کنید.
یک برنامه نویس حرفه ای یا همان فول اِستک دولپر میبایست مهارتهای زیر را دارا باشد :
– مسلط به زبانهای برنامه نویسی پایه
– آشنایی با UX و UI
– کنترل کیفیت محصول
– انواع فناوریها و کتابخانهها
– انواع دیتابیس و مدیریت آنها
– هک و امنیت
– بهینه سازی موتورهای جستجو
– درک نیازهای کاربران در محصول
– آشنایی با سیستم عاملهای مختلف
– آشنایی با کراس پلتفرم
– آشنایی با شبکه
– آشنایی با مدیریت سرور و هاستینگ
– آشنایی با سیستم های مدیریتی و مجازی مانند VM
– آشنایی با سخت افزار
– آشنایی با رابط های برنامه نویسی API ها
– آشنایی با انواع محیط های توسعه
– و موارد دیگر که در یک پروژه از صفر تا صد میتوان به آنها نیاز پیدا کرد
برنامه نویس های Full-Stack Developer به تنهایی میتوانند درتولید و توسعه یک محصول موثر باشند و زمانی که با مشکلی مواجه شوند نمیگویند من آن را بلد نیستم٬ بلکه حتما آن را حل خواهند کرد.