Решение на Пета задача от Нели Хатева

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

Към профила на Нели Хатева

Код

REPOSITORY = 'https://github.com/nelly-hateva/ruby-retrospective-2'
# Тринадесет неща, които научих.
#
# 1. Научих, че
# possible = (a..b-1)
# possible.each block
# може да се напише по-кратко като (a...b).each block или 2.upto(b-1).each block
# 2. Научих, че в края на метод вместо return expression се пише само expression.
# 3. Научих, че именоването на обекта, който връща метод е излишно и не прави кода по-четим.
# 4. Научих, че на много места може да се изтърва self и да се пише само method, а не self.method, тъй като ако няма явен получател на метода, получателят по
# подразбиране е self.
# 5. Научих, че вместо
# result = []
# enumerable_object.each { |element| result << modified_element }
# мога просто да изпозлвам enumerable_object.map { |element| modificate element }
# 6. Научих, че именоването е много важно при писането на код. Научих, че разликата между идентификатор като elem и element е в няколко букви и е по - добре да
# напиша по - дългата дума, защото така кода ми става по-четим. Научих и че е крайно недопустимо да имам имена като n, k, i и други подобни.
# 7. Научих, че вместо конструкцията enumeable_object.each { |element| if condition(element) is false/true return false/true }
# true/false
# мога да използвам all? или any?
# 8. Научих, че мога на много места да изтървам скобите и много често това води до по-четим код.
# 9. Научих, че в класов метод като искам да създам нова инстанция на класа не е нужно да пиша ClassName.new *args, а само new *args, тъй като new се изпълнява
# за текущия клас.
# 10. Научих, че не е добра практика да се мутират обектите с оглед поддръжката на кода.
# 11. Научих, че форматирането на кода е важно и вече следя да нямам излищни "whitespace" символи в кода и да бъда консистента в идентирането.
# 12. Научих, че не трябва да се оставя празен ред след началото на дефиниция на клас (class Something) и преди края й (end).
# 13. Научих, че в класов метод е по-удачно да обработвам по някакъв начин аргументите и после да ги давам на initialize, отколкото директно да
# извикам initialize и да предам аргументите директно.

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

Нели обнови решението на 30.12.2012 23:35 (преди около 12 години)

+REPOSITORY = 'https://github.com/nelly-hateva/ruby-retrospective-2'
+
+# Тринадесет неща, които научих.
+#
+# 1. Научих, че
+# possible = (a..b-1)
+# possible.each block
+# може да се напише по-кратко като (a...b).each block или 2.upto(b-1).each block
+# 2. Научих, че в края на метод вместо return expression се пише само expression.
+# 3. Научих, че именоването на обекта, който връща метод е излишно и не прави кода по-четим.
+# 4. Научих, че на много места може да се изтърва self и да се пише само method, а не self.method, тъй като ако няма явен получател на метода, получателят по
+# подразбиране е self.
+# 5. Научих, че вместо
+# result = []
+# enumerable_object.each { |element| result << modified_element }
+# мога просто да изпозлвам enumerable_object.map { |element| modificate element }
+# 6. Научих, че именоването е много важно при писането на код. Научих, че разликата между идентификатор като elem и element е в няколко букви и е по - добре да
+# напиша по - дългата дума, защото така кода ми става по-четим. Научих и че е крайно недопустимо да имам имена като n, k, i и други подобни.
+# 7. Научих, че вместо конструкцията enumeable_object.each { |element| if condition(element) is false/true return false/true }
+# true/false
+# мога да използвам all? или any?
+# 8. Научих, че мога на много места да изтървам скобите и много често това води до по-четим код.
+# 9. Научих, че в класов метод като искам да създам нова инстанция на класа не е нужно да пиша ClassName.new *args, а само new *args, тъй като new се изпълнява
+# за текущия клас.
+# 10. Научих, че не е добра практика да се мутират обектите с оглед поддръжката на кода.
+# 11. Научих, че форматирането на кода е важно и вече следя да нямам излищни "whitespace" символи в кода и да бъда консистента в идентирането.
+# 12. Научих, че не трябва да се оставя празен ред след началото на дефиниция на клас (class Something) и преди края й (end).
+# 13. Научих, че в класов метод е по-удачно да обработвам по някакъв начин аргументите и после да ги давам на initialize, отколкото директно да
+# извикам initialize и да предам аргументите директно.