Решение на Четвърта задача от Димо Станев

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

Към профила на Димо Станев

Резултати

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

Код

REPOSITORY = "https://github.com/DStanev/ruby-retrospective-1"
# Двадесет неща, които научих.
#
#1. Научих за функцията each_cons , която с параметър n и приложена върху списък връща всички подсписъци с дължина n.
#2.Научих , че скобите при дефиниране на метод без параметри се изпускат.
#3.Научих , че в ruby има тернарен оператор if ? :.
#4.Научих, че има функця Array , че се пише с главна буква, намира се в Kernal и връща аргумента си като списък.
#5.Научих, че е добре програмата на ruby да се организира в множество малки и кратки класове ,
#които имат точно определено предназначение и правят точно едно нещо(Single Responsibility Principle).
#6.Научих, че ако използваме допълнителни библиотеки, те трябва да се require-нат в началото на ryby програмата.
#7.Научих, че по подразбиране атрибутите на класа приемат стойност nil.
#8.Научих, че case/when statement използва за сравнение операторът === ,който е дефиниран по различен начин за различните калсове.
#9.Научих, че в Enumerable има функция detect, която връща първото срещане на обекта изпълняващ условията на съответния блок.
#10.Научих, че понякога ,когато бихме искали да използваме "абстарктен клас/интерфейс" за база на няколко класа,
#които реализират допълнителна функционалност (нещо повече от базовия клас), е по-добре да не правим йерархия,
#а да реализираме нормален клас без допълнителната функционалност и без да наследяваме.
#11.Научих ,че осве ако не е напълно необходимо (и няма да забавим твърде много програмата) е по добре
#да се използва по проста структура данни - Array вместо Hash.
#12.Научих, че методите трябва да са крятки и ясни да реализират точно една функционалост.
#13.Научих, че когато е възможно трябва да използвам Enumerable вместо да итерирам.
#14.Научих,че при извикаването на други методи в класа (self.method_name) "self." е излишно.
#15.Научих, че имената на променливите трябва да са кратки и значещи.
#16.Научих ,че Hash има метод first връщащ списък от първите ключ и стойност от речника.
#17.Научих, че трябва да организирам кода така ,че при промяна на спецификацията да се налага промяна на минимален брой места.
#18.Начуих ,че е лошо да проверявам класа на даден обект с object.class == Class (по добре е object.kind_of? class).
#19.Научих, че след оператор if, then се ползва само ако изразът е на същия ред на if-а.
#20.Научих, че макар ruby да позволява писнаето на в пъти по малко код от някои други езици , най-краткото не винаги е най добро.

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

Димо обнови решението на 14.11.2011 00:52 (преди над 12 години)

+REPOSITORY = "https://github.com/DStanev/ruby-retrospective-1"
+
+# Двадесет неща, които научих.
+#
+#1. Научих за функцията each_cons , която с параметър n и приложена върху списък връща всички подсписъци с дължина n.
+#2.Научих , че скобите при дефиниране на метод без параметри се изпускат.
+#3.Научих , че в ruby има тернарен оператор if ? :.
+#4.Научих, че има функця Array , че се пише с главна буква, намира се в Kernal и връща аргумента си като списък.
+#5.Научих, че е добре програмата на ruby да се организира в множество малки и кратки класове ,
+#които имат точно определено предназначение и правят точно едно нещо(Single Responsibility Principle).
+#6.Научих, че ако използваме допълнителни библиотеки, те трябва да се require-нат в началото на ryby програмата.
+#7.Научих, че по подразбиране атрибутите на класа приемат стойност nil.
+#8.Научих, че case/when statement използва за сравнение операторът === ,който е дефиниран по различен начин за различните калсове.
+#9.Научих, че в Enumerable има функция detect, която връща първото срещане на обекта изпълняващ условията на съответния блок.
+#10.Научих, че понякога ,когато бихме искали да използваме "абстарктен клас/интерфейс" за база на няколко класа,
+#които реализират допълнителна функционалност (нещо повече от базовия клас), е по-добре да не правим йерархия,
+#а да реализираме нормален клас без допълнителната функционалност и без да наследяваме.
+#11.Научих ,че осве ако не е напълно необходимо (и няма да забавим твърде много програмата) е по добре
+#да се използва по проста структура данни - Array вместо Hash.
+#12.Научих, че методите трябва да са крятки и ясни да реализират точно една функционалост.
+#13.Научих, че когато е възможно трябва да използвам Enumerable вместо да итерирам.
+#14.Научих,че при извикаването на други методи в класа (self.method_name) "self." е излишно.
+#15.Научих, че имената на променливите трябва да са кратки и значещи.
+#16.Научих ,че Hash има метод first връщащ списък от първите ключ и стойност от речника.
+#17.Научих, че трябва да организирам кода така ,че при промяна на спецификацията да се налага промяна на минимален брой места.
+#18.Начуих ,че е лошо да проверявам класа на даден обект с object.class == Class (по добре е object.kind_of? class).
+#19.Научих, че след оператор if, then се ползва само ако изразът е на същия ред на if-а.
+#20.Научих, че макар ruby да позволява писнаето на в пъти по малко код от някои други езици , най-краткото не винаги е най добро.