Решение на Пета задача от Георги Димов

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

Към профила на Георги Димов

Резултати

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

Код

REPOSITORY = 'https://github.com/georgidimov/ruby-retrospective-4'
#
# Двадесет неща, които научих.
#
#01
#В кодът повторения, но така е по-ясен.
#Използвам рекурсия вместо, итеративния метод.
#Използвам when вместо поредица от if-ове.
#Функцията series извиква съответните функции за съответните редици, вместо да използва send - метапрограмирането е лошо"
#
#02
#Използва select вместо each.
#Използва proc вмест Proc.new
#TypeFilter и SignFilter наследяват Filter.
#Използва super() - конструктора на родителския клас Filter - другите филтри го преизползват.
#NumberSet include-ва Enumerable и има разписан each, за да може да се иползва функционалността на модула.
#
#03
#Премахва monkey patch-инга на клас String.
#Parse-ването на boolean променливите става много културно с ==.
#Премахва нунужната проментлива data_type. Сега е метод.
#data_type методът работи с case, а не с поредица if-ове.
#Премахва ненужния класов метод parse_number, който определяше дали да се кастне към int или float - сега винаги към float.
#Методът serialize_hash използва интерполация, вместо конкатенация. Така се постига по-къс и четим код.
#Отделям serialize-рането и parse-ването на hash-овете в два отделни модула, с цел по-добре разделение.
#
#04
#Променено име от @styler на @style.
#Променено от @text.size на @text.length
#Резултатът от TextScreen.to_s join-ва всеки ред с "\n", а не добавя нови редове с интерполация.
#Всички класове наследяват Element, а групите Container - така доста методи се преизползват.
#

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

Георги обнови решението на 19.01.2015 16:09 (преди почти 10 години)

+REPOSITORY = 'https://github.com/georgidimov/ruby-retrospective-4'
+
+#
+# Двадесет неща, които научих.
+#
+#01
+#В кодът повторения, но така е по-ясен.
+#Използвам рекурсия вместо, итеративния метод.
+#Използвам when вместо поредица от if-ове.
+#Функцията series извиква съответните функции за съответните редици, вместо да използва send - метапрограмирането е лошо"
+#
+#02
+#Използва select вместо each.
+#Използва proc вмест Proc.new
+#TypeFilter и SignFilter наследяват Filter.
+#Използва super() - конструктора на родителския клас Filter - другите филтри го преизползват.
+#NumberSet include-ва Enumerable и има разписан each, за да може да се иползва функционалността на модула.
+#
+#03
+#Премахва monkey patch-инга на клас String.
+#Parse-ването на boolean променливите става много културно с ==.
+#Премахва нунужната проментлива data_type. Сега е метод.
+#data_type методът работи с case, а не с поредица if-ове.
+#Премахва ненужния класов метод parse_number, който определяше дали да се кастне към int или float - сега винаги към float.
+#Методът serialize_hash използва интерполация, вместо конкатенация. Така се постига по-къс и четим код.
+#Отделям serialize-рането и parse-ването на hash-овете в два отделни модула, с цел по-добре разделение.
+#
+#04
+#Променено име от @styler на @style.
+#Променено от @text.size на @text.length
+#Резултатът от TextScreen.to_s join-ва всеки ред с "\n", а не добавя нови редове с интерполация.
+#Всички класове наследяват Element, а групите Container - така доста методи се преизползват.
+#