Решение на Седма задача - ретроспекция от Мая Терзиева

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

Към профила на Мая Терзиева

Резултати

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

Код

REPOSITORY = 'https://github.com/circumlunar/ruby-retrospective-2016'
# Двадесет неща, които научих.
#
# 0. Идеалният случай при усвояване на нов език за програмиране, идвайки от
# различен бекграунд, е да се пренесат добрите общовалидни практики от
# предишния, като същевременно се избягват синтактичните навици.
# 1. Добрата идентация прави чудеса по отношение четимостта на кода.
# 2. Доброто именуване на променливи прави чудеса по отношение четимостта на
# кода.
# 3. Ако интуицията подсказва, че кодът не е съвсем наред, въпреки, че работи,
# то най-вероятно съществува доста по-елегантно решение на разглеждания
# проблем.
# 4. Понякога е необходимо рефакториране на няколко етапа и в различни
# състояния на духа, докато се достигне оптималното решение.
# 5. Monkey patch-ването е лоша идея извън контекста на изолирана задача от
# курс.
# 6. Ключовата дума self невинаги може да бъде избегната, но в случаите, в
# които може, е добре да се пропуска, за да не натоварвa излишно четимостта.
# 7. Ако изглежда сякаш задача е стигнала неразрешима точка, може би трябва
# да се прочете спецификацията ѝ още веднъж.
# 8. Ако едни и същи данни се използват на повече от едно място, често е
# най-добре да се извличат само веднъж и да се съхраняват в променливa/и.

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

From https://github.com/fmi/ruby-retrospective-2016
 * branch            master     -> FETCH_HEAD
HEAD is now at a22cf37 Set rubocop version to 0.46.0 to fix obsolete cop errors
Cloning into 'submission'...
HEAD is now at 0fe2933 Improved solution of task 2
From /tmp/ruby-retrospective-2016/checker
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> upstream/master

Changes URL:
https://github.com/circumlunar/ruby-retrospective-2016/compare/1f710b00c26...0fe2933f75b

'tasks/1/solution.rb' -> '/tmp/ruby-retrospective-2016/checker/tasks/1/solution.rb'
'tasks/2/solution.rb' -> '/tmp/ruby-retrospective-2016/checker/tasks/2/solution.rb'
'tasks/3/solution.rb' -> '/tmp/ruby-retrospective-2016/checker/tasks/3/solution.rb'
'tasks/4/solution.rb' -> '/tmp/ruby-retrospective-2016/checker/tasks/4/solution.rb'
'tasks/5/solution.rb' -> '/tmp/ruby-retrospective-2016/checker/tasks/5/solution.rb'
Inspecting 1 file
.

1 file inspected, no offenses detected
.................

Finished in 0.08191 seconds
17 examples, 0 failures
Inspecting 1 file
.

1 file inspected, no offenses detected
...............

Finished in 0.0052 seconds
15 examples, 0 failures
Inspecting 1 file
.

1 file inspected, no offenses detected
.......FFFFFF.F

Failures:

  1) CommandParser#help shows basic usage message
     Failure/Error: expect(parser.help).to eq 'Usage: ls'
     NoMethodError:
       undefined method `help' for #<CommandParser:0x0055b2a347d3c0>
     # ./spec.rb:104:in `block (3 levels) in <top (required)>'

  2) CommandParser#help shows single argument
     Failure/Error: expect(parser.help).to eq 'Usage: ls [FILE]'
     NoMethodError:
       undefined method `help' for #<CommandParser:0x0055b2a33ef700>
     # ./spec.rb:110:in `block (3 levels) in <top (required)>'

  3) CommandParser#help shows multiple arguments
     Failure/Error: expect(parser.help).to eq 'Usage: ls [FIRST FILE] [SECOND FILE] [THIRD FILE]'
     NoMethodError:
       undefined method `help' for #<CommandParser:0x0055b2a3468a60>
     # ./spec.rb:118:in `block (3 levels) in <top (required)>'

  4) CommandParser#help shows single option help
     Failure/Error: parser.help.lines.map(&:chomp).drop(1)
     NoMethodError:
       undefined method `help' for #<CommandParser:0x0055b2a343fe80>
     # ./spec.rb:19:in `options_help_messages'
     # ./spec.rb:125:in `block (3 levels) in <top (required)>'

  5) CommandParser#help shows multiple options help
     Failure/Error: parser.help.lines.map(&:chomp).drop(1)
     NoMethodError:
       undefined method `help' for #<CommandParser:0x0055b2a3435bb0>
     # ./spec.rb:19:in `options_help_messages'
     # ./spec.rb:137:in `block (3 levels) in <top (required)>'

  6) CommandParser#help shows options with parameter
     Failure/Error: parser.help.lines.map(&:chomp).drop(1)
     NoMethodError:
       undefined method `help' for #<CommandParser:0x0055b2a33fab50>
     # ./spec.rb:19:in `options_help_messages'
     # ./spec.rb:148:in `block (3 levels) in <top (required)>'

  7) CommandParser when having options with and without values and parameters generates a correct help usage
     Failure/Error: header = parser.help.lines.first.chomp
     NoMethodError:
       undefined method `help' for #<CommandParser:0x0055b2a328ab58>
     # ./spec.rb:181:in `block (3 levels) in <top (required)>'

