← All posts tagged быдлокод

iorlas

Есть у меня тут один проектик, заказчик по нему оче странный. Хочет сам не знает чего и каждый раз хочет какую-нибудь вундервафлю. Сначала захотел очень лёгкое и простое решение — запилил ему на голом PHP. Потом захотелось модульности и расширяемости, а в старом функционале нужно было добавить много всяких фишек — пришлось переписывать это лёгкое решение с нуля с более ветвистой структурой.
Сейчас у него хотелка изменилась сильно и решил он что нужно запилить вообще всё иначе, там сделать чтобы можно было делать так, а вот там — иначе. А вот это вообще хочется автоматизировать полностью.
Получается что я буду пилить третий раз это, с нуля. На этот раз придётся вообще юзать RoR, благо там есть некоторые плагины, что решают часть задач(даже в Yii таких решений нет).
К чему я это всё? Почему нет конкретики? Не хочу рассеивать внимание, делая акцент на проблеме.
С виду, кажется что проблема в ТЗ — да, так и есть, частично. Просто ТЗ у всех трёх версий разное, очень разное, хотя и имеет некоторые общие черты. Но смысл не в проблеме, а в её решении.
Я лично первый раз встретил такую проблему, что один и тот же проект приходится переписывать N раз по причине что код предыдущей версии не подходит для реализации нового решения.
Раз не подходит, раз ТЗ новое, значит пилить и надо с нуля, всё верно? Заказчик должен платить как за 3 разных продукта? Ок-ок-ок. Вопрос в другом: как можно застраховать свой код от такого "старения", как сделать так, чтобы не было таких ситуаций.
Сразу планировать что у системы будет тотальная гибкость? Слишком сложно и затратно. Сразу всегда писать на рельсах? Не всегда решит проблему, да и на рельсах писать мелочь — ужас.
Сталкивались ли вы с подобными проблемами и как их решали?

iorlas

Если вы пишете код и вдруг оказывается что он вообще не работает, то, скорее всего, он даже не запускается, так как страница не завершает свою загрузку. Это бывает в случаях, когда серверная сторона написана, в оригинале, идиотами.
Потому в таких проектах имеет смысл помещать весь свой код после всего HTML кода страницы, где производить нужные операции не вешаясь на ивент jQuery.