Решение на Пета задача от Елена Орешарова

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

Към профила на Елена Орешарова

Резултати

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

Код

REPOSITORY = 'https://github.com/ElieIvanova/ruby-retrospective-4'
# Неща, които научих.
#
#
# 1. Доброто стилистично форматиране на кода е важно.
#
# 2. Избирането на подходящи имена на променливите, методите, класовете.
# Важно е те да носят смисъл и да не се избягват прекалено дългите такива,
# aко се налага.
#
# 3. Влагането на тернарни оператори не е хубава практика. Използването
# на if-else или case е за предпочитане, тъй като кодът става по-четим.
#
# 4. Използването на Enumerable, когато е възможно. Предоставя ни много
# "благинки", които биха били полезни.
#
# 5. Използване на "по-удобни" методи, които Ruby ни дава(конкретен случай -
# използването на Enumerable#select вместо Array#each, комбиниран с if, във
# втора задача).
#
# 6. Планирането и дизайна на било то задачи за домашна работа или курсови
# проекти заслужава достатъчно време, което да бъде отделено, защото ще се
# спести след това по време на имплементацията(недообмислянето на дизайна
# от моя страна във втора задача и излишният клас MixedFilter).
#
# 7. В голяма част от случаите if-else може да се замени с || или &&, което
# прави кода по-кратък(например имплементацията ми на метода Directory#[]
# в трета задача).
#
# 8. Използване на паралелното присвояване на стойности на параметри. Кратко е,
# разбираемо и елегантно(File#parse и DirectoryParser#parse_named_object в
# трета задача).
#
# 9. В Ruby има повече от един начин за деклариране на класови методи. За
# предпочитане е синтаксисът def self.method_name... или class << self...,
# когато имаме повече от един такива(отново в трета задача).
#
# 10. Трябва да се стремим към писането на кратък и ясен код, защото Ruby е
# език, който позволява това.
#
# 11. Използването на регулярни изрази е практично решение в някои ситуации,
# но винаги трябва да се внимава и да имаме "едно на ум".
#
# 12. Научих какво е DSL, как и за какво се използва и как може да си
# дефинираме сами такъв.
#
# 13. Тестването е много важна и неразделна част от процеса на разработване.
#
# 14. Четенето на чужд код е добър инструмент за научаване на нови подходи за
# реализация на проблеми, с които не сме се справили сами.
#
# 15. Изискването за спазване на skeptic ограниченията към всяка задача ми
# хареса, защото те мотивира не просто да напишеш код, който да работи, а
# да напишеш най-оптималния такъв.
#
# 16. Хареса ми организацията на курса. Хареса ми това, че освен конкретен
# материал се преподават и основни неща, които са важни, но аз лично не съм
# срещала да са застъпени в други дисциплини.

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

Елена обнови решението на 19.01.2015 09:06 (преди около 9 години)

