
PTC للبرامج: ترجمة AI مميزة ومتسقة عبر موقعك ومنتجك
هل تطوّر برمجيات أو تطبيقات هواتف محمولة إلى جانب موقع WordPress الخاص بك؟ أصبح PTC، محرك ترجمة AI من WPML، يترجمها أيضاً.
تُعد البرمجة الوظيفية موضوعاً ساخناً بين المطورين هذه الأيام، وليس من فراغ. كان الإصدار 4.5 من WPML مشروعاً واسع النطاق قدّم خيار ترجمة موقعك تلقائياً. بالنسبة لنا، كانت هذه أيضاً اللحظة المناسبة للانتقال إلى البرمجة الوظيفية. إليك ما تعلمناه خلال هذه العملية.
ربما سمعت أن البرمجة الوظيفية تجعل شيفرتك البرمجية أكثر قابلية للقراءة وأسهل في الاختبار. ولكن لكي تستوعب البرمجة الوظيفية بالكامل، من المهم أن تفهم المفاهيم المتعلقة بها.
بادئ ذي بدء، البرمجة الوظيفية هي نموذج برمجي ينصب فيه التركيز على استخدام الدوال لبناء البرمجيات وتركيب الدوال معاً لبناء دوال أكثر تعقيداً. تجعل البرمجة الوظيفية الشيفرة البرمجية ذات طبيعة تصريحية أكثر. فأنت تعبّر عما تريده بدلاً من كتابة تسلسل من الجمل التي تحدّث حالة البرنامج.
من المهم الانتباه إلى الدوال التي تستخدمها - وتحديداً الدوال البحتة. تتلقى الدوال البحتة البيانات وتُرجع البيانات، ولكن ليس لها أي آثار جانبية أخرى. هذا يجعل اختبار الدوال سهلاً للغاية لأنه إذا أعطيت نفس المعاملات، ستحصل على نفس النتيجة.
ببساطة، في البرمجة الوظيفية يعتمد المُخرَج على المُدخَل.
يُعد WPML مشروعاً كبيراً ومعقداً. حتى وقت قريب، كنا نستخدم البرمجة كائنية التوجه (OOP) لمحاولة إدارة هذا التعقيد. من التحديات الرئيسية كتابة شيفرات الاختبار (اختبارات الوحدة) لجميع مشاريعنا. عند كتابة شيفرة قابلة للاختبار، نحتاج إلى ضمان أن أي تغييرات نجريها لا تؤدي إلى تعطل الشيفرة الحالية.
لا يمكن أن يصل بك اختبار الوحدة لشيفرة OOP إلا إلى حد معين. يجب محاكاة تبعيات الشيفرة حتى يمكن اختبار الفئات بشكل مستقل. ونتيجة لذلك، ينتهي الأمر بأن تكون الاختبارات كبيرة ومعقدة.
يُقال إن التركيز الرئيسي للبرمجة الوظيفية هو «ما الذي يجب حله». في المقابل، تتبنى البرمجة كائنية التوجه نهج «كيفية الحل». مع وضع هذا في الاعتبار، بدا أن البرمجة الوظيفية يمكن أن تساعدنا في التغلب على بعض تحدياتنا.
عندما نتحدث عن البرمجة الوظيفية، فإن PHP ليست اللغة الأولى التي تتبادر إلى الذهن - على الرغم من أنها تتيح لنا إدخال أسلوب وظيفي. على سبيل المثال، تستخدم الخطّافات والمرشِّحات التي تتيح توسيع WordPress الدوال لتجاوز وظائف WordPress.
لسوء الحظ، لا توجد مكتبة قياسية لاستخدام نموذج وظيفي أكثر في PHP. لقد راجعنا العديد من المكتبات ولكن لم تحتوِ أي منها بالضبط على ما نحتاجه لكتابة شيفرة معبرة بأسلوب وظيفي. لذلك بدلاً من ذلك، قررنا كتابة مكتبتنا الخاصة. استلهمنا من مصادر مختلفة، ولكن الكثير منها كان من مكتبات Javascript، والتي وجدنا أنها أكثر نضجاً.
للبرمجة الوظيفية نهج مختلف عن النماذج الأخرى، لذا فإن الانتقال إلى نموذج البرمجة الوظيفية هو في الواقع خطوة كبيرة. فهو يتطلب منك تغيير طريقة تفكيرك في كتابة الشيفرة وحل المشكلات. ويتطلب الأمر الكثير من الممارسة لكتابة شيفرة معبرة واضحة وموجزة.
نحن نعتقد بالتأكيد أنه نجح. تتمتع البرمجة الوظيفية بعدد من الميزات التي تعمل لصالحنا:
ولكن بالطبع، لا يوجد شيء مثالي. في حين أن البرمجة الوظيفية أكثر إيجازاً وقابلية للتنبؤ، إلا أن لها عيوباً، خاصة إذا لم تكن معتاداً عليها:
غني عن القول إن شعبية البرمجة الوظيفية هي أكثر من مجرد صيحة عابرة. نظراً لطبيعتها، تُعد البرمجة الوظيفية رائعة لمهام مثل التعلم الآلي وتحليل البيانات. ونتيجة لذلك، بدأت الشركات من جميع الأحجام في إظهار الاهتمام، أو حتى بدء انتقالها إلى البرمجة الوظيفية. هذا لا يعني أنه يجب عليك توديع البرمجة كائنية التوجه إلى الأبد، ولكن الأمر يستحق تجربة البرمجة الوظيفية. حتى لو لم ينتهِ بك الأمر إلى استخدامها أبداً، فمن المحتمل أن ترتقي بمستواك كمطور.
إذا كنت مهتماً بمعرفة المزيد، نقترح البدء بـ سلسلة مقالات مدونة Composing Software.
بمجرد أن تصبح مستعداً للتعمق أكثر، ألقِ نظرة على مستودع مشروع FP الخاص بنا.
نحن نبحث دائماً عن مطورين استثنائيين للانضمام إلى فريقنا. إذا كان هذا الوصف ينطبق عليك، فلا تنتظر أكثر - قدّم طلبك اليوم.