سؤال

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

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

وهو أسهل أن نفهم ؟

baz = foo + bar

أو

answer = first_number + second_number

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

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

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

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

هذه العادة التي سوف أي وقت مضى أن تكون قادرة على أن تهزم ؟ لماذا اخترت فو بار أو لا فو بار ؟

هل كانت مفيدة؟

المحلول

بدقة يعتمد على ما كنت تحاول تعليم.في بعض الأحيان عندما تظهر البرمجة سبيل المثال ، يجب أن يعلن عدد قليل من الأشياء فقط من أجل مقتطف أن تكون "كاملة", و هذه بعض الأشياء ليست هي جوهر ما كنت تظهر.

على سبيل المثال, إذا كنت تريد أن تظهر كيفية رمي استثناء, وأعتقد أنه هو موافق على هذا مقتطف مثل

public void foo() { 

   // Do some things

   if (errorCondition) {
      throw new Exception("Error message");
   }

}

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

ما أود أن لا تقبل (في هذا المثال) سيكون

public void foo() { 

   // Do some things

   if (bar) {
      throw new Exception(baz);
   }

}

كما يتم التعتيم على ما كنت تحاول تعلم.

نصائح أخرى

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

ربما أكثر من قضية إذا كنت في الساحة التدريب.

أنا استخدامها في بعض الأحيان.ولكن فقط إذا كان "ريال مدريد" اسم غير ذات الصلة.

أنا استخدامها عندما تبين أن أي قيم 'فو' و 'شريط' لن يكون كافيا ، مثل "يمكنك الحصول على حجم كائن مع sizeof(فو)." إنه مفيد للحصول على الناس أن تفهم المفهوم العام وليس مجرد تفاصيل.فعلى سبيل المثال ، إذا قلت "يمكنك الحصول على حجم كائن مع شيء من هذا القبيل sizeof(int)" ، ثم إنه يضمن تقريبا أن يسأل أحدهم إذا كان هذا يعمل أيضا على العوامات.

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

اخترت عدم فو وبار كلما جمهور بلدي هو على دراية كافية مع مفهوم في متناول اليد أن تثبت حساب فهمهم.

المرة الوحيدة فو وبار ينبغي أن تستخدم عندما نتحدث عن شيء حتى مجردة مضيفا أن السياق يتطلب مزيدا من النقاش.ثم فو بار هي أكثر قابلية للقراءة و إنشاء التعليمات البرمجية التي هي أكثر followable من البدائل مثل x, y و z.

أعتقد أنه بسبب عمومها ، أو ربما ليس أقل ما يقال الساخرة طبيعة العديد من المبرمجين.في حين أن العديد من الناس قد حاول أن تضع معاني مختلفة على foo/شريط أكثر , أو على الأقل العديد منا يفكر "فشل ذريع" ، F**K وراء كل الاعتراف.لها طريقة "من ذوي الخبرة" الناس لجعل سنيد تعليق عن الجميع.

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

على رأس تجنب الكلمات لا معنى لها مثل فو & bar, لقد وجدت أنها أكثر أهمية تقديم أمثلة التعليمات البرمجية عن سيناريوهات العالم الحقيقي والتي لها نفس العلاقات.هذا حقا يساعد المتعلم على فهم الموضوع بشكل صحيح و يمنع سوء الفهم.E. g. ، إذا أنا تعليم عن حقن التبعية و تظهر التعليمة البرمجية الموجودة في المثال حيث مثيل من فئة السيارات يتم حقنها في الطبقة سائق, لا أحد سوف تحصل على الخلط وأعتقد أن "هذا يعني أن الضوابط سيارة السائق بعد ذلك؟".

أعتقد أن هناك سبب آخر مهم بالنسبة باستخدام foo و bar في الأمثلة.هذه أسماء تجعل من الواضح أن كنت لا تحتج أي سحر الكلمات الرئيسية.كلما أنا أقرأ بعض الوثائق أو أمثلة التعليمات البرمجية, أنا أحب التعسفي أجزاء سبيل المثال أن يكون هناك تمييز واضح بين من قطع الغيار اللازمة.

إذا كنت استبداله هراء كلمة ما بشكل عام تمثل في التعليمة البرمجية الموجودة في المثال ، قد ينتهي بك الأمر مع بعض الأسماء التي تبدو كثيرا مثل الكلمات الرئيسية ، الطبقات ، أو أساليب كنت أحاول أن أشرح."بلدي" البادئة ، كما في myNumber, myFunction, هو حلا وسطا جيدا أن يجعل أسماء تبرز بأنها تعسفية.

أنا جديدة في البرمجة ، أكثر أو أقل يدرس النفس.قرأت الكثير من رمز المثال في البداية وجدت نفسي استبدال فو بار &c.مع أسماء مثل firstnumber و secondnumber الأمثلة أعلاه.

أنا الآن تفضل x,y,z,أنا...لأن فو وبار يبدو أن شرارة اللغوية النبضات في رأيي يمكن أن يصرف لي من الروتين ، و لقد طورت إلى حد ما ، والقدرة على الاستمرار في مجمله مجموعة من المتغيرات المختلفة في رأسي و تذكر ما هي عليه.ولكن كنت بالتأكيد نوصي باستخدام ذات الصلة التسمية عند تعليم شخص آخر ، وخاصة عندما شرح الكود شخص لا البرنامج ولكن يحتاج إلى فهم كيفية عمل البرنامج.

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