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

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

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

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

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

بلوک های سازنده: 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، یک فریم ورک وب و دیتابیس شروع کن. سپس تست، امنیت و دیپلوی را اضافه کن. در نهایت روی مشاهده پذیری سرمایه گذاری کن.

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

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

جمع بندی

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

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

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

.NET 8 و .NET 9 در 10 نوامبر 2026 EOL می شوند؛ مسیر مهاجرت امن به .NET 10

.NET 8 و .NET 9 در 10 نوامبر 2026 EOL می شوند؛ مسیر مهاجرت امن به .NET 10

پشتیبانی .NET 8 و .NET 9 در 10 نوامبر 2026 تمام می شود. مسیر مهاجرت به .NET 10 را از csproj تا Container، EF Core، CI و Rollback بررسی می کنیم.

PostgreSQL 19 Beta 2؛ قبل از GA چه چیزهایی را روی دیتابیس واقعی تست کنیم؟

PostgreSQL 19 Beta 2؛ قبل از GA چه چیزهایی را روی دیتابیس واقعی تست کنیم؟

PostgreSQL 19 Beta 2 برای Production نیست، اما بهترین زمان تست workload واقعی است. Query Plan، Temporal، SQL/PGQ، CDC، Extension و Upgrade را بررسی می کنیم.

AWS Blocks چیست؟ مقایسه عملی با CDK و Amplify برای ساخت Backend Type-safe

AWS Blocks چیست؟ مقایسه عملی با CDK و Amplify برای ساخت Backend Type-safe

AWS Blocks یک Backend Toolkit تایپ سیف و Local-first است. آن را با CDK و Amplify از نظر abstraction، Type Safety، Sandbox، امنیت و Production مقایسه می کنیم.

Node.js Security Release جولای 2026؛ 11 آسیب پذیری و نسخه هایی که باید نصب کنید

Node.js Security Release جولای 2026؛ 11 آسیب پذیری و نسخه هایی که باید نصب کنید

Node.js در 29 ژوئیه 2026 یازده آسیب پذیری را در خطوط 22، 24 و 26 اصلاح کرد. نسخه های امن، دامنه CVEها و چک لیست Patch Production را بررسی می کنیم.