برنامه نویسی وب
برنامه نویسی وب یا توسعه وب (Web Development) به معنای استفاده از زبان های برنامه نویسی جهت توسعه انواع وب سایت ها، وب اپلیکیشن ها و نرم افزارهای کاربردی تحت شبکه و اینترنت است. به صورت کلی در علوم کامپیوتر ما به شبکه ای از شبکه های به هم پیوسته شبکه وب (Web) می گوئیم. بزرگترین شبکه وب، شبکه جهانی اینترنت (World Wide Web) است که در سرتاسر جهان گسترده شده است و امکان استفاده آن برای همه فراهم شده است.
برنامه نویسی وب به لطف توسعه شبکه اینترنت و زیرساخت های شبکه ها توسعه زیادی پیدا کرده است و اکنون بازار کار بسیار پرتقاضائی برای آن تشکیل شده است. در این سری از آموزش های برندانگار ما قصد داریم که آموزش های مفصلی را در زمینه برنامه نویسی وب در اختیار شما قرار دهیم و کمک آموزش های کامل ویدئویی و عملی به شما برنامه نویسی وب را از صفر تا صد آموزش دهیم.
تاریخچه ای از برنامه نویسی وب
برنامه نویسی وب در حدود سال های 1989 میلادی (مقارن با 1368 شمسی) شروع شد. اولین زبان برنامه نویسی وب توسط تیم برنرزلی (Tim Berners Lee) در آزمایشگاه علوم هسته ای CERN در شهر ژنو توسعه داده شد. این زبان به عنوان HTML شناخته می شد و ترکیب ساده ای از حروف و کاراکترهای نشانه گذاری بود.
برنامه نویسی وب در ابتدا تنها برای ارسال نوشته ها ساختاربندی شده (تقریباً همان کاری که در برنامه واژه پرداز MS Word انجام می دهیم) طراحی شد. نسخه اولیه بسیار ساده بود و چیز زیادی برای ارائه نداشت و تنها برخی از اطلاعات نوشتاری را بین دو سرور جابجا می کرد. این زبان توسط یک مرورگر وب کدگشائی می شد.
برنامه نویسی وب در طی سال ها توسعه زیادی پیدا کرد و در سال 2025 به نسخه HTML 5 رسید که امکان کار با انواع رسانه های و پشتیبانی از انواع دیوایس ها را دارد.
برنامه نویسی وب در سال های بعد از ابتدا توسعه زیادی پیدا کرد. برای مثال زبان CSS که کوتاه شده Cascading Style Sheet بود برای استایل بندی و آرایش های بهتر محتواها به آن اضافه شد. در سال های بعد زبان JavaScript توسعه پیدا کرد و این امکان را در اختیار ما قرار داد که بتوانیم با کمک کدهای برنامه نویسی واقعی صفحه های تعاملی را توسعه دهیم. یکی از مشکلات زبان های HTML و CSS این است که به خاطر ساختار خودشان شما امکان استفاده از ساختاری برنامه نویسی مانند Loop یا حافظه را ندارید. در نتیجه انجام کارهای تکراری با مشکل مواجه می شود. همچنین تعامل ها بسیار محدود خواهد بود.
در عین حال زبان JavaScript نیز محدودیت های خود را دارا بود و در اینجا امکان استفاده از بانک داده (DataBase) وجود نداشت. سیستم های مانند ثبت ورود خروج، ثبت رویدادهای مالی و حتی تنظیمات محتوا بدون وجود بانک های داده با مشکلات زیادی روبرو بودند. با ابداع زبان هایی مانند PHP و ارتقا زبان هایی مانند Java یا #C استفاده کردن از بانک داده و ایجاد یک وحدت کاری بین پشت زمینه (Back End) و روی وب سایت (Front End) تسهیل گردید و توسعه دهندگان می توانستند از بانک های داده ای مانند SQL یا MySQL بهره بگیرند. همچنین با ورود بانک های داده امکان اضافه کردن محتواهای شخصی سازی شده، پیام رسان ها و بسیاری از ابداعات دیگر فراهم آمد.
در کنار زبان های اصلی برنامه نویسی وب، توسعه کتابخانه ها (Libraries) و فریمورک ها (Frameworks) مختلف این امکان را به برنامه نویسان داد که بتوانند با کد نویسی کمتر حد بالائی از نتایج را به دست بیاورند و بر چالش هایی مانند برنامه نویسی میان دیوایس ها، بارگذاری مناسب محتواها، مدیریت محتواها و واکنش گرائی وب سایت ها فائق بیایند. با این حال هنوز زیرساخت های دیگری نیاز بود که بتوان از برنامه نویسی وب در کارهای تجاری استفاده کرد.
با ورود به سال های 2000 به بعد و گسترش شبکه اینترنت، ابداعات زیادی در زبان های برنامه نویسی وب و مفاهیم وابسته به برنامه نویسی وب اتفاق افتاد.
برای مثال مفهوم کتابخانه، توسعه یکپارچه، بهره گیری از بانک داده ها و حتی سیستم های مدیریت محتوا (CMS) توسعه پیدا کردند و به شدت مورد استقبال قرار گرفتند.
با ورود موتورهای جستجوی قدرتمندی نظیر Google برنامه نویسی وب از یک کار تخصصی تبدیل به یک کار تجاری شد و شرکت های مختلف وارد عرصه رقابت اینترنتی شدند. امروز کمتر شرکتی در دنیا هست که یک وب سایت و یا حداقل یک صفحه در شبکه های اجتماعی نداشته باشد. افزودن شدن سیستم های پرداخت اینترنتی توسعه زیرساخت های تجارت الکترونیک را تسهیل کرد و غول های فناوری یکی پس از دیگری از دل اینترنت سر برآوردند.
از سال 2012 به این سو تقریباً تمام ساختارهای شناخته شده برنامه نویسی وب کامل شدند. از این سال به بعد ما نسخه های قابل قبولی از زبان های برنامه نویسی را در اختیار داشتیم. همچنین کتابخانه ها و فریمورک هایی که برای توسعه وب سایت ها و وب اپلیکیشن ها استفاده می شدند نیز به بلوغ خود رسیده بودند و اغلب باگ های آن ها رفع شده بود.
در کنار این موارد زیرساخت هایی مانند موتورهای جستجو و سیستم های پرداخت الکترونیک و نیز زیرساخت های شبکه اینترنت به شکل ساختاریافته تری در آمدند و همه چیز به راحتی در دسترس قرار گرفتند. از سال 2012 به این سو ما بیشتر از آن که شاهد تحولات چشمگیر در زمینه ارائه زبان های برنامه نویسی و یا فناوری های جدید باشیم، بیشتر شاهد بروز ابتکارات عملیاتی، رفع باگ ها، اضافه شدن فیچرهای جدید و بهره ور تر شدن ابزارها هستیم.
آموزش برنامه نویسی وب را از کجا شروع کنیم؟
آموزش برنامه نویسی وب یکی از هیجان آمیزترین کارهائی است که می توانید در زندگی خودتان تجربه کنید. برای آنکه بتوانید کار خودتان در آموزش برنامه نویسی وب را شروع کنید، می توانید از آموزش های برنامه نویسی وب برندنگار شروع کنید. با این حال داشتن یک نقشه راه برای برنامه نویسی وب نیز می تواند کمک زیادی به شما بکند. برای این منظور بهتر است موارد زیر را پیش از شروع آموزش برنامه نویسی وب خودتان در نظر بگیرید.
- یادگیری HTML: زبان HTML بنیاد تمام اقداماتی است که شما در زمینه برنامه نویسی وب باید بیاموزید. یادگیری زبان HTML بسیار ساده است و شما باید بیاموزید چطور از تگ ها و عناصر برای ساختار دهی به محتواهای وب سایت های خودتان استفاده کنید. یادگیری این زبان بین یک تا دو هفته زمان می برد. گرچه استاندارهای مرتبط به HTML زیاد هستند و درک آن ها نیازمند تجربه در برنامه نویسی وب است.
- یادگیری CSS: گام دوم در آموزش برنامه نویسی وب یادگیری نحوه استایل دهی به صفحه های HTML با کمک کدهای CSS است. کدهای CSS قابلیت های صفحه آرائی و واکنش گرائی صفحه های وب را بیشتر می کنند. شما می توانید با کمک زبان CSS انواع استایل ها، رنگ ها، فونت ها، طرح بندی ها، انیمیشن ها و نیز حالت های واکنش گرا را به صفحه های وب خودتان اضافه کنید.
- یادگیری JavaScript: یادگیری زبان JavaScript بسیار هیجان انگیز است. شما می توانید با کمک کدهای زبان JavaScript حالت های تعاملی را به صفحه های وب خودتان اضافه کنید. جابه جا کردن عناصر، تیک زدن لیست ها، انیمیشن های تعاملی و حتی بازی های رایانه ای جذاب را می توانید با کمک زبان JavaScript پیاده سازی کنید. البته این روز ها جاوااسکریپت توسعه زیادی پیدا کرده است و به سطح بک اند و برنامه نویسی گوشی های موبایل نیز رسیده است. شما از زبان جاوااسکریپت می توانید برای توسعه وب و موبایل اپلیکیشن ها و حتی نرم افزارهای تحت دسکتاپ و توسعه هوش مصنوعی نیز استفاده کنید. در عین حال بسیاری از سرویس های نرم افزاری مانند Google Space یا محصولات شرکت Adobe نیز از زبان JavaScript برای ماکرو نویسی بهره می برند و می توانید نرم افزارهای Add-on را با آن توسعه دهید.
تا اینجای سفر شما می توانید صفحه های استاتیک (Static) که به بانک داده متصل نیستند را توسعه دهید. البته در اینجا کتابخانه و فریمورک های مختلفی وجود دارند که در ادامه به بررسی آن ها می پردازیم:
- کتابخانه jQuery: این کتابخانه یکی از قدیمی ترین کتابخانه زبان JavaScript است و به ما در طراحی صفحه های تعاملی با حداقل مشکلات برنامه نویسی کمک می کند. jQuery دارای کتابخانه های مختلفی برای گوشی های موبایل و صفحه های وب است که در جای خود به بررسی آن ها می پردازیم.
- پیش پردازنده SASS: یکی از مشکلات توسعه استایل ها برای وب سایت های بزرگ مدیریت فایل های CSS و کدهای مرتبط به آن است. روش های توسعه نردبانی فایل های CSS می تواند بسیار سخت و سردرگم کننده باشد. به همین خاطر با بهره گیری از پیش پردازنده هایی مانند SASS این امکان را پیدا خواهیم کرد که بتوانیم کدهای ساختاریافته تر، پیچیده تر و در عین حال تمیزتری را توسعه دهیم. پیش پردازنده ها در ابتدا کدها را در سینتکس خودشان قبول می کنند و سپس آن ها را به کدهای CSS تبدیل می کنند.
- کتابخانه BootStrap: این کتابخانه مجموعه ای از کدهای jQuery، SASS و CSS را به شما ارائه می کند که با کمک آن می توانید کارهائی مانند واکنشگرا کردن صفحه های وب، اضافه کردن ساختارهای چشم نواز تحت وب و بسیاری از کارها را انجام دهید. BootStrap یکی از ابتکارات شرکت متا بود و به توسعه بسیاری از وب سایت ها کمک زیادی کرد.
- فریمورک TailWind: این فریمورک قابلیت های زیادی را برای پیاده سازی کدهای CSS در اختیار ما قرار می دهد و به ما کمک می کند که بتوانیم کدهای CSS زیبائی را به صفحه های وب خودمان اضافه کنیم. این فریمورک نسبت به BootStrap قوی تر است و اگر قصد توسعه وب اپلیکیشن ها و یا اپلیکیشن های موبایل را داشته باشید یکی از بهترین انتخاب ها می تواند TailWind باشد.
علاوه بر آنچه که گفته شده کتابخانه ها و فریمورک های قوی تری مانند React.JS و Vue.Js نیز وجود دارند که به شما امکان توسعه وب سایت ها بر اساس ساختار MVC را می دهد. ما در سطح های حرفه ای تر در سایت برندانگار درباره این موارد صحبت خواهیم کرد.
تا اینجا شما تقریباً می توانید یک رویه یا پیشخوان (Front End) یک وب سایت را به صورت حرفه ای پیاده سازی کنید. اما هنوز وب سایت ما کامل نیست و شما باید سفر خودتان به دنیای وب را ادامه دهید. برای عمیق تر شدن مهارت های خودتان در برنامه نویسی وب شما باید زبان ها و مهارت های برنامه نویسی دیگری را نیز بیاموزید که شامل موارد زیر می شود:
- زبان PHP: این زبان یک پیش پردازنده فرازبانی یا Hypertext Preprocessor است. این زبان در سال 1993 توسعه داده شده و قصد آن ایجاد ارتباط میان زبان HTML و بانک داده بود. زبان PHP به ما این امکان را می دهد که بتوانیم وب سایت هایی ایجاد کنیم که داده ها در آن قابل ذخیره سازی و بازیابی است. با این کار ما می توانیم وب سایت های دینامیک (Dynamic) بسازیم که محتواهای آن ها بر اساس داده ها قابل مدیریت است. برای مثال شما می توانید در وب سایت خودتان حساب کاربری ایجاد کنید و یا محتوای صورت حساب یک مشتری را به او نمایش دهید.
- بانک داده MySql: این بانک داده یک بانک داده سبک است که امکان ذخیره سازی و بازیابی داده ها بر اساس زبان SQL را به ما می دهد. این بانک داده بسیار سریع و کارآمد است و در اغلب وب سایت ها به عنوان بانک داده اصلی مورد استفاده قرار می گیرد. شیوه کار MySQL بر اساس کلید-مقدار است و داده ها به صورت سطری و ستونی در آن ذخیره سازی می شود. البته در دنیای برنامه نویسی وب ما از شکل های متنوع تر از بانک داده ها نیز استفاده می کنیم. برای مثال در ذخیره سازی و بازیابی داده های ذخیره شده در شبکه های اجتماعی تصویر و ویدئو محور ما از شکل متفاوتی از بانک های داده بهره می بریم. با این حال درک و یادگیری MySQL برای شروع آموزش برنامه نویسی وب کار درست و معقولی است.
البته مانند هر زبان برنامه نویسی دیگری در اینجا کتابخانه های مختلفی بر حسب نیازهای شما وجود دارد. برای مثال در زبان PHP ما می توانیم از فریمورک Laravel استفاده کنیم که امکان بسیار خوبی را برای توسعه وب سایت ها بر اساس ساختار MVC را در اختیار ما قرار می دهد. ما در ادامه به بررسی این فریمورک ها و کارکرد آن ها در دنیای برنامه نویسی می پردازیم.
اگر شما دارای مهارت Front End و Back End باشید شما یک برنامه نویسی Full Stack به شمار می روید. در گذشته و زمانی که زبان های برنامه نویسی کم بودند، تبدیل شدن به برنامه نویسی فول استک شدن کار سختی نبود، اما اکنون کمتر کسی را می توانیم بیابیم که واقعاً یک برنامه نویس فول استک باشد. اغلب برنامه نویسان در دو مهارت فرانت اند و یا بک اند صاحب مهارت هستند.
در کنار مهارت های برنامه نویسی شما به مهارت های دیگری نیز برای تبدیل شدن به یک برنامه نویس وب نیاز دارید که این مهارت ها شامل گزینه های زیر می شود:
- مهارت کار با سیستم های کنترل ورژن: سیستم های کنترل ورژن مانند Git به ما این امکان را می دهند که بتوانیم نرم افزارهای خودمان را بر حسب تغییرات مختلف توسعه دهیم. امروزه سیستم های کنترل ورژن توسعه های زیادی پیاده کرده اند و امکانات مختلفی را برای اشتراک گذاری، توسعه جمعی پروژه ها، دیباک کردن و متنوع کردن فرمولوژی کدها در اختیار ما قرار می دهند.
- مهارت کنترل پروژه: پروژه های توسعه وب سایت و وب اپلیکیشن ها از ترکیب کار صدها و بلکه هزاران نفر در کنار همدیگر ایجاد می شود. برای اینکه این تیم ها بتوانند در کنار هم دیگر کار کنند ما به نرم افزارهای کنترل پروژه نیاز داریم. این نرم افزار و داشبوردها بسیار متنوع هستند و باید در جای خودش به صورت کامل به آن بپردازیم.
- مهارت طراحی سیستمی: یک سیستم نرم افزاری تنها چندکد در کنار هم نیست بلکه سیستمی از کدها است که در کنار همدیگر کار می کنند و سبب می شود که نتیجه ای که ما می خواهیم را به دست بیاوریم. از کدهای ساده HTML تا استقرار درست کدها بر روی سیستم های و سرور ها بخشی از این تفکر سیستمی هستند. برای مثال شبکه های اجتماعی با میلیاردها کاربر باید بتوانند به خوبی و در لحظه میلیاردها پردازش را انجام دهند و سرویس آن ها بدون وقفه ادامه پیدا کند. طراحی سیستم های نرم افزار کار سختی است و نیازمند دانش های زیادی است.
اکنون که تا حدودی با مسیر خودتان در مسیر یادگیری برنامه نویسی وب آشنا شدید می توانید وارد دنیای شیرین برنامه نویسی وب شوید و چیزهایی را یاد بگیرید که مثل جادو هستند. کدهایی را بر روی یک نرم افزارها وارد می کنید و بعد غول چراغ جادو سحر خود را انجام می دهد. با ما باشید تا این سفر هیجان انگیز را شروع کنیم.