Решение на Четвърта задача от Мая Недялкова

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

Към профила на Мая Недялкова

Резултати

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

Код

REPOSITORY = 'http://github.com/mayanedialkova/ruby-retrospective-1'
=begin
1)Обикновено няма нужда от return
2)По-добре да използвам unless вместо if not, защото е по-четимо
3)По-добре да използвам метода #nil? вместо == nil, както и #empty? вместо == [] за проверка дали масив е празен
4)initialize е добре да е най-горната функция в класа (отново за по-добра четимост)
5)Функциите, които не искам да се викат извън класа, в който са дефинирани, да ги правя private
6)Да оставям интервали на правилните места (например около =, ==, +=, както и преди отварянето на { при извикване на метод на Enumerable)
7)Да използвам съкратената форма на if (a ? b : c), когато изразите a, b и c са кратки и лесно четими
8)Да използвам all? или any? съответно когато искам да разбера дали всеки или поне един елемент от масива/хеша изпълнява някакво условие
9)Да използвам select когато искам да селектирам елементите от масива/хеша, които изпълняват някакво условие
10)Да използвам inject когато искам да получа някакъв резултат благодарение на операции, изпълнени последователно върху елементите на масив/хеш
11)Преди да използвам inject да помисля дали това, което искам да направя, не е по-подходящо да се направи с all? или any?
12)Да използвам map когато за всеки елемент на масив/хеш искам да направя нещо
13)Преди да използвам map да помисля дали това, което искам да направя, не е по-подходящо да се направи с inject, all? или any?
14)Да използвам синтаксиса foo if bar когато foo и bar са къси и лесночетими изрази и нямам нужда от else
15)Да следвам правилото, че един клас не трябва да прави повече от 1 значимо нещо
16)Ако един метод е повече от 7-8 реда вероятно е по-добре да се разбие на 2 или повече по-малки методи
17)Не е хубаво да си кръщавам методите по странен начин, само и само за да използвам лесно #send
18)Трябва да избягвам много нива на влагане, защото кодът става объркващ и труден за променяне
19)[] е за предпочитане пред Array.new() и {} е за предпочитане пред Hash.new()
20)<< е за предпочитане пред Array#push
21)Да избягвам for - винаги има по-удобен начин
=end

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

Мая обнови решението на 14.11.2011 16:28 (преди около 13 години)

+REPOSITORY = 'http://github.com/mayanedialkova/ruby-retrospective-1'
+
+=begin
+1)Обикновено няма нужда от return
+2)По-добре да използвам unless вместо if not, защото е по-четимо
+3)По-добре да използвам метода #nil? вместо == nil, както и #empty? вместо == [] за проверка дали масив е празен
+4)initialize е добре да е най-горната функция в класа (отново за по-добра четимост)
+5)Функциите, които не искам да се викат извън класа, в който са дефинирани, да ги правя private
+6)Да оставям интервали на правилните места (например около =, ==, +=, както и преди отварянето на { при извикване на метод на Enumerable)
+7)Да използвам съкратената форма на if (a ? b : c), когато изразите a, b и c са кратки и лесно четими
+8)Да използвам all? или any? съответно когато искам да разбера дали всеки или поне един елемент от масива/хеша изпълнява някакво условие
+9)Да използвам select когато искам да селектирам елементите от масива/хеша, които изпълняват някакво условие
+10)Да използвам inject когато искам да получа някакъв резултат благодарение на операции, изпълнени последователно върху елементите на масив/хеш
+11)Преди да използвам inject да помисля дали това, което искам да направя, не е по-подходящо да се направи с all? или any?
+12)Да използвам map когато за всеки елемент на масив/хеш искам да направя нещо
+13)Преди да използвам map да помисля дали това, което искам да направя, не е по-подходящо да се направи с inject, all? или any?
+14)Да използвам синтаксиса foo if bar когато foo и bar са къси и лесночетими изрази и нямам нужда от else
+15)Да следвам правилото, че един клас не трябва да прави повече от 1 значимо нещо
+16)Ако един метод е повече от 7-8 реда вероятно е по-добре да се разбие на 2 или повече по-малки методи
+17)Не е хубаво да си кръщавам методите по странен начин, само и само за да използвам лесно #send
+18)Трябва да избягвам много нива на влагане, защото кодът става объркващ и труден за променяне
+19)[] е за предпочитане пред Array.new() и {} е за предпочитане пред Hash.new()
+20)<< е за предпочитане пред Array#push
+21)Да избягвам for - винаги има по-удобен начин
+=end