_

__slots__ __slots__ Python

گزینه‌ای در کلاس که نام attributeها را از پیش ثابت می‌کند تا نمونه‌ها بدون __dict__ جداگانه آن‌ها را نگه دارند؛ حافظه کمتر مصرف می‌شود و attribute تازه نمی‌توان اضافه کرد.

.

.gitignore .gitignore Git

فایلی از الگوها که به گیت می‌گوید کدام فایل‌های untracked را نادیده بگیرد.

A

A* الگوریتم A* Algorithms

Dijkstra که با یک برآورد از هزینه‌ی باقی‌مانده هدایت می‌شود و گره‌های کمتری گسترش می‌دهد.

ABI ABI Python

Application Binary Interface: قرارداد در سطح باینری (calling convention، چیدمان نوع‌ها، نام نمادها) بین کدهای کامپایل‌شده.

AbortController AbortController Node.js

شیء استانداردی که از طریق AbortSignal لغو شدن را به عملیات async خبر می‌دهد.

ACID ACID Databases

چهار تضمین یک تراکنش: Atomicity، Consistency، Isolation و Durability.

Acknowledgement (ack) تأیید دریافت (ack) Messaging

پاسخ consumer به JetStream: ack (تمام شد)، nak (دوباره بفرست)، term (دیگر نفرست).

AckWait AckWait Messaging

مدتی که JetStream منتظر ack می‌ماند، قبل از اینکه پیام را دوباره بفرستد.

ACME ACME Security

پروتکلی که به نرم‌افزار اجازه می‌دهد گواهی را خودکار از یک CA بگیرد و تمدید کند.

AddressSanitizer AddressSanitizer (ASan) Security

بررسی‌گر زمان اجرا که کامپایلر اضافه می‌کند و دسترسی خارج از محدوده، use-after-free و double free را گزارش می‌دهد.

Adjacency list لیست مجاورت Algorithms

نمایشی از گراف که برای هر vertex فهرست همسایه‌هایش را نگه می‌دارد. حافظه‌اش متناسب با V + E است و برای گراف‌های خلوت مناسب است.

ADR ADR (سند تصمیم معماری) Engineering

Architecture Decision Record: یادداشت کوتاه و شماره‌دار که می‌گوید چه تصمیمی گرفته شد، چرا و با چه بده‌بستانی.

Advisory lock advisory lock Databases

قفلی که برنامه روی یک عدد تعریف می‌کند؛ دیتابیس آن را اعمال می‌کند اما معنایی برایش ندارد.

AEAD AEAD Security

رمزنگاری احرازشده با داده‌ی همراه: یک عملیات که هم محرمانگی می‌دهد هم تشخیص دستکاری.

AES-GCM AES-GCM Security

حالت رمزنگاری احراز‌شده: داده را پنهان می‌کند و هر تغییرش را تشخیص می‌دهد.

Aggregate aggregate (تجمیع) Engineering

مجموعه‌ای از اشیاء که یکجا تغییر می‌کنند و ریشه‌ای دارد که قواعدشان را اجرا می‌کند.

AggregateError AggregateError Node.js

خطایی که چند خطا را در خود جمع می‌کند، مثلاً rejectِ Promise.any.

Alert fatigue alert fatigue (خستگی از هشدار) Engineering

وقتی هشدارهای کاذب زیاد باعث می‌شود آدم‌ها هشدارهای واقعی را هم نادیده بگیرند.

Allow-list allow-list Security

فهرستی از تنها مقدارهای پذیرفته‌شده؛ هر چیز دیگر به‌طور پیش‌فرض رد می‌شود.

ALPN ALPN Networking

ALPN: مذاکره‌ی پروتکل برنامه (مثل h2 یا http/1.1) داخل TLS.

Amortized analysis تحلیل سرشکن‌شده Algorithms

هزینه‌ی هر عملیات که روی کل دنباله‌ی عملیات‌ها میانگین گرفته می‌شود. append که گاهی همه‌چیز را کپی می‌کند، اگر کپی‌های گران به‌اندازه‌ی کافی نادر باشند، همچنان O(1) سرشکن‌شده است.

Annotated tag annotated tag Git

tagی که خودش یک object با پیام، نویسنده و تاریخ است.

Anti-corruption layer لایه‌ی ضدفساد (ACL) Engineering

لایه‌ی ترجمه‌ای که نمی‌گذارد مدل سیستم دیگر به مدل شما نشت کند.

Anti-entropy anti-entropy Distributed

فرایندی پس‌زمینه که replicaها را مقایسه می‌کند و تفاوت‌ها را کپی می‌کند، چه کسی داده را بخواند چه نخواند.

API contract قرارداد API Engineering

توافق مکتوب درباره‌ی آنچه یک API می‌پذیرد و برمی‌گرداند و هم client و هم server باید رعایتش کنند.

Arbitrary precision دقت دلخواه Python

نوع عدد صحیحی که اندازه‌اش در صورت نیاز بزرگ می‌شود و سرریز نمی‌کند. int در Python این‌طور است.

argon2 argon2 Security

تابع هش پسورد مدرن که هزینه‌اش با زمان، حافظه و موازی‌سازی تعیین می‌شود؛ argon2id متداول‌ترین نوع است.

argparse argparse Python

ماژول کتابخانه‌ی استاندارد برای تجزیه‌ی آرگومان‌های خط فرمان؛ --help می‌سازد و در خطای استفاده با کد ۲ خارج می‌شود.

async/await async/await Node.js

سینتکسی که کار با promiseها را شبیه کد ترتیبی می‌کند.

At-least-once delivery تحویل at-least-once Distributed

broker هر پیام را یک بار یا بیشتر تحویل می‌دهد و هرگز صفر بار، پس تکرار ممکن است.

Atomic commit commit اتمیک Git

commitی که فقط یک تغییر منطقی و کامل را شامل می‌شود.

Atomic write نوشتن اتمی Linux

نوشتن فایل به شکلی که خواننده یا محتوای قدیمی را می‌بیند یا جدید را، هرگز نیمه‌نوشته را.

Audit log audit log (لاگ audit) Security

یک رکورد مقاوم در برابر دست‌کاری از اینکه چه کسی، چه کاری، روی چه چیزی، کی، از کجا و با چه نتیجه‌ای انجام داد.

Authoritative server authoritative server Networking

سرور DNS که رکوردهای واقعی یک zone را دارد و با پرچم AA جواب می‌دهد.

Authorization مجوزدهی Security

تصمیم‌گیری درباره‌ی اینکه فراخواننده‌ی شناخته‌شده چه کاری مجاز است.

Authorization Code flow Authorization Code flow Security

جریان OAuth2 که در آن مرورگر فقط یک code کوتاه‌عمر حمل می‌کند و کلاینت آن را در کانال پشتی با توکن عوض می‌کند.

authorized_keys authorized_keys Linux

فایل سمت سرور که کلیدهای عمومی مجاز را فهرست می‌کند، با محدودیت اختیاری برای هر کلید.

Autovacuum autovacuum Databases

پروسه‌ی پس‌زمینه‌ی PostgreSQL که وقتی در جدول به اندازه‌ی کافی تغییر جمع شود، خودکار VACUUM و ANALYZE اجرا می‌کند.

AVL tree درخت AVL Algorithms

درخت جست‌وجوی دودویی که با rotation اختلاف ارتفاع دو زیردرخت هر node را حداکثر ۱ نگه می‌دارد.

B

B-tree B-tree Databases

درخت متوازنی از page‌های هم‌اندازه با کلیدهای مرتب، نوع پیش‌فرض ایندکس در PostgreSQL.

Backfill backfill Databases

پر کردن ستون جدید برای ردیف‌های موجود، در دسته‌های کوچک تا قفل‌ها و تراکنش‌ها کوتاه بمانند.

Backing array آرایه‌ی پشتیبان (backing array) Algorithms

بلوک حافظه‌ای که slice به آن اشاره می‌کند. چند slice می‌توانند یک backing array را به‌اشتراک بگیرند و نوشتن از یکی از آن‌ها از دیگری دیده می‌شود.

Backpressure بک‌پرشر Node.js

سیگنالی از مصرف‌کننده‌ی کند به تولیدکننده‌ی سریع که بایستد تا بافرها بی‌حد بزرگ نشوند.

Backtracking backtracking Algorithms

ساختن جواب گام‌به‌گام و برگرداندن گام وقتی به جواب نمی‌رسد.

bcrypt bcrypt Security

تابع هش پسورد با پارامتر cost و salt داخلی؛ فقط ۷۲ بایت اول پسورد را به‌کار می‌برد.

Bearer token Bearer token Security

توکنی که به هر کس که آن را دارد دسترسی می‌دهد و به شکل `Authorization: Bearer <token>` فرستاده می‌شود.

Bellman-Ford الگوریتم Bellman-Ford Algorithms

کوتاه‌ترین مسیر با اجازه‌ی وزن منفی، با relax کردن همه‌ی یال‌ها تا V بار، با هزینه O(V·E).

Big-O Big-O Algorithms

یک کران بالا برای رشد هزینه‌ی الگوریتم با بزرگ‌شدن ورودی n، بدون در نظر گرفتن ضریب‌های ثابت و جمله‌های کوچک‌تر.

Binary heap هیپ دودویی Algorithms

یک درخت دودویی کامل که در slice ذخیره می‌شود و هر والد از فرزندانش بزرگ‌تر نیست؛ کمینه همیشه در اندیس ۰ است.

Binary search جست‌وجوی دودویی Algorithms

جست‌وجویی که در هر قدم نیمی از بازه را کنار می‌گذارد، در زمان O(log n).

Binary search tree درخت جست‌وجوی دودویی Algorithms

درختی که در آن هر node در زیردرخت چپش کلید کوچک‌تر و در زیردرخت راستش کلید بزرگ‌تر دارد.

Bipartite graph گراف دوبخشی Algorithms

گرافی که vertexهایش را می‌شود به دو گروه تقسیم کرد به طوری که هر یال دو گروه متفاوت را وصل کند. معادل نداشتن دور با طول فرد است.

Bitmap scan Bitmap scan Databases

planی که مکان ردیف‌های منطبق را از یک یا چند ایندکس در یک bitmap جمع می‌کند و بعد صفحه‌های جدول را به ترتیب می‌خواند.

Blast radius شعاع آسیب Distributed

اینکه یک تغییر بد به چند کاربر یا درخواست آسیب می‌زند.

Blob Blob Git

شیء گیت که محتوای یک فایل را بدون نام نگه می‌دارد.

Bloom filter Bloom filter Algorithms

ساختاری با آرایه‌ی بیت که یا می‌گوید «حتماً نیست» یا «شاید هست»؛ منفی‌ی اشتباه ندارد.

Borrowing قرض‌گیری Rust

استفاده از یک مقدار از راه reference بدون گرفتن مالکیت آن.

Bounded context bounded context (بافت محدود) Engineering

مرزی که درونش یک مدل و یک زبان به‌طور یکدست اعمال می‌شود.

Branch شاخه (branch) Git

اشاره‌گری قابل جابه‌جایی: فایلی که شناسه‌ی یک commit را نگه می‌دارد.

Branch by abstraction branch با انتزاع Engineering

جایگزینی تدریجی کد با پنهان کردن قدیم و جدید پشت یک interface.

Branch protection محافظت از branch Engineering

قاعده‌های پلتفرم میزبان که تعیین می‌کنند یک branch مثل main چطور تغییر کند.

Breadth-first search جست‌وجوی breadth-first (BFS) Algorithms

پیمایش درخت یا گراف سطح‌به‌سطح و از نزدیک‌ترین گره‌ها با استفاده از queue. کوتاه‌ترین مسیر را در گراف بدون وزن پیدا می‌کند.

Breaking change تغییر ناسازگار Engineering

تغییری در API که باعث می‌شود یک client که درست نوشته شده کار نکند.

Brooks's law قانون Brooks Engineering

افزودن آدم به پروژه‌ی نرم‌افزاری دیرکرده معمولاً آن را دیرتر می‌کند.

Buffer overflow سرریز بافر (buffer overflow) Security

نوشتن (یا خواندن) بعد از انتهای یک بافر با اندازه‌ی ثابت که حافظه‌ی همسایه را خراب می‌کند.

Build tag build tag Linux

خط `//go:build` بالای فایل Go که تعیین می‌کند فایل برای کدام سیستم‌عامل یا شرایط کامپایل شود.

build تکرارپذیر build تکرارپذیر Engineering

ساخت دوباره‌ی همان سورس خروجی دقیقاً یکسان (بایت به بایت) می‌دهد، پس checksum می‌تواند ثابت کند چه چیزی ساخته شده.

Bulkhead bulkhead (تیغه‌ی جداکننده) Distributed

سقف منبع جداگانه برای هر وابستگی تا یک وابستگی کند نتواند همه‌چیز را مصرف کند.

Burn rate Burn rate Engineering

نرخ خطای مشاهده‌شده تقسیم بر نرخ خطای مجاز SLO؛ مقدار ۱ دقیقاً کل بودجه را مصرف می‌کند.

Byte order mark BOM (نشانه‌ی ترتیب بایت) Python

چند بایت نامرئی در ابتدای فایل متنی؛ در UTF-8 همان EF BB BF است و فایل را UTF-8 معرفی می‌کند.

C

Cache locality محلیت حافظه Algorithms

داده‌ای که با هم استفاده می‌شود و در حافظه کنار هم است ارزان‌تر خوانده می‌شود، چون CPU حافظه را در بلوک‌های کوچک (cache line) می‌آورد و دسترسی ترتیبی را پیش‌واکشی می‌کند.

Canary release انتشار canary Engineering

نشان دادن تغییر به بخش کوچکی از ترافیک، پیش از بقیه.

CAP theorem قضیه‌ی CAP Distributed

هنگام network partition سیستم باید یا linearizability را رها کند یا availability را، برای عملیاتی که نمی‌تواند کامل کند.

Capacity planning capacity planning (برنامه‌ریزی ظرفیت) Distributed

برآورد و بررسی میزان سخت‌افزار لازم برای بار پیش‌بینی‌شده، و تکرار آن با رشد بار.

Cascading failure cascading failure (خرابی زنجیره‌ای) Distributed

خرابی‌ای که پخش می‌شود: یک جزء کند یا خراب callerهایش را فرسوده می‌کند و آن‌ها callerهای خودشان را.

Causal consistency سازگاری علّی (causal consistency) Distributed

اگر یک عملیات می‌توانسته روی دیگری اثر بگذارد، همه آن‌ها را به همان ترتیب می‌بینند؛ عملیات نامرتبط ممکن است فرق کند.

Certificate authority (CA) مرجع صدور گواهی (CA) Networking

CA: مرجعی که کلاینت به امضایش روی گواهی‌ها اعتماد می‌کند.

Certificate chain زنجیره‌ی گواهی Security

فهرست leaf، intermediate و root که گواهی سرور را به یک root مورد اعتماد وصل می‌کند.

Certificate pinning pinning گواهی Security

فقط سروری را قبول می‌کنیم که گواهی یا کلید عمومی‌اش با یک hash از قبل شناخته‌شده بخواند.

cgroup cgroup Linux

گروه‌بندی پروسه‌ها در کرنل Linux برای محدود کردن و شمارش مصرف CPU، حافظه و تعداد پروسه.

Channel کانال Go

مجرایی با نوع مشخص که goroutineها برای ارسال و دریافت امن مقدار از آن استفاده می‌کنند.

