بک اند چیست؟ تعریف، معماری و مهارت های ضروری

بک اند چیست؟ تعریف، معماری و مهارت های ضروری

ساده بگوییم: بک اند جایی است که منطق کسب وکار، مدیریت داده و امنیت اجرا می شود. فرانت اند درخواست می فرستد و بک اند با اعتبارسنجی، اجرای قواعد و اتصال به دیتابیس پاسخ می دهد. بنابراین اگر دنبال سیستم قابل اتکا هستی، باید بک اند را درست طراحی کنی.

بک اند چیست و چه وظایفی دارد؟

بک اند درخواست را دریافت می کند، ورودی را اعتبارسنجی می کند، منطق کسب وکار را اجرا می کند، به منابع داده متصل می شود و پاسخ استاندارد می سازد. همچنین لاگ، ریت لیمیت و خطاها را مدیریت می کند تا سیستم پایدار بماند.

بلوک های سازنده: API، دیتابیس، کش، صف

در قلب بک اند، APIها قرار دارند. سپس دیتابیس برای پایداری داده، کش برای سرعت و صف برای پردازش های غیرفوری وارد می شوند. در نتیجه، تاخیر کم و تاب آوری بالا حاصل می شود.

نمونه API مینیمال (Node.js/Express)

const express=require("express"); const app=express(); app.use(express.json()); app.get("/health",(req,res)=>res.json({ok:true})); app.post("/orders",(req,res)=>{ const {items}=req.body||{}; if(!items||!items.length) return res.status(400).json({error:"invalid"}); res.status(201).json({id:Date.now()}); }); app.listen(3000);

الگوهای معماری رایج

به طور معمول از لایه بندی (Presentation/Domain/Data)، معماری هگزagonal، یا مایکروسرویس استفاده می شود. انتخاب به اندازه تیم، پیچیدگی دامنه و نیاز مقیاس پذیری بستگی دارد. ابتدا ساده شروع کن و بعد جدا کن.

نمونه مینیمال API در #C (Minimal APIs)

var app = WebApplication.CreateBuilder(args).Build(); app.MapGet("/health", () => new { ok = true }); app.MapPost("/orders", (Order o) => Results.Created($"/orders/{Guid.NewGuid()}", o)); app.Run(); record Order(string CustomerId, decimal Total);

امنیت و اعتبارسنجی

امنیت از ورودی امن، احراز هویت، مجوز، نرخ دهی و محافظت در برابر تزریق شروع می شود. همچنین باید اسرار را در Vault نگه داری و لاگ حساس را مینیمم کنی.

نمونه اعتبارسنجی ساده (Express)

app.post("/login",(req,res)=>{ const {email,password}=req.body||{}; if(!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) return res.status(400).json({error:"email"}); if((password||"").length<8) return res.status(400).json({error:"weak"}); res.json({token:"...jwt..."}); });

مدیریت داده و تراکنش

مدل سازی داده، ایندکس گذاری و تراکنش های اتمیک حیاتی اند. همچنین الگوهایی مانند CQRS، Read Model و آدیت لاگ، خوانایی و قابلیت پیگیری را بالا می برند.

نمونه تراکنش (SQL)

BEGIN; UPDATE accounts SET balance=balance-100 WHERE id=1; UPDATE accounts SET balance=balance+100 WHERE id=2; COMMIT;

تست و مشاهده پذیری

با تست واحد، یکپارچه و قراردادی، رفتار API را تثبیت کن. سپس با لاگ ساخت یافته، متریک و تریس، مشکلات را سریع شکار کن. در نتیجه Mean-Time-To-Recovery کم می شود.

نمونه تست قراردادی (JSON Schema)

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["id"],"properties":{"id":{"type":"integer"}}}

دیپلوی و مقیاس پذیری

دیپلوی کانتینری، مهاجرت دیتابیس، و بلواِ/گرین یا کاناری، خطرات انتشار را کم می کند. همچنین با کش توزیع شده، صف و افقی سازی، ظرفیت بالا می رود.

نمونه Dockerfile ساده

FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . EXPOSE 3000 CMD ["npm","start"]

انتخاب استک بک اند

انتخاب استک به تیم، اکوسیستم و نیازهای غیرعملکردی بستگی دارد. برای تیم کوچک، یک فریم ورک باتجربه و ابزار تست آماده مزیت است. برای پرفورمنس سخت، زبان سیستمی یا بهینه سازی عمیق لازم است. در هر حال، اندازه گیری کن و تصمیم را مستند کن.

  1. تعریف SLA: تاخیر، دسترس پذیری، بودجه خطا.
  2. ارزیابی اکوسیستم: کتابخانه ها، جامعه و مستندات.
  3. پروتوتایپ و بنچمارک روی داده واقعی.

پرسش های پرتکرار درباره بک اند

بک اند چیست و از کجا شروع کنم؟

با HTTP، REST، یک فریم ورک وب و دیتابیس شروع کن. سپس تست، امنیت و دیپلوی را اضافه کن. در نهایت روی مشاهده پذیری سرمایه گذاری کن.

مونولیت بهتر است یا مایکروسرویس؟

ابتدا مونولیت ماژولار انتخاب معقولی است. بعد از رسیدن به پیچیدگی واقعی، سرویس های مستقل را جدا کن.

جمع بندی

حالا می دانی بک اند چیست و چه اجزایی دارد. یک سرویس کوچک بساز، لاگ و تست را جدی بگیر و نتایج را اندازه بگیر. سپس معماری را به صورت تدریجی ارتقا بده. برای ادامه مسیر، راهنماهای داخلی زیر را ببین.

مطالب مرتبط: برنامه نویس کیست؟ و انواع زبان های برنامه نویسی؛ همچنین مسیر آموزش پایتون را دنبال کن.

مطالب پیشنهادی

فرانت اند چیست؟ تعریف، مهارت ها و ابزارهای ضروری

فرانت اند چیست؟ تعریف، مهارت ها و ابزارهای ضروری

فرانت اند چیست و دقیقا چه می کند؟ این راهنمای عمل گرا اجزای فرانت اند، معماری، عملکرد، دسترس پذیری، سئو، تست و ابزارهای رایج را با مثال های کوتاه توضیح می دهد.

انواع زبان های برنامه نویسی کدام اند؟ راهنمای سریع و دقیق

انواع زبان های برنامه نویسی کدام اند؟ راهنمای سریع و دقیق

انواع زبان های برنامه نویسی را با دسته بندی های رایج مثل سطح انتزاع، نوع اجرا، سیستم تایپ، پارادایم و حوزه کاربرد معرفی می کنیم؛ با مثال های کوتاه و کاربردی.

برنامه نویس کیست؟ تعریف دقیق، مهارت ها و مسیر شغلی

برنامه نویس کیست؟ تعریف دقیق، مهارت ها و مسیر شغلی

برنامه نویس کیست؟ این مقاله کوتاه و کاربردی برای برنامه نویسان توضیح می دهد برنامه نویس دقیقا چه کاری می کند، چه مهارت هایی لازم است، مسیر یادگیری چگونه است و چطور شغل بگیریم.

زبان JavaScript چیست؟ راهنمای سریع، مهندسی و کاربردی

زبان JavaScript چیست؟ راهنمای سریع، مهندسی و کاربردی

زبان JavaScript موتور تعاملی وب است. با آن DOM را تغییر می دهیم، درخواست شبکه می زنیم، و در Node.js سمت سرور می نویسیم. این مطلب مبانی، ماژول ها، رویدادها، async/await، و ابزارهای اصلی را با مثال های دقیق پوشش می دهد.