Решение на Четвърта задача от Ивайло Петров

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

Към профила на Ивайло Петров

Резултати

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

Код

REPOSITORY = https://ivajloip@github.com/ivajloip/ruby-retrospective-1.git
# Двадесет неща, които научих.
# 1. Метода tap
# 2. Метода flatten има аргументи. Бях го пропуснал за първото домашно,
# следователно трябва да чета по-внимателно документацията
# 3. Метода each_cons върши страхотна работа понякога.
# 4. Да слагам скоби около параметрите на метод - например:
# def test(name)
# а не
# def test name
# Първото е по-добре, защото е малко по-четимо.
# 5. Метода fetch може много удобно да се ползва за дефолтна стойност
# 6. Метода drop може да замести [1..-1]
# 7. Метода chomp е удобен за махане на неща от края на стрингове.
# 8. По-удачно е да използвам block.call вместо block.()
# 9. Да не мутирам обекти, освен ако имам много добри причини за това.
# 10. Да използвам &:name в map и т.н. вместо да правя блок, в който единствено да извиквам name.
# 11. Шаблона Nil object
# 12. Метода detect
# 13. Много по-добре е да се разделят вдиганията на грешки на отделни причини, защото
# е по-четимо и могат да се дават по-смислени грешки.
# 14. За много случай, когато няма да се ползва голям обем данни може да ползваме масиви
# вместо хешове - няма да загубим особено скорост (няма да смятаме хеш, но ще циклим
# малко), а може да спестим място.
# 15. Може да се предефинира [].
# 16. Удобно е като имаш да генерираш по-дълъг низ, това да става в някаква променлива,
# която постепенно се изменя - тава улеснява дебъгването.
# 17. Добре е някакви неща, които нямат много логично място да стоят в модули (няма да
# се пречкат нито на дадени обекти, защото не им е там мястото, нито на "глобалния" скоуп.
# 18. Когато има да се прави обект спрямо подаден параметър, удачен вариант е case.
# Може и с хеш с ключ и по др начини, но сякаш не е толкова лесно четимо.
# 19. Оставянето по един празен ред между дефинициите на методи и класове/модули за
# по-добра прегледност и четимост на кода.
# 20. Може да се ползва "%-<число>f", вместо rjust.

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

Ивайло обнови решението на 12.11.2011 17:57 (преди над 12 години)

+REPOSITORY = https://ivajloip@github.com/ivajloip/ruby-retrospective-1.git
+
+# Двадесет неща, които научих.
+# 1. Метода tap
+# 2. Метода flatten има аргументи. Бях го пропуснал за първото домашно,
+# следователно трябва да чета по-внимателно документацията
+# 3. Метода each_cons върши страхотна работа понякога.
+# 4. Да слагам скоби около параметрите на метод - например:
+# def test(name)
+# а не
+# def test name
+# Първото е по-добре, защото е малко по-четимо.
+# 5. Метода fetch може много удобно да се ползва за дефолтна стойност
+# 6. Метода drop може да замести [1..-1]
+# 7. Метода chomp е удобен за махане на неща от края на стрингове.
+# 8. По-удачно е да използвам block.call вместо block.()
+# 9. Да не мутирам обекти, освен ако имам много добри причини за това.
+# 10. Да използвам &:name в map и т.н. вместо да правя блок, в който единствено да извиквам name.
+# 11. Шаблона Nil object
+# 12. Метода detect
+# 13. Много по-добре е да се разделят вдиганията на грешки на отделни причини, защото
+# е по-четимо и могат да се дават по-смислени грешки.
+# 14. За много случай, когато няма да се ползва голям обем данни може да ползваме масиви
+# вместо хешове - няма да загубим особено скорост (няма да смятаме хеш, но ще циклим
+# малко), а може да спестим място.
+# 15. Може да се предефинира [].
+# 16. Удобно е като имаш да генерираш по-дълъг низ, това да става в някаква променлива,
+# която постепенно се изменя - тава улеснява дебъгването.
+# 17. Добре е някакви неща, които нямат много логично място да стоят в модули (няма да
+# се пречкат нито на дадени обекти, защото не им е там мястото, нито на "глобалния" скоуп.
+# 18. Когато има да се прави обект спрямо подаден параметър, удачен вариант е case.
+# Може и с хеш с ключ и по др начини, но сякаш не е толкова лесно четимо.
+# 19. Оставянето по един празен ред между дефинициите на методи и класове/модули за
+# по-добра прегледност и четимост на кода.
+# 20. Може да се ползва "%-<число>f", вместо rjust.