جعلني تعلم البرمجة الوظيفية مطورًا أفضل بـ 10x

جعلني تعلم البرمجة الوظيفية مطورًا أفضل بـ 10x. لقد ساعدني ذلك في تعلم كيفية كتابة رمز نظيف وسهل الصيانة وقابل للتطوير.

هذا مهم بشكل خاص في هذا اليوم وهذا العصر حيث تزداد التطبيقات البرمجية تعقيدًا. لقد ولت أيام إنشاء تطبيق ويب بسيط وصيانته.

بصفتك مطورًا ، فإن التوقعات الموضوعة عليك أعلى من أي وقت مضى. يقع على عاتقنا الآن بناء واختبار وصيانة وتوسيع نطاق التطبيقات المعقدة التي تؤثر على ملايين الأشخاص يوميًا. هذا يمكن أن يكون شاقة خصوصا كمبتدئ لأننا مجرد الحصول على تعليق من كتابة التعليمات البرمجية التي فعلا يعمل ، اسمحوا كود حدها الكتابة التي هي سهلة ل فهم، الكتابة والتصحيح وإعادة استخدامها، والمحافظة عليها.

هذا هو المكان الذي أحدثت فيه البرمجة الوظيفية فرقًا بالنسبة لي - فقد ساعدتني في تعلم كيفية البرمجة التي يسهل فهمها وكتابتها وتصحيحها وإعادة استخدامها وصيانتها. نتيجة لذلك ، أشعر بثقة أكبر في قدراتي في الترميز.

حتى إذا كنت لا تستخدم لغة برمجة وظيفية في العمل أو في مشاريعك الجانبية ، فإن معرفة أساسيات البرمجة الوظيفية يزودك بمجموعة قوية من الأدوات لكتابة كود أفضل.

في كتابي الإلكتروني الجديد ، سأعلمك أساسيات البرمجة الوظيفية بحيث يكون لديك كل المعرفة الأساسية التي تحتاجها لتطبيق المبادئ في العمل ، أو في مقابلة العمل التالية ، أو في مشروعك الجانبي التالي.

ستقدم لك بقية المنشور شرحًا بسيطًا لماهية البرمجة الوظيفية ، والتي ستحتاج إلى معرفتها قبل الغوص في الكتاب الإلكتروني. ؟

دعنا ندخله مباشرة! ؟

ما هي البرمجة الوظيفية؟

وبالتالي. ما هي "البرمجة الوظيفية" بالضبط؟

البرمجة الوظيفية ليست إطار عمل أو أداة ، ولكنها طريقة لكتابة التعليمات البرمجية. في البرمجة الوظيفية ، نضع تركيزًا كبيرًا على كتابة التعليمات البرمجية باستخدام الوظائف كـ "لبنات بناء".

يتم تعريف برنامجك من حيث وظيفة رئيسية واحدة. يتم تعريف هذه الوظيفة الرئيسية من حيث الوظائف الأخرى ، والتي يتم تعريفها بدورها من حيث المزيد من الوظائف - حتى في المستوى السفلي ، تكون الوظائف مجرد لغة بدائية مثل "رقم" أو "سلسلة".

إذا كنت تقرأ هذا التفكير ، "حسنًا ، لكن انتظر؟ ألا تستخدم كل لغة وظائف لكتابة التعليمات البرمجية؟ " جيد إذا ؟. هذا يعني أنك منتبه.

أنت محق - كل لغة برمجة لها وظائف. لكن البرمجة الوظيفية تأخذها إلى مستوى آخر كامل ؟

لفهم ما أعنيه ، دعنا نرجع ونبدأ بالأساسيات.

لكل برنامج شيئين:

  1. السلوك (ما يفعله البرنامج)
  2. البيانات (البيانات ، حسنا ، البيانات)

عندما نتعلم عن نموذج برمجة - مثل البرمجة الوظيفية - من المفيد غالبًا التفكير في كيفية تعامل النموذج مع السلوك والبيانات على التوالي.