Chaos engineering مهندسی آشوب Distributed

آزمایش روی یک سیستم با تزریق خرابی، برای اطمینان از اینکه در برابر آن‌ها تاب می‌آورد.

Characterization test تست مشخصه‌نگار Engineering

تستی که رفتار فعلی کد را با همه‌ی باگ‌هایش ثبت می‌کند تا بتوان با اطمینان آن را تغییر داد.

CHECK constraint قید CHECK Databases

قاعده‌ای روی جدول، مثل balance_cents >= 0، که هر ردیفِ نوشته‌شده باید رعایت کند.

Checksum چک‌سام Networking

عددی کوچک که از روی داده محاسبه می‌شود تا خراب‌شدن تصادفی را تشخیص دهد.

checksum database پایگاه checksum Security

یک لاگ عمومی و فقط‌افزودنی از hash ماژول‌ها (Go از sum.golang.org استفاده می‌کند) که تغییر ماژول بین کاربران را تشخیص می‌دهد.

cherry-pick cherry-pick Git

patch یک commit را به‌صورت commit جدید با hash جدید روی branch فعلی کپی می‌کند.

Choreography choreography Distributed

سرویس‌ها به رویدادهای هم واکنش نشان می‌دهند و هیچ هماهنگ‌کننده‌ی مرکزی جریان را تعیین نمی‌کند.

Chunked encoding chunked Networking

روشی در HTTP/1.1 برای فرستادن body تکه‌تکه بدون دانستن طول کل.

CI CI Git

ادغام پیوسته: سرور روی هر push یا pull request بررسی‌ها (build، تست، lint) را اجرا می‌کند.

CIDR CIDR Networking

CIDR نوشتن شبکه به شکل آدرس/طول prefix است، مثل 192.0.2.0/24.

Circuit breaker circuit breaker (قطع‌کننده‌ی مدار) Distributed

wrapper‌ای که چند وقت صدا زدن وابستگی خراب را متوقف می‌کند و به‌جایش سریع شکست می‌دهد.

Clock skew اختلاف ساعت Distributed

اختلاف ساعت دو ماشین در یک لحظه‌ی واقعی.

Closure closure Python

تابعی که به متغیرهای محدوده‌ی بیرونی خودش دسترسی دارد

Code churn churn کد Engineering

تعداد دفعات تغییر یک فایل یا تابع در طول زمان؛ نشانه‌ی ارزان از جایی که کار و باگ جمع می‌شود.

Code coverage پوشش کد Node.js

درصدی از خط‌ها، شاخه‌ها و توابع که هنگام اجرای تست‌ها اجرا شدند.

Code review بازبینی کد Engineering

خوانده شدن یک تغییر توسط فرد دیگر پیش از merge، برای پیدا کردن مشکل و انتقال دانش.

CODEOWNERS CODEOWNERS Engineering

فایلی در repository که مسیرها را به افراد یا تیم‌هایی نگاشت می‌کند که باید تغییرهای آن مسیر را review کنند.

Command injection Command injection Security

باگی که در آن ورودی کاربر بخشی از خط فرمان shell می‌شود و آنچه اجرا می‌شود را عوض می‌کند.

commit commit Git

object گیت که یک tree را به parentها، author، committer و پیام وصل می‌کند.

CommonJS کامن‌جی‌اس Node.js

سیستم ماژول اصلی Node.js: `require()` فایل را همگام بارگذاری می‌کند و `module.exports` همان چیزی است که برمی‌گرداند.

Compensating transaction تراکنش جبرانی Distributed

کاری جدید که اثر یک قدم قبلاً commit‌شده را از نظر معنایی خنثی می‌کند، مثل refund برای یک charge.

Composite index ایندکس ترکیبی Databases

یک ایندکس روی چند ستون که اول بر اساس ستون اول، بعد دوم و ... مرتب است.

Composition root نقطه‌ی ترکیب Node.js

تنها جایی (معمولاً `main`) که قطعه‌های واقعی ساخته و به هم وصل می‌شوند.

Conditional exports exportهای شرطی Node.js

فیلد `exports` در `package.json` که مسیرهای import را به فایل نگاشت می‌کند و می‌تواند برای `import` و `require` فایل متفاوتی انتخاب کند.

Connected component مؤلفه‌ی همبند Algorithms

بزرگ‌ترین گروه از vertexها در گراف بدون جهت که هر کدام به بقیه می‌رسند. BFS یا DFS از یک vertex دقیقاً مؤلفه‌ی آن را پیدا می‌کند.

Connection pool connection pool (استخر اتصال) Databases

مجموعه‌ای از اتصال‌های باز به دیتابیس که قرض داده و دوباره استفاده می‌شوند.

Connection tracking conntrack Linux

جدول جریان‌ها در کرنل که قوانین فایروال را بر اساس حالت اتصال ممکن می‌کند.

Consensus اجماع (consensus) Distributed

رسیدن گروهی از node‌ها به توافق روی یک مقدار (یا یک log مرتب) با وجود crash برخی node‌ها یا گم شدن پیام‌ها.

Consistent hashing consistent hashing Networking

نگاشت کلید به node که با حذف یک node فقط کلیدهای همان جابه‌جا می‌شوند.

Constant-time comparison مقایسه‌ی زمان‌ثابت Security

مقایسه‌ی رازها به‌شکلی که زمان اجرا به محل اولین تفاوت وابسته نباشد.

Consumer-driven contract قرارداد مبتنی بر مصرف‌کننده Engineering

قراردادی که client‌ها می‌نویسند و می‌گویند کدام بخش‌های API را واقعاً استفاده می‌کنند و server آن را راستی‌آزمایی می‌کند.

Container container Linux

یک پروسه‌ی معمولی Linux که با namespace و محدودیت cgroup اختصاصی و معمولاً از یک image اجرا می‌شود.

Content Security Policy Content Security Policy Security

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

Context کانتکست Go

مقداری که لغو، مهلت زمانی و داده‌های مربوط به یک درخواست را بین لایه‌ها منتقل می‌کند.

Context manager context manager Python

شیئی که با دستور with استفاده می‌شود و متدهای __enter__ و __exit__ آن آماده‌سازی و پاک‌سازی تضمین‌شده را دور یک بلوک اجرا می‌کنند.

Contract test تست قرارداد Engineering

تستی که درخواست یا پاسخ واقعی را با قرارداد API می‌سنجد، نه با انتظارهای دستی.

Contributing factor عامل مؤثر (contributing factor) Engineering

یکی از چند شرطی که با هم اجازه‌ی وقوع حادثه را داده‌اند.

Conventional Commits Conventional Commits Git

قرارداد نوشتن subject کامیت به شکل type(scope): summary.

Conway's law قانون کانوی Distributed

طراحی یک سیستم تمایل دارد ساختار ارتباطی سازمان سازنده‌اش را منعکس کند.

copytruncate copytruncate Linux

گزینه‌ای در logrotate که لاگ را کپی می‌کند و فایل اصلی را به‌جای تغییر نام، همان‌جا خالی می‌کند.

Coroutine کورتین Python

تابعی که با async def تعریف می‌شود؛ صدا زدنش یک شیء coroutine برمی‌گرداند که تا await یا تبدیل به task نشود کاری نمی‌کند.

Correlated subquery correlated subquery (زیرپرس‌وجوی وابسته) Databases

زیرپرس‌وجویی که به ردیف بیرونی ارجاع می‌دهد و برای هر ردیف بیرونی یک بار اجرا می‌شود.

CORS CORS Security

مکانیزمی که با هدرها به مرورگر می‌گوید صفحه‌ای از origin دیگر مجاز به خواندن پاسخ هست یا نه.

Coverage-guided fuzzing fuzzing هدایت‌شده با پوشش Security

fuzzing هدایت‌شده با پوشش ورودی‌هایی را نگه می‌دارد و جهش می‌دهد که به بخش تازه‌ای از کد برسند.

Covering index ایندکس پوششی Databases

ایندکسی که همه‌ی ستون‌های موردنیاز کوئری را دارد و نیازی به خواندن جدول نیست.

CPU cache کش پردازنده Algorithms

حافظه‌ی کوچک و سریع کنار CPU که داده‌های اخیر را نگه می‌دارد؛ دسترسی ترتیبی خیلی بیشتر از دسترسی تصادفی از آن بهره می‌برد.

CPU profile پروفایل CPU Node.js

نمونه‌برداری از اینکه CPU در هر لحظه کدام تابع را اجرا می‌کرد؛ برای پیدا کردن جای رفتن زمان.

CPU-bound وابسته به CPU Engineering

کاری که سرعتش را پردازنده تعیین می‌کند، مثل محاسبه‌ی اعداد اول، نه انتظار برای I/O.

CQRS تفکیک command و query (CQRS) Distributed

مدلی که نوشتن را انجام می‌دهد از مدلی که خواندن را سرو می‌کند جداست.

CRDT CRDT Distributed

نوع داده‌ی replicate شده‌ی بدون تعارض: replicaها مستقل تغییر می‌کنند و یک تابع merge جابه‌جایی‌پذیر، شرکت‌پذیر و idempotent آن‌ها را همگرا می‌کند.

CREATE INDEX CONCURRENTLY CREATE INDEX CONCURRENTLY Databases

ساخت ایندکس بدون بلوکه کردن نوشتن، به قیمت چند گذر بیشتر و احتمال یک ایندکس INVALID در صورت شکست.

Credential stuffing credential stuffing Security

امتحان جفت‌های نام کاربری و گذرواژه‌ی لو رفته از جای دیگر روی ورود شما، با کاربران زیاد از یک مبدأ.

Critical path مسیر بحرانی Algorithms

طولانی‌ترین زنجیره‌ی کارهای وابسته؛ حتی با کارگر نامحدود حداقل زمان را همین تعیین می‌کند.

cron cron Linux

زمان‌بند کلاسیک Unix که فرمان‌ها را در زمان‌های نوشته‌شده در جدول پنج‌ستونی اجرا می‌کند.

Crypto-shredding crypto-shredding Distributed

حذف داده از یک log تغییرناپذیر با رمز کردن فیلدهای شخصی با کلید مخصوص هر فرد و از بین بردن کلید.

CSRF CSRF Security

جعل درخواست بین‌سایتی: سایت دیگری مرورگر را وادار می‌کند درخواستی با کوکی شما بفرستد که نخواسته‌اید.

CTE CTE Databases

یک subquery نام‌دار که با WITH تعریف می‌شود و در query اصلی استفاده می‌شود.

CVE شناسه‌ی آسیب‌پذیری Security

Common Vulnerabilities and Exposures: شناسه‌ی عمومی برای یک آسیب‌پذیری امنیتیِ شناخته‌شده.

Cyclomatic complexity پیچیدگی سیکلوماتیک Engineering

شمارش مسیرهای تصمیم مستقل در یک تابع.

D

Daemon thread ترد daemon Python

threadی که برنامه را زنده نگه نمی‌دارد: وقتی فقط thread‌های daemon مانده باشند process تمام می‌شود.

DAG DAG Git

گراف جهت‌دار بدون دور: شکل تاریخچه‌ی گیت که commitها به parentهایشان اشاره می‌کنند.

Database index اندیس دیتابیس Databases

ساختار مرتب و جداگانه‌ای که دیتابیس را بدون خواندن کل جدول به ردیف‌ها می‌رساند.

Dataclass dataclass Python

کلاسی با دکوراتور @dataclass: Python از فیلدهای annotate شده __init__، __repr__ و __eq__ را می‌سازد، با گزینه‌هایی مثل frozen، order و slots.

Datagram داده‌گرام Networking

داده‌گرام بسته‌ای مستقل است که بدون اتصال فرستاده می‌شود؛ یا کامل می‌رسد یا اصلاً نمی‌رسد.

Dead man's switch dead man's switch Linux

هشداری که وقتی سیگنال مورد انتظار نمی‌رسد فعال می‌شود.

Dead tuple dead tuple Databases

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

Dead-letter queue صف نامه‌های مرده Messaging

جایی که پیام‌هایی که مدام شکست می‌خورند به آن منتقل می‌شوند تا جریان اصلی را بلاک نکنند.

Deadline ددلاین Networking

زمانی مطلق که بعد از آن خواندن یا نوشتن روی شبکه با خطای timeout شکست می‌خورد.

Deadlock deadlock Databases

دو یا چند session هرکدام منتظر قفلی هستند که دیگری نگه داشته، پس هیچ‌کدام ادامه نمی‌دهد؛ دیتابیس یکی را قطع می‌کند.

Decorator decorator Python

تابعی که تابع دیگر را می‌گیرد و نسخه‌ی تغییریافته‌اش را برمی‌گرداند

Default partition پارتیشن پیش‌فرض (default partition) Databases

پارتیشنی که ردیف‌های بی‌پارتیشن را می‌گیرد، یعنی ردیف‌هایی که با هیچ پارتیشن دیگری جور نیستند.

Delta compression فشرده‌سازی delta Git

ذخیره‌ی object به‌صورت تفاوت کوچک با یک object پایه.

Denial of service منع سرویس Security

حمله یا اتفاقی که با تمام‌کردن یک منبع مثل حافظه، اتصال یا CPU سرویس را در دسترس نمی‌گذارد.

Denormalization دنرمال‌سازی Databases

ذخیره‌ی عمدی یک واقعیت در چند جا برای ارزان‌تر شدن خواندن.

Deny by default رد پیش‌فرض Security

هر route یا عملی تا وقتی قاعده‌ای صریحاً اجازه ندهد ممنوع است.

Dependency injection تزریق وابستگی Node.js

دادن وابستگی‌ها (مثل زمان یا دیتابیس) از بیرون به‌جای ساختنشان داخل تابع.

Depth-first search جست‌وجوی depth-first (DFS) Algorithms

پیمایش گراف با رفتن تا جای ممکن در یک مسیر و بعد برگشتن به عقب، با بازگشت یا stack.

Deque deque (صف دوطرفه) Algorithms

صف دوطرفه: push و pop از هر دو سر، همگی در O(1) سرشکن. ring buffer با قابلیت رشد آن را خوب پیاده می‌کند.

Detached HEAD HEAD جداشده Git

حالتی که HEAD مستقیم به یک commit اشاره می‌کند، نه به نام یک branch.

Deterministic simulation شبیه‌سازی قطعی Distributed

اجرای سیستم در یک دنیای شبیه‌سازی‌شده که با seed هدایت می‌شود تا هر خرابی دقیقاً بازپخش شود.

Differential testing تست تفاضلی Security

اجرای دو پیاده‌سازی روی یک ورودی و گزارش هر تفاوت.

Digital signature امضای دیجیتال Security

مقداری که با کلید خصوصی ساخته می‌شود و هر کس با کلید عمومی می‌تواند راستی‌آزمایی کند؛ منشأ و یکپارچگی را ثابت می‌کند.

Dijkstra's algorithm الگوریتم Dijkstra Algorithms

کوتاه‌ترین مسیر از یک مبدأ در گراف با وزن نامنفی، با گسترش همیشگی نزدیک‌ترین رأس تمام‌نشده.

Distributed monolith distributed monolith (مونولیت توزیع‌شده) Distributed

سرویس‌هایی که از راه شبکه جدا شده‌اند ولی هنوز باید با هم تغییر کنند، مستقر شوند و خراب شوند.

DNS دی‌اِن‌اِس Networking

سیستمی که نام‌ها را به رکوردهایی مثل آدرس IP نگاشت می‌کند.

DNS rebinding DNS rebinding Security

