@psyhO_octopus

Как правильно проектировать компоненты?

Надоело переписывать код в ходе разработки по несколько раз, поэтому хотелось научиться сначала проектировать/планировать, а затем реализовывать. Вот что я имею ввиду под этим.

Скажем у меня есть компонент кастомный селект. Я начинаю его делать и входе работы вспоминаю, что ведь нативных селектах можно стрелочки вверх/вниз клацать и значение меняется. Начинаю это добавлять в код, что-то переписывая. И т.д. А как хотелось бы?

Хотелось бы заранее понять какие переменные мне могут быть нужны (например, текущее значение селекта, значение option в фокусе), какие методы могут пригодиться и вообще как оно должно работать. А код писать уже глядя на то что получилось. Что-то меня тянет к конечным автоматам, но пока не пробовал.

Кто как решает эту проблему, кто какими инструментами пользуется?
  • Вопрос задан
  • 443 просмотра
Пригласить эксперта
Ответы на вопрос 3
Denormalization
@Denormalization
>Надоело переписывать код в ходе разработки по несколько раз
Welcome to the party.

>хотелось научиться сначала проектировать/планировать, а затем реализовывать
Это миф. Ходят легенды, что один програмист смог так сделать, но знание о том КАК он это сделал - утеряно в веках.

Всегда будут переделки. Даже самое четкое и подробное ТЗ в конечно итоге меняется.
Можно составлять всяие майндмапы, чтобы хоть как-то представлять себе весь процесс разработки. Но мне они не нравятся.

----
Именно из-за этой проблемы и были придуманы всякие Agile/SCRUM и другие подходы к разработке.
Ответ написан
viktorvsk
@viktorvsk
Русскоязычное коммьюнити примечательно еще тем, что порождает умопомрачительные вопросы. Которые нельзя адекватно оценить - можно только удалить (пожаловаться) и ждать следующего такого же вопроса.

Никогда не получится идеально с первого раза. И всегда нужно пробовать и искать пути оптимизации. Если вас интересует, как построить оптимальный процесс в конкретной среде - так и задавайте вопрос. А в общем смысл серебряной пули нет.

TDD подразумевает test, code, refactor. То есть, "переписывание кода" заложено уже в определении. И точно так же, сколько б вы раз во времени не возвращались к коду, вам всегда будет что-то не нравиться и будет желание переписать - это нормально.

В целом от поста веет максимализмом и преждевременной оптимизацией.
Ответ написан
IonDen
@IonDen
JavaScript developer. IonDen.com
Чтобы спланировать нужно сделать всего 2 вещи:
1. Изучить предмет. Какой смысл вообще делать кастомный селект, если вы не прочитали спецификацию, не изучили mdn и т.д. и не знаете до конца, как работает оригинальный.
2. Составить список фич, поддержку которых нужно реализовать. А это TODO список. В этом вам помогут специальные сервисы вроде https://trello.com/
Ответ написан
Ваш ответ на вопрос

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

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