Привет всем)) а бывает у вас такое что пишешь, пишешь.. делаешь классы.. вроде все работает.. а потом вдруг смотришь на это и понимаешь что фигню сделал.. и если заново все переделать будет лучше?)) Что делаете в этом случае?
всегда ((( Если это боевой проект, рефакторю потихоньку...но каждый раз упирается все в ту же херню....поэтому это бесконечный процесс...
Постоянно. ИМХО если не можешь придраться к коду написанному год назад - скорее всего остановился в развитии или погряз в проекте суть которого - болото. Не является необходимой и достаточной причиной для рефакторинга. Ключевое тут: работает и проходит все тесты. Если возникнут еще причины исправлять этот код тогда да. --- Добавлено --- Навеяло
я недели две назад код писал.. сейчас смотрю и хочу его переделать.. хотя заказчику уже его отдал и он доволен.. --- Добавлено --- кстати вот тут у меня конечно пропуск в знаниях.. никогда не оборачивал тестами свои творения..
"Лучшее враг хорошего" --- Добавлено --- Да тут необязательно "оборачивать". Просто первый раз когда "сдаешь" и сам крутишь разные ситуации, клиент крутит, еще ктото из коллег. Для себя ставишь галочку "проверено". А потом улучшаешь.. Ииии.... Все валится в какомто не совсем стандартном режиме....
У меня чаще иначе случается. Потратишь пару-тройку недель на проектирование. Потом напишешь систему, всё летает. Проходит время, приходит клиент и говорит мол а можно вот так? И я такой погрустневший сажусь, читаю исходники. И понимаю что заложил в архитектуру подобное изменение либо вообще безболезненным либо с минимальными патчами. Делаю, сдаю, радуюсь жизни. Переписыванием с нуля конечно тоже занимаюсь (признание как в клубе анонимных алкоголиков, ей богу!), но стараюсь в сознании заложить некоторые границы перфекционизму. А то можно никогда не кончить...
у меня с проектированием лажа выходит... какие то мелкие вещи типа плагинов - нормально.. но как только что то покрупнее.. типа самостоятельного сайта.. вечно где то вначале налажаю что потом костыли ставить приходиться..
@Алекс8 а как ты проектируешь? я вот беру пачку бумаги, 4 цвета ручек и пишу-пишу-пишу. Рисую-рисую-рисую. Добавляю, зачеркиваю, переписываю. Финальный драфт кочует в постановку (тз), что позволяет еще и ненаошибиться при разработке и потом накидать юнит-тесты. Но. Всегда стараюсь проработать драфт с различными житейскими ситуациями по контексту. Их может и не случится в процессе эксплуатации, но в архитектуре будет заложен вариант быстрой реализации функциональности. Был у меня однажды забавный казус. Систему написал, сдал, забыл. Спустя годы запрос. Ну я в носу поковырял, выпил для храбрости. Делать-то надо. Открываю, читаю код, что-то вспоминаю. Понимаю куда новый функционал надо закинуть. Лезу туда. А он... там уже есть. То есть реализация была настолько нетрудозатратна по времени, что я её не просто рассмотрел "на будущее" а еще и сразу накодил не описав в постановке - на это время не стал тратить. Поэтому благополучно и забыл. И не забываем что я тоже люблю переписывать с нуля, да-да. А то сейчас подумаете что я такой весь хвастун-консерватор - разработал, накодил и баклуши бью. Конечно я трачу время на совершенствование всего. Особенного того что "работает и хер бы с ним" - люблю риск.
как у тебя с обверткой, PHP: <?php error_reporting(E_ALL); $query = 'SELECT ff ( ?, :ff, :l, :ff )'; $execute = [ 1, ':ff' => 3, ':l' => 2 ]; if ( strpos ( $query, ':' ) !== false ) { preg_match_all('/(\?|:[a-z]{1,})/', $query, $matches); $new = []; foreach ( $matches[1] as $plaseholder ) { if ( $plaseholder === '?' ) { $new[] = array_shift ( $execute ); } else { if ( isset ( $new[$plaseholder] ) ) { $new[] = $new[$plaseholder]; } else { $new[$plaseholder] = $execute[$plaseholder]; unset ( $execute[$plaseholder] ); } } } $execute = $new; $query = strtr ( $query, array_fill_keys ( $matches[1], '?' ) ); unset ( $new, $matches, $plaseholder ); } print_r ( $query . PHP_EOL ); print_r ( $execute ); недоделка, в Лерму позже добавлю
мне кажется это недостаток работы в команде. Вот я себе поставил цель пару лет в офисе (только на реальных проектах) а только потом на фриланс. Я сейчас на таком уровне скила - "ЧТО делать, я сам не могу придумать, но если мне скажут что делать я смогу найти решение КАК это сделать". Постоянно пришу какой то плагин а потом сижу смотрю на него и думаю "интересно а как бы сделал кто то по умней меня", хотя работать будет так же, ну может медленней
это нормальное явление. но это не значит, что надо всё бросить и прямо сейчас начать заново. с т.з. бизнеса работающее решение важнее, чем "правильный код". даже в собственных поделках надо об этом помнить: важен результат.
беру блокнот и пишу свои действия на каждой странице)) как куда перехожу.. как что реагирует)) --- Добавлено --- пару костылей поставил - пока работает)) больше не развивал)) --- Добавлено --- не могу себя заставить работать больше.. получать меньше.. и главное не могу заставить себя ходить на работу))
p.s. я тоже предпочитаю на бумажке почиркаться сначала. потому что код отражает не только полезные мысли, но и всякий бред ))) специально откладываю процесс набивки кода чтобы %% полезного был выше.
можно)) у пхпшников бывают хорошие доходы)) работы много.. спецов мало)) поэтому даже новичкам работы хватает))
Постоянно) Если такого желания, глядя на свой код годичной давности не появилось - значит роста за это время не произошло (ну, или уровень кода уже на божественном уровне). Так что нормально.