نامی که برای بررسی به آدرسی بی‌خطر و برای اتصال به آدرسی داخلی resolve می‌شود.

Domain event رویداد دامنه Engineering

واقعیتی که در دامنه رخ داده، با فعل گذشته نام‌گذاری می‌شود، مثل OrderPlaced.

Domain-driven design طراحی دامنه‌محور (DDD) Engineering

رویکردی که کد را بر پایه‌ی دامنه‌ی کسب‌وکار، زبان، مرزها و قواعد آن شکل می‌دهد.

Dual write نوشتن دوگانه Distributed

نوشتن هم‌زمان شکل قدیم و جدید داده.

Duck typing duck typing Python

استفاده از یک شیء به‌خاطر متدهایی که صدا می‌زنید، نه کلاسی که اعلام کرده؛ اگر speak() دارد، می‌توانید speak() را صدا بزنید.

Dunder method متد dunder Python

متدی ویژه با دو underscore دور نامش، مثل __repr__ یا __eq__، که Python هنگام استفاده از print()، == یا len() خودش صدا می‌زند.

Durable consumer کانسیومر ماندگار Messaging

یک consumer نام‌دار در JetStream که جایگاهش بعد از restart و اتصال مجدد حفظ می‌شود.

Dynamic array آرایه‌ی پویا Algorithms

آرایه‌ای قابل‌رشد که عنصرها را در یک بلوک پیوسته نگه می‌دارد؛ وقتی پر شد بلوک بزرگ‌تری می‌گیرد و همه‌چیز را کپی می‌کند. slice در Go و Vec در Rust این‌طور کار می‌کنند.

Dynamic programming برنامه‌ریزی پویا Algorithms

حل مسئله با ترکیب جواب زیرمسئله‌های کوچک‌تر که هر کدام یک بار حل و ذخیره می‌شود.

E

ECB mode حالت ECB Security

حالتی از رمز بلوکی که هر بلوک را مستقل رمز می‌کند، پس بلوک‌های برابر متن، بلوک‌های برابر رمز می‌دهند.

Edit distance فاصله‌ی ویرایش Algorithms

کمترین تعداد درج، حذف و جایگزینی برای تبدیل یک دنباله به دیگری (Levenshtein).

editable install editable install Python

نصب یک پروژه به‌گونه‌ای که محیط به نسخه‌ی کاری شما اشاره کند، نه یک کپی ثابت؛ پس تغییرها فوراً اعمال می‌شوند.

Encapsulation کپسوله‌سازی Networking

قرار دادن داده‌ی یک لایه داخل header لایه‌ی پایین‌تر.

entry point entry point Python

یک اتصال نام‌دار در metadata بسته؛ entry point های console_scripts هنگام نصب به دستور در PATH تبدیل می‌شوند.

Envelope encryption رمزنگاری پاکتی Security

رمز کردن داده با کلید تصادفی هر رکورد که خودش با یک کلید اصلی رمز می‌شود.

Environment variable متغیر محیطی Node.js

رشته‌ای با نام که پروسه از والد خود می‌گیرد و برای انتقال تنظیماتی مثل پورت و کلید به کار می‌رود.

epoll epoll Linux

فراخوان‌های سیستمی Linux که به یک thread اجازه می‌دهند به‌طور کارا منتظر آماده شدن هزاران file descriptor بماند.

errgroup ارورگروپ Go

ابزاری از `golang.org/x/sync` که چند goroutine را با هم اجرا می‌کند و با اولین خطا بقیه را لغو می‌کند.

errno errno Linux

کد خطایی که فراخوان سیستمی ناموفق گزارش می‌کند، مثل ENOENT یا EACCES.

Error budget error budget (بودجه‌ی خطا) Engineering

مقدار شکستی که SLO در یک بازه اجازه می‌دهد.

ESM ماژول‌های ES Node.js

سیستم ماژول استاندارد JavaScript (`import` و `export`) که ناهمگام بارگذاری می‌شود و پیش از اجرای کد، به‌صورت ایستا تحلیل می‌شود.

Event envelope قالب رویداد Distributed

یک پوشش ثابت دور هر رویداد با metadata (شناسه، نوع، زمان، منبع، نسخه‌ی schema، correlation id) جدا از payload.

Event loop ایونت‌لوپ Node.js

حلقه‌ای که به JavaScript تک‌threaded اجازه می‌دهد با اجرای callback در لحظه‌ی آماده شدن، چند عملیات منتظر را مدیریت کند.

Event sourcing رویدادمحوری ذخیره‌سازی (event sourcing) Distributed

وضعیت ذخیره نمی‌شود؛ فهرست append-only رویدادهایی که به آن رسیده‌اند ذخیره می‌شود و وضعیت فعلی fold آن‌هاست.

EventEmitter EventEmitter Node.js

شیء publish/subscribe داخلی Node: event با نام emit می‌شود و listenerها واکنش نشان می‌دهند.

Eventual consistency سازگاری نهایی (eventual consistency) Distributed

اگر writeها متوقف شوند، همه‌ی replicaها به یک مقدار می‌رسند؛ قبل از آن readها ممکن است کهنه یا نامرتب باشند.

Exception chaining زنجیره‌ی exception Python

وصل کردن exception جدید به exception در حال مدیریت: raise ... from e مقدار __cause__ و raise داخل except مقدار __context__ را پر می‌کند.

ExceptionGroup ExceptionGroup Python

exceptionی که چند exception را با هم حمل می‌کند؛ except* هر نوع را روی بخش مربوط به خودش مدیریت می‌کند.

Exit status کد خروج Linux

عددی که دستور پایان کار برمی‌گرداند؛ 0 یعنی موفق و غیر از آن یعنی شکست. پوسته آن را با `$?` نشان می‌دهد و در `&&` و `||` و `if` به کار می‌برد.

Expand/contract expand/contract Databases

دستور پخت مایگریشن در گام‌های کوچک و امن: ساختار جدید را اضافه کن، داده را کپی کن، برنامه را عوض کن، ساختار قدیمی را حذف کن.

Exponential backoff بک‌آف نمایی Distributed

افزایش فاصله‌ی بین تلاش‌ها پس از هر شکست، با دو برابر شدن تا سقف مشخص.

Expression index ایندکس عبارتی Databases

ایندکسی که روی نتیجه‌ی یک عبارت مثل lower(email) ساخته می‌شود، نه یک ستون ساده.

Extended statistics آمار گسترده Databases

آمار چندستونه که با `CREATE STATISTICS` ساخته می‌شود.

F

Fail open fail open Distributed

عبور دادن درخواست‌ها وقتی جزء محافظ، مثل store مربوط به limiter، در دسترس نیست.

Failover failover Databases

جابه‌جایی به یک standby به‌عنوان primary جدید وقتی قدیمی از کار می‌افتد.

Failure detector تشخیص‌دهنده‌ی خرابی Distributed

مؤلفه‌ای که حدس می‌زند یک گره‌ی دور از کار افتاده یا نه، معمولاً از نرسیدن heartbeat در مهلت مشخص.

Fan-out fan-out (ضریب شاخه‌ای) Algorithms

تعداد فرزندهایی که یک node درخت می‌تواند داشته باشد؛ fan-out بزرگ‌تر درخت را کم‌عمق‌تر می‌کند.

fast-forward fast-forward Git

جلو بردن اشاره‌گر branch روی یک خط مستقیم از commitها، بدون ساختن commit جدید.

Fault injection تزریق خطا Distributed

ایجاد عمدی تأخیر، خطا یا crash در یک وابستگی برای دیدن واکنش سیستم.

Feature flag پرچم ویژگی Engineering

کلیدی در زمان اجرا که مسیرهای کد را بدون deploy روشن یا خاموش می‌کند.

FFI رابط توابع خارجی Go

Foreign Function Interface: فراخوانی کدی که به زبان دیگری نوشته شده، معمولاً از راه C ABI.

File descriptor فایل دسکریپتور Linux

عدد کوچکی که پروسه با آن به فایل، pipe یا سوکت باز اشاره می‌کند. ۰ و ۱ و ۲ همان stdin، stdout و stderr هستند و redirectهای پوسته آن‌ها را جابه‌جا می‌کنند.

File permissions مجوزهای فایل Linux

نُه بیت (خواندن، نوشتن و اجرا برای user و group و other) که در inode ذخیره می‌شوند. حالت‌های octal مثل 755 یا 640 آن‌ها را فشرده می‌نویسند.

Fisher exact test آزمون دقیق فیشر Distributed

آزمون معناداری دقیق برای جدول ۲×۲ از شمارش‌ها.

Five whys پنج چرا (five whys) Engineering

روشی که با پرسیدن پیاپی «چرا» دنبال علت می‌گردد؛ فقط یک زنجیره را می‌رود.

Fixture فیکسچر Python

تابعی که چیزهای موردنیاز تست را آماده و پس از آن پاک‌سازی می‌کند

Flaky test تست flaky Engineering

تستی که بدون تغییر کد گاهی می‌گذرد و گاهی رد می‌شود.

Flame graph فلیم‌گراف Linux

تصویری از stackهای نمونه‌برداری‌شده که عرض هر جعبه نشان می‌دهد تابع چند بار روی stack بوده.

force push force push Git

branch ریموت را با نسخه‌ی محلی بازنویسی می‌کند، حتی اگر commitهایی حذف شوند؛ --force-with-lease ترجیح دارد.

Foreign key کلید خارجی Databases

ستونی که باید با یک مقدار کلید اصلی در جدولی دیگر یکی باشد.

Free-threaded Python Python بدون GIL (free-threaded) Python

ساختی از CPython که از 3.13 به‌صورت گزینه در دسترس است و بدون GIL اجرا می‌شود.

Fuzzing فازینگ (fuzzing) Engineering

دادن ورودی‌های جهش‌یافته‌ی خودکار به برنامه، با هدایت coverage، برای پیدا کردن crash و باگ.

G

Game day game day Distributed

جلسه‌ی برنامه‌ریزی‌شده‌ای که تیم در آن خرابی تزریق می‌کند و تشخیص و رفع آن را تمرین می‌کند.

Garbage collector garbage collector Node.js

بخشی از runtime که objectهایی را که دیگر به آن‌ها دسترسی نیست آزاد می‌کند.

Generated column ستون generated Databases

ستونی که مقدارش با یک عبارت از ستون‌های دیگر همان ردیف محاسبه و خودکار ذخیره می‌شود.

Generator generator Python

تابعی با yield که مقدارها را یکی‌یکی و در صورت نیاز تولید می‌کند

Generics generic (نوع عمومی) Python

کدی که یک بار برای هر نوعی نوشته می‌شود و نوع به‌عنوان پارامتر می‌آید، مثل def first[T](xs: list[T]) -> T. checker پیگیری می‌کند در هر فراخوانی T چیست.

GIL گیل (GIL) Python

قفلی در CPython استاندارد که اجازه می‌دهد در هر لحظه فقط یک thread بایت‌کد Python اجرا کند.

GIN index ایندکس GIN Databases

ایندکس وارونه در PostgreSQL که هر عنصر داخل یک مقدار (کلید JSON، کلمه) را به ردیف‌هایی که آن را دارند نگاشت می‌کند.

git bisect git bisect Git

ابزار Git که با جست‌وجوی دودویی در تاریخچه، اولین commit خراب‌کننده را پیدا می‌کند.

Git object Git object Git

یکی از blob، tree، commit یا tag که با هشش در .git/objects ذخیره می‌شود.

git reset ریست در Git Git

branch فعلی را به commit دیگری می‌برد؛ mode تعیین می‌کند index و working tree چه شوند.

git revert revert در Git Git

یک commit را با افزودن commit جدیدی با patch معکوس برمی‌گرداند و تاریخچه را دست نمی‌زند.

Gitlink گیت‌لینک Git

یک ورودی در tree (با mode برابر 160000) که id یک commit از repository دیگر را ثبت می‌کند.

Go workspace (go.work) workspace در Go (go.work) Engineering

فایل go.work که چند ماژول محلی Go را بدون نسخه‌ی منتشرشده به هم وصل می‌کند.

GOAWAY GOAWAY در HTTP/2 Networking

فریمی در HTTP/2 که به طرف مقابل می‌گوید روی این اتصال stream تازه باز نکند.

Goroutine گوروتین Go

اجرای سبکی از یک تابع که runtime زبان Go مدیریت می‌کند، نه سیستم‌عامل.

Graceful shutdown خاموشی تمیز Node.js

متوقف کردن سرور بدون پذیرش کار تازه، به‌طوری که درخواست‌های در حال اجرا تمام شوند.

Graph گراف Algorithms

مجموعه‌ای از vertex (گره) که با edge (یال) به هم وصل شده‌اند. یال‌ها می‌توانند جهت‌دار یا بدون جهت باشند. شبکه، نقشه، وابستگی‌ها و دوستی‌ها همه گراف‌اند.

Gray failure خرابی خاکستری Distributed

گره‌ای که نمرده ولی آن‌قدر کند یا ناپایدار است که به سیستم آسیب می‌زند، در حالی که زنده به نظر می‌رسد.

Greedy algorithm الگوریتم greedy Algorithms

در هر گام بهترین انتخاب محلی را می‌کند و هرگز به آن برنمی‌گردد.

gRPC جی‌آر‌پی‌سی Go

چارچوب RPC باینری که روی HTTP/2 و Protocol Buffers ساخته شده است.

H

Half-close نیم‌بستن اتصال Networking

بستن فقط جهت ارسال یک اتصال TCP در حالی که هنوز می‌توان خواند.

Happens-before happens-before (رخ‌داد پیش از) Distributed

رابطه‌ی علّیت به صورت ترتیب جزئی: ترتیب برنامه، send قبل از receive و تعدی؛ رویدادهای بدون چنین مسیری هم‌زمان‌اند.

Hard link هارد لینک Linux

نام دوم برای همان inode. هر دو نام هم‌ارزند، شمارنده‌ی لینک بالا می‌رود و داده فقط وقتی آزاد می‌شود که آخرین نام حذف شود.

Hash chain hash chain (زنجیره‌ی hash) Security

هر رکورد hash رکورد قبلی را نگه می‌دارد، پس ویرایش، حذف یا جابه‌جایی همه‌ی پیوندهای بعدی را می‌شکند.

Hash collision برخورد hash Algorithms

دو کلید متفاوت که به یک خانه از جدول هش می‌رسند.

Hash slot hash slot Distributed

یکی از تعداد ثابتی سطل منطقی که کلیدها در آن hash می‌شوند؛ کل slot به node داده یا بین node‌ها جابه‌جا می‌شود، نه تک‌تک کلیدها.

Hash table جدول هش Algorithms

ساختاری که کلید را با محاسبه‌ی hash پیدا می‌کند و جست‌وجو را به‌طور میانگین O(1) می‌کند. map در Go یکی از آن‌هاست.

HEAD HEAD Git

اشاره‌گر به commitی که checkout فعلی شما بر پایه‌ی آن است.

Head-of-line blocking انسداد سر صف (head-of-line blocking) Networking

یک مورد کند در ابتدای صف، همه‌ی موارد پشت سرش را معطل می‌کند.

Health check health check Networking

بررسی‌ای که به load balancer می‌گوید backend می‌تواند ترافیک بگیرد یا نه.

Heap snapshot اسنپ‌شات heap Node.js

ثبت همه‌ی objectهای زنده‌ی heap همراه با اندازه و ارجاع‌ها، برای پیدا کردن اینکه چه چیزی حافظه را نگه داشته.

