За последние 24 часа нас посетили 18347 программистов и 1634 робота. Сейчас ищут 1603 программиста ...

Потральная система в одном файле.

Тема в разделе "Решения, алгоритмы", создана пользователем mpak, 19 сен 2010.

Статус темы:
Закрыта.
  1. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Речь идет даже не о трех строках а об одной $_GET['id'] и назовите хоть одну причину почему на это я должен делать какой то класс абстрагировать его в какой то метод и заменять везде в коде если это в люом случае будет усложнение запутывание и потеря производительности.

    Зачем вам банальное обращение к переменным функциям? Создайте класс который будет принимать имя переменной и возвращать ее занчение.? АБСУРД. Именно это мне и предлагается сделать. Значение у нас уже есть. Обратится к нему я могу зачем мне еще какой то класс? Еще одна прокладка.

    Не доводите ООП до абсурда. Думаю из за подобных подходов как данный мы и имеем кучу монстров которые сжирают память и ресурсы. Сайты открывающиеся по 10 секунд.
     
  2. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    какая потеря производительности? Что ты несешь?
    Я тебе приводил пример?
     
  3. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Начнем с начала что что быстрее?

    $a = $_GET['id']

    $obj -> new get();
    $a = $obj->getParam('id');

    Открою секрет если до сих пор не дошло. Любые дополнительные телодвижения жрут ресурсы
    А если результат останется тем же то зачем платить больше? А ваш метод ничего большего не обещает. Это те же данные предварительно гоняемые по класса. Я еще реализацию класса не написал. Там можно такого нагородить...
     
  4. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    попахивает байтдрочем
     
  5. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    mpak
    о какой скорости может идти речь если суммарная разница между оберткой и простым ображенинием 0,05 секунд, например, а запрос в базу занимает 0,5 секунд. Подумай хоть чуть чуть?
    Разница в 0,05 секунд на генерации каждой страницы экономит тебе 2 часа разработки ежедневно. Это 760 часов в году. Или ты по прежнему не понимаешь о чем тебе тут говорят?
     
  6. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    И меня еще кто то обвинял что у меня код теряет производительность. По сравнению с этим у меня просто детские игрушки.
     
  7. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    В даннос лучае это два часа потери так как мне нужно будет кучу символов писать дополнительно. Ничего не имея в замен.
    Приведи хоть один внятный плюс данного подхода.

    Слова твои похожи на рекламу какую то лажову. Наши классы совершенно бесполезны. Никто не знает что они делают. Но вы сэкономите два часа на программировании. Писать наши классы стало в два раза удобнее прошлой версии. А их красота в сиходном коде дает чувство превосходство над окружающими. Вы думаете что вы знаете что то чего не знают окружающие. Ощутите эйфорию от использования наших бесполезных классов.
     
  8. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    mpak
    мне кроме ключа вообще ничего почти не надо писать, за меня это напишет IDE...
     
  9. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Ничего не надо писать?

    $a = $_GET['id']

    vs

    $obj -> new get();
    $a = $obj->getParam('id');

    Ты вообще адекватен?
    И это при том что ничего не делается. Данный класс используется просто из за Фанатического поклонения ООП. Чтобы был.
    Простое присвоение значения это слишком просто для нас. Мы легких путей не ищем. :)
     
  10. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    mpak а ты приводишь $a к нужному типу?
     
  11. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Я на этот вопрос уже раза три только в этой теме отвечал. Конечно

    (int)$_GET['id']
     
  12. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    mpak ты реально идиот, почитай о чём я тебе писал, прикинь...
    Я бы тоже мог сказать какую нить хрень типа "Ты даже не знаешь ООП нафиг ты написал $obj -> new get(); " но я же не ты, я по делу говорю... Вкурил или еще нет?
     
  13. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Не суть в синтаксисе. Вопрос в другом. ЗАЧЕМ? Использовать что то без принины я вообще считаю абсурдом. А данный случай именно такой. Причины зачем это делать не смог сказать ни ты ни кто то другой. Но за то как будет круто использовать подобную фенечку расписывается весь день.
     
  14. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Костян

    Я как раз хотел по этому поводу сказать, что никаких new там и в помине не будет.

    mpak

    $a = Request::get_int('id');

    Намного сложнее чем $a = (int)$_GET['id'];
     
  15. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    tommyangelo
    смею вас огорчить, статика - это плохо. Таки нужно new
     
  16. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Аргументы?
     
  17. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    tommyangelo
    дело не только в этом... дело в абстрагировании от http запросов, благодаря чему отрываются другие возможности, основные из которых это адекватное модульное тестирование...
    ну о том что $a = (int)$_GET['id']; может генерировать нотис я думаю можно и не говорить, но вот можно стандартизировать возвращаемые значения как null и добавить значения по умолчанию, это тоже даёт свою гибокость, что бы не писать:
    $a = isset($_GET['page']) ? (int)$_GET['page'] : 1;
     
  18. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    $a = isset($_GET['page']) ? (int)$_GET['page'] : 1;

    Это кстати отдельная песня. Я встречал что то подобное и считаю это убожеством.
    Ты наверно ее дальше передаешь в пагер. Я прав? Если прав то я обосную свое утверждение.
     
  19. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    mpak
    а что интересно у тебя в данном случае не убожество?
     
  20. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    я, например напишут так
    $a = $r->get('page', 1);
     
  21. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    ну что ж, давайте.

    Вот попала мне в руки либа Request от tommyangelo. И не устраивают меня в ней какие-то методы, тот же get_int. Я, допустим, хочу туда второй аргумент присобачить, который будет возвращаться в случае если такого ключа в $_GET нету.

    Ну я как программист средней руки беру и пишу свой класс
    PHP:
    1. <?php
    2. My_Request extends Request
    3. {
    4.   public static function get_int($key, $default = null)
    5.   {
    6.      // code
    7.   }
    8. }
    и вот у меня две проблемы:
    1) во всех N киллобайтах кода захардкожен класс Request. Как мне подменить его своим классом? Хуячить по исходникам поиском и заменой?
    2) раннее статическое связывание. При вызове My_Request::get_int выполнится не перегруженный метод, а оригинальный. Это статика, детка!
     
  22. mpak

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

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Обосную как у меня сделано. У меня вопервых не передается параметр номер страницы в функцию пейжера. Она и без того там доступна. Во вторых не делаю каких то преобразований номеру страницы. Так как в случае обратном ты делаешь два преобразования С наружи функции перед передачей и внутри обратную для того чтобы использовать для установки в адрес. И в третьих использования нуля в качестве первой страницы облегчает код INSERT INTO LIMIT (int)$_GET['page']*10, 10
     
  23. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Тут разговор зашел об экономии времени кодера, если я не ошибаюсь?

    И опять же, класс как раз и позволяет абстрагироваться от запроса
     
  24. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    mpak
    вот тебе спросили А а ты отвечаешь Б! Причём тут страницы? Я переменную обрабатываю, это может быть и не переменная страницы... ну ты гонишь...
     
  25. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Koc
    Спасибо, я понял
     
Статус темы:
Закрыта.