Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
[...] вдруг читаете в чьем-то резюме слова о “5-6 лет опыта разработки”, то знайте — их нельзя перевести как “опытный”. Это переводится так: чувствующий свою неуязвимость малолетка, с вероятностью 50 на 50 напишет вам кучу дерьма
Don't try to model everything!Вот об это я уже спотыкался.
Для контраста, вот код, который я пишу сегодня:
…
В каком бы ужасе я находился, если бы я увидел этот код 20 лет назад.
Например — сложный алгоритм. Предпочтительнее видеть его на одном экране, чем размазанным на многих.
А до какой степени все выносить в отдельные функции и классы — это уже другой вопрос
«Как разбивать (и разбивать ли) внутри данных методов — сильно зависит от того, какой код будет получаться в итоге.»
Если же все дробить на мельчайшие части, то объем кода сильно растет и его поддержка занимает больше времени
2. Комментарии к публичным методам и их параметрам.
1. Короткие методы.
При таком подходе главное — выбрать описываемый «кубик», т.е. ту минимальную часть труда, которую надо так бюрократизировать. Не описывать каждое присвоение, но и не очень крупный процесс )
/**
* Проверяет, допустимый ли ход.
* Например, чтобы задать ход e2-e4, напишите isValidMove(5,2,5,4);
* @author John Doe
* @param theFromFile Вертикаль, на которой находится фигура (1=a, 8=h)
* @param theFromRank Горизонталь, на которой находится фигура (1...8)
* @param theToFile Вертикаль клетки, на которую выполняется ход (1=a, 8=h)
* @param theToRank Горизонталь клетки, на которую выполняется ход (1...8)
* @return true, если ход допустим, и false, если недопустим
*/
boolean isValidMove(int theFromFile, int theFromRank, int theToFile, int theToRank)
{
...
}
Если вы, как менеджер по персоналу или владелец фирмы, вдруг читаете в чьем-то резюме слова о «5-6 лет опыта разработки», то знайте — их нельзя перевести как “опытный”. Это переводится так: чувствующий свою неуязвимость малолетка, с вероятностью 50 на 50 напишет вам кучу дерьма, в которой потом не разберется ни его команда, ни он сам, и которую он вероятнее всего не один раз будет переделывать. Но все это в порядке вещей — любой разработчик бывает подростком в своей профессиональной жизни.
ценой внесения метаданных вы чуть-чуть ухудшаете поддерживаемость, стоимость, гибкость, тестируемость и расширяемость.осталось для меня парадоксом. Я-то считал, что все наоборот. Видимо я еще настолько нуб, что не могу ухватить глубину мысли.
Муж (м) — программер, (я) — филолог.
М: Сходи за меня на работу, а?..
Я: Окей, дорогой, буду править ошибки в комментариях твоего кода))
М: Я не комментирую код. То, что писалось тяжело, должно и читаться тяжело.
Я: Лев Толстой, наверное, по такому же принципу работал...
Портрет Нуба