Heap sort heap sort Algorithms

ساخت max-heap در جا، و بعد جابه‌جایی مکرر ریشه به انتها و sift down؛ O(n log n)، بدون حافظه‌ی اضافه و ناپایدار.

Heapify heapify Algorithms

تبدیل یک slice نامرتب به heap در جا و در O(n)، با پایین‌بردن گره‌ها از آخرین والد تا ریشه.

Heartbeat Heartbeat Networking

پیام کوچک و دوره‌ای (مثل ping) برای فهمیدن اینکه طرف مقابل هنوز زنده است.

Hedged request درخواست hedged Distributed

ارسال نسخه‌ی دوم یک درخواست کند به replica دیگر و استفاده از اولین پاسخ.

Here-document Here-document Linux

سینتکس پوسته (`<<EOT`) که خط‌های بعدی را به stdin دستور می‌دهد. marker داخل quote (`<<’EOT’`) باز شدن متغیرها را خاموش می‌کند.

highWaterMark highWaterMark Node.js

اندازه‌ی بافری که از آن به بعد stream از تولیدکننده می‌خواهد آهسته‌تر شود (برای Writable پیش‌فرض 16 KiB).

Hinted handoff hinted handoff Distributed

وقتی یک replica از کار افتاده، node دیگری نوشتن‌های آن را با یک hint نگه می‌دارد و بعد از برگشتنش تحویل می‌دهد.

HMAC HMAC Security

کد احراز پیام ساخته‌شده از هش و کلید مخفی؛ برخلاف sha256(secret||msg) در برابر length extension مقاوم است.

Hot key کلید داغ (hot key) Distributed

کلیدی که آن‌قدر ترافیک می‌گیرد که shard صاحبش حتی با پخش یکنواخت بقیه‌ی کلیدها زیر بار می‌ماند.

HOT update HOT update Databases

Heap-Only Tuple: نسخه‌ی جدید در همان صفحه ذخیره می‌شود و ورودی جدیدی در ایندکس نمی‌گیرد؛ وقتی ممکن است که ستون ایندکس‌شده تغییر نکند.

HPACK HPACK Networking

روش فشرده‌سازی header در HTTP/2.

HSTS HSTS Security

هدری که به مرورگر می‌گوید تا مدتی فقط با HTTPS به این سایت وصل شود.

HTTP اچ‌تی‌تی‌پی Networking

پروتکل متنی درخواست و پاسخ که معمولاً روی TCP حمل می‌شود.

HTTP redirect ریدایرکت HTTP Networking

ریدایرکت پاسخ 3xx با هدر Location است که به کلاینت می‌گوید URL دیگری را بخواهد.

HTTP trailers تریلر HTTP (trailers) Networking

فیلدهای هدری که بعد از body فرستاده می‌شوند، وقتی نتیجه‌ی نهایی معلوم شده است.

HTTP Upgrade HTTP Upgrade Networking

درخواستی که از سرور می‌خواهد اتصال را به پروتکل دیگری ببرد (پاسخ 101 Switching Protocols).

HttpOnly HttpOnly Security

ویژگی کوکی که آن را از JavaScriptِ داخل صفحه پنهان می‌کند.

Huffman coding کدگذاری Huffman Algorithms

کد پیشوندی greedy که نمادهای پرتکرار را با رشته‌بیت کوتاه‌تر می‌نویسد.

Hunk Hunk Git

یک بلوک پیوسته از تغییرها داخل diff.

Hybrid logical clock hybrid logical clock (ساعت منطقی ترکیبی) Distributed

timestampی که زمان فیزیکی را با یک شمارنده‌ی منطقی ترکیب می‌کند؛ نزدیک به زمان واقعی و سازگار با علّیت.

Hysteresis Hysteresis Distributed

لازم‌کردن چند probe پشت‌سرهم قبل از تغییر حالت، تا instance ناپایدار مدام وارد و خارج چرخش نشود.

I

I/O-bound وابسته به I/O Engineering

کاری که بیشتر زمانش صرف انتظار برای شبکه یا دیسک می‌شود، نه محاسبه.

ICMP آی‌سی‌ام‌پی Networking

ICMP پروتکل پیام‌های کنترلی IP است و برای خطاهایی مثل port unreachable به کار می‌رود.

Idempotency خودتوان‌بودن Messaging

پردازش چندباره‌ی یک عملیات همان اثر پردازش یک‌باره را دارد.

Idempotency key کلید idempotency Distributed

شناسه‌ی یکتایی که کلاینت همراه درخواست می‌فرستد تا سرور تکرار را تشخیص بدهد و به‌جای اجرای دوباره، نتیجه‌ی اول را برگرداند.

Idle in transaction idle in transaction Databases

جلسه‌ای که transaction باز کرده و کاری نمی‌کند، ولی هنوز connection و قفل‌هایش را نگه داشته.

IDOR IDOR Security

IDOR (ارجاع مستقیم ناامن به شیء): endpoint شیء را با شناسه‌اش برمی‌گرداند بی‌آنکه بررسی کند فراخواننده اجازه‌ی دیدنش را دارد.

In-degree درجه‌ی ورودی Algorithms

تعداد یال‌هایی که به یک رأس وارد می‌شوند؛ در گراف وابستگی یعنی چند پیش‌نیاز هنوز مانده است.

Incident response incident response (واکنش به حادثه) Security

فرایند سازمان‌یافته‌ی شناسایی، مهار، حذف و یادگیری از یک حادثه‌ی امنیتی.

Index Only Scan Index Only Scan Databases

یک node در plan که کوئری را فقط از ایندکس جواب می‌دهد، بی‌آنکه سراغ جدول برود.

inline script metadata inline script metadata Python

PEP 723: بلوک کامنت بالای یک اسکریپت تک‌فایلی که وابستگی‌ها و نسخه‌ی Python را فهرست می‌کند.

Inode آی‌نود Linux

رکوردی در سیستم فایل که فراداده‌ی فایل (مالک، مجوز، اندازه، تعداد لینک) و محل داده‌اش را نگه می‌دارد. نام فایل در پوشه فقط به شماره‌ی inode اشاره می‌کند.

Integer overflow سرریز عدد صحیح Algorithms

نتیجه‌ای که در نوع عدد صحیح جا نمی‌شود؛ در Go بی‌صدا دور می‌زند.

Integration test تست یکپارچگی Engineering

تستی که چند بخش را با هم اجرا می‌کند، مثل یک service همراه repository.

Invariant یک ویژگی همیشه‌درست در الگوریتم Algorithms

شرطی که قبل و بعد از هر دور حلقه برقرار است و برای اثبات درستی الگوریتم به کار می‌رود.

iproute2 iproute2 Linux

مجموعه‌ی ابزار شبکه‌ی Linux که با دستور ip کار می‌کند.

IPv6 IPv6 Networking

IPv6 جانشین ۱۲۸ بیتی IPv4 است، با نمایش hex، زیرشبکه‌های /64 و بدون broadcast.

Isolation level سطح ایزولاسیون Databases

تنظیمی که تعیین می‌کند یک تراکنش چقدر از کارِ تراکنش‌های هم‌زمان را ببیند.

Iterator iterator Python

شیئی که با __next__ مقدار بعدی را می‌دهد و در پایان StopIteration می‌اندازد

J

JetStream جت‌استریم Messaging

لایه‌ی ماندگاری NATS: streamهایی که پیام را ذخیره می‌کنند و consumerهایی که آن‌ها را می‌خوانند.

Jitter جیتر Distributed

تصادف اضافه‌شده به فاصله‌ی retry تا کلاینت‌ها هم‌زمان تلاش نکنند.

JOIN JOIN Databases

ترکیب سطرهای دو جدول بر اساس یک شرط تطابق.

journald journald Linux

سرویس systemd که لاگ سرویس‌ها و کرنل را در یک ژورنال ساختاریافته جمع می‌کند.

JSON Schema JSON Schema Node.js

توصیفی استاندارد از شکل یک سند JSON که کتابخانه با آن به‌طور خودکار اعتبارسنجی می‌کند.

JSONB JSONB Databases

نوع ستونی در PostgreSQL که JSON را به شکل باینری پارس‌شده نگه می‌دارد و می‌شود رویش ایندکس ساخت و کوئری زد.

JWKS JWKS Security

سند JSON، معمولاً در /jwks.json، که کلیدهای عمومی لازم برای راستی‌آزمایی توکن‌های امضاشده‌ی یک issuer را منتشر می‌کند.

JWT JWT Security

توکن امضاشده (header.payload.signature) که claimها را حمل می‌کند؛ امضا شده، رمزنگاری نشده.

K

Keep-alive Keep-alive Node.js

استفاده‌ی مجدد از یک اتصال TCP برای چند درخواست HTTP، به‌جای باز کردن اتصال تازه برای هرکدام.

Key derivation function تابع اشتقاق کلید Security

تابعی که رمز عبور یا راز اصلی را به کلیدهای تصادفی یکنواخت با طول لازم تبدیل می‌کند.

Key rotation چرخش کلید Security

جایگزین کردن کلید با کلید جدید به‌صورت دوره‌ای یا پس از لو رفتن، بدون از دست رفتن داده‌ی قدیمی.

Keyset pagination صفحه‌بندی مبتنی بر کلید Engineering

صفحه‌بندی با «ردیف‌های بعد از این کلید» به‌جای «N ردیف را رد کن».

Kill switch کلید اضطراری Engineering

پرچمی که فقط برای خاموش کردن فوری یک ویژگی است.

KMP algorithm الگوریتم KMP Algorithms

جست‌وجوی رشته با یک تابع شکست از پیش محاسبه‌شده، به‌طوری که اشاره‌گر متن هرگز عقب نمی‌رود.

Knapsack problem مسئله‌ی کوله‌پشتی Algorithms

انتخاب اقلام با وزن و ارزش برای بیشینه کردن ارزش در ظرفیت وزنی مشخص.

known_hosts known_hosts Linux

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

kqueue kqueue Linux

رابط اعلان رویداد در BSD و macOS، هم‌خانواده‌ی epoll در Linux.

L

Lamport clock ساعت Lamport Distributed

یک شمارنده برای هر process که با هر رویداد زیاد می‌شود و هنگام receive با max ادغام می‌شود، تا «a پیش از b» یعنی timestamp کوچک‌تر.

Last write wins آخرین نوشتن برنده است Distributed

قاعده‌ای برای حل تعارض که مقدار با بزرگ‌ترین timestamp را نگه می‌دارد و بقیه را دور می‌ریزد.

Late binding late binding Python

نام متغیر در لحظه‌ی اجرا حل می‌شود، نه موقع ساختن closure

Lazy deletion lazy deletion (حذف تنبل) Algorithms

حذف یا ویرایش نکردن عنصر قدیمی؛ عنصر تازه را می‌گذاریم و هنگام pop عنصر کهنه را رد می‌کنیم.

Lazy evaluation ارزیابی تنبل Python

محاسبه‌ی مقدار فقط وقتی واقعاً لازم شود

LCS بلندترین زیردنباله‌ی مشترک Algorithms

بلندترین دنباله‌ای که در هر دو ورودی با همان ترتیب می‌آید، نه لزوماً پیوسته.

Leader election leader election (انتخاب رهبر) Distributed

انتخاب یک node برای هماهنگی در یک بازه؛ در Raft یک candidate در یک term تازه به رأی اکثریت نیاز دارد.

Lease اجاره (lease) Distributed

واگذاری یک منبع یا سهمیه به یک نگهدارنده برای سهم یا زمان محدود.

Least privilege اصل حداقل دسترسی (least privilege) Linux

به پروسه یا آدم فقط دسترسی لازم برای کار را بده و بیشتر نه، تا اشتباه یا نفوذ دامنه‌ی کوچکی داشته باشد.

Legacy code کد legacy Engineering

تعریف رایج و کاربردی: کدی که تست ندارد و بنابراین نمی‌توان با اطمینان تغییرش داد.

Length extension attack حمله‌ی length extension Security

حمله‌ای به هش‌هایی مثل SHA-256 که با دانستن H(secret||msg) می‌توان بدون راز، H(secret||msg||extra) را ساخت.

Level-triggered and edge-triggered level-triggered و edge-triggered Linux

دو روش گزارش آمادگی: تا وقتی داده منتظر است (level) یا فقط هنگام رسیدن داده‌ی تازه (edge).

libuv libuv Node.js

کتابخانه‌ی C زیر Node.js که event loop، I/O ناهمگام و thread pool را فراهم می‌کند.

Lifecycle hook hook چرخه‌ی عمر Node.js

تابعی که فریم‌ورک در مرحله‌ای ثابت از عمر یک درخواست صدا می‌زند، مثلاً پیش از اجرای handler.

Lifetime طول عمر Rust

یک annotation زمان کامپایل که مشخص می‌کند یک reference تا کی معتبر است.

Linear probing probe خطی Algorithms

راهبردی در open addressing: اگر خانه پُر است خانه‌ی بعدی و بعدی را امتحان کن تا خانه‌ی خالی یا کلید پیدا شود.

Linearizability linearizability (خطی‌پذیری) Distributed

هر عملیات انگار در یک لحظه بین شروع و پایانش اثر می‌گذارد، گویی فقط یک نسخه از داده وجود دارد.

Linked list لیست پیوندی Algorithms

دنباله‌ای از node های جدا از هم که هرکدام یک مقدار و یک اشاره‌گر به node بعدی (و گاهی قبلی) دارند. برش و اتصال ارزان، دسترسی با اندیس کند.

Linux capabilities قابلیت‌های Linux (capabilities) Linux

کرنل قدرت‌های root را به واحدهای جدا مثل CAP_NET_BIND_SERVICE یا CAP_CHOWN تقسیم می‌کند تا یک پروسه فقط همان‌هایی را داشته باشد که لازم دارد.

List comprehension List comprehension Python

عبارتی در Python که از یک iterable در یک خط لیست می‌سازد، مثل [x * x for x in data if x % 2 == 0].

Listen backlog صف backlog Networking

اندازه‌ی صف کرنل برای اتصال‌های منتظر accept().

Little's law قانون Little Engineering

در سیستم پایدار، میانگین WIP برابر throughput ضرب در میانگین cycle time است.

Live binding اتصال زنده Node.js

importی در ES module که به خودِ متغیرِ ماژول صادرکننده اشاره می‌کند، نه به یک کپی از مقدارش.

Load average میانگین بار Linux

میانگین تعداد پروسه‌های آماده‌ی اجرا (و در Linux منتظر دیسک) در ۱، ۵ و ۱۵ دقیقه‌ی اخیر.

Load balancer load balancer Networking

پخش‌کننده‌ی ترافیک ورودی بین چند سرور backend.

Load factor ضریب بار Algorithms

نسبت پُر بودن جدول هش: تعداد عنصرها تقسیم بر تعداد خانه‌ها. از یک آستانه بیشتر که شود جدول در جدول بزرگ‌تری دوباره hash می‌شود.

Load shedding load shedding (دور ریختن بار) Distributed

رد کردن زودهنگام بعضی درخواست‌ها تا بقیه به‌موقع سرویس بگیرند.

Lock قفل Databases

سازوکاری که یک session را وادار می‌کند پیش از دست زدن به داده‌ای که session دیگری استفاده می‌کند صبر کند؛ PostgreSQL قفل سطح جدول و سطح ردیف دارد.

lock_timeout lock_timeout Databases

