Абстракция и конкретика
Categories:
В последнее время я занимался созданием краулера для сайта с изображениями, и это дало мне много пищи для размышлений. Я быстро создал прототип, но затем захотел сделать его более универсальным, то есть более абстрактным. В итоге я обнаружил, что постоянно занимаюсь рефакторингом. Бесконечное переписывание кода с нуля отнимало много времени; казалось, что программное обеспечение прогрессирует, но функциональность при этом не увеличивалась. Это меня несколько расстраивало.
Если бы изначально был понятен оптимальный подход, можно было бы избежать лишней работы. Однако бесконечное стремление к абстракции не имеет конца и легко приводит к ловушке чрезмерного проектирования (over-engineering): можно писать полмесяца, но так и не получить рабочий прототип с базовым функционалом. В наше время, когда требуются немедленные результаты, это серьезная ошибка.
Адаптивность и функциональность программного обеспечения должны постепенно эволюционировать вместе. Рим не был построен за один день. Ставя каждый день маленькие цели, со временем вы вырастите могучее дерево.