Чем лечить людей которые пишут такие коды.

nalim

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

Постепенно я все больше и больше занимаюсь
командной разработкой.

Причем возрастает постоянно как количество
людей в команде, так и разных проектов,
где используются различные технологии и фреймфорки.

Так один из новых программистов недавно
на поставленную задачу доработки функционала сайта
выдал мне отлично оформленный класс
со всеми наворотами PHP5
почти без изъянов по архитектуре.... не считая того
что прямо внутри методов он использовал
echo
или прямой вывод HTML.

Но недавно я встретил нечто действительно поразительное.
Привожу пример кода, на мой взгляд антиестественного.

Поясните плиз:
откуда исторически могло взяться такое "изящное"
решение

и имеет ли оно право на существование?
PHP:
function ins_p_ret($to_close = 2, $message = '', $params = "") {
  switch ($to_close) {
    case 0:
      if ( !isset($params) || $params == "" ) {
        $res = '<P>';
      } else {
        $res = '<P ' . $params . '>';
      }
      break;
    case 1:
      $res = '</P>';
      break;
    case 2:
      if ( !isset($params) || $params == "" ) {
        $res = '<P>';
      } else {
        $res = '<P ' . $params . '>';
      }
      $res .= $message . '</P>';
  }

  return $res;
}

function ins_href($to_close = 2, $href = '', $name = '', $params = "") {
  if (constDirectLinks == 1) {
    $href = ereg_replace('\index.php', '', $href);
    $href = ereg_replace('\?', '', $href);
    $href = ereg_replace('\=', '_', $href);
    $href = ereg_replace('\&', '/', $href);
    $href = '/'.$href.'/';
  }

  switch ($to_close) {
    case 0:
      if ( !isset($params) || $params == "" ) {
        $res = '<a href="' . $href . '">';
      } else {
        $res = '<a href="' . $href . '" ' . $params . '>';
      }
      $res .= $name;
      ins_e($res);
      break;
    case 1:
      ins_e('</a>');
      break;
    default:
      if ( !isset($params) || $params == "" ) {
        $res = '<a href="' . $href . '">';
      } else {
        $res = '<a href="' . $href . '" ' . $params . '>';
      }
      $res .= $name . '</a>';
      ins_e($res);
      break;
  }
}
 

Кощей

if(!$needle) die("ooh");
А как вы их отобрали лучше раскажите
$to_close = 2 улыбнуло

Почему парамс в двойных кавычках пустота,а в остальных одинарные:
$to_close = 2, $href = '', $name = '', $params = ""

И почему не FALSE собсно


И вообще какие-то функции странные, это кто такие задания даёт чтобы такое делали
 

Духовность™

Продвинутый новичок
и имеет ли оно право на существование?
нет, слишком дикая помесь HTML и PHP. Это одноразовый проект. И вся логика должна быть в шаблоне, а не в бизнес-логике.


Отделение одного от другого, ИМХО - это вообще нетривиальная задача.
 

baev

‹°°¬•
Команда форума
*baev с интересом читает мнения...*
 

berkut

Новичок
!!! вах! мой код скомунниздили!! прекрастный код, чё жужжите.
 

nalim

Новичок
Wicked а что есть шаблонные хелперы?
где почитать?

-~{}~ 06.03.08 10:59:

triumvirat
В этом и вопрос
я не понимаю зачем выводить HTML методами класса
собственными кривыми когда есть DOM
 

atv

Новичок
nalim, загляни в хелперы Симфони, ещё и не такое увидишь.
 

Wicked

Новичок
boombick
DOM в смысле на стороне сервера для генерации XHTML... а ты о чем? :)
 

Духовность™

Продвинутый новичок
похоже на хреново написанные шаблонные хелперы
если это так, то это другой разговор.

я не понимаю зачем выводить HTML методами класса
собственными кривыми когда есть DOM
HTML должен быть доступен гипотетическому верстальщику.
 

nalim

Новичок
triumvirat
В том то и дело что он недоступен верстальщику
 

Духовность™

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

Вот твой код - это хелперы или нет? Если да, то вопрос снимается.
 

nalim

Новичок
в коде вместо HTML весь код страницы нахреначен этими "хелперами" всесто того чтобы вставить TD используется функция и для лткрывающего и для закрывающего для TABLE отдельный и так свои для почти всех элементов
 

Духовность™

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

kode

never knows best
Автор оригинала: nalim
в коде вместо HTML весь код страницы нахреначен этими "хелперами" всесто того чтобы вставить TD используется функция и для лткрывающего и для закрывающего для TABLE отдельный и так свои для почти всех элементов
Да это жёстко конечно, но такой вариант тоже имеет право на жизнь. Думаю если хорошо подумать (долго и упорно) можно найти этому применение (шаблоны наоборот). Советую последовать совету triumvirata, за исключением спросить сначала "Какого хрена?"
 

bgm

&nbsp;
Коллеги! Сколь суровы суждения ваши!

P.S. Не лечить, но учить.
 
Сверху