هر روز بسیاری از افراد را میبینیم که مفاهیم توسعه وب را با هم اشتباه میکنند و نمیتوانند تشخیص دهند که تفاوتهای بین برنامه نویسی back end و برنامه نویسی front end در چیست. در اینجا شرح خواهیم داد که تفاوت بین این دو به طور خلاصه چیست و تمرکز خود را در مورد چگونگی تبدیل شدن به یک برنامه نویس back end و فناوریهای مورد استفاده برای این منظور به کار میگیریم.
توسعه وب چیست؟
توسعه وب شغلی است که در آن برنامههایی طراحی میکنند که از طریق اینترنت یا هر شبکه دیگر قابل دسترسی است و با استفاده از مرورگرها قابل مشاهده است. معمولا این کار دو بخش دارد که یکی طراحی بخش گرافیکی و قالب وبسایت و دیگری سمت سرور است.
Front end جایی است که شما از HTML ، CSS و JavaScript برای طراحی ارائه صفحات وب استفاده میکنید. اینجاست که تمام زیباییها اتفاق میافتد و این قسمت مسئول نشان دادن دادههای گرفته شده از back end و انجام تعامل با کاربر است.
در حالی که front end وظیفه نمایش دادهها را دارد، back end جایی است که شما دادههای مورد نیاز برای آن را تولید میکنید و این شامل کار با یک زبان برنامه نویسی و یک پایگاه داده (در بیشتر اوقات) است.
چگونه میتوان یک برنامه نویس سمت سرور شد؟
هنگام صحبت کردن در مورد فرانت اند، شما چارهای جز HTML ، CSS و JavaScript ندارید که باید هر سه مورد را بلد باشید، زیرا هیچ چیز دیگری نمیتواند این سه را جایگزین کند. با این وجود فناوریهای دیگری نیز وجود دارد که میتوانید از آنها استفاده کنید که به این سه مورد تبدیل میشوند یا به شما در طراحی صفحات وب با سهولت بیشتری مانند پیش پردازندهها، کتابخانهها و فریمورکها کمک میکنند. اما وقتی به عقب برگردیم، میبینیم که این راه بسیار وسیعتر است و انتخابهای شما در این مورد بیشمار است.
یک برنامه نویس سمت سرور باید حداقل یک زبان برنامه نویسی و معمولا فریمورکی را برای سهولت در کار خود بداند. زیرا فریمورکها ویژگیهایی را در اختیارتان قرار میدهند که باعث میشود شما از دوباره کاری پرهیز کنید و در زمانتان نیز صرفه جویی داشته باشید، همچنین یک بانک اطلاعاتی در اختیار داشته باشید تا بتوانید دادههای برنامه را در آن ذخیره کنید. ابزارهایی نیز وجود دارد که میتواند برای بهبود تجربه برنامه نویسی شما مورد استفاده قرار گیرد.
در اینجا برخی از شناخته شده ترین فناوریهایی که میتوانید یاد بگیرید را برای شروع کار سمت سرور و توسعه وبسایت، ذکر خواهیم کرد.
وب سرورها
سرورهای وب (با نام مستعار HTTP سرور) بخش مهمی از دانش برنامه نویسی سمت سرور هستند. سرورهای وب کدی را که شما نوشتید اجرا کرده و آن را در وب سرویس ارائه میدهند تا در دسترس باشد. شما معمولا نیازی به دانستن نحوه کارکرد آنها ندارید، اما بهتر است به صورت سطحی بدانید که چگونه آنها کار میکنند تا بتوانید برنامه خود را روی آنها تنظیم کنید. در اینجا برخی از شناخته شده ترین وب سرورها آورده شده است:
Apache
آپاچی یکی از پرکاربردترین سرورهای وب است که تاکنون بطور خاص در سیستمعاملهای لینوکس نصب شده است (میتواند در ویندوز، مک و BSD نیز نصب شود). این یک پروژه متنباز است که معمولا برای اجرای اسکریپتهای پی اچ پی روی آن استفاده میشود. اگرچه در صورت پیکربندی میتواند زبانهای برنامه نویسی دیگری مانند پایتون را هم اجرا کند.
IIS
IIS (خدمات اطلاعات اینترنتی) یک سرور وب قدرتمند است که توسط مایکروسافت ساخته شده است که متنباز نیست و یک نرمافزار تجاری است و فقط در ویندوز قابل استفاده است. IIS معمولا برای ارائه برنامههای دات نت استفاده میشود. این سرویس همچنین میتواند به پی اچ پی و برخی زبانهای دیگر نیز سرویس دهد.
NGINX
NGINX یکی دیگر از سرورهای وب قدرتمند است که بیشتر در سرورهای لینوکس استفاده میشود و متنباز و رایگان است. معمولا به عنوان یک پروکسی معکوس روی آپاچی استفاده میشود اما میتواند به عنوان یک وب سرور مستقل نیز مورد استفاده قرار گیرد.
LiteSpeed
گفته میشود LiteSpeed یکی از سریعترین سرورهای وب تا به امروز است. این سرویس رایگان نیست و صاحب سرور باید مبلغی را بپردازد تا بتواند آن را نصب کند که معمولا به عنوان یک گزینه جایگزین برای Apache در ارائه خدمات به وبسایتهای پی اچ پی استفاده میشود.
پنلهای کنترل میزبانی وب
به عنوان یک برنامه نویس سمت سرور مخصوصا هنگام استقرار برنامه کاربردی، پنلی به نام پنل مدیریت وب یا کنترل پنل میزبانی وب ارائه خواهد شد که به شما این امکان را میدهد تا برای بارگذاری برنامه خود و ایجاد پایگاه داده به دایرکتوری روت دسترسی داشته باشید. بعضی اوقات مجبور هستید این کارها را بصورت دستی از سرور انجام دهید اما این پنلها این کار را بسیار راحتتر می کنند. به عنوان یک توسعه دهنده فرانت اند نیازی به یادگیری نحوه نصب یا پیکربندی این پنل ها را ندارید اما بهتر است بدانید که چگونه از آنها استفاده کنید. در اینجا برخی از محبوب ترین موارد را آوردهایم.
cPanel
میتوان گفت cPanel یکی از پیشرفتهترین پنلها تاکنون است و توسط ارائه دهندگان میزبانی پی اچ پی بسیار مورد استفاده قرار میگیرد. cPanel خودش رایگان نیست (اشتباه نکنید، نیازی به پرداخت هزینه آن نیست، فقط از آن استفاده خواهید کرد و قبلا توسط سرور، پرداخت و نصب شده است).
DirectAdmin
ما معتقدیم که DirectAdmin دومین کنترل پنل میزبان پی اچ پی است. همچنین یک نرمافزار رایگان است. DirectAdmin دارای ویژگیهای نسبتا کمتری نسبت به cPanel است اما صادقانه بگویم تمام کارهایی را که معمولا لازم دارید، به خوبی انجام میدهد.
Plesk
Plesk یک کنترل پنل میزبانی وب است که هم در سرورهای لینوکس و هم برای ویندوز استفاده میشود.
زبانهای برنامه نویسی و فریمورکهای آنها
ما قصد نداریم همه چیز را در اینجا لیست کنیم، زیرا این یک لیست بیپایان خواهد بود بلکه تعدادی از موارد مشهور را در اینجا لیست میکنیم تا جایی که مطالعه آن ارزش وقت شما را داشته باشد. همچنین فرصتهای شغلی را نیز در نظر میگیریم.
PHP
پی اچ پی یک زبان برنامه نویسی است که برای توانمند سازی بسیاری از وبسایتها از جمله Facebook ، Yahoo و WordPress استفاده میشود.
پی اچ پی یک زبان پویا است که میتوانید یاد بگیرید و از ابتدای آن کاملا آسان است.
پی اچ پی و جامعه آن بسیار بزرگ هستند، بنابراین هزاران منبع برای یادگیری رایگان این زبان پیدا خواهید کرد. در اینجا برخی از آنها ذکر شده است:
وبسایت رسمی: https://www.php.net
W3Schools: https://www.w3schools.com/php/default.asp
راهنمای آموزشی: https://www.tutorialspoint.com/php/
Laravel
لاراول یکی از فریمورکهای مورد بحث امروزه است. این فریمورک به زبان PHP نوشته شده است و توسعه پی اچ پی را واقعا سرگرم کننده میکند. لاراول دارای یک اکوسیستم عظیم و یک جامعه واقعا بزرگ در پشت آن است. یکی از نکات موفقیت آمیز لاراول مستندات زیبا و کامل و تلاش آنها برای آسان کردن یادگیری لاراول است. بنابراین هزاران منبع برای یادگیری لاراول با وبسایت رسمی لاراول در https://laravel.com و Laracasts در https://laracasts.com وجود دارد.
Symfony
سیمفونی یک فریمورک عظیم پی اچ پی است که توسط بسیاری از برنامهها مورد استفاده قرار میگیرد و بستههای آن توسط لاراول نیز استفاده میشود. یادگیری سیمفونی به دلیل منحنی یادگیری کمی دشوار است، اما اگر وقت خود را صرف آن کنید، ارزش آن را دارد.
در اینجا وبسایت رسمی سیمفونی آورده شده است: https://symfony.com
C# / .Net
سی شارپ یک زبان برنامه نویسی است که بیشتر در برنامه میزبان ویندوز استفاده میشود که از فریمورک دات نت استفاده میکند. فریمورک دات نت و زبان سی شارپ کاملا محدود به یکدیگر هستند، بنابراین با سی شارپ احتمالا چارهای جز استفاده از فریمورک دات نت را ندارید. مایکروسافت اخیرا .Net Core را منتشر کرده است که میتواند بر روی سیستم عاملهای دیگر مانند لینوکس نیز اجرا شود اما سی شارپ بیشتر در سرورهای ویندوز که توسط IIS همانطور که قبلا گفته شد، اجرا میشود.
Node.js
Node.js نرمافزاری است که شما را قادر میسازد جاوااسکریپت را در سمت سرور اجرا کنید. به این معنی که در صورت تمایل میتوانید از جاوااسکریپت برای سمت سرور و همچنین سمت کلاینت خود استفاده کنید. بسیاری از برنامههای نوپا از Node.js به عنوان پشتیبان استفاده میکنند، زیرا تنظیم و اجرای آن تقریبا بر روی هر پلتفرم موجود از جمله لینوکس، ویندوز و مک بسیار ساده است.
این وبسایت رسمی Node.js است: https://nodejs.org
یادگیری JavaScript / Node.js از آنجا که میلیاردها آموزش در یوتیوب وجود دارد، بسیار آسان است.
Express.js
Express.js فریمورکی است که باعث میشود هنگام نوشتن برنامه Node.js به سردرد شدیدی دچار شوید. این برنامه ابزارهای مفیدی مانند مسیریابی برای نوشتن برنامه را با سرعتی بسیار زیاد در اختیار شما قرار میدهد.
Python
پایتون به دلیل سینتکس ساده آن احتمالا یکی از محبوبترین زبانهای برنامه نویسی است. همچنین از پایتون برای نوشتن برنامه سمت سرور استفاده میشود که بیشتر برای برنامههای محرک AI (هوش مصنوعی) یا (ML (Machine Learnin استفاده میشود. بنابراین اگر برنامه جدید شما به AI یا ML وابسته است، پایتون اولین انتخابی است که باید در نظر بگیرید.
برای شروع یادگیری پایتون میتوانید به https://www.learnpython.org یا https://www.w3schools.com/python/default.asp مراجعه کنید.
Django
جنگو فریمورکی است که با پایتون نوشته شده و به دلیل توسعه سریع و سهولت استفاده مشهور شده است. یادگیری آن ممکن است مدتی طول بکشد اما مطمئنا ارزش آن را دارد.
در اینجا وبسایت رسمی جنگو وجود دارد: https://www.djangoproject.com
Ruby
روبی یک زبان برنامه نویسی است که به دلیل سادگی و سینتکسی بسیار آسان در مقایسه با سایر زبانها شناخته شده است. همچنین توسط استارتاپها بسیار مورد استفاده قرار میگیرد. میتوانید یادگیری Ruby on Tutorialpoints را در اینجا https://www.tutorialspoint.com/ruby شروع کنید.
RoR
RoR یا Ruby on Rails چیزی است که روبی را به یک معامله بزرگ تبدیل کرده و دلیل اصلی موفقیت روبی است. RoR فریمورکی است که با روبی نوشته شده است و واقعا سریع است و برای توسعه برنامه شما کاربرد دارد. وبسایتهای مختلفی وجود دارند که دقیقا مانند این وبسایت DEV.to، از RoR استفاده میکنند. در اینجا وبسایت رسمی RoR آمده است: https://rubyonrails.org
بانکهای اطلاعاتی (پایگاه داده)
بانک اطلاعاتی نرمافزاری است که دادههای شما را ذخیره و دستکاری میکند و میتوانید بعدا آنها را بازیابی کنید. یک پایگاه داده معمولا به زبانی که برنامه نویسی را برای اتصال به آن برقرار میکند، محدود نمیشود و معمولا در اکثر سیستمعاملهای اصلی نصب میشوند.
MySQL
MySQL یکی از پرکاربردترین بانکهای اطلاعاتی است که به ویژه توسط برنامههای پی اچ پی مانند WordPress ، WHMCS، جوملا، دروپال و ... مورد استفاده قرار گرفته است.
MySQL رایگان و متنباز است. MySQL یک RDBMS (سیستم مدیریت پایگاه داده ارتباطی) است. برای اطلاعات بیشتر اینجا را بررسی کنید: https://www.tutorialspoint.com/sql/sql-rdbms-concepts.htm و از SQL استفاده کنید که برای کار با آن باید زبان SQL را بدانید.
اینجا وبسایت رسمی MySQL است: https://www.mysql.com
برای این موضوع میتوانید آموزش SQL W3Schools SQL را در https://www.w3schools.com/sql فرا بگیرید.
Microsoft SQL Server
سرور MS SQL یکی دیگر از RDMBS است که از زبان SQL استفاده میکند. سرور MS SQL یک پایگاه داده قدرتمند است اما رایگان و متنباز نیست و یک نرمافزار پولی است.
در اینجا وبسایت رسمی MS SQL Server آمده است: https://www.microsoft.com/en-us/sql-server
MongoDB
MongoDB یک پایگاه داده نسبتا جدید است که یک RDBMS نیست و از SQL استفاده نمیکند. اما در عوض از BSON (باینری JSON) استفاده میکند. برای ذخیره دادههای خود در MongoDB یا بازیابی اطلاعات، باید ساختار کوئری آن را بیاموزید.
برای یادگیری MongoDB میتوانید با راهنمای رسمی آن در https://docs.mongodb.com/manual/tutorial/query-document شروع کنید.
Git
گیت نه یک زبان برنامه نویسی و نه یک فریمورک است. این ابزاری است که توسط همه برنامه نویسان (علیرغم زمینهای که در آن کار میکنند) برای کنترل نسخه کدهای آنها استفاده میشود. این ابزار روشهای عالی برای مدیریت کد و نسخههای آن برای پیگیری کار شما را فراهم میکند. در صورت بروز مشکل، میتوانید به راحتی به نسخه قبلی برگردید.
گیت فقط یک ابزار است و وبسایتهای زیادی وجود دارند که سرویس گیت را هم بصورت رایگان و هم پولی برای کدهای خود مانند GitHub ، BitBucket و GitLab ارائه میدهند.
برای شروع یادگیری گیت میتوانید آموزش Git Atlassian (شرکت BitBucket) را در https://www.atlassian.com/git ببینید.
امیدواریم که از این مقاله لذت کافی را برده باشید و باب آشنایی شما با انواع زبانهای برنامه نویسی سمت سرور و فریمورکهای آنها، باز شده باشد.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید