Решение на Пета задача от Гюлджан Купен

Обратно към всички решения

Към профила на Гюлджан Купен

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 0 успешни тест(а)
  • 0 неуспешни тест(а)

Код

REPOSITORY = 'https://github.com/Guldjan/ruby-retrospective-4'
# 1. Не рекурсивен и по-елегантен метод при нужда от пресмятане на член на редица.
# 2. Когато се налага пресмятане на членове на няколко редици може да бъде използван един общ метод, на който да се подават различни входни данни, вместо отделни методи.
# 3. При нужда от повторение на дадени стъпки известен брой пъти и по-удачно използването на метода times вместо for.
# 4. Когато искаме да използваме методите от Enumarable в нашия клас е достатъчно да добавим Enumerable и да дефинираме метода each като използваме блокът, който му се подава.
# 5. Когато имаме няколко класа, за които трябва да дефинираме едни и същи методи е добре да помислим за подходящо наследяване.
# 6. При наследяване, когато искаме да преобразуваме обект от наследяващия клас в обект от наследения клас, може да използваме метода super().
# 7. Когато искаме да проверим класа на даден обект в case не е нужно да извикваме метода class на този обект, защото case сравнява с ===.
# 8. При използване на case, когато за различните случаи трябва да върнем обект с различни параметри е добре да изведем проверката в отделен метод. По този начин можем да еднократно да създадем обект, използвайки получения резултат.
# 9. Когато за даден клас се налага да реализираме функционалност, която изисква няколко помощни метода можем да ги отделим в собствен клас. Така кодът ни става по-читаем и смислово групиран.
# 10. Подходящо е да използваме рекурсия, когато имаме влагане на идентични смислови единици, за които трябва да бъде реализиран определен метод.
# 11. Когато използваме метод само в класа, в който е дефиниран е добре да го направим private.
# 12. Добре е да разделяме кода на смислови части, така че да е лесно четим и всеки метод да има определена задача.
# 13. Изграждане на структура от класове, в която всеки клас има определена функция и наследяващите класове надграждат над наследените.
# 14. Когато искаме да променим "текущия обект" в рамките на изпълнението да един блок в даден клас, използваме метода instance_eval.
# 15. В ситуация, когато ни е нужен брояч при изпълнението на map върху някакъв списък може да използваме map.with_index.
# 16. Можем да преобразуваме метод до Proc обект, използвайки метода to_proc на който подаваме метод чрез символ.
# 17. Когато се налага да създадем списък от еднотипни обекти, за които трябва да дефинираме собствени методи е добре да ги отделим в нов клас, който да наследим.
# 18. При използване на map, select и др. за Hash, можем да именуваме единия параметър с _ в блока ако стойността му не ни интересува в случая.
# 19. Можем да използваме паралелно присвояване на променливи, за да им дадем стойности елементите на даден списък.
# 20. Когато искаме да преобразуваме елементите на даден списък в един общ string, можем да използваме метода join.

История (1 версия и 0 коментара)

Гюлджан обнови решението на 19.01.2015 16:29 (преди почти 10 години)

+REPOSITORY = 'https://github.com/Guldjan/ruby-retrospective-4'
+# 1. Не рекурсивен и по-елегантен метод при нужда от пресмятане на член на редица.
+# 2. Когато се налага пресмятане на членове на няколко редици може да бъде използван един общ метод, на който да се подават различни входни данни, вместо отделни методи.
+# 3. При нужда от повторение на дадени стъпки известен брой пъти и по-удачно използването на метода times вместо for.
+# 4. Когато искаме да използваме методите от Enumarable в нашия клас е достатъчно да добавим Enumerable и да дефинираме метода each като използваме блокът, който му се подава.
+# 5. Когато имаме няколко класа, за които трябва да дефинираме едни и същи методи е добре да помислим за подходящо наследяване.
+# 6. При наследяване, когато искаме да преобразуваме обект от наследяващия клас в обект от наследения клас, може да използваме метода super().
+# 7. Когато искаме да проверим класа на даден обект в case не е нужно да извикваме метода class на този обект, защото case сравнява с ===.
+# 8. При използване на case, когато за различните случаи трябва да върнем обект с различни параметри е добре да изведем проверката в отделен метод. По този начин можем да еднократно да създадем обект, използвайки получения резултат.
+# 9. Когато за даден клас се налага да реализираме функционалност, която изисква няколко помощни метода можем да ги отделим в собствен клас. Така кодът ни става по-читаем и смислово групиран.
+# 10. Подходящо е да използваме рекурсия, когато имаме влагане на идентични смислови единици, за които трябва да бъде реализиран определен метод.
+# 11. Когато използваме метод само в класа, в който е дефиниран е добре да го направим private.
+# 12. Добре е да разделяме кода на смислови части, така че да е лесно четим и всеки метод да има определена задача.
+# 13. Изграждане на структура от класове, в която всеки клас има определена функция и наследяващите класове надграждат над наследените.
+# 14. Когато искаме да променим "текущия обект" в рамките на изпълнението да един блок в даден клас, използваме метода instance_eval.
+# 15. В ситуация, когато ни е нужен брояч при изпълнението на map върху някакъв списък може да използваме map.with_index.
+# 16. Можем да преобразуваме метод до Proc обект, използвайки метода to_proc на който подаваме метод чрез символ.
+# 17. Когато се налага да създадем списък от еднотипни обекти, за които трябва да дефинираме собствени методи е добре да ги отделим в нов клас, който да наследим.
+# 18. При използване на map, select и др. за Hash, можем да именуваме единия параметър с _ в блока ако стойността му не ни интересува в случая.
+# 19. Можем да използваме паралелно присвояване на променливи, за да им дадем стойности елементите на даден списък.
+# 20. Когато искаме да преобразуваме елементите на даден списък в един общ string, можем да използваме метода join.