Решение на Девета задача от Мила Русева

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

Към профила на Мила Русева

Резултати

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

Код

REPOSITORY = 'https://github.com/msruseva/ruby-retrospective-2015-1'
# Неща, които научих
#
# Домашно 1:
#1. Оставянето на една работа за последния момент не е добра практика. Независимо колко лесна ни се струва тя. :)
#2. Операторът <=> в Ruby има интересна и доста полезна функционалност.
#
# Домашно 2:
#3. Методът #drop прави кодът по-четим.
#4. Важно е да се правят тестове, за всеки един метод.
#5. Важно е да се именуват методите по начин, който подсказва тяхната функционалност.
#
# Домашно 3:
#6. В конкретния случай, с проверката дали едно число е просто или е може би по-правилно да се отворим класа Integer, и да се дефинира
# там, #отколкото да бъде класов метод на друг клас. Просто прави кодът по структуриран и не се налага да се бърка толкова по методите
# в #Singleton класовете на даден обект.
#7. Кодът трябва да бъде лесно четим, но това не винаги се случва с паралелното присвояване.
#8. Идеята за създаване на временна променлива е по-скоро похват прилагащ се повече за езики като C++, отколкото като Ruby, затова трябва
# да #се търсят друг вид решение.
#9. Методът #partition има чудесна функционалност, която може да замени #each и създаването на масиви, в които да се вкарват елементи при
# дадени проверки (отново похват по-скоро типичен на езиците от порядъка на C++).
#10. Методът #take_while също може да бъде полезе+н вместо итериране с #each и извършването на разни проверки, които той прави вместо нас.
#11. В Ruby има много методи, повечето от тях имат функционалностите, които търсим и е добра практика да се рови човек повече из
# Enumerable, #както и из цялата документация на Ruby, за да не пренаписва човек код, който вече е бил написан и да използва
# максимално #функционалността и плюсовете от езика.
#
# Домашно 4:
#12. При структурирането на йерархия трябва да се внимава когато е уместно създаването на module и кога на клас, защото възнамерявах да
# изнеса обща функционалност в модул, с цел да не използвам наследяване и стигнах до следното заключение: ако дадени методи се
# изпозлзват #само в един клас, няма смисъл от извеждането му в модул, само за да не става един клас прекалено дълъг. Функцията на
# модулите е полезна #в случай, че желаем да преизползваме код в няколко класа и благодарение на него можем да избегнем ненужно
# унаследяване.
#13. Важно е да се разбиват методите на по-малки методи (изнасянето на обща функционалност на няколко метода в друг), за да е по-четим
# кодът #и за да няма Copy – Paste на код, което е лоша практика.
#14. В Ruby има методи като #first и #last, които правят кода по-четим като могат да заместват [0] и [1], за достъп на първия и последния
# елемент от масив с два елемента, или в моя случай да заместят #at(0) и #at(-1).
#15. Извикването на super може да бъде изключително полезно в йерархичните структури, а и не само. Има доста функции.
#16. Методите #product и #map, в комбинация, правят кода по-четим и по-лесен за писането, на мястото на два цикъла с #each.

Лог от изпълнението

From https://github.com/fmi/ruby-retrospective-2015-1
 * branch            master     -> FETCH_HEAD
HEAD is now at 767dd8d Update the task name in the readme for clarity
Cloning into 'submission'...
HEAD is now at acaabbb Forth solution refactor
From /tmp/ruby-retrospective-2015-1/checker
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> upstream/master

Changes URL:
https://github.com/msruseva/ruby-retrospective-2015-1/compare/767dd8dfe46...acaabbbe965

‘solutions/04.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/04.rb’
‘solutions/02.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/02.rb’
‘solutions/03.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/03.rb’
‘solutions/01.rb’ -> ‘/tmp/ruby-retrospective-2015-1/checker/solutions/01.rb’
OK
........

Finished in 0.00487 seconds
8 examples, 0 failures
OK
....................

Finished in 0.0108 seconds
20 examples, 0 failures
OK
....................

Finished in 0.01804 seconds
20 examples, 0 failures
OK
.........................................................

Finished in 0.02804 seconds
57 examples, 0 failures
From https://github.com/fmi/ruby-homework
 * branch            master     -> FETCH_HEAD
HEAD is now at 9dd040c Modify a test in task 8 to not include empty cells
.

Finished in 0.00158 seconds
1 example, 0 failures

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

Мила обнови решението на 27.01.2016 13:38 (преди около 9 години)

+REPOSITORY = 'https://github.com/msruseva/ruby-retrospective-2015-1'
+
+# Неща, които научих
+#
+# Домашно 1:
+#1. Оставянето на една работа за последния момент не е добра практика. Независимо колко лесна ни се струва тя. :)
+#2. Операторът <=> в Ruby има интересна и доста полезна функционалност.
+#
+# Домашно 2:
+#3. Методът #drop прави кодът по-четим.
+#4. Важно е да се правят тестове, за всеки един метод.
+#5. Важно е да се именуват методите по начин, който подсказва тяхната функционалност.
+#
+# Домашно 3:
+#6. В конкретния случай, с проверката дали едно число е просто или е може би по-правилно да се отворим класа Integer, и да се дефинира
+# там, #отколкото да бъде класов метод на друг клас. Просто прави кодът по структуриран и не се налага да се бърка толкова по методите
+# в #Singleton класовете на даден обект.
+#7. Кодът трябва да бъде лесно четим, но това не винаги се случва с паралелното присвояване.
+#8. Идеята за създаване на временна променлива е по-скоро похват прилагащ се повече за езики като C++, отколкото като Ruby, затова трябва
+# да #се търсят друг вид решение.
+#9. Методът #partition има чудесна функционалност, която може да замени #each и създаването на масиви, в които да се вкарват елементи при
+# дадени проверки (отново похват по-скоро типичен на езиците от порядъка на C++).
+#10. Методът #take_while също може да бъде полезе+н вместо итериране с #each и извършването на разни проверки, които той прави вместо нас.
+#11. В Ruby има много методи, повечето от тях имат функционалностите, които търсим и е добра практика да се рови човек повече из
+# Enumerable, #както и из цялата документация на Ruby, за да не пренаписва човек код, който вече е бил написан и да използва
+# максимално #функционалността и плюсовете от езика.
+#
+# Домашно 4:
+#12. При структурирането на йерархия трябва да се внимава когато е уместно създаването на module и кога на клас, защото възнамерявах да
+# изнеса обща функционалност в модул, с цел да не използвам наследяване и стигнах до следното заключение: ако дадени методи се
+# изпозлзват #само в един клас, няма смисъл от извеждането му в модул, само за да не става един клас прекалено дълъг. Функцията на
+# модулите е полезна #в случай, че желаем да преизползваме код в няколко класа и благодарение на него можем да избегнем ненужно
+# унаследяване.
+#13. Важно е да се разбиват методите на по-малки методи (изнасянето на обща функционалност на няколко метода в друг), за да е по-четим
+# кодът #и за да няма Copy – Paste на код, което е лоша практика.
+#14. В Ruby има методи като #first и #last, които правят кода по-четим като могат да заместват [0] и [1], за достъп на първия и последния
+# елемент от масив с два елемента, или в моя случай да заместят #at(0) и #at(-1).
+#15. Извикването на super може да бъде изключително полезно в йерархичните структури, а и не само. Има доста функции.
+#16. Методите #product и #map, в комбинация, правят кода по-четим и по-лесен за писането, на мястото на два цикъла с #each.