توی دنیای برنامهنویسی وب، هر روز یک فریمورک یا کتابخانه جدید مد میشود. یک روز همه از React حرف میزنند، روز بعد Vue و فردا شاید Svelte. این چرخه خیلیها را گیج میکند، مخصوصاً آنهایی که تازه اول راه هستند. اما بعد از حدود ۲۵ سال کدنویسی، یک واقعیت برایم روشن شده: فریمورکها میآیند و میروند، اما اصول و پایهها هرگز تغییر نمیکنند.
اگر پایههای شما سست باشد، یاد گرفتن ۱۰ فریمورک مختلف هم از شما یک توسعهدهنده «واقعی» نمیسازد. فقط یک اپراتور میشوید که بلد است از ابزارها استفاده کند، بدون اینکه بداند در پشت صحنه چه اتفاقی میافتد.
در این مقاله، نمیخواهم در مورد آخرین ترندهای بازار صحبت کنم. میخواهم در مورد ستونهای اصلی و مفاهیم بنیادی صحبت کنم که اگر آنها را عمیقاً درک کنید، یادگیری هر تکنولوژی جدیدی برایتان مثل آب خوردن خواهد شد.
۱. مدل کلاینت-سرور (Client-Server)
این سادهترین و در عین حال مهمترین مفهومی است که باید مثل اسم خودتان بلد باشید. کل اینترنت بر اساس این مدل کار میکند:
- کلاینت (Client): مرورگر شما (مثل کروم، فایرفاکس) یا اپلیکیشن موبایل شماست. این همان چیزی است که کاربر میبیند و با آن تعامل میکند.
- سرور (Server): یک کامپیوتر قدرتمند در جایی از دنیاست که وبسایت شما (کدها، دیتابیس، تصاویر و...) روی آن قرار دارد و منتظر «درخواست» (Request) است.
وقتی شما آدرس tosinso.com را در مرورگر خود تایپ میکنید، مرورگر شما (کلاینت) یک درخواست به کامپیوتری که وبسایت توسینسو روی آن قرار دارد (سرور) میفرستد. سرور این درخواست را پردازش میکند و یک «پاسخ» (Response)، که همان کدهای HTML و CSS صفحه است، برای مرورگر شما پس میفرستد.
۲. HTTP/HTTPS (پروتکل ارتباطی)
خب، کلاینت و سرور چطور با هم «حرف» میزنند؟ زبان مشترک آنها HTTP یا (Hypertext Transfer Protocol) است.
فکر کنید HTTP گارسونی است که سفارش شما (Request) را از میزتان (Client) میگیرد، به آشپزخانه (Server) میبرد و غذا (Response) را برایتان میآورد.
بر اساس اسناد وب MDN، «HTTP یک پروتکل برای واکشی منابعی مانند اسناد HTML است. این پروتکل، پایه و اساس هرگونه تبادل داده در وب است.» [منبع: MDN Web Docs, "HTTP"]
شما باید مفاهیم اصلی HTTP را بدانید:
- HTTP Verbs (فعلها): مثل
GET(برای گرفتن داده، مثلاً دیدن یک صفحه) وPOST(برای ارسال داده، مثلاً پر کردن فرم ثبتنام). - HTTPS: این همان HTTP است که با یک لایه امنیتی (SSL) رمزنگاری شده. امروزه تقریباً هیچ وبسایت معتبری بدون HTTPS کار نمیکند چون امنیت دادههای کاربر اولویت اصلی است.
۳. سهگانه مقدس: HTML, CSS, JavaScript
هر چیزی که شما در مرورگر میبینید، ترکیبی از این سه تکنولوژی است.
الف) HTML (اسکلت)
HTML یا (Hypertext Markup Language) زبان برنامهنویسی «نیست». این یک زبان «نشانهگذاری» است. HTML به مرورگر میگوید که ساختار صفحه شما چیست. کدام متن «عنوان» (Heading) است، کدام «پاراگراف» (Paragraph) است و کجا «لینک» (Link) وجود دارد.
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<title>صفحه نمونه</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1 id="main-heading">سلام، حسین احمدی!</h1>
<p>این یک پاراگراف نمونه برای نمایش ساختار HTML است.</p>
<script src="app.js"></script>
</body>
</html>
ب) CSS (پوست و لباس)
CSS یا (Cascading Style Sheets) مسئول ظاهر و زیبایی صفحه شماست. رنگها، فونتها، چیدمان و همهچیز بصری توسط CSS کنترل میشود. بدون CSS، وب شبیه به یک سند Word در دهه ۹۰ میلادی بود.
/* styles.css */
body {
font-family: 'Vazirmatn', sans-serif; /* Assuming a Persian font */
background-color: #f4f4f4;
direction: rtl; /* Set text direction to right-to-left */
}
h1 {
color: #0056b3; /* A nice blue color */
/* This is the main heading style */
}
p {
font-size: 16px;
color: #333;
}
ج) JavaScript (عضلات و منطق)
و اما جاوا اسکریپت. این، زبان برنامهنویسی «واقعی» سمت کلاینت است. جاوا اسکریپت به صفحه شما «رفتار» و «تعامل» اضافه میکند. وقتی روی دکمهای کلیک میکنید و یک پاپآپ باز میشود، یا وقتی فرمی را پر میکنید و قبل از ارسال به شما خطا میدهد، این کارها را جاوا اسکریپت انجام میدهد.
// app.js
// Wait for the document to be fully loaded
document.addEventListener("DOMContentLoaded", function() {
// Select the heading by its ID
const heading = document.getElementById("main-heading");
// Add a click event to the heading
heading.addEventListener("click", function() {
alert("شما روی عنوان کلیک کردید!");
});
});
۴. DOM (نقشه صفحه)
جاوا اسکریپت چطور میفهمد که باید h1 را تغییر دهد نه p را؟ از طریق DOM یا (Document Object Model).
وقتی مرورگر کد HTML شما را میخواند، آن را به یک ساختار درختی در حافظه تبدیل میکند که به آن DOM میگویند. جاوا اسکریپت میتواند این «نقشه» را بخواند و آن را دستکاری کند (مثلاً یک عنصر را حذف کند، رنگ عنصری را تغییر دهد، یا متن جدیدی اضافه کند).
۵. فرانتاند (Frontend) در برابر بکاند (Backend)
این هم یک تفکیک حیاتی است:
- فرانتاند (Frontend): تمام چیزی است که در کلاینت (مرورگر) اجرا میشود. این همان سهگانه HTML, CSS, و JavaScript است. کار توسعهدهنده فرانتاند این است که یک تجربه کاربری (UI/UX) زیبا و روان خلق کند.
- بکاند (Backend): مغز متفکر و پنهان سیستم است که روی سرور اجرا میشود. وقتی شما در توسینسو لاگین میکنید، کدی در بکاند اجرا میشود که بررسی میکند آیا نام کاربری و پسورد شما در دیتابیس وجود دارد یا خیر.
من خودم سالها با تکنولوژیهای بکاند مثل فاکسپرو و بعدها ASP.NET MVC کار کردم. بکاند جایی است که منطق اصلی کسبوکار، مدیریت دیتابیس و امنیت پیادهسازی میشود. زبانهایی مثل C# (.NET)، پایتون، جاوا و PHP در این حوزه استفاده میشوند.
۶. API و JSON (نحوه تبادل داده)
در دنیای مدرن، فرانتاند و بکاند کاملاً از هم جدا هستند. اما چطور با هم حرف میزنند؟ از طریق API یا (Application Programming Interface).
APIها مجموعهای از قوانین هستند که به بکاند اجازه میدهند دادهها را در اختیار فرانتاند قرار دهد (و برعکس). رایجترین فرمتی که برای تبادل این دادهها استفاده میشود JSON یا (JavaScript Object Notation) است.
JSON یک فرمت متنی بسیار سبک و خوانا است که هم برای انسان و هم برای ماشین قابل درک است.
یک واقعیت جالب در مورد اهمیت APIها: استیو یگ (Steve Yegge)، مهندس سابق گوگل و آمازون، در یادداشت معروفی فاش کرد که جف بزوس (Jeff Bezos) حدود سال ۲۰۰۲ در دستوری به تمام شرکت اعلام کرد که از آن پس، تمام تیمها «باید» دادهها و قابلیتهای خود را از طریق اینترفیسهای سرویس (API) ارائه دهند. این فلسفه، هسته اصلی موفقیت آمازون (AWS) و کل وب مدرن شد. [منبع: Steve Yegge's Google Platforms Rant]
نتیجهگیری: پایهها را جدی بگیرید
دنیای وب بسیار بزرگتر از این چند مفهوم است، اما هر چیز پیچیدهای که امروز میبینید، روی همین ستونها ساخته شده است.
شعار ما در توسینسو همیشه «زکات علم، نشر آن است» بوده. اما قبل از اینکه بتوانید علمی را نشر دهید، باید آن را به صورت پایهای و عمیق درک کرده باشید. وقت بگذارید و این مفاهیم را نه فقط حفظ، بلکه «زندگی» کنید. آن وقت است که هیچ تکنولوژی جدیدی نمیتواند شما را بترساند.
نظرات کاربران (0)