Решение на Девета задача от Анджелин Неделчев

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

Към профила на Анджелин Неделчев

Резултати

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

Код

REPOSITORY = 'https://github.com/betrakiss/ruby-retrospective-2015-1'
# Неща, които научих от ретроспекцията
# 0. Hash-овете са хубав заместител вместо дълъг case
# 1. Да извеждам каквото мога отвън, като клас променлива
# 2. Да пиша имената на функциите си по-свързани
# с бизнес стойността им към проекта
# 3. На места, вместо по кратък и неразбираем код,
# да пиша по-дълъг, но разбираем (ако изключим алгоритми..)
# 4. Хубавото индентиране има значение.
# 5. Правенето на wrapper-и на някои готови функции носи
# по-голяма разбираемост на кода в текущия контекст
# 6. Да слагам private по-често
# 7. Lazy е хубаво нещо
# 8. Вградените методи винаги имат и по още някой аргумент,
# който помага за екстра случаи (reduce(1, :+))
# 9. var || 1 е хубав начин да сложиш 1 по default
# (all hail javascript..)
# 10. Проверката с gcd e много добра,
# за да може всяко рационално число да присъства само веднъж
# 11. За проверка дали едно число е просто,
# може да се проверят числата само до корен от целта,
# а не до самата цел
# 12. enum_for прави each-a много по изчистен и удобен
# 13. Partition много лесно разцепва нещо, когато има нужда
# 14. Struct.new спестява създаването на accessor-и
# и е удобно за малки класове
# 15. Скобите са излишни, когато функцията не приема параметри
# 16. Скобите не са излишни когато има един параметър (това не е perl.. за щастие :D)
# 17. Имената с много долни черти са неприятни за окото
# 18. Ако един клас е нужен само и единствено на точно един друг, няма смисъл класът да не е вложен във втория
# 19. Ако имам вложени класове е по-ясно, ако те са най-отгоре на бащиния клас
# 20. Функционалното програмиране доста скъсява кода
# и е много по-лесно четимо) (map, reduce,select..)
# 21. all? и any? могат да спестят много логика и редове код
# 22. Научих и нова дума – consecutive ^^

Лог от изпълнението

From https://github.com/fmi/ruby-retrospective-2015-1
 * branch            master     -> FETCH_HEAD
HEAD is now at 767dd8d Update the task name in the readme for clarity
Cloning into 'submission'...
HEAD is now at f4eda9a Final refactorings.
From /tmp/ruby-retrospective-2015-1/checker
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> upstream/master

Changes URL:
https://github.com/betrakiss/ruby-retrospective-2015-1/compare/767dd8dfe46...f4eda9ae691

‘solutions/04.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/04.rb’
‘solutions/02.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/02.rb’
‘solutions/03.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/03.rb’
‘solutions/01.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/01.rb’
OK
........

Finished in 0.00484 seconds
8 examples, 0 failures
OK
....................

Finished in 0.0111 seconds
20 examples, 0 failures
OK
....................

Finished in 0.01089 seconds
20 examples, 0 failures
OK
.........................................................

Finished in 0.02782 seconds
57 examples, 0 failures
From https://github.com/fmi/ruby-homework
 * branch            master     -> FETCH_HEAD
HEAD is now at 9dd040c Modify a test in task 8 to not include empty cells
.

Finished in 0.0016 seconds
1 example, 0 failures

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

Анджелин обнови решението на 27.01.2016 15:43 (преди около 9 години)

+REPOSITORY = 'https://github.com/betrakiss/ruby-retrospective-2015-1'
+
+# Неща, които научих от ретроспекцията
+# 0. Hash-овете са хубав заместител вместо дълъг case
+
+# 1. Да извеждам каквото мога отвън, като клас променлива
+
+# 2. Да пиша имената на функциите си по-свързани
+# с бизнес стойността им към проекта
+
+# 3. На места, вместо по кратък и неразбираем код,
+# да пиша по-дълъг, но разбираем (ако изключим алгоритми..)
+
+# 4. Хубавото индентиране има значение.
+
+# 5. Правенето на wrapper-и на някои готови функции носи
+# по-голяма разбираемост на кода в текущия контекст
+
+# 6. Да слагам private по-често
+
+# 7. Lazy е хубаво нещо
+
+# 8. Вградените методи винаги имат и по още някой аргумент,
+# който помага за екстра случаи (reduce(1, :+))
+
+# 9. var || 1 е хубав начин да сложиш 1 по default
+# (all hail javascript..)
+
+# 10. Проверката с gcd e много добра,
+# за да може всяко рационално число да присъства само веднъж
+
+# 11. За проверка дали едно число е просто,
+# може да се проверят числата само до корен от целта,
+# а не до самата цел
+
+# 12. enum_for прави each-a много по изчистен и удобен
+
+# 13. Partition много лесно разцепва нещо, когато има нужда
+
+# 14. Struct.new спестява създаването на accessor-и
+# и е удобно за малки класове
+
+# 15. Скобите са излишни, когато функцията не приема параметри
+
+# 16. Скобите не са излишни когато има един параметър (това не е perl.. за щастие :D)
+
+# 17. Имената с много долни черти са неприятни за окото
+
+# 18. Ако един клас е нужен само и единствено на точно един друг, няма смисъл класът да не е вложен във втория
+
+# 19. Ако имам вложени класове е по-ясно, ако те са най-отгоре на бащиния клас
+
+# 20. Функционалното програмиране доста скъсява кода
+# и е много по-лесно четимо) (map, reduce,select..)
+
+# 21. all? и any? могат да спестят много логика и редове код
+
+# 22. Научих и нова дума – consecutive ^^