Не пойму, в чем удобство такого метода написания кода

Духовность™

Продвинутый новичок
расстрел на месте.
я для примера написал, что бы вам понятно было. На самом деле аргументом в этот метод передается КЛЮЧ.

короче, с вами все ясно. любители оптимизировать то, что оптимизировать не нужно.

-~{}~ 29.10.10 15:26:

Автор оригинала: craz
ыы факт,

З.ы. еще можно доктайп передать мне кажется
умник, свой код покажи
 

craz

Нестандартное звание
triumvirat
вы тут спорите о принципах, уже половина в бутылку залезла, а ты в примере отправки сообщения выводишь нам хтмл...

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

Я вообще предпочитаю опыт накапливать, а не выставлять на все общее обозрение.

З.ы. Чем больше я знаю, тем больше я понимаю что ничего не знаю
 

HraKK

Мудак
Команда форума
Я вообще предпочитаю опыт накапливать, а не выставлять на все общее обозрение.
Зря. Критика особенно негативная, даже не конструктивная очень помогает двигаться в нужном направлении.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Автор оригинала: triumvirat
коней абстрактных опять обсуждаем?
почему же, весь мой код (и моих сотрудников) за последние 5 лет реализует описанные правила
да, я не юзаю неизвестно кем написаный говнокод, у которого нет поддержки - только общепризнанные поддерживаемые решения

Интересно, если я сейчас скажу главному программисту - "правь сам с вой код", меня просто выгонят или сначала пошлют матом?
Я своим говорю: "мои классы правлю я, надо больше - расширяй, нашел баг - напиши патч, я проверю и закомичу".
Это плохо?

Ты пишешь отговорки, которые взывают к Доброму, Хорошему и вечному, к идеальному коду. Но мы живем в реальном мире, где дела обстоят иначе. Каждодневно нужно модифицировать написанное, вносить изменения, рефакторить и т.д. А ты отвечаешь "каждый правит только свой код". Смешно.
мы в разных мирах, видимо
что ж ... это проблема твоей команды, которая плачет, колется, но продолжает есть кактусы

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

craz

Нестандартное звание
Пока критиковать нечего, пока пытаюсь выжить, благо нашел работу не пыльную работу, где удобно заниматься самообразованием. Когда прочитаю вашего фаулера, маконнела, банду четверых, насмотрюсь на форуме примеры кода от того же triumvirat - ведь у него не весь код УГ(даже наверное более 80% не УГ, но что-то с критикой у него проблемы)))), кое-где "сам" вижу уже интересные вещи, кое-где "сам" замечаю неточности и неправильности, тогда и будем обсуждать мой код)
 

AmdY

Пью пиво
Команда форума
grigori
идея сам написал, сам фикшу очень хорошо подходит, особенно для библиотек используемых по всему проекту, где кривая правка может исправить в одном месте и сломать в двух других (хотя сдесь тесты в помощь). а есть ещё умники, которые переписывают то, что не осилили.
но это нашему советскому воспитанию противоречит, что нужно всё делать самому.
 

fixxxer

К.О.
Партнер клуба
>> я для примера написал, что бы вам понятно было. На самом деле аргументом в этот метод передается КЛЮЧ.

Из имени метода это совершенно непонятно. Да и сейчас непонятно, что за ключ ;) и почему ключ это message?

Помню, давно с админом перекладывали сетку в офисе, в процессе была фраза: "Запомни: три - это семь!". Вот как то так )))
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
внутри - да, во внешнем API, в параметрах методов - нет

всё, мне надоело, сорри, я ушел
 

Духовность™

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

Активист

Активист
Команда форума
Почитал посты после себя, за два дня. В чем суть обсуждения?


> ИнтерфесПрограммированияПриложения в момем случае -
> контроллер. Это реализовано в одном из общих/абстрактных
> слоев.

ИнтерфесПрограммированияПриложения = application programming interface, т.е. API. API не контроллер.

Контроллер никогда не должен знать о каких-то Services.
Например, котроллер MVC GUI приложения, никогда не будет думать о том, загружен ли драйвер мыши и никода не будет напрямую с ним контактировать, только через Interface, у тебя интерфеса нет, если, конечно, ты не пишешь драйвер мыши.

Твой же код заставляет контроллер знать о чем-то, что ему не положено по статусу.

-~{}~ 31.10.10 19:57:

Добавлю.

У тебя появилась задача изменить метод передачи данных в твой скрипт (изменился веб сервер, который быстр и нов, или, например, твое приложение нужно запускать из под CLI), и собственно, передачу переменных туда , ты не можешь осуществить стандартными методами твоими get, post, request, у тебя есть только argv, что делать? В твоем случае, придется править контроллеры всех модулей, в моем случае, изменить (унаследовать от базового класса) новый класс, который будет разбираться параметры командной строки, для этого, я напишу класс и изменю соответствующий интерфейс, а лучше, научу интерфейс понимать новый доступ, сохранив обратную совместимость, и сделаю это таким образом, что все использованные ранее методы доступа сохранят свою актуальность.
 

Духовность™

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

-~{}~ 31.10.10 18:23:

application programming interface, т.е. API. API не контроллер.
я вообще слабо представляю, что такое API в рамках веб-приложений. Мне кажется, что API в вебе - это URL адреса, за которыми стоят конкретные контроллеры.

твое приложение нужно запускать из под CLI
а картошку оно пахать не должно? зачем веб-приложение мне запускать из CLI?
 

Активист

