Week #14

19.02.2018-25.02.2018

На этой неделе прошел второй проект хекслета “Вычислитель отличий”.

Задача проекта сделать консольную программу, которая сравнивает два файла и на выходе показывает их разницу.

В проекте отрабатывается функциональное программирование, иммутабельность, применяется полифорфизм по типу, реализуется Адаптер и Стратегия, но не на классах.

По началу проект проходил бодренько, хоть и менял практически весь код после каждого шага, а вот на пятом шаге началась самая жара. Началась она с отступов и продолжилась тем, что я не правильно делил код. Как написал Кирилл, я не делю код, где он делится, а просто разбиваю программу на куски с дублированием кода. В итоге избавился от дублирования и разделил, как надо.

Одна из фишек проекта разработка через тесты. В тестах есть входные данные и выходные данные, а как код делает из входных выходные для теста не важно. Это очень помогает при изменении кода, а изменять код пришлось довольно часто, думаю без тестов каждый раз проверять результат это целая история, а с тестами легче. Но если есть тесты это не значит, что код написан хорошо. Не знаю, как это описать, наверно надо каждому самому пройти через плохой код который проходит тесты, к хорошему коду который проходит тесты.

Сложность проекта по сравнению с первым выше т.к. больше мест, где можно застрять и переписывать код приходилось чаще, но тесты здесь спасают и облегчают изменение кода.

В общем прохождение проекта было таким

  1. Делаю шаг, как могу, пытаюсь применить знания из курсов хекслета, отправляю на проверку
  2. Кирилл комментирует
  3. Пытаюсь понять, что написал Кирилл, что у меня не так и как переделать. Пересматриваю Ментальное программирование 2.0. Возвращаюсь к пункту 1

После проекта хочется пройти еще один подобный проект и сразу применять знания полученные в ходе прохождения проекта.

Спасибо Кириллу и Рахиму за проекты, без этой практики невозможно полностью осознать и закрепить пройденный материал.

К следующему проекту нужно пройти:

“JS: Обработка ошибок” уже прошел, поэтому на следующей неделе буду проходить “Протокол HTTP”. Надеюсь получится удерживать темп один курс в неделю.

Прочитал

Subscribe to my mailing list

* indicates required
Share
Send

Related Posts