تنظیمی که اگر دستوری برای گرفتن قفل بیش از حد صبر کند، آن را با خطا رها می‌کند.

lockfile lockfile Node.js

فایلی که نسخه‌ی دقیق، آدرس دانلود و hash همه‌ی وابستگی‌های نصب‌شده را ثبت می‌کند.

Log injection تزریق در لاگ Security

تزریق در لاگ (log injection): ورودی کاربر که شامل newline یا کاراکتر کنترلی است و خط لاگ جعلی می‌سازد.

Log rotation چرخش لاگ Linux

تغییر نام، فشرده‌سازی و حذف فایل‌های لاگ قدیمی تا لاگ بی‌نهایت بزرگ نشود.

Logical backup بک‌آپ منطقی Databases

بک‌آپی از SQL یا داده‌ی ردیف‌ها (pg_dump، COPY) به‌جای کپی فایل‌های داده.

Loopback Loopback Networking

loopback رابط مجازی‌ای است که ترافیک را به همان ماشین برمی‌گرداند: 127.0.0.0/8 و ::1.

Lost update به‌روزرسانی گمشده Databases

دو تراکنش یک مقدار را می‌خوانند، هر دو نتیجه‌ای محاسبه‌شده از آن را می‌نویسند و یکی بی‌صدا روی دیگری می‌نویسد.

Lower bound (search) اولین اندیس با مقدار بزرگ‌تر یا مساوی Algorithms

اولین اندیس در آرایه‌ی مرتب که عنصرش کوچک‌تر از هدف نیست.

LRU cache کش LRU Algorithms

کشی با اندازه‌ی ثابت که وقتی پر شد کم‌استفاده‌ترین (least recently used) ورودی را بیرون می‌اندازد. معمولاً map به‌علاوه‌ی لیست دوپیوندی.

LSN LSN Databases

شماره‌ی توالی لاگ: یک موقعیت در WAL مثل 0/1830840.

M

Mass assignment Mass assignment Security

باگی که در آن سرور همه‌ی فیلدهای درخواست کلاینت را در یک شیء داخلی کپی می‌کند و کلاینت فیلدهایی را تعیین می‌کند که نباید (قیمت، وضعیت، نقش).

Memoization memoization Python

ذخیره‌ی نتیجه‌ی تابع برای ورودی‌های تکراری

Memory leak نشت حافظه Node.js

حافظه‌ای که دیگر لازم نیست اما هنوز قابل دسترسی است و garbage collector نمی‌تواند آزادش کند.

Memory safety امنیت حافظه (memory safety) Security

تضمین زبان یا ابزار که برنامه نمی‌تواند حافظه‌ای را بخواند یا بنویسد که مال آن نیست.

merge merge Git

دو خط تاریخچه را به هم وصل می‌کند؛ اگر از هم جدا شده باشند، گیت یک merge commit با دو والد می‌سازد.

merge commit merge commit Git

commitی با دو والد که اتصال دو تاریخچه را ثبت می‌کند.

Merge conflict تداخل merge Git

Git نتوانست دو تغییر روی یک خط‌ها را خودکار ترکیب کند و از شما می‌خواهد انتخاب کنید.

Merge sort merge sort Algorithms

نصف‌کردن، مرتب‌کردن هر نیمه و ادغام دو نیمه‌ی مرتب؛ همیشه O(n log n)، پایدار، ولی با O(n) حافظه‌ی اضافه.

Merkle tree Merkle tree Distributed

درختی از hashها که هر والد hash فرزندانش است؛ پس root برابر یعنی داده برابر.

Message framing فریم‌بندی پیام Networking

قاعده‌هایی که در یک جریان بایتی مثل TCP مشخص می‌کنند هر پیام کجا تمام می‌شود.

Microservices microservices (میکروسرویس‌ها) Distributed

سرویس‌هایی که مستقل مستقر می‌شوند، داده‌ی خودشان را دارند و از راه شبکه حرف می‌زنند.

Microtask میکروتسک Node.js

کار کوچکی (callback ی promise یا queueMicrotask) که درست بعد از کد جاری و پیش از ادامه‌ی event loop اجرا می‌شود.

Migration مایگریشن (migration) Databases

یک تغییر نسخه‌دار در schema دیتابیس که با اسکریپت یا ابزار و به ترتیب اجرا می‌شود.

Minimum spanning tree درخت پوشای کمینه Algorithms

ارزان‌ترین مجموعه‌ی یال که همه‌ی گره‌های یک گراف وزن‌دار را بدون ایجاد دور وصل می‌کند.

Modular monolith modular monolith (مونولیت ماژولار) Distributed

یک واحد استقرار که ماژول‌هایش فقط با interfaceهای باریک حرف می‌زنند.

monkeypatch monkeypatch Python

جایگزینی موقت یک attribute، متغیر محیطی یا کلید دیکشنری در طول تست

Monorepo مونوریپو Engineering

مخزنی واحد که کد چند سرویس یا کتابخانه را کنار هم نگه می‌دارد و با هم ساخته و نسخه‌بندی می‌شوند.

Monotonic clock ساعت یکنوا Distributed

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

Monotonic reads monotonic reads Distributed

readهای پشت‌سرهم یک client هرگز به مقدار قدیمی‌تر برنمی‌گردند.

Monte Carlo simulation شبیه‌سازی Monte Carlo Engineering

برآورد نتیجه با اجرای بسیار یک مدل تصادفی و خواندن صدک‌ها.

MRO (method resolution order) MRO (ترتیب جست‌وجوی متد) Python

ترتیبی که Python یک کلاس و والدهایش را برای پیدا کردن یک attribute می‌گردد؛ super() همین ترتیب را دنبال می‌کند و با Class.__mro__ چاپ می‌شود.

MSS MSS Networking

بیشترین تعداد بایت payload در هر segment از TCP.

MTU MTU Networking

بزرگ‌ترین بسته‌ای که یک لینک در یک frame حمل می‌کند.

Multiplexing چندگانه‌سازی (multiplexing) Networking

فرستادن هم‌زمان چند درخواست و پاسخ مستقل روی یک اتصال.

Mutation testing تست جهش Engineering

سنجش مجموعه‌ی تست با این که وقتی کد عمداً خراب شود شکست بخورد یا نه.

Mutex میوتکس Go

قفلی که در هر لحظه فقط به یک goroutine اجازه‌ی دسترسی به یک حافظه‌ی مشترک را می‌دهد.

Mutual TLS (mTLS) TLS دوطرفه (mTLS) Networking

mTLS: کلاینت هم گواهی می‌دهد و سرور آن را بررسی می‌کند.

MVCC MVCC Databases

کنترل هم‌زمانی چندنسخه‌ای: دیتابیس چند نسخه از یک ردیف نگه می‌دارد تا خواننده و نویسنده جلوی هم را نگیرند.

N

N+1 queries N+1 query Databases

یک query برای گرفتن لیست و بعد یک query جدا برای هر آیتم لیست.

Namespace namespace Linux

قابلیت کرنل که دید جداگانه‌ای از یک منبع مثل PID، mount، شبکه یا hostname به پروسه می‌دهد.

Negative cycle دور منفی Algorithms

دوری که مجموع وزن یال‌هایش کمتر از صفر است؛ هر بار چرخیدن در آن هزینه را کمتر می‌کند.

netfilter netfilter Linux

نقطه‌های hook در پشته‌ی شبکه‌ی کرنل که بسته‌ها را فیلتر یا تغییر می‌دهند.

Netmask Netmask Networking

netmask یک mask ۳۲ بیتی است که یک‌های ابتدایی‌اش بخش شبکه‌ی آدرس IPv4 را نشان می‌دهند.

Network partition network partition (افتادن شبکه) Distributed

خرابی‌ای که در آن گره‌ها زنده‌اند ولی گروه‌هایی از آن‌ها به هم دسترسی ندارند.

nftables nftables Linux

چارچوب فیلتر بسته در Linux که با nft تنظیم می‌شود.

no_new_privs no_new_privs Linux

پرچمی برای هر thread که با prctl تنظیم می‌شود و جلوی گرفتن امتیاز بیشتر از راه بیت setuid یا file capability در execve را می‌گیرد. پس از تنظیم برداشته نمی‌شود.

Node cluster cluster در Node Node.js

ماژول `cluster`: چند process از Node که یک port را به اشتراک می‌گذارند.

Non-blocking I/O I/O غیرمسدودکننده Linux

حالتی که read و write و accept به‌جای منتظر نگه داشتن thread، فوراً با خطایی مثل EAGAIN برمی‌گردند.

Non-repeatable read خواندن ناتکرارپذیر Databases

خواندن یک ردیف دو بار در یک تراکنش و گرفتن دو مقدار متفاوت.

Nonce نانس Security

مقداری که برای هر کلید فقط یک بار باید استفاده شود، مثل ورودی هر پیام در AES-GCM.

Normalization نرمال‌سازی Databases

هر واقعیت فقط یک‌بار ذخیره شود؛ جدول‌ها را برای این هدف می‌شکنیم.

npm npm Node.js

مدیر پکیج همراه Node.js و رجیستری عمومی پیش‌فرض پکیج‌های JavaScript.

NULL NULL Databases

نشانه‌ی SQL برای مقدار نامعلوم یا غایب.

NXDOMAIN اِن‌اِکس‌دامین Networking

کد پاسخ DNS به معنی «این نام وجود ندارد».

O

OAuth 2.0 OAuth2 Security

چارچوبی که به یک برنامه اجازه می‌دهد به‌نیابت از کاربر و با توکن، به‌صورت محدود به یک API دسترسی بگیرد، بی‌آنکه پسورد کاربر را ببیند.

Object mode حالت شیء Node.js

گزینه‌ای در stream که هر chunk می‌تواند هر مقدار جاوااسکریپتی باشد، نه فقط بایت یا رشته.

OCSP OCSP Security

راهی برای پرسیدن از CA که آیا یک گواهی مشخص ابطال شده است.

OOM killer OOM killer Linux

سازوکار کرنل که وقتی حافظه تمام شود، چه در کل سیستم و چه در cgroupی که به memory.max رسیده، یک پروسه را می‌کشد.

OpenAPI OpenAPI Engineering

یک قالب استاندارد YAML/JSON برای توصیف یک API روی HTTP: مسیرها، پارامترها و schemaی درخواست و پاسخ.

OpenID Connect (OIDC) OIDC Security

لایه‌ی هویتی نازک روی OAuth 2.0 که ID token و userinfo اضافه می‌کند تا کلاینت بداند چه کسی وارد شده.

Operational error خطای عملیاتی (operational) Node.js

شکست مورد انتظار در زمان اجرا (ورودی بد، رکورد ناموجود، timeout)، در مقابل باگ.

Optimal substructure زیرساخت بهینه Algorithms

جواب بهینه‌ی کل مسئله از جواب‌های بهینه‌ی زیرمسئله‌هایش ساخته می‌شود.

Optimistic concurrency همزمانی خوش‌بینانه (optimistic concurrency) Distributed

قفل نمی‌گیرید؛ با نسخه‌ای که خوانده‌اید می‌نویسید و اگر دیگری زودتر نوشته باشد شکست می‌خورید، سپس دوباره می‌خوانید و تلاش می‌کنید.

Orchestration orchestration Distributed

یک هماهنگ‌کننده به ترتیب به سرویس‌ها command می‌فرستد و درباره‌ی هر پاسخ یا شکست تصمیم می‌گیرد.

ORM ORM Python

یک کتابخانه که جدول‌ها را به کلاس و ردیف‌ها را به شیء نگاشت می‌کند.

Outbox pattern الگوی outbox Messaging

نوشتن رویداد در یک جدول دیتابیس و در همان تراکنش تغییر داده، و انتشار آن در مرحله‌ی بعد.

Output encoding Output encoding Security

escape کردن داده برای همان زمینه‌ای که در آن نوشته می‌شود (بدنه‌ی HTML، attribute، JavaScript، URL).

Overcommit overcommit Linux

اجازه دادن به پروسه‌ها که بیش از مجموع RAM و swap حافظه‌ی مجازی رزرو کنند، چون بیشترش هیچ‌وقت استفاده نمی‌شود.

Overlapping subproblems زیرمسئله‌های تکراری Algorithms

یک زیرمسئله‌ی کوچک‌تر بارها و از شاخه‌های مختلف بازگشت لازم می‌شود.

overlayfs overlayfs Linux

فایل‌سیستم Linux که یک لایه‌ی قابل‌نوشتن را روی لایه‌های فقط‌خواندنی می‌گذارد؛ لایه‌های image کانتینر از آن استفاده می‌کنند.

OWASP Top 10 فهرست OWASP Top 10 Security

فهرستی که به‌صورت دوره‌ای به‌روز می‌شود و ده دسته‌ی مهم‌ترین ریسک‌های امنیتی برنامه‌های وب را نام می‌برد (منتشرشده توسط OWASP).

Ownership مالکیت Rust

قاعده‌ی Rust که هر مقدار دقیقاً یک مالک دارد و با خارج شدن مالک از scope آزاد می‌شود.

P

PACELC PACELC Distributed

اگر Partition باشد بین Availability و Consistency انتخاب کن، وگرنه بین Latency و Consistency.

Packfile Packfile Git

فایل فشرده‌ی گیت که چند object را با هم نگه می‌دارد.

Page cache کش صفحه (page cache) Linux

کش حافظه‌ی کرنل برای محتوای فایل‌ها که خواندن دوباره‌ی یک فایل را از دیسک بی‌نیاز می‌کند و در صورت نیاز به حافظه پس گرفته می‌شود.

Pagination صفحه‌بندی Engineering

برگرداندن یک فهرست بزرگ صفحه‌به‌صفحه به‌جای یک‌جا.

Parameterized query Parameterized query Security

دستور SQL با جای‌نگهدار (`$1`) که مقدارها جدا از متن SQL فرستاده می‌شوند.

Parametrized test تست پارامتری Python

یک بدنه‌ی تست که روی چند ردیف ورودی اجرا می‌شود

Partial clone clone جزئی Git

clone بدون بعضی objectها که در صورت نیاز گرفته می‌شوند.

Partial failure خرابی جزئی Distributed

وقتی یک بخش سیستم خراب می‌شود و بقیه کار می‌کنند، فراخواننده نمی‌داند چه شده.

Partial index ایندکس جزئی Databases

ایندکسی که فقط ردیف‌هایی را پوشش می‌دهد که شرط WHERE را دارند.

Partition pruning حذف پارتیشن‌ها (partition pruning) Databases

planner پارتیشن‌هایی را که به‌خاطر فیلتر روی کلید پارتیشن نمی‌توانند ردیف مطابق داشته باشند کنار می‌گذارد.

Password hashing هش کردن پسورد Security

تابع یک‌طرفه‌ی عمداً کند و دارای salt برای ذخیره‌ی پسورد، تا نشت پایگاه داده پسوردها را فاش نکند.

Path compression فشرده‌سازی مسیر Algorithms

در Find هر گره‌ی روی مسیر را مستقیم به ریشه وصل کن تا Findهای بعدی کوتاه‌تر شوند.

Path traversal Path traversal Security

باگی که در آن `../` در ورودی کاربر باعث می‌شود handler فایلی بیرون از پوشه‌ی مجاز را بخواند.

Pepper pepper Security

مقدار محرمانه‌ای بیرون از پایگاه داده که در هش پسورد وارد می‌شود، تا فقط دزدیدن پایگاه داده کافی نباشد.

Percentile صدک (percentile) Engineering

