ask bashmohandes
All answers

السلام عليكم انا داخل تالته و عايز اتعلم تقسيم البروجكت .. يعني مثلا لو هعمل حاجة crud مثلا انا بعمله كله ف file واحد وممكن 3 files (Model , view , Controller) .. لاني لما بخش عايز اعمل contribution بتوه فالـrepo.. اي اسم الـskill دي؟ واي recommended resources اذاكر منهم؟

Anonymous ·

Mohamed ElsherifMohamed Elsherif
AI-assisted

وعليكم السلام،

دي مش skill واحدة باسم واحد، هي خليط بين software design و software architecture و refactoring. وعلى المستوى العملي انت بتتعلم: ازاي تقسّم المسؤوليات، ازاي تنظم الملفات والطبقات، و ازاي تخلي الكود سهل يتفهم ويتعدل. كونك عامل كل حاجة في file واحد ده طبيعي جدًا في البداية، لكن لما المشروع يكبر هتحتاج تفصل ال concerns بدل ما ال repo يبقى متاهة.

ابدأ بمبادئ بسيطة قبل ما تدور على “التركيبة الصح”:

  • كل جزء يبقى له مسؤولية واضحة.
  • افصل بين business logic و data access و HTTP/UI layer.
  • سَمّي الحاجات على حسب دورها، مش على حسب مزاجك.
  • لما تلاقي file بيكبر أو class بقت بتعمل 10 حاجات، دي إشارة refactoring.

بالنسبة لسؤالك عن ال contribution في repos: ده جزء مهم جدًا، لأن كل ecosystem ليها عادات مختلفة. Project structure مش universal standard. اللي ينفع في Django مش هو اللي ينفع في Spring، واللي ينفع في Express مش هو نفسه في .NET. عشان كده ذاكر best practices الخاصة بالـ language / framework اللي بتستخدمه، وابص على مشاريع open source مشابهة للي انت عايز تعمله: CRUD APIs مثلًا، وشوف منظمين ال folders وال modules وال layers ازاي. لكن الأهم: افهم ليه عاملينها كده، ما تقلدش عمياني.

لو عايز تدور على resources، دور على topics زي:

  • Separation of Concerns
  • Layered Architecture
  • Clean Architecture
  • Refactoring
  • SOLID principles

وابدأ صغير: اعمل نفس مشروع ال CRUD كذا مرة.
مرة MVC، ومرة Layered Architecture فيها controllers/services/repositories, وشوف الفرق بنفسك. المقارنة دي هتعلمك أكتر من قراءة نظرية فقط.