يتم التعامل مع السلوك ، في البرمجة الوظيفية ، فقط باستخدام وظائف في البرمجة الوظيفية. المهامهي أجزاء من التعليمات البرمجية "قائمة بذاتها" والتي تؤدي مهمة محددة. يحددون العلاقة بين مجموعة من المدخلات الممكنة ومجموعة من المخرجات المحتملة - عادة ما يأخذون البيانات ويعالجونها ويعيدون النتيجة. بمجرد كتابة الوظيفة ، يمكن استخدامها مرارًا وتكرارًا.

البيانات ، في البرمجة الوظيفية ، غير قابلة للتغيير - مما يعني أنه لا يمكن تغييرها. بدلاً من تغيير البيانات التي يأخذونها ، تأخذ الوظائف في البرمجة الوظيفية البيانات كمدخلات وتنتجقيمًا جديدة كمخرجات. دائما.

وظائف و غير قابل للتغيير البيانات هي الأشياء اثنين فقط تحتاج إلى التعامل مع أي وقت مضى في البرمجة الوظيفية. لجعل الأمر أكثر بساطة ، لا يتم التعامل مع الوظائف بشكل مختلف عن البيانات.

بعبارة أخرى ، يمكن تمرير الوظائف في البرمجة الوظيفية بسهولة مثل البيانات. يمكنك الرجوع إليها من الثوابت و المتغيرات ، وتمرير لهم كما المعلمات إلى وظائف أخرى، وإعادتها كما النتائج من الوظائف الأخرى.

هذا هو أهم شيء يجب فهمه عند التعامل مع البرمجة الوظيفية.

من خلال التعامل مع الوظائف على أنها ليست أكثر من جزء من البيانات وباستخدام البيانات غير القابلة للتغيير فقط ، نمنح المزيد من الحرية فيما يتعلق بكيفية استخدام الوظائف.

وهي تسمح لنا بإنشاء وظائف صغيرة مستقلة يمكن إعادة استخدامها ودمجها معًا لبناء منطق معقد بشكل متزايد. يمكننا تقسيم أي مشكلة معقدة إلى مسائل فرعية أصغر ، وحلها باستخدام الدوال ، وفي النهاية دمجها معًا لحل المشكلة الأكبر.

بالنظر إلى التعقيد المتزايد باستمرار لتطبيقات البرامج ، فإن هذا النوع من نهج "اللبنات" يُحدث فرقًا كبيرًا في الحفاظ على البرامج بسيطة وقياسية ومفهومة. ولهذا السبب أيضًا يسعى المطورون إلى جعل وظائفهم ذات أغراض عامة قدر الإمكان ، بحيث يمكن دمجها لحل المشكلات الكبيرة والمعقدة وإعادة استخدامها لتسريع وقت التطوير للبرامج اللاحقة.

في النهاية ، السبب وراء قوة الوظائف في البرمجة الوظيفية هو أن الوظائف تتبع مبادئ أساسية معينة. ستكون هذه المبادئ موضوع دورة البريد الإلكتروني الخاصة بي:

  • الوظائف نقية
  • تستخدم الوظائف البيانات غير القابلة للتغيير
  • وظائف تضمن الشفافية المرجعية
  • الوظائف هي كيانات من الدرجة الأولى

بعد ذلك ، سأتطرق بإيجاز إلى كيفية تطبيق البرمجة الوظيفية لهذه المبادئ لتشجيعنا على التفكير بعناية في بياناتنا والوظائف التي تتفاعل معها.

في النهاية ، ستتمكن من فهم كيف يؤدي هذا النهج إلى رمز:

  • أسهل في الفهم (أي "معبرة")
  • أسهل في إعادة الاستخدام
  • أسهل في الاختبار
  • أسهل في الصيانة
  • أسهل لإعادة البناء
  • أسهل في التحسين
  • أسهل في التفكير

صوت مثير؟ إذا كان الأمر كذلك ، فستحب الكتاب الإلكتروني الجديد. ؟

سيصدر الكتاب الإلكتروني في 13 ديسمبر . يمكنك طلب الكتاب الإلكتروني مسبقًا الآن مقابل 49 دولارًا فقط ! وكعرض خاص لمجتمع FreeCodeCamp المجاني ، أقدم خصمًا بقيمة 10 دولارات أمريكية مع كود الخصم " freecodecamp ".

اراك هناك! ؟؟ ✍️