Активист
Команда форума
> что ты предлагаешь?
Вводить интерфейс доступа к этому инструменту (а getRequst) это и есть инструмент.

> а картошку оно пахать не должно?
Нет, не должно, это лишь пример. Какой смысл прикапываться к словам? Такое ощущение что ты все принимаешь в штыки.

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

Если углубляться в рамки Веб приложения на основе фреймворка, то любой фреймфорк (как отдельный продукт) - есть набор "инстументов", позволяющих решать популярные задачи, но это лишь инстументы, их еще нужно собрать и запустить.

API - есть инструмент, прослойка, осуществляющий правильную работу этих самых "наработок" в каждом приложении.

Модули приложения - есть сами приложения.

Если выделить CMS систему на собственных разработках, то, вышеуказанный принцип работы сохраняется, дополняется лишь тем, что все "дополнительные инструменты" пишутся с нуля.

API - отвечает за определение ОС, инициализацию инструментов на основе текушей ОС и настроек (БД, шаблонизатор, кеш систему), установки локали, подключению файлов, (хотя нужно отметить, что в скриптовом языке есть возможность подключать файлы в любой части приложения, а значит - подключать та можно хоть где, но лучше не злоупотреблять), парсинг ЧПУ (точнее запуска инструмента, который будет парсить ЧПУ).

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

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

Контроллер передает модели управления в зависимости от самих параметов, модель возвращает контроллеру результат (в основном это результат выполнения моделью действия), контроллер в зависимости от этого результата выполняет запускает View (нужно признать, что в WEB приложении, VIEW - это шаблонизатор).
 

korchasa

LIMB infected
Активист
А чем тебе request не интерфейс? CliRequest, HttpRequest? В чем разница?

ЗЫ: Приложения бывают не только модульными, ну да это не важно.
 

Активист

Активист
Команда форума
> передавать в контроллер какой-то всезнающий объект типа
> тулкита?

Я писал давно что нужно.

-~{}~ 01.11.10 10:52:

korchasa
Интерфейс доступа. Большая 4-ка детально описывала (и не раз в разных паттернах) о принципах доступа к таким вот Services. Просто не примеры надо смотреть, а прочитывать все 400 страниц, и задуматься в плане твоего приложения, прорабатывая ООП, который до прочтения и глубокого анализа этой книги, не являлся ООП (я лишь думал, что знаю ООП). Статьи с хабра - ужас, лучше уж большая 4-ка.

> ЗЫ: Приложения бывают не только модульными, ну да это не
> важно.

Не спорю, но тут мы говорим о вебе. А в случае отсутствия модулей API все равно сохраняется, ведь так?
 

korchasa

LIMB infected
Активист
Мне не интересно про GoF. Что насчет request'ов? Почему они не интерфейсы доступа?
 

Духовность™

Продвинутый новичок
Активист
я не понимаю, все очень абстрактно. есть примеры?

-~{}~ 01.11.10 09:56:

Какой смысл прикапываться к словам?
смысл в том, что я не понимаю, зачем мне что-то вызывать через CLI.

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

Если углубляться в рамки Веб приложения на основе фреймворка, то любой фреймфорк (как отдельный продукт) - есть набор "инстументов", позволяющих решать популярные задачи, но это лишь инстументы, их еще нужно собрать и запустить.
и причем тут мой getRequest() который является методом контроллера и возвращает объект ЯДРА системы под называнием HttP_Request? В чем конкретно мой код не удовлетворяет тебя?
 

Активист

Активист
Команда форума
triumvirat
>> зачем мне что-то вызывать через CLI.
> У тебя появилась задача изменить метод передачи данных в твой
> скрипт
CLI это лишь пример, чтоб абстракции было меньше.

> getRequest() который является методом контроллера и
> возвращает объект ЯДРА
Из названия это не видно. Возвращать должен интерфейс. Что-то вроде "всезнающего тулкита", только твой тулкит не должен быть всезнающим, ибо он должен знать только в рамках дозволенного ООП.

Ты используешь собственный метод контроллера. Для дальнейшего анализа - покажи код этого метода.

korchasa
В контексте "утилиты" они имеют интерфейс доступа, в контексте приложения - нет.
 

Mols

Новичок
Активист
Тоже я чёто не понял зачем "докопался" до getRequest() ?
Даже в рамках приведённых "аргументов" если очень будет надо запускать что-то через командную строку никто не помешает вернуть из getRequest() какой нибудь HttP_Request_ARGV (название может быть не удачные, но вроде понятное) который всё приведёт к перевариваемому системой виду.
 

Духовность™

Продвинутый новичок
Из названия это не видно. Возвращать должен интерфейс. Что-то вроде "всезнающего тулкита", только твой тулкит не должен быть всезнающим, ибо он должен знать только в рамках дозволенного ООП.
Я не понимаю. Ты говоришь дико абстрактными примерами. Что такое рамки дозволенного ООП?


Ты используешь собственный метод контроллера. Для phpдальнейшего анализа - покажи код этого метода.
PHP:
    /**
     * Возвращает объект запроса.
     * Метод для внутреннего пользования.
     *
     * @access protected
     * @param void
     * @return Http_Request
     */
    protected function getRequest()
    {
        if ($this->request === null)
        {
            $this->request = Http_Request::getInstance();
        }

        return $this->request;
    }
-~{}~ 06.11.10 10:52:

Было: http://pastebin.com/JPYZZat0
Стало: http://pastebin.com/np98tvAi

так лучше?
 
Сверху