Решение на Пета задача от Филарета Йорданова

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

Към профила на Филарета Йорданова

Код

REPOSITORY = 'https://github.com/filareta/ruby-retrospective-2'
# Двадесет неща, които научих.
# 1. Как трябва да се форматира кода, за да е четим.
# 2. Има методи, които връщат предходната и следващата стойност на обект,
# дефинирани за Integer и String, съответно pred и succ.
# 3. Има модул Enumerable, който съкращава кода и се използва почти постоянно.
# 4. Трябва да се подбират подходящи и смислени имена на променливи, методи и класове.
# 5. Стойността на функцията е последният оценен израз и не е добра идея да извеждаме
# неща на екрана, а да връщаме стойност.
# 6. Аритметичните оператори, [], []= също са методи.
# 7. Методите се пазят в модули, а полетата в обекти.
# 8. Могат да се викат произволни методи на обекти с метода send.
# 9. Може да се наследява от един родител, ако не се определи родител,
# се наследява от Object.
# 10. Не е добра идея да дефинираме метод извън модул или клас, защото
# влиза в private частта на Object.
# 11. Protected методи се викат само от обекти от същия клас.
# 12. Def, module и class са scope gate-ове, но ако дефинираме метод с
# define_method, променливите извън метода са видими и в него.
# 13. Всеки обект има собствен клас, който се създава само ако е необходимо.
# 14. Има метод gsub, с който можем да заменяме срещанията на някакъв низ с друг.
# 15. Методите detect и find.
# 16. Метода chomp премахва последния символ на стринг, а strip - leading и trailing whitespace.
# 17. Можем да подаваме блок, като аргумент на функция - &block,
# което по-добре от това да подаваме proc.
# 18. Лоша практика е да се използва for, защото вътрешно вика each.
# 19. Ако има нужда да се копират обекти, това става с dup или clone.
# В повечето ситуации не е добра идея да мутираме обекти.
# 20. Има клас Matrix, чийто []= метод е private.

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

Филарета обнови решението на 26.12.2012 18:30 (преди над 11 години)

+REPOSITORY = 'https://github.com/filareta/ruby-retrospective-2'
+
+# Двадесет неща, които научих.
+
+# 1. Как трябва да се форматира кода, за да е четим.
+# 2. Има методи, които връщат предходната и следващата стойност на обект,
+# дефинирани за Integer и String, съответно pred и succ.
+# 3. Има модул Enumerable, който съкращава кода и се използва почти постоянно.
+# 4. Трябва да се подбират подходящи и смислени имена на променливи, методи и класове.
+# 5. Стойността на функцията е последният оценен израз и не е добра идея да извеждаме
+# неща на екрана, а да връщаме стойност.
+# 6. Аритметичните оператори, [], []= също са методи.
+# 7. Методите се пазят в модули, а полетата в обекти.
+# 8. Могат да се викат произволни методи на обекти с метода send.
+# 9. Може да се наследява от един родител, ако не се определи родител,
+# се наследява от Object.
+# 10. Не е добра идея да дефинираме метод извън модул или клас, защото
+# влиза в private частта на Object.
+# 11. Protected методи се викат само от обекти от същия клас.
+# 12. Def, module и class са scope gate-ове, но ако дефинираме метод с
+# define_method, променливите извън метода са видими и в него.
+# 13. Всеки обект има собствен клас, който се създава само ако е необходимо.
+# 14. Има метод gsub, с който можем да заменяме срещанията на някакъв низ с друг.
+# 15. Методите detect и find.
+# 16. Метода chomp премахва последния символ на стринг, а strip - leading и trailing whitespace.
+# 17. Можем да подаваме блок, като аргумент на функция - &block,
+# което по-добре от това да подаваме proc.
+# 18. Лоша практика е да се използва for, защото вътрешно вика each.
+# 19. Ако има нужда да се копират обекти, това става с dup или clone.
+# В повечето ситуации не е добра идея да мутираме обекти.
+# 20. Има клас Matrix, чийто []= метод е private.