У каждого из нас есть свои скелеты в
шкафу коде.
И пока это твой единоличный, любимый, неповторимый код, да пусть там хоть турбо-бейсик будет.
Но когда речь идет об групповой разработке, то уж извольте придерживаться стандартов.
Сервак работал и до меня долго.
Вот пришел я, кинули в суппорт.
Однажды моя душа не выдержала и я на ломанном матерном немецком сказал: А вы вообще, господа, имеете понятие об MVC (Отрицаемая twin-ом как ересь №1)???
Потому что генерация html выглядела вот так:
if (($this->zusrates["r".$i]->rate == PAY_RATE)) {
$payrate .= $this->out->getLine($this->out->getLine(
$this->out->getLine($this->zusrates["r".$i]->description, $class, "pay-online", "onclick=\"CheckBox.onClickPay();\"", "$oblig $calc $ratecode"). $popup_info, "rate-line-left").
$this->out->getLine(
$this->out->getLine('<img src="template/images/info.png">', 'info', "id") .
$this->out->getLine($price, $class_price." hiddenFields", "pay-online-discount", "", "price=\"".$this->zusrates["r".$i]->rental_total_price."\""), "rate-line-right")
,"rate-line");
} else {
if (($this->zusrates["r".$i]->rate == "MAIL") || ($this->zusrates["r".$i]->rate == WIN_RATE )) {
$ratefirst .= $this->out->getLine($this->out->getLine(
$this->out->getLine($this->zusrates["r".$i]->description, $class, "r".$i, "onclick=\"CheckBox.onClick(this,false);\"", "rate=\"r".$i."\" $oblig $calc $ratecode"). $popup_info, "rate-line-left").
$this->out->getLine(
$this->out->getLine($price, $class_price, "price-r".$i, "", "price=\"".$this->zusrates["r".$i]->rental_total_price."\""), "rate-line-right")
,"rate-line");
} else if (substr($this->zusrates["r".$i]->rate,-7) == SERVICE) {
$ratefirst .= $this->out->getLine($this->out->getLine(
$this->out->getLine($this->zusrates["r".$i]->description, $class, "r".$i, "onclick=\"CheckBox.onClick(this,false);\"", "rate=\"r".$i."\" $oblig $calc $ratecode"). $popup_info, "rate-line-left").
$this->out->getLine(
$this->out->getLine($price, $class_price, "price-r".$i, "", "price=\"".$this->zusrates["r".$i]->rental_total_price."\""), "rate-line-right")
,"rate-line");
} else {
if ($this->zusrates["r".$i]->sb == NULL && substr($this->zusrates["r".$i]->rate,-3) != CDW ){
$rates .= $this->out->getLine($this->out->getLine(
$this->out->getLine($this->zusrates["r".$i]->description, $class, "r".$i, "onclick=\"CheckBox.onClick(this,false);\"", "rate=\"r".$i."\" $oblig $calc $ratecode") . $popup_info
, "rate-line-left").
$this->out->getLine(
$this->out->getLine($price, $class_price, "price-r".$i, "", "price=\"".$this->zusrates["r".$i]->rental_total_price."\""), "rate-line-right")
,"rate-line");
} else {
$rates .= $this->out->getLine($this->out->getLine(
$this->out->getLine($this->zusrates["r".$i]->description, $class_cdw, "r".$i, "onclick=\"CheckBox.onClick(this,false);\"", "rate=\"r".$i."\" $oblig $calc $ratecode"). $popup_info, "rate-line-left").
$this->out->getLine(
$this->out->getLine($price, $class_price, "price-r".$i, "", "price=\"".$this->zusrates["r".$i]->rental_total_price."\""), "rate-line-right")
,"rate-line");
}
}
}
Этот "маленький" кусочек всего лишь генерирует div, в который вложено еще 2 div-а, в одном сторка - название тарифа, во втором стоимость. А теперь клиент просит, что если у тарифа есть доп. опции, то выводить шрифтом по-мельче там же.
Вот примерно в этом месте я сказал, что либо мы переписываем данный проект с нуля, либо я пошел...
Переписали.
Еще через полгода, когда очередной умник переписал физически файл и закоммител его в SVN, чем убил ВСЮ историю по данному файлу, мне удалось нытьем / угрозами / шантажем перевести предприятие на git (Отрицаемая twin-ом как ересь №2)
А еще один у нас монстр MSSQL и считает, что 99% должна делать база. И данные выплевывает из процедуры базы в формате xml, чтобы не делать 100500 запросов к базе. У него за весь проект ОДИН запрос, а потом сразу все в браузер щмяк... там же xml уже готовый.
А багу фиксить - это застрелиться... да по всем датабанкам клиентским потом пройтись.
А вот вчера аукнулись геттеры....
Это я к чему... можно писать нативно. Можно пренебрегать "модными" патернами. Их же придумали просто потому, что модно, а не потому, что процесс оптимизируется и приложение становится более устойчивым.
Можно. Если ты один на фрилансе, вывалил какашечку заказчику и внес его в скайпе в блеклист.
А в команде должны быть стандарты.
_____________
[продано копирайтерам]