بحث باسم الموضوع المطلوب

لما تشتغل على مشاريع Flutter وتحتاج كودك يكون مرتب ، سهل القراءة، وما يجيب لك صداع الRefatoring بعدين،



في قواعد تبع الDart,Flutter  


وإتباع هذه قواعد البسيطة—راح تمنع عنك أخطاء “غبية” وتسهل عيك عدة أشياء ،،


في منشور اليوم جمعت بعض القواعد المهمة وهي :


1️⃣ اتبع التوثيق الرسمي: 


Flutter و Dart docs هم المصدر المعتمد.


🚦 «لازم» (green box) و «أفضل ممارسات» (blue box) موجودين فيها.


مثال:

• استخدم Provider/Bloc طبقًا للأمثلة في docs.

• نفّذ dart format عشان تلتزم style guide.


2️⃣ الأسماء قصيرة ومضبوطة "Short and Precise Named"


الاسم يكون واضح وبدل ما يكون طويل، خليه مختصر.


❌️خطأ: userProfileInformationScreen


✔️صح: UserProfileScreen


3️⃣ أسماء المجلدات


استخدم snake_case للمجلدات.


مثال:

• model_classes/

• auth_screens/

• data_services/


4️⃣ أسماء الملفات


برضه snake_case، ولازم تتطابق مع المجلد والكلاس.

مثال:

• my_home_page.dart

 (يحتوي على : class HomePage)

• user_repository.dart

• login_form_widget.dart


5️⃣ Import Prefixes


لما تستعمل as، خليه snake_case.


مثال:

import 'package:http/http.dart' as http_client;

import 'package:provider/provider.dart' as provider_lib;


6️⃣ أسماء الكلاسات والـ Enums


UpperCamelCase (PascalCase)

 للكلاس والـ enum والقيم.

مثال:

• UserService

• LoginPage

• enum ConnectionState { Waiting, Done, Error }

7️⃣  الClass Memebers

 (Methods، Variables،Parameters، Named Constructors)

lowerCamelCase للمتغيرات والدوال .


المتغيرات الPrivate تبدأ بـ _.

مثال:

• userName 

• increasePrice()

• MyClass.fromMap(Map<String, dynamic> map)


8️⃣ Default Constructor ال


اسمه نفس اسم الكلاس (UpperCamelCase)، ما ينطبق عليه lowerCamelCase.

مثال:

• User() 

داخل class User { … }


9️⃣ الدوال (Functions)

 تستخدم lowerCamelCase.

مثال:

• calculateSum()

• fetchUserData()


🔟 الثوابت (const)

في Dart الconst  يستخدم lowerCamelCase

 (مش ال ALL_CAPS).

مثال:

• const int maxAttempts = 3;

• const String appTitle = 'My App';


1️⃣1️⃣ الAcronyms and Abbreviation 


أكتبها كـ كلمات عادية (PascalCase) إذا أكثر من حرفين.


إلا حرفين لو هما بالحروف الكبيرة بالإنجليزي (ID, TV, UI).


أمثلة صحيحة :✔️


Http      // hypertext transfer protocol

Nasa      // national aeronautics and space administration

Uri       // uniform resource identifier


ID        // identifier

TV        // television

Mr        // mister (غير capitalized في الإنجليزي)


أمثلة خاطئة:❌️


HTTP, NASA, URI    

 // خطأ: طويلة فلازم Http, Nasa, Uri


Id, Tv, Ui         // “ID” و“TV” لازم كلها caps

MR, ST, RD         // خطأ: Mr, St, Rd

"لأنه Not Capitalized in English "


1️⃣2️⃣ باراميتيرز  callback ال غير مستعملة:

بتستخدكم  "_ "كـ wildcard للي ما تستخدمه.


مثال:


future.then((_) {

  print('Done');

});


stream.onError((_, __) {

  print('Error');

});


✨ الخلاصة:

اتبع التوثيق الرسمي أوّلًا.

- سمّ كلاس بالـ PascalCase، ملفات ومجلدات بالـ snake_case.

- اختصر الأسماء وتجنب الكلمات الزائدة.

- التزم lowerCamelCase للمتغيرات والدوال والثوابت.

بهالطريقة يظل كودك Flutter مرتب، قابل للصيانة، و ما تحسّ أنت أو اللي يجي بعدك  أنه “كود متعب بالقراءة والمنظر 😅”و  يجيب مشاكل بعدين.