На этом уроке мы сделаем небольшой рефакторинг класса Story.
Дата отправки отчёта:
31 октября 2018 г.
Задание выполнено: за
2 час. 4 мин.
Чему научился:
повторяющиеся строки == запахи кода. Избавляемся от ароматов сбором симметричного кода в один метод и ссылками на этот метод из места, откуда повторяющийся код изъяли. Напоминает эволюцию денег. Вместо таскания с собой обрубков серебра, выпустим бумажки, на которых напишем - это Рубль серебра. Таскать макулатуру удобнее, а серебро лежит в Грановитой Палате под присмотром стрельцов. Профит!
Рефакторинг — это изменения внутренней структуры программы, не затрагивающие её внешнего поведения. Цель - облегчить понимание её работы. Отсюда главное - это не заиграться в оптимизацию. Ни от одного рефакторинга пользователю лучше не станет. Прочитать перед началом рефакторинга:
Я увеличиваю количество багов в проекте и могу за это получить в бубен. Я становлюсь владельцем отрефакторенного кода и все вопросы будут направлены ко мне. Своими действиями я не произвожу ничего ценного для конечного пользователя.
То есть, как вывод из всего вышесказанного, лучше не оптимизировать свою "стряпню" от греха подальше)) Ну и что, что у меня говнокод, ну и что, что в нём чёрт ногу сломит) работает же всё прекрасно, так чего вы пристали?) Возможно и грубовато, но, надеюсь, я верно передал твою основную мысль) более того, скажу, что в данном вопросе, я с тобой практически солидарен) несколько раз у меня после рефакторинга программа просто переставала работать и начинались мучения. Но, думаю прав ты лишь частично. Поскольку речь идёт о привычке) Это как маленький ребёнок, которого просишь убрать после себя, хоть он и маленький и будет делать всё не так поначалу, но ошибочно думать, что он потом сам научится, если сейчас не начнёт убирать, когда вырастет также не будет после себя рефакторить))
Научился: Авторефакторинг. В строке
ename = email.Substring(0, email.IndexOf('@'));
0 на nr менять не нужно по той причине, что в данном случае это индекс начиная с которого вырезается подстрока.