JavaRush /Java блог /Архив info.javarush /Убить в себе перфекциониста. А стоит ли?
BigVOVA
30 уровень

Убить в себе перфекциониста. А стоит ли?

Статья из группы Архив info.javarush
Вопрос скорее к практикующим программистам, особенно к тем у кого в подчинении уже есть кто-либо... Как-то прочел статью о классификации программистов на типы. В ходе решения тестовых заданий (да и в свое время я уже работал в индустрии программирования) прихожу к выводу, что мой тип, скорее - перфекционист. Вместо того чтобы решить задачу в лоб, я трачу значительное время на обдумывания красивого и хорошего с точки зрения быстродействия решения. Буквально сегодня решая задачку 22-го уровня свел алгоритм к трем строкам отлично читаемого кода. Судя по форуму эту же задачу люди решают на портянках в десятки строк и не думают заморачиваться. Собственно вопрос... Стоит ли уже на данном этапе (обучение) пытаться задавить в себе перфекциониста? Ведь очевиден тот факт, что в индустрии часто нафиг не нужно быстродействие, а тем более краткий код. Что Вы скажете на это?
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vakatsiienko Уровень 20
1 августа 2015
Ведь очевиден тот факт, что в индустрии часто нафиг не нужно быстродействие, а тем более краткий код.
Как по мне, то в этом плане нужно пользоваться простыми правилами написания кода, следовать модели проектирования, т.е. принципам на которых строится сама джава и ваше приложение. А насчет всего остального, быстродействие, краткость, это уже проще и лучше сделать тогда, когда само приложение работает. В то, что с первого раза можно идеально написать сложное приложение верится с трудом, так зачем париться?
Я тоже, бывает, страдаю перфекционизмом, но когда приходит осознание, то стараюсь убить это всеми силами.
kerradus Уровень 30
1 августа 2015
AlexandrRS Уровень 41
1 августа 2015
Все зависит от целей программы. Я пишу в лоб, потом рефакторю. Проще вначале реализовать хоть что-то работающее, а потом сделать это красивым. Если касается Java, то JUnit (вместе с Maven, например) помогут делать рефакторинг без косяков, при наличии хорошо написанных тестов. Задачи решаю без JUnit.

UPD: Возьмите, например, задачу с числами армстронга. Мне, например, не пришло в голову сразу сделать решение на рекурсии и на многопоточности. Сделал на строках, потом допилил без строк и со словарем степеней, так и сдал и только сейчас (после наступления 30го), понял, что ее можно сделать еще быстрее в разы… Если бы я сразу искал идеальное решение, то результат в виде работающего кода не получил бы…