+REPOSITORY = 'https://github.com/ElieIvanova/ruby-retrospective-4'
+
+# Двадесет неща, които научих.
+#
+#
+# 1. Доброто стилистично форматиране на кода е важно.
+#
+# 2. Избирането на подходящи имена на променливите, методите, класовете.
+# Важно е те да носят смисъл и да не се избягват прекалено дългите такива,
+# aко се налага.
+#
+# 3. Влагането на тернарни оператори не е хубава практика. Използването
+# на if-else или case е за предпочитане, тъй като кодът става по-четим.
+#
+# 4. Използването на Enumerable, когато е възможно. Предоставя ни много
+# "благинки", които биха били полезни.
+#
+# 5. Използване на "по-удобни" методи, които Ruby ни дава(конкретен случай -
+# използването на Enumerable#select вместо Array#each, комбиниран с if, във
+# втора задача).
+#
+# 6. Планирането и дизайна на било то задачи за домашна работа или курсови
+# проекти заслужава достатъчно време, което да бъде отделено, защото ще се
+# спести след това по време на имплементацията(недообмислянето на дизайна
+# от моя страна във втора задача и излишният клас MixedFilter).
+#
+# 7. В голяма част от случаите if-else може да се замени с || или &&, което
+# прави кода по-кратък(например имплементацията ми на метода Directory#[]
+# в трета задача).
+#
+# 8. Използване на паралелното присвояване на стойности на параметри. Кратко е,
+# разбираемо и елегантно(File#parse и DirectoryParser#parse_named_object в
+# трета задача).
+#
+# 9. В Ruby има повече от един начин за деклариране на класови методи. За
+# предпочитане е синтаксисът def self.method_name... или class << self...,
+# когато имаме повече от един такива(отново в трета задача).
+#
+# 10. Трябва да се стремим към писането на кратък и ясен код, защото Ruby е
+# език, който позволява това.
+#
+# 11. Използването на регулярни изрази е практично решение в някои ситуации,
+# но винаги трябва да се внимава и да имаме "едно на ум".
+#
+# 12. Научих какво е DSL, как и за какво се използва и как може да си
+# дефинираме сами такъв.
+#
+# 13. Тестването е много важна и неразделна част от процеса на разработване.
+#
+# 14. Четенето на чужд код е добър инструмент за научаване на нови подходи за
+# реализация на проблеми, с които не сме се справили сами.
+#
+# 15. Изискването за спазване на skeptic ограниченията към всяка задача ми
+# хареса, защото те мотивира не просто да напишеш код, който да работи, а
+# да напишеш най-оптималния такъв.
+#
+# 16. Хареса ми организацията на курса. Хареса ми това, че освен конкретен
+# материал се преподават и основни неща, които са важни, но аз лично не съм
+# срещала да са застъпени в други дисциплини.

Елена обнови решението на 19.01.2015 09:06 (преди около 9 години)

REPOSITORY = 'https://github.com/ElieIvanova/ruby-retrospective-4'
-# Двадесет неща, които научих.
+# Неща, които научих.
#
#
# 1. Доброто стилистично форматиране на кода е важно.
#
# 2. Избирането на подходящи имена на променливите, методите, класовете.
# Важно е те да носят смисъл и да не се избягват прекалено дългите такива,
# aко се налага.
#
# 3. Влагането на тернарни оператори не е хубава практика. Използването
# на if-else или case е за предпочитане, тъй като кодът става по-четим.
#
# 4. Използването на Enumerable, когато е възможно. Предоставя ни много
# "благинки", които биха били полезни.
#
# 5. Използване на "по-удобни" методи, които Ruby ни дава(конкретен случай -
# използването на Enumerable#select вместо Array#each, комбиниран с if, във
# втора задача).
#
# 6. Планирането и дизайна на било то задачи за домашна работа или курсови
# проекти заслужава достатъчно време, което да бъде отделено, защото ще се
# спести след това по време на имплементацията(недообмислянето на дизайна
# от моя страна във втора задача и излишният клас MixedFilter).
#
# 7. В голяма част от случаите if-else може да се замени с || или &&, което
# прави кода по-кратък(например имплементацията ми на метода Directory#[]
# в трета задача).
#
# 8. Използване на паралелното присвояване на стойности на параметри. Кратко е,
# разбираемо и елегантно(File#parse и DirectoryParser#parse_named_object в
# трета задача).
#
# 9. В Ruby има повече от един начин за деклариране на класови методи. За
# предпочитане е синтаксисът def self.method_name... или class << self...,
# когато имаме повече от един такива(отново в трета задача).
#
# 10. Трябва да се стремим към писането на кратък и ясен код, защото Ruby е
# език, който позволява това.
#
# 11. Използването на регулярни изрази е практично решение в някои ситуации,
# но винаги трябва да се внимава и да имаме "едно на ум".
#
# 12. Научих какво е DSL, как и за какво се използва и как може да си
# дефинираме сами такъв.
#
# 13. Тестването е много важна и неразделна част от процеса на разработване.
#
# 14. Четенето на чужд код е добър инструмент за научаване на нови подходи за
# реализация на проблеми, с които не сме се справили сами.
#
# 15. Изискването за спазване на skeptic ограниченията към всяка задача ми
# хареса, защото те мотивира не просто да напишеш код, който да работи, а
# да напишеш най-оптималния такъв.
#
# 16. Хареса ми организацията на курса. Хареса ми това, че освен конкретен
# материал се преподават и основни неща, които са важни, но аз лично не съм
# срещала да са застъпени в други дисциплини.