8 مراحل · 42 درساً 8 stages · 42 lessons
مسار Software Design & Architecture Software Design & Architecture track مبادئ تصميم الكود وأنماطه، ومعمارية الأنظمة الكبيرة. Code design principles and patterns, and the architecture of large systems.
من الكود النظيف على مستوى الدالة الواحدة، إلى مبادئ التصميم وأنماطه، ثم المعمارية التي تحدد شكل النظام كاملاً وكيف يتغيّر مع الوقت. From clean code at the level of a single function, to design principles and patterns, then the architecture that shapes a whole system and how it changes over time.
ترتيب هذا المسار مستوحى من خارطة Software Design & Architecture (يفتح في تبويب جديد) (opens in a new tab) على roadmap.sh . العناوين والملخّصات والدروس مكتوبة بصياغتنا، وليست منسوخة منها. This track's order is inspired by the Software Design & Architecture roadmap (يفتح في تبويب جديد) (opens in a new tab) on roadmap.sh. Titles, summaries and lessons are written in our own words, not copied from it.
01
الكود النظيف Clean code 6 دروس 6 lessons أسماء ذات معنى Meaningful names اسم يشرح النية يغني عن التعليق: قواعد تسمية المتغيرات والدوال والكلاسات. A name that reveals intent replaces a comment: naming rules for variables, functions and classes. أساسي Required قريباً Coming soon دوال صغيرة بمهمة واحدة Small, single-purpose functions دالة تفعل شيئاً واحداً بمستوى تجريد واحد، أسهل في القراءة والاختبار والتغيير. A function that does one thing at one level of abstraction is easier to read, test and change. أساسي Required قريباً Coming soon الدوال النقية Pure functions نفس المدخلات تعطي نفس النتيجة دون آثار جانبية، ولماذا يسهّل ذلك فهم الكود. Same inputs, same output, no side effects, and why that makes code easier to reason about. أساسي Required قريباً Coming soon تقليل التعقيد Reducing complexity عدد المسارات الممكنة داخل الدالة، وتقنيات مثل الخروج المبكر لتقليلها. The number of paths through a function, and techniques like early returns to cut it down. أساسي Required قريباً Coming soon فصل الأوامر عن الاستعلامات Command–query separation الدالة إمّا تغيّر الحالة أو تعيد قيمة، لا الاثنين معاً. A function either changes state or returns a value, never both. اختياري Optional قريباً Coming soon تجنّب التجريد المتسرّع Avoiding hasty abstractions بعض التكرار أرخص من تجريد خاطئ: متى ننتظر قبل التعميم. Some duplication is cheaper than the wrong abstraction: when to wait before generalizing. أساسي Required قريباً Coming soon 02
أنماط البرمجة Programming paradigms 4 دروس 4 lessons البرمجة الهيكلية Structured programming التسلسل والشرط والتكرار بدل القفز العشوائي: أساس كل الكود الحديث. Sequence, selection and iteration instead of arbitrary jumps: the base of all modern code. أساسي Required قريباً Coming soon البرمجة الوظيفية Functional programming بناء البرنامج من دوال نقية وبيانات لا تتغيّر، وتركيب الدوال مع بعضها. Building programs from pure functions and immutable data, composed together. أساسي Required قريباً Coming soon البرمجة كائنية التوجّه Object-oriented programming كائنات تجمع البيانات والسلوك: الكلاسات والواجهات والكلاسات المجرّدة والرؤية. Objects that bundle data and behavior: classes, interfaces, abstract classes and visibility. أساسي Required قريباً Coming soon ركائز OOP The pillars of OOP التغليف والتجريد والوراثة وتعدد الأشكال: ماذا تعني فعلاً ومتى تُساء. Encapsulation, abstraction, inheritance and polymorphism: what they really mean and when they're misused. أساسي Required قريباً Coming soon 03
مبادئ التصميم Design principles 7 دروس 7 lessons SOLID خمسة مبادئ لكلاسات يسهل تغييرها: مسؤولية واحدة، والانفتاح للتوسعة، والاستبدال، وتقسيم الواجهات، وعكس الاعتماديات. Five principles for classes that are easy to change: single responsibility, open/closed, substitution, interface segregation and dependency inversion. أساسي Required قريباً Coming soon التركيب بدل الوراثة Composition over inheritance بناء السلوك من قطع صغيرة تُركَّب بدل شجرة وراثة عميقة يصعب تغييرها. Building behavior from small composable parts instead of a deep inheritance tree that resists change. أساسي Required قريباً Coming soon البرمجة على الواجهات Programming to interfaces الاعتماد على ما يفعله الشيء لا على كيف يفعله، لتبديل التنفيذ دون كسر الكود. Depending on what something does, not how, so implementations can change without breaking code. أساسي Required قريباً Coming soon عزل ما يتغيّر Encapsulate what varies فصل الأجزاء المتوقَّع تغيّرها عن الثابتة، فيبقى أثر التغيير محصوراً. Separating the parts likely to change from the stable ones, so a change stays contained. أساسي Required قريباً Coming soon DRY وYAGNI وKISS DRY, YAGNI and KISS لا تكرّر المعرفة، ولا تبنِ ما لا تحتاجه الآن، وأبقِ الحل بسيطاً. Don't duplicate knowledge, don't build what you don't need yet, and keep the solution simple. أساسي Required قريباً Coming soon قانون ديميتر The Law of Demeter تحدّث مع جيرانك المباشرين فقط: تقليل معرفة الكائن بتفاصيل غيره. Talk only to your immediate neighbors: limiting how much an object knows about others' internals. اختياري Optional قريباً Coming soon اطلب ولا تسأل Tell, don't ask أعطِ الكائن الأمر بدل أن تسحب بياناته وتقرر عنه. Tell an object what to do instead of pulling its data out and deciding for it. اختياري Optional قريباً Coming soon 04
أنماط التصميم Design patterns 4 دروس 4 lessons أنماط الإنشاء Creational patterns Factory وBuilder وSingleton: التحكم في كيفية إنشاء الكائنات ومن يُنشئها. Factory, Builder and Singleton: controlling how objects are created and by whom. أساسي Required قريباً Coming soon أنماط الهيكلة Structural patterns Adapter وDecorator وFacade وComposite: تركيب الكائنات في بُنى أكبر. Adapter, Decorator, Facade and Composite: assembling objects into larger structures. أساسي Required قريباً Coming soon أنماط السلوك Behavioral patterns Strategy وObserver وCommand وState: توزيع المسؤوليات والتواصل بين الكائنات. Strategy, Observer, Command and State: sharing responsibilities and communication between objects. أساسي Required قريباً Coming soon حقن الاعتماديات Dependency injection تمرير ما يحتاجه الكائن من الخارج بدل إنشائه داخله، لتسهيل الاختبار والتبديل. Passing in what an object needs instead of creating it inside, for easier testing and swapping. أساسي Required قريباً Coming soon 05
مبادئ المعمارية Architectural principles 4 دروس 4 lessons الترابط والتماسك Coupling and cohesion أجزاء متماسكة من الداخل وقليلة الاعتماد على بعضها: المقياس الأهم لجودة التصميم. Parts that are cohesive inside and loosely tied to each other: the key measure of design quality. أساسي Required قريباً Coming soon القواعد مقابل التفاصيل Policy versus detail منطق العمل هو الجوهر؛ قاعدة البيانات والإطار والواجهة تفاصيل يمكن تبديلها. Business rules are the core; the database, framework and UI are replaceable details. أساسي Required قريباً Coming soon الحدود Boundaries رسم خطوط واضحة بين أجزاء النظام، واتجاه الاعتماديات عبر هذه الخطوط. Drawing clear lines between parts of a system, and the direction dependencies cross them. أساسي Required قريباً Coming soon مبادئ المكوّنات Component principles ما الذي يُجمع في وحدة واحدة، وكيف تعتمد الوحدات على بعضها دون حلقات. What belongs together in one module, and how modules depend on each other without cycles. اختياري Optional قريباً Coming soon 06
الأساليب المعمارية Architectural styles 5 دروس 5 lessons المعمارية الطبقية Layered architecture طبقات العرض والمنطق والبيانات، وكل طبقة لا تعرف إلا ما تحتها. Presentation, logic and data layers, each knowing only the layer beneath it. أساسي Required قريباً Coming soon Clean وHexagonal Clean and hexagonal architecture منطق العمل في المركز والتفاصيل حوله عبر منافذ ومحوّلات، والاعتماديات تشير للداخل. Business logic at the center and details around it through ports and adapters, with dependencies pointing inward. أساسي Required قريباً Coming soon العميل والخادم Client–server الأسلوب الذي يقوم عليه الويب: عملاء يطلبون وخادم يقدّم الخدمة. The style the web runs on: clients that request and a server that serves. أساسي Required قريباً Coming soon المعمارية المعتمدة على الأحداث Event-driven architecture أجزاء تتواصل بنشر أحداث والاشتراك فيها بدل استدعاء بعضها مباشرة. Parts that communicate by publishing and subscribing to events instead of calling each other. أساسي Required قريباً Coming soon النواة والإضافات Microkernel (plugins) نواة صغيرة ثابتة وإضافات تضيف الميزات، كما في المحررات والمتصفحات. A small stable core with plugins adding features, as in editors and browsers. اختياري Optional قريباً Coming soon 07
الأنماط المعمارية Architectural patterns 6 دروس 6 lessons MVC وMVP وMVVM MVC, MVP and MVVM ثلاث طرق لفصل البيانات عن العرض عن منطق التحكم في الواجهات. Three ways to separate data, presentation and control logic in user interfaces. أساسي Required قريباً Coming soon التصميم الموجَّه بالمجال (DDD) Domain-driven design بناء النموذج حول لغة أصحاب العمل، وتقسيم النظام إلى سياقات محدودة. Shaping the model around the business's own language, and splitting the system into bounded contexts. أساسي Required قريباً Coming soon Microservices خدمات صغيرة تُنشر باستقلال، كل منها يملك بياناته، وثمن التعقيد الموزّع. Small independently deployed services, each owning its data, and the price of distributed complexity. أساسي Required قريباً Coming soon CQRS نموذج منفصل للكتابة وآخر للقراءة، حين تختلف احتياجاتهما كثيراً. Separate models for writing and reading, when their needs differ a lot. اختياري Optional قريباً Coming soon Event Sourcing Event sourcing حفظ كل حدث وقع بدل الحالة الأخيرة فقط، وإعادة بناء الحالة منها. Storing every event that happened instead of just the latest state, and rebuilding state from them. اختياري Optional قريباً Coming soon معمارية Serverless Serverless architecture نظام مبني من دوال وخدمات مُدارة، وكيف يغيّر ذلك التصميم والتكلفة. A system built from functions and managed services, and how that changes design and cost. اختياري Optional قريباً Coming soon 08
أنماط تطبيقات الأعمال Enterprise application patterns 6 دروس 6 lessons الكيانات وكائنات القيمة Entities and value objects ما له هوية ثابتة وما يُعرَّف بقيمته فقط، ولماذا يهم الفرق. What has a lasting identity and what is defined only by its value, and why the difference matters. أساسي Required قريباً Coming soon المستودعات (Repositories) Repositories واجهة تشبه المجموعة للوصول إلى الكائنات، تخفي تفاصيل التخزين عن منطق العمل. A collection-like interface for reaching objects, hiding storage details from business logic. أساسي Required قريباً Coming soon حالات الاستخدام Use cases كل عملية في النظام خدمة صغيرة واضحة المدخلات والمخرجات، مستقلة عن الإطار. Each system operation as a small service with clear inputs and outputs, independent of the framework. أساسي Required قريباً Coming soon كائنات النقل والمحوّلات DTOs and mappers أشكال بيانات بسيطة لعبور الحدود، ومحوّلات بينها وبين نموذج المجال. Plain data shapes for crossing boundaries, and mappers between them and the domain model. أساسي Required قريباً Coming soon النموذج الفقير مقابل الغني Anemic versus rich domain models كائنات بيانات فقط والمنطق في الخارج، أم كائنات تحمي قواعدها بنفسها. Data-only objects with logic elsewhere, or objects that guard their own rules. اختياري Optional قريباً Coming soon Transaction Script Transaction script إجراء واحد لكل عملية من البداية للنهاية: بسيط ومناسب للمنطق القليل. One procedure per operation from start to finish: simple and fine for light logic. بديل Alternative قريباً Coming soon