Finished in 0.07034 seconds
15 examples, 7 failures

Failed examples:

rspec ./spec.rb:103 # CommandParser#help shows basic usage message
rspec ./spec.rb:107 # CommandParser#help shows single argument
rspec ./spec.rb:113 # CommandParser#help shows multiple arguments
rspec ./spec.rb:121 # CommandParser#help shows single option help
rspec ./spec.rb:130 # CommandParser#help shows multiple options help
rspec ./spec.rb:143 # CommandParser#help shows options with parameter
rspec ./spec.rb:180 # CommandParser when having options with and without values and parameters generates a correct help usage
F

Failures:

  1) ruby-retrospective-2016 covers the minimum requirements
     Failure/Error: system(command) or raise "Command failed for #{@solutions_repo}: #{command}"
     RuntimeError:
       Command failed for https://github.com/circumlunar/ruby-retrospective-2016: bundle exec rake check_all
     # /tmp/d20170211-11010-11ymskm/spec.rb:82:in `execute'
     # /tmp/d20170211-11010-11ymskm/spec.rb:75:in `block (3 levels) in solutions_pass_all_checks'
     # /tmp/d20170211-11010-11ymskm/spec.rb:74:in `chdir'
     # /tmp/d20170211-11010-11ymskm/spec.rb:74:in `block (2 levels) in solutions_pass_all_checks'
     # /tmp/d20170211-11010-11ymskm/spec.rb:40:in `chdir'
     # /tmp/d20170211-11010-11ymskm/spec.rb:40:in `block in solutions_pass_all_checks'
     # /tmp/d20170211-11010-11ymskm/spec.rb:39:in `solutions_pass_all_checks'
     # /tmp/d20170211-11010-11ymskm/spec.rb:19:in `ok?'
     # /tmp/d20170211-11010-11ymskm/spec.rb:101:in `<top (required)>'

Finished in 0.00087 seconds
1 example, 1 failure

Failed examples:

rspec /tmp/d20170211-11010-11ymskm/spec.rb:107 # ruby-retrospective-2016 covers the minimum requirements

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

Мая обнови решението на 15.01.2017 22:34 (преди над 7 години)

+REPOSITORY = 'https://github.com/circumlunar/ruby-retrospective-2016'
+
+# Двадесет неща, които научих.
+#
+# 1. Добрата идентация прави чудеса по отношение четимостта на кода.
+# 2. Доброто именуване на променливи прави чудеса по отношение четимостта на
+# кода.
+# 3. Ако интуицията подсказва, че кодът не е съвсем наред, въпреки, че работи,
+# то най-вероятно съществува доста по-елегантно решение на разглеждания
+# проблем.
+# 4. Понякога е необходимо рефакториране на няколко етапа и в различни
+# състояния на духа, докато се достигне оптималното решение.

Мая обнови решението на 16.01.2017 00:02 (преди над 7 години)

REPOSITORY = 'https://github.com/circumlunar/ruby-retrospective-2016'
# Двадесет неща, които научих.
#
+# 0. Идеалният случай при усвояване на нов език за програмиране, идвайки от
+# различен бекграунд, е да се пренесат добрите общовалидни практики от
+# предишния, като същевременно се избягват синтактичните навици.
# 1. Добрата идентация прави чудеса по отношение четимостта на кода.
# 2. Доброто именуване на променливи прави чудеса по отношение четимостта на
# кода.
# 3. Ако интуицията подсказва, че кодът не е съвсем наред, въпреки, че работи,
# то най-вероятно съществува доста по-елегантно решение на разглеждания
# проблем.
# 4. Понякога е необходимо рефакториране на няколко етапа и в различни
# състояния на духа, докато се достигне оптималното решение.
+# 5. Monkey patch-ването е лоша идея извън контекста на изолирана задача от
+# курс.
+# 6. Ключовата дума self невинаги може да бъде избегната, но в случаите, в
+# които може, е добре да се пропуска, за да не натоварвa излишно четимостта.
+# 7. Ако изглежда сякаш задача е стигнала неразрешима точка, може би трябва
+# да се прочете спецификацията ѝ още веднъж.
+# 8. Ако едни и същи данни се използват на повече от едно място, често е
+# най-добре да се извличат само веднъж и да се съхраняват в променливa/и.