مقداری که سهم مشخصی از مشاهده‌ها زیر آن است؛ p99 تأخیری است که ۹۹٪ درخواست‌ها از آن سریع‌ترند.

perf perf Linux

ابزار کارایی Linux که رویدادهای سخت‌افزاری را می‌شمارد و نمونه‌برداری می‌کند که زمان CPU کجا می‌رود.

PgBouncer PgBouncer Databases

یک connection pooler جدا که بین برنامه‌ها و PostgreSQL قرار می‌گیرد.

Phantom read خواندن شبح Databases

اجرای یک کوئری دو بار در یک تراکنش و گرفتن مجموعه‌ی متفاوتی از ردیف‌ها.

pickle pickle Python

تبدیل شیء Python به بایت و برعکس؛ multiprocessing با آن داده را بین پروسه‌ها می‌فرستد.

pip pip Python

نصب‌کننده‌ی استاندارد پکیج در Python که از PyPI دانلود می‌کند.

Pipe پایپ Linux

خروجی (stdout) یک دستور را به ورودی (stdin) دستور بعدی وصل می‌کند (`a | b`) تا ابزارهای کوچک به هم زنجیر شوند.

PITR PITR Databases

بازیابی به لحظه‌ی دلخواه: یک base backup را restore می‌کنید و WAL آرشیوشده را تا لحظه‌ی مورد نظر replay می‌کنید.

PKCE PKCE Security

Proof Key for Code Exchange: کلاینت در درخواست توکن ثابت می‌کند همان است که درخواست مجوز را شروع کرده.

Planner statistics آمار planner Databases

خلاصه‌ی هر ستون که `ANALYZE` برای planner ذخیره می‌کند.

plumbing plumbing Git

دستورهای سطح پایین گیت (hash-object، write-tree، commit-tree و ...) که دستورهای porcelain روی آن‌ها ساخته شده‌اند.

Poison message poison message Distributed

پیامی که هر بار consumer را به شکست می‌کشد، پس redelivery هرگز موفق نمی‌شود.

Polyrepo پلی‌ریپو Engineering

هر سرویس یا کتابخانه مخزن خودش را دارد و جدا منتشر و نسخه‌بندی می‌شود.

Postmortem postmortem (بررسی پس از حادثه) Engineering

یک بررسی نوشته‌شده‌ی پس از حادثه: چه شد، چه اثری داشت، چرا و چه باید عوض شود.

Power of two choices دو انتخاب تصادفی Distributed

قاعده‌ی load balancing: دو instance تصادفی انتخاب کن و درخواست را به آنی بده که صف کوتاه‌تری دارد.

pprof pprof Security

ابزار پروفایلینگ Go و handlerهای `net/http/pprof` که پروفایل‌ها را روی HTTP در دسترس می‌گذارند.

Preflight request درخواست preflight Security

درخواست OPTIONS که مرورگر پیش از درخواست بین‌origin با متد یا هدر سفارشی می‌فرستد تا بپرسد مجاز است یا نه.

Prepared transaction تراکنش prepared Distributed

در PostgreSQL تراکنشی که با PREPARE TRANSACTION از session جدا و روی دیسک ذخیره می‌شود و بعداً با COMMIT PREPARED یا ROLLBACK PREPARED تمام می‌شود.

Primary key کلید اصلی Databases

ستون (یا ستون‌هایی) که هر سطر را یکتا مشخص می‌کنند.

Priority lane priority lane Distributed

یک صف یا consumer جدا برای هر اولویت که به ترتیب سخت‌گیرانه سرویس می‌گیرد تا پیام فوری پشت یک backlog نماند.

Priority queue صف اولویت Algorithms

ظرفی انتزاعی که همیشه آیتم با بالاترین اولویت را بیرون می‌دهد، نه قدیمی‌ترین را.

Process پروسه Linux

نمونه‌ی در حال اجرای یک برنامه، با pid، حافظه و پروسه‌ی والد خودش.

Process group گروه پروسه Linux

مجموعه‌ای از پروسه‌های مرتبط (مثلاً یک pipeline) که می‌توانند با هم سیگنال بگیرند.

Process substitution Process substitution Linux

قابلیتی در bash و zsh، یعنی `<(cmd)`، که خروجی یک دستور را مثل نام فایل نشان می‌دهد تا ابزارهایی که فایل می‌خواهند بتوانند آن را بخوانند (`diff <(a) <(b)`). در POSIX نیست.

procfs procfs Linux

فایل‌سیستم مجازی /proc در Linux که کرنل با آن وضعیت پروسه‌ها و سیستم را مثل فایل نشان می‌دهد.

Projection projection (read model) Distributed

یک read model که با مصرف رویدادها ساخته می‌شود و جدولی مناسب query نگه می‌دارد؛ با replay می‌توان آن را حذف و دوباره ساخت.

Promise پرامیس Node.js

مقداری که نماینده‌ی نتیجه‌ای است که هنوز آماده نیست: اول pending، بعد fulfilled یا rejected.

Property-based testing تست خاصیت‌محور Engineering

قاعده‌ای را که باید برای همه‌ی ورودی‌ها برقرار باشد با ورودی‌های خودکار می‌آزماید.

Protocol Buffers پروتوباف (Protocol Buffers) Networking

قالب باینری فشرده برای پیام‌های ساختاریافته که در فایل .proto تعریف می‌شود.

Prototype pollution آلودگی prototype Node.js

باگی در جاوااسکریپت که در آن کلیدهای زیر کنترل مهاجم مثل __proto__ prototype شیءها را عوض می‌کنند و شیءهای نامرتبط ناگهان ویژگی اضافه پیدا می‌کنند.

ptrace ptrace Linux

فراخوانی که اجازه می‌دهد یک پروسه پروسه‌ی دیگر را ببیند و کنترل کند؛ strace و دیباگرها از آن استفاده می‌کنند.

Pull consumer کانسیومر pull Messaging

consumer‌ای در JetStream که کلاینت پیام را می‌خواهد و سرور آن را push نمی‌کند.

Pydantic Pydantic Python

کتابخانه‌ای در Python که داده را با type hint اعتبارسنجی و تبدیل می‌کند.

PyO3 PyO3 Python

یک کتابخانه‌ی Rust برای نوشتن ماژول‌های توسعه‌ی Python (و صدا زدن Python از Rust).

PyPI PyPI Python

مخزن عمومی پیش‌فرض پکیج‌های Python که pip و uv از آن دانلود می‌کنند.

pyproject.toml pyproject.toml Python

فایل استاندارد پروژه‌ی Python با متادیتا، نسخه‌ی لازم Python و وابستگی‌های مستقیم.

Q

Query plan query plan Databases

درخت قدم‌هایی که دیتابیس برای اجرای یک query انتخاب می‌کند و EXPLAIN نشان می‌دهد.

Query planner طرح‌ریز کوئری Databases

بخشی از دیتابیس که تصمیم می‌گیرد کوئری چطور اجرا شود.

Queue صف (queue) Algorithms

مجموعه‌ای اولین‌ورودی-اولین‌خروجی (FIFO): از انتها اضافه و از ابتدا حذف می‌شود. معمولاً روی ring buffer ساخته می‌شود.

Queue group queue group Distributed

subscriberهایی که یک نام مشترک دارند تا هر پیام فقط به یک عضو گروه برسد.

Quicksort quicksort Algorithms

Quicksort در جا، با انتخاب pivot و افراز slice به دو طرف آن، و مرتب‌کردن بازگشتی هر طرف؛ به‌طور میانگین O(n log n).

Quorum quorum (حد نصاب) Distributed

گروهی از replicaها که موافقتشان لازم است، معمولاً اکثریت قطعی، تا هر دو quorum همپوشانی داشته باشند.

R

Rabin–Karp Rabin–Karp Algorithms

جست‌وجوی رشته که اول هش پنجره‌ها را مقایسه می‌کند و فقط وقتی هش‌ها برابرند متن واقعی را بررسی می‌کند.

Race condition شرایط مسابقه Go

باگی که نتیجه‌اش به زمان‌بندیِ همگام‌نشده‌ی دسترسی‌های هم‌زمان بستگی دارد.

Raft Raft Distributed

یک الگوریتم consensus از leader election، تکثیر log و قوانین safety که برای فهم آسان‌تر از Paxos طراحی شده است.

Rate limiting محدودسازی نرخ Distributed

سقف‌گذاری روی تعداد درخواست‌های یک کلاینت در بازه‌ی زمانی.

RBAC کنترل دسترسی نقش‌محور Security

کنترل دسترسی نقش‌محور: کاربر نقش می‌گیرد و هر نقش به مجموعه‌ای از مجوزها نگاشت می‌شود.

RCE اجرای کد از راه دور Security

Remote Code Execution: مهاجم کد خودش را روی سرور شما اجرا می‌کند.

Read model مدل خواندن Distributed

نسخه‌ای از داده که برای کوئری آماده شده و با اعمال رویدادهای سمت نوشتن ساخته می‌شود؛ ممکن است عقب باشد ولی باید همگرا شود.

Read repair read repair Distributed

هنگامی که خواندن متوجه replicaی با نسخه‌ی قدیمی می‌شود، نسخه‌ی جدید را همان لحظه روی آن می‌نویسد.

Read-your-writes read-your-writes Distributed

بعد از این‌که client مقداری می‌نویسد، readهای بعدی خودش همان مقدار یا جدیدتر را می‌بینند.

rebase rebase Git

commitهای شما را روی یک پایه‌ی دیگر دوباره اجرا می‌کند و commitهای جدید با hash جدید می‌سازد.

Recursive resolver recursive resolver Networking

سرور DNS که کل جست‌وجو را برای کلاینت انجام می‌دهد و نتیجه را cache می‌کند.

Ref ref Git

نامی خوانا که به یک object گیت اشاره می‌کند.

Refactoring رفکتور Engineering

تغییر ساختار کد بدون تغییر رفتار قابل مشاهده‌ی آن.

Reference-class forecasting پیش‌بینی با کلاس مرجع Engineering

پیش‌بینی از روی نتیجه‌ی پروژه‌های مشابه گذشته، نه جزئیات این پروژه.

reflog reflog Git

گزارش محلی از جاهایی که HEAD و سر branchها به آن اشاره کرده‌اند؛ برای بازیابی commit بعد از reset یا حذف branch.

Refresh token Refresh token Security

اعتبارنامه‌ای بلندمدت که کلاینت آن را با access token کوتاه‌مدت جدید عوض می‌کند.

Regression رگرسیون Engineering

باگی که چیزی را که قبلاً درست کار می‌کرد خراب می‌کند.

Relational model مدل رابطه‌ای Databases

مدلی که داده در جدول‌هایی از سطر و ستون نگهداری می‌شود و با کلید به هم وصل‌اند.

Relaxation relaxation (آسان‌سازی یال) Algorithms

به‌روزرسانی فاصله‌ی یک رأس وقتی مسیر از یک یال کوتاه‌تر از بهترین مسیر شناخته‌شده است.

Remote-tracking branch remote-tracking branch Git

ثبت محلی و فقط‌خواندنی از یک branch روی remote، مثل origin/main.

Rendezvous hashing Rendezvous hashing Algorithms

هر کلید به node ای می‌رود که بیشترین امتیاز hash(node, key) را دارد (به آن HRW هم می‌گویند).

Replicated log replicated log (log تکثیر‌شده) Distributed

فهرست مرتبی از فرمان‌ها که روی چند node کپی می‌شود؛ اگر همه log یکسان را به همان ترتیب اعمال کنند، state machineها یکسان می‌شوند.

Replication replication Databases

نگه‌داشتن یک نسخه‌ی دوم که دائم به‌روز می‌شود از دیتابیس روی سرور دیگر.

Request ID شناسه‌ی درخواست Node.js

شناسه‌ی یکتایی که به یک درخواست و همه‌ی لاگ‌هایش چسبانده می‌شود.

Request smuggling request smuggling Networking

حمله‌ای که از اختلاف دو parser HTTP درباره‌ی پایان درخواست سوءاستفاده می‌کند.

rerere استفاده‌ی دوباره از حل conflict Git

قابلیتی در Git (reuse recorded resolution) که حل قبلی یک conflict را دوباره اعمال می‌کند.

Retry budget بودجه‌ی retry Distributed

سقفی برای retry‌ها به‌صورت کسری از درخواست‌های عادی، معمولاً با token bucket.

Retry storm طوفان retry Distributed

فشار اضافه‌ای که از retry هم‌زمان کلاینت‌ها روی سرور از پیش آسیب‌دیده ایجاد می‌شود.

Reverse proxy reverse proxy Networking

سروری که درخواست کلاینت را می‌گیرد و به‌جای او به backend می‌رساند.

RFC RFC (درخواست نظر) Engineering

Request for Comments: سند پیشنهادی که پیش از تصمیم برای بحث و نظرخواهی پخش می‌شود.

Ring buffer ring buffer Algorithms

آرایه‌ی ثابت با اندیس head و یک شمارنده که موقعیت‌ها با باقی‌مانده دور می‌زنند؛ پس حذف از ابتدا هیچ عنصری را جابه‌جا نمی‌کند. وقتی پر شد می‌تواند دو برابر شود (یک بار کپی) تا push سرشکن O(1) بماند.

Roll forward roll-forward Distributed

اصلاح یک انتشار بد با انتشار تازه، نه برگشت.

rollback rollback Engineering

برگرداندن production به نسخه‌ی سالم قبلی، در مقابل roll forward یعنی ارائه‌ی یک اصلاح تازه.

Rolling hash هش غلتان Algorithms

هشِ یک پنجره‌ی لغزان که با حذف نویسه‌ی قدیمی و افزودن نویسه‌ی جدید در O(1) به‌روز می‌شود.

Rolling update روش rolling Distributed

استقراری که instanceها را یکی‌یکی عوض می‌کند.

RSS RSS Linux

Resident set size: مقدار حافظه‌ی فیزیکی که پروسه همین حالا در RAM دارد، نه کل حافظه‌ی مجازی‌اش.

RST RST Networking

یک segment در TCP که اتصال را فوراً و بدون تبادل مرتب FIN قطع می‌کند.

Runbook runbook (دفترچه‌ی عملیات) Engineering

راهنمای گام‌به‌گام برای اداره‌ی یک سیستم و برخورد با یک خرابی شناخته‌شده.

Rune rune Algorithms

در Go یک int32 که یک نقطه‌ی کد Unicode را نگه می‌دارد؛ رشته بایت است و یک نویسه می‌تواند چند بایت باشد.

S

Saga saga Distributed

یک تراکنش طولانی کسب‌وکاری که به چند تراکنش محلی شکسته می‌شود و هر کدام یک کار جبرانی دارد که اگر قدم بعدی شکست خورد آن را خنثی می‌کند.

Salt salt Security

مقدار تصادفی که کنار هش پسورد ذخیره می‌شود تا پسوردهای یکسان هش‌های متفاوت بدهند.

SameSite SameSite Security

ویژگی کوکی که تعیین می‌کند مرورگر در درخواست‌های بین‌سایتی کوکی را کِی بفرستد.

Sargable sargable (قابل‌ایندکس) Databases

شرطی که طوری نوشته شده که ایندکس بتواند برایش به کار برود.

Savepoint savepoint Databases

نقطه‌ای نام‌دار داخل یک تراکنش که می‌شود بدون رها کردن کل تراکنش به آن برگشت.

SBOM SBOM Security

Software Bill of Materials: فهرست قابل‌خواندن برای ماشین از اجزای داخل یک build.

