هل سبق لك أن نظرت إلى وظيفة ما وشعرت بالضياع في تعقيدها؟ دعونا نستكشف المبدأ الأساسي للتعليمات البرمجية النظيفة: يجب أن تحافظ الوظائف على مستوى واحد فقط من التجريد.
إليك مثال حقيقي لإنشاء المستخدم في تطبيق ويب:
// ❌ A function doing too many things at different abstraction levels function createUser(userData) { // Validate data if (!userData.email || !userData.email.includes('@')) { return 'Invalid email'; } if (userData.password.lengthتمزج هذه الوظيفة بين مستويات مختلفة من التجريد:
دعونا نعيد تشكيلها باتباع المستوى الفردي لمبدأ التجريد:
// ✅ Clean version with one level of abstraction function createUser(userData) { const validationError = validateUserData(userData); if (validationError) return validationError; const securePassword = hashPassword(userData.password); const formattedUser = formatUserData(userData.email, securePassword); return saveUserToDatabase(formattedUser); } function validateUserData({ email, password }) { if (!email || !email.includes('@')) return 'Invalid email'; if (password.lengthفوائد هذا النهج
- قابلية القراءة: تُقرأ الوظيفة الرئيسية كقصة، وتصف ما يحدث على مستوى عالٍ
- قابلية الصيانة: كل وظيفة لها مسؤولية واحدة، مما يجعل التغييرات أكثر أمانًا
- قابلية الاختبار: يمكنك اختبار كل جزء من المنطق بشكل مستقل
- قابلية إعادة الاستخدام: يمكن إعادة استخدام هذه الوظائف المركزة في سياقات أخرى
الوجبات السريعة الرئيسية
عند كتابة الوظائف:
تذكر: إذا كنت تخلط بين "كيف" و"ماذا" في نفس الوظيفة، فمن المحتمل أنك تتعامل مع مستويات متعددة من التجريد. تقسيمهم!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3