@user_of_toster
Выходит так, что 90% времени на имплементацию фичи уходит на принятие решения, какой вариант выбрать. Очень долго думаю насчет того, как то или иное решение может в будущем выстрелить в ногу. По дороге нахожу кучу подводных во всех вариантах. При этом фича не имплементируется и страдает скорость разработки.
Начинаю выбирать один вариант и имплементировать, по дороге понимаю что выстрелит в ногу в случае А, Б и С, и снова начинаю думать, а не выбрать ли другой вариант, и так по кругу. Как лечить такое?
Решения вопроса 1
@Adamos
Ответы на вопрос 5
@Kostik_1993
@basili4-1982
1. Делай что бы работало.
2. Делай тесты
3. Оптимизируй.
Если задачу не возможно сделать в лоб «что бы работало», декомпозируй.
@mayton2019
Топик озаглавлен тегом ПРОЕКТИРОВАНИЕ но вопрос все равно про имплементацию. Поэтому я бы хотел спросить — кто автор? Если речь идет об имплементации — то он разработчик.
А поэтому нужен тег языка разработки и текста программы. И дальше уже — по ситуации.
@AlexHell
Советы от НЕ-СЧЛ не подойдут СЧЛ.
Я сам СЧЛ, программист, геймдизайнер, поэтому советую — расширять кругозор дальше, но не в ущерб деланию реальных задач. Сомнения — это нормально.
И те, кто говорят что они от недостатка опыта — в этом правы, отчасти потому что когда есть опыт решения конкретной задачи — анализировать тут почти нечего, когда решение принято кем-то (из статьи \ из книги \ или наставником \ или вами в прошлом) о том как выполнять эти задачи. Но если встает новая задача — всегда будет недостаток опыта. Всегда будет анализ плюсов и минусов каждого из найденных вариантов, и выбирать придется. Зачастую это много-критериальная задача оптимизации — выбираете что самое главное, что вторичное, что не важное. Скажем если надо сделать супер оптимально иначе у других не запустится на устройстве — ставите в задаче приоритет оптимизации под это устройство. А если бюджет близок к бесконечности — это идеально было бы.
Однако в реале придется еще срезать сроки разработки, и бюджеты — и выбрать не самое оптимальное решение, а удовлетворяющее первоначальной задаче (из примера это запускающееся на конкертном устройстве, или допустим едящее не более X GB памяти при таком-то кол-ве юзеров онлайн если это сервер игры), остальные неважные оптмизации — отбрасываются, когда основное — выполнено.
Если как говорят другие приоритет — скорость разработки, а не оптимальность программы (оптимизации в рамках разумного надо нарабатывать по опыту), то анализировать почти нечего — сначала чтобы работало и без багов желательно, потом оптимизировать если останется время.
Если есть много времени на исследование задачи (в частности для себя, не в большой ущерб здоровью от переработок) — перебирайте вы ваши варианты, но за все придется платить: вам — здоровьем или недополученной прибылью, работодателю — деньгами если вы делаете не супер нужные отпимизации (если — подчеркну).
p.s. Если у автора вопрос в 1ю очередь про то что ВСЕ варианты содержат БАГ, значит нужно продолжать искать решения, это тоже нормально, и по ходу вариант вы найдете, когда переберете кучу вариантов и отдохнете (это тоже важно), а может — из статьи или книги, если задача конечно решаемая (и вы не исследуете новейшие научные задачи).
@UPSA
Делай пока не упрешься в тупик. Чем быстрее упрешься в тупик, тем быстрее найдешь выход.