Scatter-gather scatter-gather Distributed

فرستادن کوئری به همه‌ی shardها و ادغام پاسخ‌های جزئی، وقتی کوئری شامل shard key نیست.

Schema validation اعتبارسنجی با schema Node.js

بررسی داده‌ی غیرقابل‌اعتماد با یک شکل تعریف‌شده (نوع، بازه، فیلدهای الزامی) در مرز برنامه، پیش از آنکه بقیه‌ی کد از آن استفاده کند.

sdist sdist Python

توزیع سورس یک بسته‌ی Python: آرشیو سورس به‌همراه metadata که در صورت نیاز هنگام نصب به wheel ساخته می‌شود.

Seam seam Engineering

جایی که می‌توان رفتار را بدون ویرایش کدِ اطرافش عوض کرد.

Secret scanning اسکن راز Security

جستجوی الگو و آنتروپی در کد و تاریخچه‌ی git برای پیدا کردن اعتبارنامه‌های لو رفته.

Seed corpus corpus اولیه Security

ورودی‌های شروع که به fuzzer داده می‌شود، بهتر است نمونه‌های واقعی باشند.

Selectivity selectivity (گزینشگری) Databases

کسری از ردیف‌ها که یک شرط نگه می‌دارد.

Semaphore سمافور Python

شیء مبتنی بر شمارنده که حداکثر N نفر را هم‌زمان راه می‌دهد و بقیه منتظر می‌مانند.

Semver Semver Node.js

قرارداد نسخه‌گذاری MAJOR.MINOR.PATCH و سینتکس بازه (`^` و `~`) که npm برای انتخاب نسخه استفاده می‌کند.

Sequential consistency سازگاری ترتیبی (sequential consistency) Distributed

همه یک ترتیب واحد از عملیات می‌بینند که ترتیب هر client را حفظ می‌کند، ولی لازم نیست با زمان واقعی بخواند.

Server-Sent Events SSE Networking

جریان یک‌طرفه و متنی از رویدادها از سرور به مرورگر روی یک پاسخ معمولی HTTP.

Service discovery کشف سرویس Distributed

پیدا کردن نشانی‌های فعلی instanceهای یک سرویس در حالی که می‌آیند و می‌روند.

Service mesh Service mesh Distributed

لایه‌ای از proxyهای sidecar کنار هر سرویس که discovery و load balancing و retry و TLS را بیرون از کد برنامه انجام می‌دهد.

Service registry Service registry Distributed

سرویس کوچکی که نگه می‌دارد کدام instanceها زنده‌اند؛ instanceها با یک TTL ثبت می‌شوند و مدام آن را تمدید می‌کنند.

Session نشست (session) Security

وضعیتی که سرور نگه می‌دارد و با یک شناسه‌ی تصادفی در کوکی پیدا می‌شود.

setuid and setgid setuid و setgid Linux

بیت‌هایی که اجرایی را با هویت مالک (یا گروه) آن اجرا می‌کنند نه فراخواننده؛ روی پوشه، setgid باعث می‌شود فایل‌های جدید گروه پوشه را بگیرند. در ls -l به شکل s دیده می‌شوند.

SHA-1 SHA-1 Git

تابع هشی که گیت به‌طور پیش‌فرض برای نام‌گذاری objectها استفاده می‌کند (۴۰ کاراکتر hex).

Shadow mode shadow mode Engineering

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

Shallow clone clone کم‌عمق Git

clone با تاریخچه‌ی کوتاه‌شده، مثل --depth 1.

Shallow copy کپی سطحی Python

کپی‌ای که فقط container بیرونی را تکرار می‌کند و عنصرهای داخلی همان شیءهای قبلی‌اند. deep copy آن‌ها را هم کپی می‌کند.

Shannon entropy آنتروپی شانون Security

معیاری برای اینکه یک رشته چقدر تصادفی به نظر می‌رسد، بر حسب بیت در هر نویسه.

Sharding شاردینگ (sharding) Distributed

داده‌ی یک سیستم را با یک کلید (shard key) بین چند node تقسیم می‌کند تا هر node فقط بخشی از آن را نگه دارد.

shared memory حافظه‌ی مشترک Python

بلوکی از حافظه که چند پروسه هم‌زمان map می‌کنند و بدون کپی روی همان بایت‌ها می‌خوانند و می‌نویسند.

SharedArrayBuffer بافر مشترک Node.js

بلوک حافظه‌ای که هم‌زمان برای چند thread دیده می‌شود و با Atomics به کار می‌رود.

Shrinking کوچک‌سازی مثال نقض (shrinking) Engineering

کوچک کردن ورودی تصادفی شکست‌خورده تا کوچک‌ترین ورودی که هنوز شکست می‌خورد.

SIGKILL SIGKILL Linux

کشتن اجباری (سیگنال ۹)؛ نه گرفته می‌شود نه نادیده، پس هیچ کد پاک‌سازی اجرا نمی‌شود.

Signal سیگنال Linux

پیام کوچک و ناهمگامی که کرنل یا پروسه‌ی دیگر به یک پروسه می‌فرستد، مثل SIGTERM یا SIGINT.

SIGPIPE SIGPIPE Linux

سیگنالی که پروسه هنگام نوشتن در pipeی با خواننده‌ی بسته می‌گیرد (سیگنال ۱۳).

SIGTERM SIGTERM Node.js

سیگنال مؤدبانه‌ای که از پروسه می‌خواهد متوقف شود و پروسه می‌تواند قبلش آن را بگیرد و تمیزکاری کند.

site-packages site-packages Python

پوشه‌ای داخل هر محیط که پکیج‌های شخص ثالث نصب‌شده در آن قرار می‌گیرد.

Size class Size class Algorithms

allocator در Go هر درخواست حافظه را به یکی از اندازه‌های ثابت گرد می‌کند. برای همین ظرفیت slice می‌تواند از چیزی که فقط فرمول رشد می‌گوید بزرگ‌تر باشد.

SKIP LOCKED SKIP LOCKED Databases

گزینه‌ای برای `SELECT ... FOR UPDATE` که به‌جای انتظار، ردیف‌های قفل‌شده‌ی دیگران را رد می‌کند؛ برای ساخت صف کار.

SLI SLI Engineering

شاخص سطح سرویس: نسبت اندازه‌گیری‌شده‌ی رویدادهای خوب به کل، مثل درخواست‌های غیر 5xx.

Slice (Go) Slice (در Go) Algorithms

slice در Go یک هدر سه‌کلمه‌ای است: اشاره‌گر به backing array، طول و ظرفیت. کپی‌کردن هدر عنصرها را کپی نمی‌کند.

Sliding window counter شمارنده‌ی پنجره‌ی لغزان Distributed

limiter تقریبی که پنجره‌ی ثابت قبلی را به نسبت هم‌پوشانی‌اش با بازه‌ی اخیر وزن می‌دهد.

SLO SLO (هدف سطح سرویس) Engineering

هدفی برای یک شاخص کیفیت سرویس در یک بازه، مثلاً ۹۹٫۵٪ موفقیت در ۳۰ روز.

Slowloris Slowloris Node.js

حمله‌ی منع سرویسی که در آن کلاینت درخواست را بسیار کند می‌فرستد تا اتصال‌های سرور را اشغال نگه دارد.

smoke test smoke test Engineering

یک بررسی بسیار کوچک که نشان می‌دهد artifact ساخته‌شده اصلاً بالا می‌آید و پاسخ می‌دهد، پیش از بررسی‌های عمیق‌تر یا deploy.

Snapshot (event sourcing) snapshot در event sourcing Distributed

نسخه‌ی ذخیره‌شده‌ی وضعیت fold‌شده در یک version، تا بارگذاری فقط رویدادهای بعد از آن را replay کند.

Snapshot isolation ایزولاسیون snapshot Databases

هر تراکنش از یک snapshot سازگار از داده می‌خواند که لحظه‌ی شروعش گرفته شده است.

SNI SNI Networking

SNI: کلاینت در handshake اسم میزبان مورد نظر را می‌گوید.

Socket سوکت Networking

دستگیره‌ای از سیستم‌عامل که برنامه با آن روی شبکه می‌فرستد و می‌گیرد.

software supply chain زنجیره‌ی تأمین نرم‌افزار Security

هر چیزی که نرم‌افزار شما از آن ساخته و با آن تحویل می‌شود: وابستگی‌ها، registryها، ابزار build و CI.

Sparse checkout sparse checkout Git

فقط بعضی پوشه‌ها را در working tree قرار می‌دهد.

Split-brain split-brain Databases

دو node هر دو خود را primary می‌دانند و نوشتن‌های متفاوت می‌پذیرند.

SQL injection SQL injection (تزریق SQL) Security

حمله‌ای که در آن ورودی کاربر بخشی از متن SQL می‌شود و معنای آن را عوض می‌کند.

SQLSTATE SQLSTATE Databases

کد خطای استاندارد پنج‌کاراکتری، مثلاً 23505 برای نقض unique.

squash merge squash merge Git

همه‌ی commitهای یک branch را به یک commit جدید روی branch مقصد تبدیل می‌کند.

SSH certificate گواهی SSH Linux

کلید عمومی امضا‌شده با کلید CA، همراه principal و بازه‌ی اعتبار، به‌جای فهرستی از کلیدهای خام.

SSH key pair جفت‌کلید SSH Linux

یک کلید خصوصی نزد شما و یک کلید عمومی برای اشتراک، برای ورود بدون رمز عبور.

ssh-agent ssh-agent Linux

فرایندی که کلیدهای خصوصی باز‌شده را در حافظه نگه می‌دارد و از طرف ssh امضا می‌کند.

SSRF SSRF Security

SSRF (جعل درخواست سمت سرور): کاری که باعث می‌شود سرور آدرسی را که کاربر داده فراخوانی کند و به جاهایی برسد که خود کاربر نمی‌رسد.

Stable sort مرتب‌سازی پایدار Algorithms

مرتب‌سازی‌ای که ترتیب نسبی عناصر برابر را حفظ می‌کند.

Stack پشته (stack) Algorithms

مجموعه‌ای آخرین‌ورودی-اولین‌خروجی (LIFO) که فقط از یک سر push و pop می‌شود. کاربردها: تاریخچه‌ی undo، تطبیق پرانتز و call stack.

Staging area (index) Staging area (index) Git

عکسی از چیزی که commit بعدی خواهد داشت، ذخیره‌شده در .git/index.

start method روش شروع Python

روشی که multiprocessing با آن پروسه‌ی فرزند می‌سازد: spawn، fork یا forkserver.

Stash Stash Git

پشته‌ای از تغییرهای کنار گذاشته‌شده که بعداً برمی‌گردانید.

statement_timeout statement_timeout Databases

تنظیمی در PostgreSQL که هر statement طولانی‌تر از زمان داده‌شده را لغو می‌کند.

Static analysis تحلیل ایستا Engineering

بررسی سورس برای پیدا کردن باگ‌های محتمل بدون اجرای آن.

Statistical power توان آماری Distributed

احتمال اینکه یک آزمون اثر واقعی را تشخیص دهد.

Steady state حالت پایدار Distributed

توصیف قابل‌اندازه‌گیری رفتار عادی، مثل یک SLO، که آزمایش نباید آن را نقض کند.

Stemming Stemming Databases

برگرداندن کلمه به ریشه‌اش تا شکل‌های مختلف یک کلمه با هم تطبیق شوند؛ مثلاً running و runs و run همه می‌شوند run.

Sticky bit استیکی بیت Linux

بیت مجوز پوشه (t در ls -l) که فقط به مالک فایل یا مالک پوشه اجازه‌ی حذف یا تغییر نام می‌دهد، مثل /tmp.

Stop-and-wait stop-and-wait Networking

روشی برای قابل‌اعتماد کردن ارسال: یک بسته می‌فرستی، منتظر تأییدش می‌مانی و با timeout دوباره می‌فرستی.

strace استریس Linux

ابزار Linux که فراخوان‌های سیستمی و سیگنال‌های یک پروسه را چاپ می‌کند.

Strangler fig strangler fig Engineering

جایگزین کردن تدریجی یک سیستم پشت یک router تا قدیم و جدید کنار هم کار کنند.

Stream استریم Node.js

شیئی که داده را تکه‌تکه جابه‌جا می‌کند تا برنامه لازم نباشد همه‌ی آن را در حافظه نگه دارد.

STRIDE STRIDE Security

فهرستی از شش دسته تهدید: Spoofing، Tampering، Repudiation، Information disclosure، Denial of service و Elevation of privilege.

Structural pattern matching Structural pattern matching Python

دستور match در Python که مقدار را بر اساس شکلش (literal، دنباله، mapping، کلاس) باز می‌کند و guard هم می‌پذیرد.

Structural typing (Protocol) نوع‌دهی ساختاری (Protocol) Python

یک نوع با هر شیئی که متدهای درست را داشته باشد برقرار است، بدون ارث‌بری صریح. در Python، typing.Protocol این شکل را برای type checkerها توصیف می‌کند.

Structured concurrency structured concurrency Python

سبکی که در آن taskهای هم‌زمان درون یک scope زندگی می‌کنند؛ scope منتظر همه می‌ماند و اگر یکی شکست بخورد بقیه را لغو می‌کند.

Structured logging لاگ ساختاریافته Node.js

نوشتن هر خط لاگ به‌صورت یک شیء JSON با فیلدهای نام‌دار، به‌جای متن آزاد.

SubjectAltName (SAN) SubjectAltName (SAN) Networking

SAN: افزونه‌ای که نام‌ها و IPهای معتبر برای گواهی را فهرست می‌کند.

Submodule زیرماژول Git

یک repository تو در تو که به یک commit مشخص پین شده است.

Subnet Subnet Networking

subnet بلوکی پیوسته از آدرس‌های IP است که یک prefix مشترک دارند.

Subpath imports subpath imports Node.js

فیلد `imports` در package.json: نام‌های مستعار خصوصی که با `#` شروع می‌شوند و به فایل نگاشت می‌شوند.

Subtree ساب‌تری Git

کپی کردن فایل‌های یک repository دیگر در یک زیرپوشه، با حفظ امکان merge تاریخچه‌ی آن.

sudo sudo Linux

برنامه‌ای که اگر سیاست sudoers اجازه بدهد، یک دستور را با هویت کاربر دیگری (معمولا root) اجرا می‌کند و آن را لاگ می‌کند.

sudoers sudoers Linux

فایل سیاستی که مشخص می‌کند کدام کاربر با sudo کدام دستور را با کدام هویت اجرا کند؛ فقط با visudo ویرایشش کنید که نحو را بررسی می‌کند.

Surrogate key کلید جایگزین Databases

شناسه‌ی مصنوعی ردیف بدون معنای کسب‌وکاری، مثل یک شماره‌ی identity.

Swap swap Linux

فضایی روی دیسک که کرنل صفحه‌های کم‌استفاده‌ی حافظه را برای آزاد کردن RAM به آنجا منتقل می‌کند.

Symbolic link لینک نمادین Linux

فایل کوچکی که محتوایش مسیر فایل دیگری است. inode خودش را دارد و اگر مقصد حذف شود، بی‌مقصد می‌ماند.

synchronous_commit synchronous_commit Databases

تنظیم PostgreSQL که تعیین می‌کند COMMIT صبر کند تا WAL آن روی دیسک flush شود یا نه.

Syslog severity سطح شدت syslog Linux

