در این مقاله قصد دارم معنا و مفهوم چند اصطلاح رایج در دنیای وب را برایتان بگویم. و در پایان به خوبی ها و بدی های برنامه های وب اشاره می کنم. داشتن این اطلاعات، برای ورود به دنیای وب و کار کردن در این دنیای پر رونق و پر پول می تواند برای تان خیلی مفید باشد.
توجه داشته باشید، سطح این محتوا مبتدی است، در نتیجه از پرداختن به جزئیات بیش از حد و توضیحات اضافه که البته برای سطوح دیگر ضروری است اجتناب کردم. قبل از ادامهی مطالعه، اگر برای شما هم سوال است که چگونه می توان یک برنامه نویس وب شد؟ به مقاله ای با همین نام در سکان آکادمی مراجعه کنید و سپس مفاهیم مطرح شد در این مقاله را به خوبی بررسی کنید.
Software (نرم افزار)
به برنامه ای که وظیفه دارد ارتباط بین من و شمای کاربر را با سخت افزارهای کامپیوتر (یا هر وسیله ی دیگری مانند موبایل و ...) ایجاد کند و از ظرفیت های آن ها برای انجام درخواست های کاربران استفاده کند Software گفته می شود. برای مثال همین مرورگری (Browser) که با استفاده از آن سایت سکان آکادمی را مشاهده می کنید یک نرم افزار است.
Programing (برنامه نویسی)
Programing عنوان شغل و کاری است که طی آن نیازمندی ای تعریف می شود و برای برطرف کردن آن نیازمندی نرم افزاری تولید می شود. در تولید یک نرم افزار با توجه به اینکه آن نرم افزار قرار است روی چه بستری مورد استفاده قرار بگیرد زبان های مختلفی استفاده می شود. همچنین در تولید نرم افزارها از ابزارها و تکنولوژی های مختلف دیگری هم مانند دیتابیس و ... استفاده می شود.
Software Programmer (برنامه نویس)
کسی که نرم افزارها را تولید می کند و یا به عبارتی آن ها را کد نویسی می کند، Software Programmer است. او معمولا به معماری نرم افزار، الگورتیم های مختلف، یک یا چند زبان برنامه نویسی، یک یا چند دیتابیس مختلف و بهترین روش ها (Best Practice) در هر کدام از آن ها آشناست و می تواند یک نیازمندی را به یک نرم افزار تبدیل کند. البته با پیشرفت هایی که در صنعت تولید نرم افزار داشته ایم، بسیاری از مشاغل تخصصی تر شده است. مثلا یک نفر فقط لازم است در معماری نرم افزار تسلط داشته باشد، که وظیفه او در تیم، طراحی معماری نرم افزار است یعنی بگوید بخش های مختلف برنامه، چگونه و با چه قوانینی باهم ارتباط داشته باشند (البته وظایف او وسیع تر از این است) و یا یک نفر برنامه نویس زبان A و دیگری برنامه نویس زبان B است.
Junior / Senior
اصطلاح دیگری که شاید خیلی با آن روبرو شوید عبارت های Junior و Senior است. این عبارتها، به سطح تسلط فنی شما در یک حوزه اشاره دارد. Juniorها یا همون تازه کارها، افرادی هستند که مسائل را بلدند ولی مرتب اشتباه می کنند و هنوز تجربه ی چندانی ندارند. همین تازه کارها بعد از مدتی خطا کردن و جریمه شدن در تیم های شان، اگر کم نیاورند و دست از تلاش و تجربه کردن بر ندارند، به Seniorها یا حرفه ای های آن حوزه تبدیل می شوند. پس اصلی ترین راه گذر از تازه کاری به حرفه ای بودن آموزش دیدن و تجربه کردن است. از افراد باتجربه یا Senior ها انتظار می رود که اشتباهات پیش پا افتاده نداشته باشند، برای مشکلات مختلف یا راه حلی داشته باشند که قبلا آن را تجربه کرده اند، یا راه و منابع مناسب برای پیدا کردن راه حل مناسب را بدانند. البته با توجه به اینکه دنیای برنامه نویسی، دنیای بی پایانی هست و هرروز مسائل جدیدی به وجود می آید، Seniorها هم ممکن است موارد زیادی را ندانند.
وب و اینترنت (WEB vs Internet)
خیلی وقتها می شنویم که افراد این دو کلمه را به یک معنا استفاده می کنند. به نظر شما وب و اینترنت با هم چه نسبتی دارند؟
آیا وب و اینترنت با هم برابر هستند؟
جواب این سوال که آیا این دو باهم برابر هستند در یک کلمه "نه" است. وب و اینترنت دو چیز متفاوت از هم هستند و استفاده از این دو کلمه به یک معنا صد در صد اشتباه است. برای اینکه درک دستی از ارتباط این دو داشته باشید به شکل زیر نگاه کنید:
وب بخشی از اینترنت است و در کنار آن چیزهای دیگری مانند ایمیل که با آن آشنا هستید، FTP که ابزار و تکنولوژی ای برای انتقال و جابجایی فایل هاست، بازی های آنلاین، که این روزها رونق خیلی زیادی دارند هم در بستر اینترنت وجود دارند. هر کدام از این بخش ها و بخش های متفاوت دیگری که در این تصویر نیست، از پروتکل های اختصاصی خودشان بهره می برند و هرکدام متخصص هایی دارند که هر روز درحال توسعه ی آنها و بهبود عملکردشان هستند.
اصلی ترین اجزای تشکیل دهنده ی وب
اصلی ترین بخش ها و ویژگی های تشکیل دهنده ی وب عبارتند از :
URL (Uniform Resource Locator)
یو آر ال ها، آدرس های منحصر به فرد منابع مختلف روی شبکه ی جهانی وب هستند. منظور از منابع تمامی چیزهایی است که روی وب مشاهده می کنید. مثلا وقتی وب سایت سکان آکادمی را مشاهده می کنید، شما به آدرس سایت سکان آکادمی (sokanacademy.com) آمده اید و تمام تصاویر، فایل های صوتی و صفحات مختلفی که مشاهده می کنید، هر کدام آدرس URL اختصاصی خودش را دارد.
Hypertext Transfer Protocol (HTTP)
این پروتکل که در دنیای وب استفاده می شود مجموعه ای از قوانین است که به ما می گوید درخواست ها (Request) و پاسخ ها (Response) باید چه ساختاری داشته باشند، شامل چه بخش هایی باشند و چه کاری انجام بدهند.
در یک تعریف کلی پروتکل ها، الگویی برای ارتباط برقرار کردن هستند و عموما لغات و قواعدی را مشخص می کنند که اگر درخواستی به درستی براساس آن پروتکل ساخته شده باشد، برای پذیرنده ی درخواست قابل فهم بوده و پاسخ مناسبی را دریافت خواهد کرد.
web server
وب سرور ها که قبلا به آنها web server software هم گفته می شد، نرم افزارهایی هستند که وظیفه ی پاسخگویی به درخواست های HTTP را دارند.
HTML (Hypertext Markup Language)
زبانی است که جهت اشتراک گذاری فایل های تحت وب، استاندارد و یکپارچه شده است. در صورتی که هدف مان ورود به دنیای برنامه نویسی وب باشد، باید با این زبان در ابتدای مسیر آشنا بشویم. می توانید دوره ی آموزش HTML را در سایت سکان آکادمی مشاهده کنید. ولی در این مقاله همین قدر بدانید که صفحات وب سایت های اینترنتی که مشاهده می کنید، همگی با این زبان نوشته شده اند. و اگر طبق استانداردهای موجود در HTML نباشند، امکان مشاهده و استفاده ی آن برای کاربرها وجود ندارد.
Browser
مرورگر ها برنامه هایی هستند روی کامپیوتر، موبایل، تبلت و ... کاربر که درخواست های HTTP را برای URL مقصد آماده می کنند و جواب رسیده از سمت آن ها را برای کاربر نمایش می دهند.
برنامه های تحت وب چه خوبی هایی دارند؟
یکی از خوبی های برنامه های تحت وب این است که از هر کامپیوتری که به اینترنت وصل باشد می توان به این برنامه ها دسترسی داشته و از آنها استفاده کرد. خوبی دیگر برنامه های تحت وب این است که می توانیم در سیستم عامل های مختلف و با مرورگر های متفاوت از این برنامه ها استفاده کنیم. در واقع این برنامه ها به سیستم عامل و یا مرورگر وابسته نیستند. یکی دیگر از مزیت های این برنامه ها، که خوب است در این بخش از مقاله به آن اشاره کنیم به روز رسانی برنامه است، یعنی خیلی ساده روی سرور، برنامه را به روز می کنیم و از این لحظه به بعد تمامی کاربران برنامه ی ما، می توانند به راحتی با برنامه ی به روز شده کار کنند. شما این ویژگی را با برنامه های موبایلی مقایسه کنید. در برنامه های موبایلی، وقتی نسخه ی جدیدی ارائه می شود، باید تک تک کاربران، برنامه های خود را به روز کنند و شما هم باید تا مدت ها بعد همچنان از نسخه های قدیمی برنامه تان پشتیبانی کنید. به عنوان آخرین ویژگی مثبت برنامه های وب، می توان به گفت که برنامه های تحت وب، روی سرور قرار دارند و تمامی اطلاعات یکجا (یعنی روی سرور) ذخیره می شود و این ویژگی این امکان را به ما می دهد که اگر سرور را ایمن نگه داریم، تمامی اطلاعات مان ایمن خواهند ماند و لازم نیست این اطلاعات روی دستگاه های مختلف (اعم از Desktopها یا موبایل های مختلف) ذخیره شود و نیاز باشد در تمام آن ها نگران موضوع امنیت اطلاعات باشیم که درواقع خیلی از مسائل و مشکلات موجود در آن ها، به برنامه ی ما مرتبط نمی شود.
نرم افزارهای تحت وب چه ایرادهایی دارند؟
تقریبا می شود گفت به ازای هر کدام از ویژگی های مثبتی که برای این نرم افزارها در بالا گفتیم، می توانیم از دیدی دیگر، عیبی برای شان متصور باشیم. مثلا این که این نرم افزارها همیشه به اینترنت فعالی نیاز دارند و در غیر اینصورت یا اصلا کار نمی کنند و یا عملکردشان درحالت آفلاین اصلا آنطور که انتظار داریم نخواهد بود. یکی دیگر از معایب نرم افزارهای تحت وب این است که اطلاعات کاربران (که اطلاعات حساسی هم می تواند در بین آن ها باشد، مثل اطلاعات حساب های بانکی و ...) باید از محیط اینترنت و وب عبور کند که نگرانی های امنیتی ویژه ای را ایجاد می کنند. همچنین با توجه به تجمیع اطلاعات برروی وب سرور باید نگران فضای مورد استفاده برای ذخیره سازی اطلاعات آپلود شده و دیگر منابع باشیم.
امیدوارم مطالب مطرح شده در این مقاله که خوب ابتدایی و بدون جزئیات بود، شما را با اصلی ترین اصطلاحات دنیای وب آشنا کرده باشد.