Разрабатывал почти год веб-приложение потом пришлось взять перерыв почти на 2 мес. Открываю IDE и смотрю с большим удивлением как будто вижу это всё впервые.
Задача теперь вспомнить всё и продолжить разработку.
Да код я писал по последним стандартам разработки, дело в том что теперь нужно вспомнить как это всё работает, приложение состоит из многих модулей-частей, теперь чтобы вспомнить что и как наверно нужно будет столько же времени..сколько я отсутствовал. К примеру когда ты долго работает ты уже знаешь с какой частью ты работаешь и что нужно, а теперь хз, нужно всё заного либо тестить либо «щупать» от А до Я…
Мне уже не так важен бюджет, как просто его закончить.
Дело в том что разработка велась на нескольких модулях сразу, таски как бы есть, но, не везде, а так, как проект не маленький, нужно вспомнить полностью его функционал. То есть я щас просто смотрю на код, да примерно понимаю где что - но в целом как раньше, то есть как раньше я разрабатывал и знал над чем работаю и что нужно - такого нет, теперь как вспомнить что делать не знаю, по этому придётся наверно перебирать каждый файл и тестить всё по порядку..там же не только над кодом велась разработка, но и в бд..
Сейчас с прошлым вы уже ничего не сделаете, придётся вникать долго, но когда вникнете хорошо бы сделать задел на будущее в виде такой документации, чтобы не повторилось всё.
Не всё так просто, если бы проект был мелкий, вопросов нет, а тут и классы и модули и бд и все до кучи, последние таски есть, но, чтобы понять в целом что нужно дорабатывать и как двигаться нужно по идеи перебирать весь код - тестить все по новой с самого начала весь функционал и по ходу вспомнить как это всё работает.
Раньше мелкие я кодил стандартными функциями, а когда взялся за проект, чуть больше средней сложности, понял, что такой подход не прокатит, потому что уследить за всем или что-то потом там фиксить, нужно перелапачивать чуть ли не все файлы. По этому прочитал несколько статей и пару книг и понял что мне нужно. Стало намного проще разрабатывать, но, все равно, масштаб имеет значение, когда и бд и классы и отдельные модули, за всем нужно следить - тестить. А когда закинул, теперь нужно вспоминать всё заного чтобы придти к тому с чего начал и продолжить разработку.
Осталось в принципе не много, но, как я уже говорю, масштаб проекта имеет значение, даже если код вполне читаем и понятен.
Это обычное дело. Я уже давно отказался от адекватного написания собственных проектов. Потому что в них надо погружаться глубоко, а времени на это нет.
Я несколько раз пытался сделать большой кусок за месячный отпуск, но тоже не получалось: первые пару недель ты просто приходишь в себя от работы, к концу второй недели понимаешь, что силы наконец появились и можно начинать дописывать проект. И вторую пару недель ты въезжаешь в свой собственный проект, вспоминаешь что там где там сделано, как и для чего. К концу этой пары недель ты себе картину примерно в голове составляешь, и можно уже делать что-то вменяемое, но именно в этот момент отпуск заканчивается и надо выходить на работу. В итоге ничего толком не делается.
Потому что это старые скрипты, которые я кладу ко всем своим дистрибутивам bash-скриптов, и они были разработаны значительно до появления идеи детальной документации.
А так - ССЗБ, надо было код хороший писать, а ты писал плохой.
+1. Самый лучший показатель того, что код говно — это когда сам открываешь его спустя какое-то время, и тебе ничего не понятно. Точно так же снова и снова он будет непонятен любому, кто его прямо сейчас не помнит наизусть.
Я обычно после отпуска git log / git diff просматриваю. Заодно можно посмотреть, что коллеги наделали с кодом. Ну и хорошая архитектура здесь помогает, когда еще тикет не дочитал, а уже знаешь какой модуль и класс надо поправить.
Чувааак! Ты вернулся) За этот год случился вайб-кодинг, тебе обязательно нужно его попробовать. Это решит все твои проблемы с разработкой. Ставишь codex cli покупаешь подписку и вперед. Если денех совсем нет, можно взять gemini cli, там вроде есть какой-то халявный лимит.
Проблема решается элементарно. Если в процессе разработки ничего не понимать, то вернувшись к коду послед долгого перерыва ничего не изменится.
Нет, и это основная причина, почему пишется плохой код — «да тут всё понятно». Сейчас понятно, да, пока весь код помнишь наизусть, а уже через неделю перерыва часть не вспомнишь, а через полгода вообще всё забудешь — и вот тут-то начинается разница между хорошим и плохим кодом.
Это был концептуальный троллинг. На сверхстратегическом уровне. Концепции типа «кода» в данном случае - ничто за точкой невозврата в путешествию к центру чёрной, как империализм, дыры...
1. Была постановка задачи или задание на разработку. Можно ее глянуть.
2. В процессе разработки надо писать документацию или хотя бы ее зачатки в виде to-do, известные баги.
3. Концептуально если придумывал ты то должен помнить. Если не ты то у него и спроси.
4. Правильно сказали. Запусти ИИ - пусть он напишет документацию или даст обзор по проекту.
5. Разбираться в чужем коде тяжело. А вот свой, если он логичен то можно.
6. Не бери в голову. Спроси задачи и методом научного тыка реши их. После и весь проект поймешь или вспомнишь.
Собственно важна еще модель разработки. Мне понравился совет использовать DDD. Я обычно так и делал не зная о ее существовании. Создавал макро объекты, а уже потом с ними проводил простые манипуляции. Все понятно и читаемо.
У меня есть проекты без документации, которые вообще не я писал. Ничего страшного. В таком случае документацию можно восстановить по коду. При нормальном нейминге документация на высокий уровень и основные алгоритмы занимает пару дней. Обычно этого достаточно, чтобы найти место в котором надо внести правки.
Если нашёл участок кода, в который надо внести правки, но не можешь его понять, то берёшь этот код в одно окно редактора, а в другом окне его тупо перепечатываешь (можно не тупо, а сокращая, например). Пока перепечатываешь, голова начинает работать и ты уже готов вносить правки.