@Ksushqa
Unity developer

Как вы выбираете из множества решений то, которое в итоге реализуете?

Добрый день!
Передо мной часто встает проблема: я знаю, что какой-то метод можно реализовать несколькими способами, но я не могу оценить, какой из них лучше. По каким критериям оцениваете вы?
Бывает, что какой-то из способов я пытаюсь реализовать, но у меня не выходит, т.к. я начинаю путаться в собственном коде. Понимаю, что дело в практике, но обычно, немного помучившись, я выбираю другой способ, так и не добив первую реализацию. Это нормальная практика?
Второй/Третий способ обычно более читабельный, но я начинаю задумываться о его эффективности. Возможно, стоило добить первую идею, она была лучше и т.д...
Посоветуйте, пожалуйста, какие-то способы оценки себя; возможно, какую-то литературу. Как мне научиться понимать, где плохое, а где хорошее решение; где плохая, а где хорошая реализация...
  • Вопрос задан
  • 825 просмотров
Решения вопроса 1
@immaculate
Программист-путешественник
Это вряд ли возможно формализовать. Один из подходов: KISS — keep it simple. Выбираю самое простое решение, потому что, пока оно дойдет до production, требования 10 раз поменяются (и еще 10 раз поменяются уже после внедрения), а простое решение и проще реализовать и проще переделать. Но это только одна из эвристик.

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

Иногда по мере того, как делаешь задачу, понимаешь, что ее можно сделать совсем иначе, при этом получится проще и эффективнее. Ничего страшного нет: с самого начала продумать идеальное решение не может никто.

В жизни нет готовых рецептов на все случаи. Жизнь вообще не поддается формализации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@Camaro67
Помог? - "Отметить решением"
ИМХО. Только опыт, со временем перестанете задумываться об этом и будете делать уже на автомате.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Организация работы
software engineer
На самом деле вам только кажется, что несколько вариантов равноправны. С опытом приходит понимание, чем каждый вариант лучше/хуже и вы применяете его в конкретной ситуации уже исходя из опыта.

А реализовывать нужно в первую очередь работающий вариант. Если есть время и желание, оптимизировать можно всегда и потом - оптимизировать заранее не нужно.
Ответ написан
OtshelnikFm
@OtshelnikFm
Обо мне расскажет yawncato.com
На начальном этапе - не париться об этом. Все равно идеально не сделаете. Крутите велосипед - с опытом его улучшите и поймёте что правильно.
Вариант есть - спросить о реализациях старшего разраба. Если таковой есть. Описать ему все варианты реализации и он объяснит где у какого минусы-плюсы.

Просто пишите, читайте, вникайте. Со временем всё придёт.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
В первую очередь выбирается то решение, которое "было в прошлый раз". Потому что оно уже собственноручно проверенное, и не даром же оно уже было выбрано по каким-то параметрам.

Если оно почему-то не подходит (древний/глючный/тормозной говнокод, на который стыдно смотреть, например), то ищется либо более производительное, либо универсальное/гибкое, либо какая-то новинка для попробовать. Не обязательно в таком порядке, зависит от проекта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы