Core Extensions لتقليل تكرار الكود

x32x01
  • بواسطة x32x01 ||
في لحظة معينة أي مبرمج بيحس بالإحباط ده 😅
إنه بيكتب نفس الـ helper functions كل مرة في كل مشروع جديد…
  • MediaQuery
  • Theme.of
  • parsing
  • nesting للـ widgets
  • وتكرار utilities مالوش نهاية 💀
السؤال هنا:
ليه ما نخليش الكود نفسه أذكى وأسهل في الاستخدام؟ 🤔

فكرة Core Extensions 🧠​

الفكرة ببساطة جدًا:
بدل ما تحط كل حاجة في helper classes أو ملفات utilities منفصلة،
تخلي الوظائف دي جزء طبيعي من اللغة نفسها باستخدام Extensions.
ده بيخلي الكود:
  • أنضف ✨
  • أسرع في الكتابة ⚡
  • وأسهل في القراءة 👀



أمثلة عملية هتفرق معاك جدًا 💡​

خلينا نشوف الفرق بين الأسلوب التقليدي والأسلوب الذكي 👇

📱 التعامل مع الشاشة والثيم​

❌ الطريقة القديمة:
Code:
MediaQuery.of(context).size.width
Theme.of(context).primaryColor
✅ باستخدام Core Extensions:
Code:
context.screenWidth
context.theme.primaryColor
💬 النتيجة: كود أبسط وأسرع في الفهم

🔢 تحويل النصوص لأرقام​

❌ الطريقة التقليدية:
Code:
int.parse(value)
✅ بشكل أكثر أمانًا ووضوحًا:
Code:
value.toIntOrNull()
💬 كده أنت قللت احتمالية الـ crash وخليت الكود أذكى

🧱 التخلص من الـ Widget Nesting​

❌ الشكل المزعج:
Code:
Padding(
  padding: EdgeInsets.all(16),
  child: Center(
    child: Text('Hello'),
  ),
)
✅ باستخدام extensions:
Code:
Text('Hello')
  .center()
  .paddingAll(16)
💬 هنا الفرق الحقيقي في Clean Code

📋 Lists بشكل أنظف​

❌ الطريقة التقليدية:
Code:
children: [
  Widget1(),
  SizedBox(height: 16),
  Widget2(),
]
✅ باستخدام extension:
Code:
children.separatedBy(SizedBox(height: 16))
💬 كده قللت التكرار بشكل كبير جدًا

⏳ التعامل مع الـ async بسهولة​

❌ الشكل العادي:
Code:
await Future.delayed(Duration(seconds: 2));
✅ بشكل أبسط:
Code:
await 2.delay();
💬 الكود بقى أقرب للـ natural language



ليه Core Extensions فكرة قوية جدًا؟ 🔥​

الفكرة مش مجرد اختصار كود…
الفكرة إنها بتغير طريقة تفكيرك كمبرمج 👇

✔ تقلل boilerplate​

بدل تكرار نفس الأكواد في كل مشروع​

✔ تخلي الكود readable​

أي حد يدخل المشروع يفهمه بسرعة​

✔ تخليك أسرع في التطوير​

وقت أقل في الكتابة = إنتاجية أعلى ⚡​

✔ تحسن تجربة العمل​

الكود بقى ممتع بدل ما يكون مزعج​



تنظيم الـ Extensions مهم جدًا 🧩​

علشان الفكرة تفضل scalable:
  • كل extension في ملف مستقل
  • grouped حسب النوع (UI / String / Async / List)
  • reusable في أي مشروع
  • مكتوب بطريقة واضحة ومفهومة
ده اللي بيخلي Standard Repo قوي فعلاً 💪



الخلاصة 💭​

لو لسه بتكرر نفس الـ helper functions في كل مشروع…
فأنت كده بتضيع وقتك على حاجات ممكن تتبسط جدًا 🔥
فكرة Core Extensions بتخليك:
✔ تكتب أقل
✔ تفهم أسرع
✔ تبني كود أنضف
✔ وتشتغل باحترافية أعلى​
وفي النهاية…
الكود الشاطر هو اللي يخدمك مش العكس 😄🚀
 

المواضيع ذات الصلة

x32x01
الردود
0
المشاهدات
732
x32x01
x32x01
x32x01
الردود
0
المشاهدات
947
x32x01
x32x01
x32x01
الردود
0
المشاهدات
152
x32x01
x32x01
x32x01
الردود
0
المشاهدات
168
x32x01
x32x01
x32x01
الردود
0
المشاهدات
700
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟

آخر المشاركات

إحصائيات المنتدى
المواضيع
2,420
المشاركات
2,633
أعضاء أكتب كود
575
أخر عضو
MAROODOO
عودة
أعلى