Решение на Пета задача от Антонио Николов

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

Към профила на Антонио Николов

Резултати

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

Код

REPOSITORY = 'https://github.com/antonionikolov/ruby-retrospective-3'
# Двадесет неща, които научих.
#
# 1. Именоването на класовете, методите и променливите е много
# важно нещо.
# 2. Понякога използването на рекурсия е по–удачен вариант за
# решаването на даден проблем.
# 3. Използвай reduce не inject - по-добър стил.
# 4. Пиши възможно най-простия код - без излишни неща.
# 5. Пиши събран и компактен код, когато това не пречи на четимостта му.
# 6. По често използвай готовите Ruby методи (split, map, reduce...).
# 7. Стреми се да навързваш методите.
# 8. Hash-а в Ruby има различни конструкции. Стреми се да използваш
# най-подходящата.
# 9. Count, length и size са синоними. Изполвай най-удачния за конкретната
# ситуация.
# 10.Когато е възможно използвай кратките форми на map, reduce, filter...
# 11.Използвай по конкретни Ruby методи, когато са подходящи (each_slice,
# flat_map, each_with_index...).
# 12.Променливи могат да се инициализират с масив (a, b = [1, 2]).
# 13.Когато използваш each, map, reduce... избери подходящо име за
# променливата/е, а не x или y (в някой случай са подходящи).
# 14.Понякога е подходящо да се използват функции от по-висок ред.
# 15.Пиши и използвай тестове. Полезни са и много ускоряват работата.
# 16.Използвай << не += за образуването на string. += създава нов обект.
# 17.Винаги използвай по-добрия (по-точния) алгоритъм, дори да е по-сложен.
# 18.За да дефинираш hash на даден обект използвай hash-а на array от
# обектите от които е създаден.
# 19.Стреми се да спазваш конкретните стилови конвенции. Кода е по-разбираем и
# помага за работата в екип.
# 20.Преди да използваш дадено нещо се увери, че знаеш как работи.

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

Антонио обнови решението на 21.01.2014 01:58 (преди над 10 години)

+REPOSITORY = 'https://github.com/antonionikolov/ruby-retrospective-3'
+
+# Двадесет неща, които научих.
+#
+# 1. Именоването на класовете, методите и променливите е много
+# важно нещо.
+# 2. Понякога използването на рекурсия е по–удачен вариант за
+# решаването на даден проблем.
+# 3. Използвай reduce не inject - по-добър стил.
+# 4. Пиши възможно най-простия код - без излишни неща.
+# 5. Пиши събран и компактен код, когато това не пречи на четимостта му.
+# 6. По често използвай готовите Ruby методи (split, map, reduce...).
+# 7. Стреми се да навързваш методите.
+# 8. Hash-а в Ruby има различни конструкции. Стреми се да използваш
+# най-подходящата.
+# 9. Count, length и size са синоними. Изполвай най-удачния за конкретната
+# ситуация.
+# 10.Когато е възможно използвай кратките форми на map, reduce, filter...
+# 11.Използвай по конкретни Ruby методи, когато са подходящи (each_slice,
+# flat_map, each_with_index...).
+# 12.Променливи могат да се инициализират с масив (a, b = [1, 2]).
+# 13.Когато използваш each, map, reduce... избери подходящо име за
+# променливата/е, а не x или y (в някой случай са подходящи).
+# 14.Понякога е подходящо да се използват функции от по-висок ред.
+# 15.Пиши и използвай тестове. Полезни са и много ускоряват работата.
+# 16.Използвай << не += за образуването на string. += създава нов обект.
+# 17.Винаги използвай по-добрия (по-точния) алгоритъм, дори да е по-сложен.
+# 18.За да дефинираш hash на даден обект използвай hash-а на array от
+# обектите от които е създаден.
+# 19.Стреми се да спазваш конкретните стилови конвенции. Кода е по-разбираем и
+# помага за работата в екип.
+# 20.Преди да използваш дадено нещо се увери, че знаеш как работи.

Нещата, които си научил, са окей. Малко бележки:

  • Струва ми се, че имаш твърде много дублирана логика в кода на четвърта задача дори и след рефакторинга ти.
  • Казаното в т. 18 не е задължително, просто е лесен вариант това да стане. Разбира се, лесен != най-оптимален (бърз). Имай го предвид.