Решение на Девета задача от Добромир Иванов

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

Към профила на Добромир Иванов

Резултати

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

Код

REPOSITORY = 'https://github.com/d0ivanov/ruby-retrospective-2015-1'
# Двадесет неща, които научих:
#
# 1. Наименованията са важна част от кода, който пишем. Добрите имена комуникират с четящият
# и помагат за по-добро разбиране.
# 2. Добре подреденият и спазващ конвенциите код, е по-приятен за четене. Четенето на красив
# код спомага за намаляване на стреса и улеснение на ежедневието.
# 3. Както при естествените езици, така и при програмните, четенето, разбирането и стилистиката
# са от голямо значение.
# 4. Сложността на деден проблем не се оценява качествено с един прочит. Вникването в задачата,
# внимателното планиране на стъпките за решаването ѝ и добрият подход се отплащат многократно.
# 5. Всяка програма обработва някакъв вид данни. Колкото по-добре боравим с инсрументите си за
# обработка на данни, толкова по-успешни решения ще намираме на проблемите си.
# 6. Свикването с блокове, ламбди и прокове изисква малко повече време, но си струва.
# Приложенията са не само в Ruby.
# 7. Учете концепции и похвати за справяне с проблеми, а не конкретни решения на конкретни
# проблеми.
# 8. Кодът излглежда много по-добре без излишните скоби.
# 9. За всеки чук си има наковалня - Ruby е просто инструмент в кутията на майстора. Няма език,
# който да владее всички. Правилният избор на инструмент и добрата му употреба са
# значение за качественото на крайния продукт. Знанията за една концепция се пренасят върху
# друга.
# 10. Мързеливите изчисления се прилагат добре, когато работим с данни от неопределен размер и
# искаме поетапно да изчисляваме всеки следващ елемент на базата на даден критерий.
# {Отлагането на изчисления ни учи, че отлгането на проблемите в живота също е решение.}
# 11. Бързината не е единственото качество на една компютърна програма.
# 12. За проекти с големина в рамките на разумното, липсата на строга типизация не е проблем, ако
# човек знае какво прави и защо го прави.
# 13. Мутирането на данни може да доведе до неочаквани резултати. immutable данните понякога са
# за предпочитане.
# 13. Преди да внесем нов метод / функция в програма си е добре да се замислим дали не можем да
# преизползваме някой от вече написаните. Кодът трябва да се преизползва максимално.
# 14. Няма нищо страшно в изтриването на работещ код с цел да се подобри.
# 15. Дължината на методите и нивата на влагане в кода са добро мерило за качеството на едно
# решение. Ако изведнъж нарастнат, има голям шанс посоката ни да е грешна.
# 16. Enumerable#reduce(&:method) е за предпочитане пред еквивалентните блокове
# 17. Enumerable#partition е удобен за случаи, когато искаме да разделим дадена колекция на две
# части по даден критерий.
# 18. Когато даден клас дефинира повече от една, близки по логика операции, е по-добре да направим един
# частен (private) метод, който обслужва тази логика, отколкото да я повтаряме на няколко места с
# леки зменения.
# 19. Начинът, по който представяме данните, които обработваме е определящ за качеството на решението ни.
# Използване на грешки структури от данни води до усложняване и оплитане на логиката на решението.
# 20. Между labda, prock & block има тънки разлики, които просто трябва да се научат.

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

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 f5bd133 Refactored solutions.
From /tmp/ruby-retrospective-2015-1/checker
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> upstream/master

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

‘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.00549 seconds
8 examples, 0 failures
OK
....................

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

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

Finished in 0.02889 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.00169 seconds
1 example, 0 failures

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

Добромир обнови решението на 27.01.2016 01:51 (преди около 9 години)

+REPOSITORY = 'https://github.com/d0ivanov/ruby-retrospective-2015-1'
+
+# Двадесет неща, които научих:
+#
+# 1. Наименованията са важна част от кода, който пишем. Добрите имена комуникират с четящият
+# и помагат за по-добро разбиране.
+# 2. Добре подреденият и спазващ конвенциите код, е по-приятен за четене. Четенето на красив
+# код спомага за намаляване на стреса и улеснение на ежедневието.
+# 3. Както при естествените езици, така и при програмните, четенето, разбирането и стилистиката
+# са от голямо значение.
+# 4. Сложността на деден проблем не се оценява качествено с един прочит. Вникването в задачата,
+# внимателното планиране на стъпките за решаването ѝ и добрият подход се отплащат многократно.
+# 5. Всяка програма обработва някакъв вид данни. Колкото по-добре боравим с инсрументите си за
+# обработка на данни, толкова по-успешни решения ще намираме на проблемите си.
+# 6. Свикването с блокове, ламбди и прокове изисква малко повече време, но си струва.
+# Приложенията са не само в Ruby.
+# 7. Учете концепции и похвати за справяне с проблеми, а не конкретни решения на конкретни
+# проблеми.
+# 8. Кодът излглежда много по-добре без излишните скоби.
+# 9. За всеки чук си има наковалня - Ruby е просто инструмент в кутията на майстора. Няма език,
+# който да владее всички. Правилният избор на инструмент и добрата му употреба са
+# значение за качественото на крайния продукт. Знанията за една концепция се пренасят върху
+# друга.
+# 10. Мързеливите изчисления се прилагат добре, когато работим с данни от неопределен размер и
+# искаме поетапно да изчисляваме всеки следващ елемент на базата на даден критерий.
+# {Отлагането на изчисления ни учи, че отлгането на проблемите в живота също е решение.}
+# 11. Бързината не е единственото качество на една компютърна програма.
+# 12. За проекти с големина в рамките на разумното, липсата на строга типизация не е проблем, ако
+# човек знае какво прави и защо го прави.
+# 13. Мутирането на данни може да доведе до неочаквани резултати. immutable данните понякога са
+# за предпочитане.
+# 13. Преди да внесем нов метод / функция в програма си е добре да се замислим дали не можем да
+# преизползваме някой от вече написаните. Кодът трябва да се преизползва максимално.
+# 14. Няма нищо страшно в изтриването на работещ код с цел да се подобри.
+# 15. Дължината на методите и нивата на влагане в кода са добро мерило за качеството на едно
+# решение. Ако изведнъж нарастнат, има голям шанс посоката ни да е грешна.
+# 16. Enumerable#reduce(&:method) е за предпочитане пред еквивалентните блокове
+# 17. Enumerable#partition е удобен за случаи, когато искаме да разделим дадена колекция на две
+# части по даден критерий.
+# 18. Когато даден клас дефинира повече от една, близки по логика операции, е по-добре да направим един
+# частен (private) метод, който обслужва тази логика, отколкото да я повтаряме на няколко места с
+# леки зменения.
+# 19. Начинът, по който представяме данните, които обработваме е определящ за качеството на решението ни.
+# Използване на грешки структури от данни води до усложняване и оплитане на логиката на решението.
+# 20. Между labda, prock & block има тънки разлики, които просто трябва да се научат.