За последние 24 часа нас посетили 18611 программистов и 1729 роботов. Сейчас ищут 1082 программиста ...

Устаревание кода

Тема в разделе "Прочее", создана пользователем Костян, 22 янв 2010.

  1. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Не знаю на сколько у кого это проблема, но вот меня напрягает. Допустим написал я какой-то сайт. Потом через время дописываю какой-то функционал и оглядываясь на уже написанный, понимаю, что его надо бы переписать, так как я понимаю, что надо было там не так написать, там не так, там еще.. Бывает даже так, что прямо вот сегодня написал какую то штуку, а через месяц уже понял что надо по-другому. Так же можно один и тот же проект тока и делать, что переписывать. Что же делать? Делать двиг из как можно более независимых, так скажем, классов? Тогда блин времени это займет больше и можно нафигачить кучу ненужного кода.
    Бл*, я такой проблемный.
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Нужно писать и не оглядываться, пока проект не закончен. Когда выпустишь в свет, если понадобиться усовершенствовать сайт, тогда и будешь переписывать.

    Когда пишешь, а потом открываешь "вчерашний" код, то его хочется переписать. Но когда сайт готов и уже полгода работает, то за уши не притянешь переписать, потому что будет куча всего другого.
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    опыт копить
    или говнокодить, как советует Крекер =)
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Не надо говнокодить. Просто перед началом разработки следует подумать, чтобы завтра же не понять, что нужно переписать с нуля.
    В любом случае, через полгода, когда опыта прибавится, код покажется несовершенным. Но не всегда его целесообразно переписывать.
     
  5. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    "Сынок, работает - не трожь." :)

    Тронуть конечно можно и сей процесс называется рефакторингом. Но под него выделяется отдельное время и бюджет :)
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Simpliest
    дивиз кодера =)
    всмысле кодера на скорость сайтов за бабло =)
    дык подумать, подумал а завтра ещё подумал. получилось что вчера думал да наговнокодил =)
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А ты думай так, чтобы завтра думать о другом. Переписывать старое нужно только в том случае, если это неизбежно (неверно работает / медленно ). Иначе не один проект не закроешь, так и будешь мыкаться.

    Ты знаешь, по-моему только тру-программисты думают о качестве. И имеют с этого качества не так много. Нет, я не против качественного кода и сайтов, сам всегда так стараюсь делать (на пределе своего возможного). Только кому оно надо, кроме меня? В России качественного очень мало, а что есть, мало ценится.
     
  8. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    тк. это форум программистов, моё мнение, это звание в первую очередь должно ориентироваться на максимальное качество. иначе нечего тут и обсуждать, бери битрикс и клепай сайты. кодерских форумов по этому делу хватает =)
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Ну так добровольно работать над качеством тоже обычно не интересно.
    Качество кода - это ж такая штука, которая существует только в уме программистов. Пользователю поровну, какой код стоит за интерфесом. Если в коде нет ошибок, он уже - качественный.
     
  10. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Mr.M.I.T.
    перфекционизм не должен отрубать мозги напрочь.

    Результат должен быть адекватен цели и затрачиваемым усилиям.
     
  11. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    Костян
    это нормальный процесс.
    любой код устаревает.

    Программирование это тоже бизнес. Переписывать все нужно если это выгодно для тебя, иначе ты просто потратишь время.
    Рефакторят что бы упростить внесение изменений в конкретную часть системы.
     
  12. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    да, скорее всего рефакторинг должен быть выгодным на столько, на сколько надо на него потратить...
     
  13. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    У меня тоже такая проблема.
    Проекты, которые писал пол года назад, сейчас бы написал совсем по другому. Оглядываясь на проекты прошлогодней давности удивляюсь, как я вообще использовал процедурный подход для построения сайтов. Я с этим борюсь так: каждый раз переписываю всю систему с нуля для нового проекта. Единственный код, который у меня не меняется - это работа с БД и файл с исключениями. Всё остальное - переписываю каждый раз с нуля, дописываю нужные методы и функционал, по другому реализую наследование в классах.

    Попробовал использовать Twig - это удобно только когда работает более одного программиста и более одного верстальщика. Если же ты в одном лице и программист и верстальщик - нет никакого смысла использовать шаблонизатор, потому что это только замедляет процесс разработки приложения. Плюс для меня важна гибкость в шаблонах. Мне проще в шаблоне написать Copyright &copy; <?=date('Y')?>, чем прописывать это где-то в инициализации, а потом в шаблоне использовать {{date}}.

    Мне лично тяжело быдлокодить или ставить заплатки/костыли. Это потом сильно сказывается. Думаю у каждого из нас есть не меньше 1-го такого проекта, который хочется засунуть подальше и никогда его не открывать, но в силу определенных обстоятельств приходится с ним работать. Короче, я за грамотный подход изначально ;)
     
  14. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    мне плевать, я сайты за заказ не пишу =)
    работаю в свое удовольствие.

    адекватный результат понятие растяжимое, если в плане денег. я об этом уже написал
    тут думаю всё таки в другом плане нужно обсуждать?
     
  15. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    я пишу всё на native, хотя меня и затрахала фигня типа <?php blablabla ?>. Но я в осноном говорю именно о движке и шаблонизацию вообще не затрагиваю. Шаблоны нужны когда надо обновить вид сайта. Но блин опять же я говорю про код на php в движке.
     
  16. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    кстати работа с базой данных и исключения тоже почти каждый раз разные. Вот раньше не разбирался в буферизации запросов, а сейчас пришлось, все переписалось + натив плейсхолдеры в mysqli. Это последнее, что у меня было. Но вот я думаю тут найдутся люди которые еще дальше пошли как пойду попозже я...
     
  17. Silicium

    Silicium Активный пользователь

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    Это точно! За всю практику (почти 5 лет) только один клиент был, которого это интересовало :)

    И кто-то оплачивает затраченное время на переписку всего?
     
  18. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Я новые проекты пишу с нуля, а не используя готовые классы. Старые проекты я практически не переписываю.

    Костян
    Если нужна гибкость - оставайся на native, просто надо грамотно подходить к этому. Я лично использую короткие <?=$User?> вместо <?php echo $User; ?>. Полные теги только для некоторой логике в шаблоне.

    У меня всё это есть в работе с БД.
     
  19. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    да, давайте не будет опять переходить на тему шаблонов ))
     
  20. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Если вам очень парит писать <?php echo $blablabla?>, найдите редактор, который умеет делать search & replace регулярками.
    Пишите {$param}, делаете регулярку \{(\$[a-zA-Z0-9]*?)\} и замену ей на <?php echo $1?> когда шаблон готов.
     
  21. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    ну вот, опять началось ))
     
  22. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Psih
    а в идешках вроде макросы есть?
     
  23. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    А смысл?

    Нормальный человек с приобретением опыта пишет другой код в любом случае.

    Вот только нужно еще больше опыта, чтобы шагнуть еще ступенькой выше и понять, как писать код, чтобы потом не приходилось переписывать все с нуля

    Крупный проект написать быстро, легко расширяемо и высокопроизводительно - не получится.

    А 10 строк как ни пиши - они пишутся быстро и легко расширяются, и сами по себе достаточно быстры.
     
  24. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    ну так опыт приобрести нужно...

    а смысл, я не знаю какой тогда у темы может быть ещё смысл.
    переписывать - не переписывать? ну так есть желание/потребность переписывай, это очевидно
    ну он хочет писать библиотеки отдельные, или фреймвок даже.
    я за, переписывать там нуно будет много.
     
  25. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Я тоже так стараюсь делать. Но не всегда это удается. На работе бывают поджимают. А бывает и так, что с головой окунулся в одну задачу, а нужно выполнить срочно другую. Получается, что другую не продумываешь до конца и получается говнокод, который работает только в этот момент, а дальше сыпется.

    Я не понимаю, в чем вопрос. Код будет устаревать всегда, причем в двух направлениях: 1) в мыслях программиста из-за профессионального роста. 2) в техническом плане из-за прогресса.
    Переписывать нужно тогда, когда в этом есть необходимость.
    Мой блог - чистый говнокод. Я его начал писать очень давно. У меня там и визуальный редактор, и еще всякая требуха. Все это развалилось, и я практически с самого начала добавляю статьи через БД. Но ничего при этом не меняю в коде. Мне хочется переписать его, но толку его менять сейчас, когда в этом нет необходимости. Он работает и будет работать, даже если у него посещаемость будет 1000 человек в сутки.
    А сейчас лучше уделить время другим проектам, которые могут заработать сейчас, но завтра внезапно могут заработать не у меня.

    Нужно просто поддерживать старые проекты в работоспособном состоянии, а переписывать их только в случае, если необходимо расшириться и это невозможно из-за существующего кода.