====== برنامه‌نویسی (Programming) ====== این بخش به مفاهیم پایه و پیشرفته برنامه‌نویسی، زبان‌های برنامه‌نویسی، ابزارهای توسعه نرم‌افزار و فرایند اجرای کد می‌پردازد. هدف این واژه‌نامه، ارائه تعریف‌های دقیق و قابل‌ارجاع از اصطلاحات فنی، توضیح تفاوت مفاهیم مشابه و ایجاد ارتباط میان موضوعات مختلف برنامه‌نویسی است. ===== مفاهیم پایه ===== این بخش شامل اصطلاحاتی است که در بیشتر زبان‌ها و حوزه‌های برنامه‌نویسی کاربرد دارند. * [[glossary:programming:source_code|کد منبع (Source Code)]] * [[glossary:programming:syntax|نحو (Syntax)]] * [[glossary:programming:semantics|معناشناسی (Semantics)]] * [[glossary:programming:variable|متغیر (Variable)]] * [[glossary:programming:data_type|نوع داده (Data Type)]] * [[glossary:programming:expression|عبارت (Expression)]] * [[glossary:programming:statement|دستور (Statement)]] * [[glossary:programming:function|تابع (Function)]] * [[glossary:programming:algorithm|الگوریتم (Algorithm)]] * [[glossary:programming:control_flow|جریان کنترل (Control Flow)]] ===== زبان‌ها و روش‌های اجرای برنامه ===== این بخش به نحوه پردازش، ترجمه و اجرای کد منبع می‌پردازد. * [[glossary:programming:compiler|کامپایلر (Compiler)]] * [[glossary:programming:interpreter|مفسر (Interpreter)]] * [[glossary:programming:compiler_vs_interpreter|کامپایلر در برابر مفسر (Compiler vs Interpreter)]] * [[glossary:programming:machine_code|کد ماشین (Machine Code)]] * [[glossary:programming:bytecode|بایت‌کد (Bytecode)]] * [[glossary:programming:assembler|اسمبلر (Assembler)]] * [[glossary:programming:linker|پیونددهنده (Linker)]] * [[glossary:programming:runtime|محیط اجرا (Runtime)]] * [[glossary:programming:jit_compilation|کامپایل به‌موقع (JIT Compilation)]] ===== ساختمان داده و الگوریتم‌ها ===== این بخش به روش‌های سازمان‌دهی داده و حل مسائل محاسباتی اختصاص دارد. * [[glossary:programming:array|آرایه (Array)]] * [[glossary:programming:linked_list|فهرست پیوندی (Linked List)]] * [[glossary:programming:stack|پشته (Stack)]] * [[glossary:programming:queue|صف (Queue)]] * [[glossary:programming:hash_table|جدول درهم‌سازی (Hash Table)]] * [[glossary:programming:tree|درخت (Tree)]] * [[glossary:programming:graph|گراف (Graph)]] * [[glossary:programming:recursion|بازگشت (Recursion)]] * [[glossary:programming:big_o|نمادگذاری بیگ‌اُ (Big O Notation)]] ===== معماری و طراحی نرم‌افزار ===== مفاهیم این بخش به ساختاردهی، توسعه و نگهداری نرم‌افزار مربوط می‌شوند. * [[glossary:programming:oop|برنامه‌نویسی شیءگرا (OOP)]] * [[glossary:programming:functional_programming|برنامه‌نویسی تابعی (Functional Programming)]] * [[glossary:programming:class|کلاس (Class)]] * [[glossary:programming:object|شیء (Object)]] * [[glossary:programming:interface|رابط (Interface)]] * [[glossary:programming:module|ماژول (Module)]] * [[glossary:programming:library|کتابخانه (Library)]] * [[glossary:programming:framework|چارچوب نرم‌افزاری (Framework)]] * [[glossary:programming:design_pattern|الگوی طراحی (Design Pattern)]] * [[glossary:programming:technical_debt|بدهی فنی (Technical Debt)]] ===== اشکال‌زدایی و آزمون ===== این بخش به پیدا کردن خطاها و بررسی صحت عملکرد نرم‌افزار می‌پردازد. * [[glossary:programming:bug|اشکال نرم‌افزاری (Bug)]] * [[glossary:programming:debugging|اشکال‌زدایی (Debugging)]] * [[glossary:programming:exception|استثنا (Exception)]] * [[glossary:programming:error_handling|مدیریت خطا (Error Handling)]] * [[glossary:programming:unit_test|آزمون واحد (Unit Test)]] * [[glossary:programming:integration_test|آزمون یکپارچه‌سازی (Integration Test)]] * [[glossary:programming:regression_test|آزمون رگرسیون (Regression Test)]] ===== ابزارها و گردش کار توسعه ===== این بخش ابزارها و روش‌هایی را معرفی می‌کند که در فرایند توسعه و نگهداری نرم‌افزار استفاده می‌شوند. * [[glossary:programming:ide|محیط توسعه یکپارچه (IDE)]] * [[glossary:programming:version_control|کنترل نسخه (Version Control)]] * [[glossary:programming:git_repository|مخزن گیت (Git Repository)]] * [[glossary:programming:commit|کامیت (Commit)]] * [[glossary:programming:branch|شاخه (Branch)]] * [[glossary:programming:merge|ادغام (Merge)]] * [[glossary:programming:dependency|وابستگی (Dependency)]] * [[glossary:programming:package_manager|مدیر بسته (Package Manager)]] * [[glossary:programming:ci_cd|یکپارچه‌سازی و تحویل پیوسته (CI/CD)]] ===== برنامه‌نویسی وب و رابط‌ها ===== * [[glossary:programming:api|رابط برنامه‌نویسی کاربردی (API)]] * [[glossary:programming:rest|REST]] * [[glossary:programming:endpoint|نقطه پایانی (Endpoint)]] * [[glossary:programming:json|JSON]] * [[glossary:programming:serialization|سریال‌سازی (Serialization)]] * [[glossary:programming:authentication|احراز هویت (Authentication)]] * [[glossary:programming:authorization|مجوزدهی (Authorization)]] * [[glossary:programming:frontend|فرانت‌اند (Frontend)]] * [[glossary:programming:backend|بک‌اند (Backend)]] ===== مشارکت در این واژه‌نامه ===== برای حفظ کیفیت مطالب، هنگام ایجاد یا ویرایش مدخل‌ها به نکات زیر توجه کنید: * تعریف هر اصطلاح باید دقیق، روشن و تا حد امکان مستقل از زبان برنامه‌نویسی خاصی باشد. * در صورت وجود معادل فارسی رایج، آن را همراه با اصطلاح انگلیسی ذکر کنید. * برای مفاهیم پیچیده، مثال عملی و قابل‌آزمایش ارائه دهید. * تفاوت اصطلاحات نزدیک به هم را به‌صورت صریح توضیح دهید. * برای ادعاهای فنی مهم به مستندات رسمی یا منابع معتبر ارجاع دهید. * از ایجاد صفحات تکراری برای یک مفهوم خودداری کنید و اصطلاحات مرتبط را به یکدیگر پیوند دهید. ===== وضعیت مقالات ===== پیوندهای این فهرست می‌توانند پیش از ایجاد مقاله مقصد اضافه شوند. DokuWiki برای صفحات ایجادنشده پیوندی مشخص نمایش می‌دهد تا بتوان آن‌ها را بعداً ساخت. برای شروع، می‌توان روی تکمیل مفاهیم پایه، اجرای برنامه، ساختمان داده‌ها و ابزارهای توسعه تمرکز کرد.