سؤال

كنت أقرأ السؤال التالي - كيف ستكون آمنة لاستخدام Java الوظيفية لإضافة إغلاق إلى مشروع إنتاج Java؟ وكنت أفكر في استخدام مشروع جافا الوظيفي كذلك في مشروعي الحالي. كنت أتساءل عما تجارب مستخدمي سعة مكدس مع استخدام مشروع Java الوظيفية؟ على وجه الخصوص، أنا فضولي حول بعض هذه التفاصيل:

  • هل زاد جودة رمز أو وضوح؟
  • تحسين الإنتاجية؟
  • خفض النقاط المحتملة للفشل؟
  • تأثير التأثير؟
هل كانت مفيدة؟

المحلول

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

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

هل زاد جودة رمز أو وضوح؟

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

تحسين الإنتاجية؟

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

خفض النقاط المحتملة للفشل؟

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

تأثير التأثير؟

ليس هناك سبب للاعتقاد بأن الأداء ستؤثر بطريقة أو بأخرى. تم تصميم البيانات الفراشية المقدمة لسهولة الاستخدام والتعبير بدلا من الأداء، لكنهم مكتوطون على النحو الأمثل لما هم عليه. كما هو الحال مع أي شيء آخر، كيف تقود السيارة أكثر أهمية مما كنت تقوده. على سبيل المثال، FJ.Data.List هي قائمة مرتبطة، لذلك لديها O (N) الوصول العشوائي والسلسلات، وبالتالي تتجنب ذلك لأولادات هذه الأغراض. FJ.Data.Stream لديه O (1) تسلسل، بالمقارنة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top