هشت سطح استاندارد لاگ از 0 (emerg) تا 7 (debug) که syslog(3) تعریف می‌کند.

System call فراخوان سیستمی Linux

درخواست یک برنامه از کرنل، مثل open یا read؛ ابزارهایی مثل strace آن‌ها را نشان می‌دهند.

systemd systemd Linux

اولین پروسه و مدیر سرویس در بیشتر توزیع‌های Linux (PID 1).

T

Table bloat table bloat Databases

فضای هدررفته در جدول یا ایندکس به‌خاطر نسخه‌های مرده‌ای که دوباره استفاده نشده‌اند.

Table partitioning پارتیشن‌بندی جدول Databases

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

Table rewrite بازنویسی جدول Databases

یک ALTER که کل جدول را در فایل جدید کپی می‌کند و در تمام این مدت قفل سنگین نگه می‌دارد.

Tail latency tail latency (تاخیر دنباله) Distributed

کندترین چند درصد درخواست‌ها (p99 و p999) که در سیستم‌های fan-out تجربه‌ی کاربر را تعیین می‌کنند.

TCP تی‌سی‌پی Networking

پروتکل جریان بایتی مطمئن و مرتب روی IP.

TCP keepalive keepalive در TCP Networking

بسته‌های پروبی که کرنل روی اتصال بیکار می‌فرستد تا مرگ طرف مقابل را تشخیص دهد.

TCP/IP model مدل TCP/IP Networking

مدل ۴ لایه‌ی اینترنت: link، internet، transport و application.

TDD TDD Engineering

توسعه‌ی تست‌محور: اول تست شکست‌خورده، بعد گذراندنش، بعد تمیزکاری (red، green، refactor).

Technical debt بدهی فنی Engineering

میان‌برها یا انتخاب‌های کهنه‌ی کد که تغییر بعدی را کندتر می‌کنند، مثل وامی که بهره دارد.

Test double جایگزین تست Node.js

شیء ساختگی (mock، stub، fake) که در تست جای وابستگی واقعی می‌نشیند.

Test pyramid هرم تست Engineering

مدلی: تست واحد زیاد و سریع، تست یکپارچگی کمتر و تست سرتاسری بسیار کم.

Test runner تست‌ران Node.js

ابزاری که فایل‌های تست را پیدا و اجرا می‌کند و نتیجه را گزارش می‌دهد.

Thread ترد (thread) Python

جریان اجرای مستقل داخل یک process که حافظه را با thread‌های دیگر شریک است.

Thread pool ترد پول Node.js

مجموعه‌ی ثابتی از thread که کارهای بلاک‌کننده (فایل، crypto، DNS) را برای Node.js اجرا می‌کند؛ اندازه‌ی پیش‌فرض ۴.

Threat modeling مدل‌سازی تهدید Security

روشی ساختارمند برای پرسیدن اینکه چه می‌سازیم، چه چیزی خراب می‌شود و چه می‌کنیم، پیش از آنکه مهاجم همین سؤال‌ها را بپرسد.

Three-way handshake دست‌دادن سه‌مرحله‌ای Networking

SYN، SYN-ACK، ACK: روش باز شدن اتصال TCP.

Three-way merge three-way merge Git

merge‌ای که دو سر شاخه را با پدر مشترکشان مقایسه می‌کند.

Thundering herd thundering herd Linux

وقتی یک رویداد چندین پروسه یا thread منتظر را بیدار می‌کند ولی فقط یکی می‌تواند از آن استفاده کند و کار هدر می‌رود.

TIME_WAIT TIME_WAIT Networking

حالت طرفی که اول اتصال را بسته و مدتی بعد از پایان اتصال در این حالت می‌ماند.

TLS TLS Networking

TLS: رمزنگاری و احراز هویت اتصال روی TCP.

TOCTOU TOCTOU Security

Time-of-check to time-of-use: وضعیت بین بررسی و عملی که به آن تکیه دارد عوض می‌شود.

Token bucket سطل توکن Distributed

limiterی که توکن را با نرخ ثابت پر می‌کند و برای هر درخواست یکی خرج می‌کند؛ burst تا ظرفیت مجاز است.

Tolerant reader خواننده‌ی بردبار Engineering

کلاینتی که فیلدهای ناشناخته را نادیده می‌گیرد، پس تغییر افزایشی API آن را نمی‌شکند.

Tombstone tombstone (سنگ‌قبر) Algorithms

نشانه‌ای که هنگام حذف در جدول open addressing باقی می‌ماند تا جست‌وجوها از روی آن عبور کنند.

Top-level await await در سطح بالا Node.js

استفاده از `await` مستقیم در بالاترین سطح یک ES module، بیرون از هر تابع async.

Topological sort مرتب‌سازی توپولوژیک Algorithms

ترتیبی از رأس‌های یک DAG که در آن هر یال از رأس زودتر به رأس دیرتر می‌رود.

traceroute تریس‌روت Networking

traceroute لیست روترهای مسیر تا یک میزبان را با فرستادن بسته‌هایی که TTL آن‌ها از ۱ شروع و زیاد می‌شود نشان می‌دهد.

Trait تریت Rust

مجموعه‌ای از متدها که یک نوع می‌تواند پیاده کند؛ روش Rust برای اشتراک رفتار.

Transaction تراکنش Databases

گروهی از دستورها که دیتابیس آن‌ها را یک واحد می‌بیند: یا همه اثر می‌کنند یا هیچ‌کدام.

transitive dependency وابستگی غیرمستقیم Node.js

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

tree tree Git

object گیت که یک پوشه را نشان می‌دهد: نام، mode و هش blobها و زیرپوشه‌ها.

Tree rotation rotation در درخت Algorithms

جابه‌جایی محلی اشاره‌گرهای دو یا سه node که شکل درخت جست‌وجو را عوض می‌کند ولی ترتیب in-order را حفظ می‌کند.

Tree traversal پیمایش درخت Algorithms

ترتیبی منظم برای دیدن همه‌ی node‌ها: pre-order، in-order، post-order یا level-order.

Trie درخت پیشوندی Algorithms

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

Trigger trigger Databases

تابعی که دیتابیس خودکار قبل یا بعد از INSERT، UPDATE یا DELETE روی یک جدول اجرا می‌کند.

Trigram Trigram Databases

گروه سه‌حرفی پشت‌سرهم؛ مقایسه‌ی مجموعه‌ی trigramهای دو رشته یک امتیاز شباهت می‌دهد که برای تطبیق تقریبی به کار می‌رود.

Trunk-based development توسعه‌ی trunk-based Git

trunk-based: تغییرهای کوچک و روزانه به branch اصلی.

Trust boundary مرز اعتماد Security

خطی در نمودار که داده از آن میان بخش‌هایی با سطح اعتماد متفاوت عبور می‌کند، مثلاً از اینترنت به API شما.

Truthiness Truthiness Python

رفتار یک شیء در زمینه‌ی منطقی. در Python صفر، None و containerهای خالی false هستند و بیشتر مقدارهای دیگر true.

tsvector tsvector Databases

نوع داده‌ای در PostgreSQL که یک سند را به شکل فهرست مرتب‌شده‌ی کلمه‌های نرمال‌شده (lexeme) با موقعیتشان نگه می‌دارد؛ برای جست‌وجوی متنی.

TTFB TTFB Networking

زمان تا اولین بایت: چقدر طول می‌کشد تا اولین بایت پاسخ برسد.

TTL تی‌تی‌اِل Networking

تعداد ثانیه‌هایی که رکورد cache‌شده بدون پرسش دوباره قابل استفاده است.

Two-phase commit (2PC) commit دو فازی (2PC) Distributed

پروتکلی که در آن coordinator از همه‌ی participantها می‌خواهد prepare کنند و بعد به همه می‌گوید commit کنید یا همه abort.

Type affinity type affinity (تمایل نوع) Databases

قاعده‌ی SQLite که ستون یک نوع را ترجیح می‌دهد و در صورت امکان مقدار را تبدیل می‌کند، ولی سخت‌گیرانه اجبارش نمی‌کند.

Type checker type checker Python

ابزاری مثل mypy که type hintها را می‌خواند و بدون اجرای برنامه خطاهای نوع را گزارش می‌کند.

Type hint type hint Python

یک annotation اختیاری مثل x: int یا -> str که نوع مورد انتظار را می‌گوید. مفسر آن را ذخیره می‌کند اما اعمال نمی‌کند؛ type checkerها آن را می‌خوانند.

typosquatting typosquatting Security

منتشر کردن بسته‌ی مخرب با نامی شبیه یک بسته‌ی محبوب، به امید اشتباه تایپی.

U

Ubiquitous language زبان فراگیر Engineering

واژگان مشترک توسعه‌دهندگان و متخصصان دامنه که در کد هم عیناً به کار می‌رود.

UDP یو‌دی‌پی Networking

پروتکل datagram بدون اتصال روی IP، بدون تضمین تحویل.

umask umask Linux

ماسکی برای هر پروسه که بیت‌های مجوز آن از فایل‌ها و پوشه‌های تازه حذف می‌کند. با 022 فایل جدید 644 و پوشه 755 می‌شود.

Unhandled rejection unhandled rejection Node.js

promise ردشده‌ای که هیچ‌کس با catch یا try/catch رسیدگی‌اش نکرده.

Union by size ادغام بر اساس اندازه Algorithms

هنگام ادغام دو درخت، کوچک‌تر را زیر ریشه‌ی بزرگ‌تر بگذار تا درخت‌ها کم‌عمق بمانند.

Union-find مجموعه‌های جدا از هم Algorithms

ساختاری که نگه می‌دارد کدام عنصرها در یک گروه‌اند، با Find (کدام گروه؟) و Union (ادغام دو گروه).

Unit file فایل واحد (unit file) Linux

فایل متنی کوچکی شبیه INI که به systemd می‌گوید یک کار را چطور اجرا یا زمان‌بندی کند.

Unit of work Unit of work Python

الگویی که در آن یک شیء تغییرها را ردیابی می‌کند و همه را یک‌جا در یک transaction می‌نویسد.

Unsafe deserialization deserialization ناامن Security

ساخت دوباره‌ی شیء از بایت‌های نامطمئن با قالبی که هنگام decode می‌تواند کد اجرا کند، مثل pickle در Python.

Upcasting upcasting رویداد Distributed

تبدیل شکل قدیمی رویداد ذخیره‌شده به شکل فعلی هنگام خواندن، به‌جای ویرایش رویدادهای ذخیره‌شده.

Use-after-free استفاده پس از آزادسازی (use-after-free) Security

استفاده از اشاره‌گری که حافظه‌ی مقصدش آزاد شده است.

Utilization utilization (بهره‌وری) Distributed

کسری از زمان که سرور مشغول است: نرخ ورود تقسیم بر نرخ سرویس.

uv uv Python

ابزاری که نسخه‌ی Python، محیط مجازی، وابستگی‌ها و lock file را مدیریت می‌کند.

V

VACUUM VACUUM Databases

دستور نگهداری PostgreSQL که نسخه‌های مرده‌ی ردیف را پاک می‌کند و visibility map را به‌روز می‌کند.

Value object شیء‌مقدار Engineering

شیئی تغییرناپذیر و بدون هویت که با مقدارش مقایسه می‌شود، مثل پول یا نشانی ایمیل.

Vector clock vector clock (ساعت برداری) Distributed

یک شمارنده برای هر process؛ مقایسه‌ی دو vector دقیقاً می‌گوید قبل، بعد یا هم‌زمان.

Version vector version vector Distributed

یک vector clock که به مقدار ذخیره‌شده وصل می‌شود تا replicaها بتوانند به‌روزرسانی را از تعارض تشخیص دهند.

veth veth Linux

جفت رابط اترنت مجازی: هرچه وارد یک سر شود از سر دیگر بیرون می‌آید.

virtual environment محیط مجازی Python

پوشه‌ای جدا با لینک interpreter و site-packages مخصوص خودش تا هر پروژه وابستگی‌های خودش را داشته باشد.

Visibility map visibility map Databases

یک bitmap برای هر جدول که صفحه‌های heap را که همه‌ی ردیف‌هایشان برای همه‌ی تراکنش‌ها قابل‌دیدن است علامت می‌زند.

W

WAL WAL Databases

write-ahead log: PostgreSQL هر تغییر را پیش از دست زدن به فایل‌های داده در یک لاگ ترتیبی ثبت می‌کند.

Walrus operator عملگر walrus Python

عملگر := در Python که داخل یک عبارت به یک نام مقدار می‌دهد، مثل if (n := len(x)) > 5.

WebSocket WebSocket Networking

پروتکلی برای یک کانال پیام دوطرفه‌ی پایدار که با یک upgrade روی HTTP شروع می‌شود.

wheel wheel Python

یک بسته‌ی Python ساخته‌شده: فایل zip با پسوند whl که بدون اجرای هیچ مرحله‌ی build نصب می‌شود.

WIP limit محدودیت WIP Engineering

سقف تعداد آیتم‌هایی که همزمان در جریان‌اند.

Word splitting word splitting Linux

مرحله‌ای در shell که یک expansion بدون quote را به چند کلمه‌ی جدا می‌شکند.

Worker pool استخر کارگر Go

تعداد ثابتی goroutine که کارها را از یک صف مشترک برمی‌دارند.

Worker threads رشته‌ی کارگر Node.js

threads داخل یک process در Node، با event loop و heap جدا، برای کار CPU-bound.

Working tree درخت کاری Git

فایل‌های روی دیسک که ویرایش می‌کنید، در برابر چیزی که گیت stage یا commit کرده است.

Worktree ورک‌تری Git

یک پوشه‌ی کاری اضافه متصل به همان repository که branch خودش را checkout کرده است.

Write skew انحراف نوشتن Databases

دو تراکنش داده‌ی مشترکی را می‌خوانند، هر کدام ردیف متفاوتی را به‌روز می‌کند و با هم قاعده‌ای را می‌شکنند که هیچ‌کدام تنها نمی‌شکست.

X

X.509 certificate گواهی X.509 Networking

گواهی X.509: سندی امضاشده که یک کلید عمومی را به یک نام وصل می‌کند.

xargs xargs Linux

آیتم‌ها را از stdin می‌خواند و دستوری را با آن‌ها به‌عنوان آرگومان اجرا می‌کند. برای نام فایل‌های دارای فاصله، `-0` را با `find -print0` به کار ببرید.

XSS XSS Security

Cross-site scripting: متنی که مهاجم کنترل می‌کند در مرورگر کاربر دیگر به‌عنوان HTML یا JavaScript اجرا می‌شود.

Z

Zipf distribution توزیع Zipf Distributed

الگوی دسترسی نامتقارن که در آن چند کلید بیشتر درخواست‌ها را می‌گیرند و دنباله‌ی بلندی کم.

Zombie process پروسه‌ی zombie Linux

فرزندی که تمام شده اما والدش هنوز `wait` نزده، پس ردیفش در جدول پروسه‌ها مانده است.

ا

استقرار blue/green استقرار blue/green Engineering

دو نسخه‌ی یکسان کنار هم؛ ترافیک فقط وقتی نسخه‌ی جدید سالم بود از نسخه‌ی زنده به آن منتقل می‌شود.

ک

کامیت fixup کامیت fixup Git

کامیتی که قرار است هنگام rebase با autosquash داخل کامیت قبلی ادغام شود.

ه

هوک Git هوک Git Git

اسکریپتی که Git در نقطه‌ای از جریان کار، مثلاً پیش از commit، خودش اجرا می‌کند.