[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: The Wrong Way
Страницы: 1, 2, 3, 4, 5, 6
inpost
Давай не думать, напиши полноценно этот код, как бы ты сделал его, чтобы он тебе понравился. Я потратил для тебя время и написал мою реализацию за 30 секунд . Надеюсь и ты найдешь 30-60 секунд и напишешь реализацию для меня. Хотя, подождите, ты предлагаешь такой простой код писать несколько часов? blink.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
twin
Цитата (Guest @ 31.08.2016 - 13:30)
И вопрос "зачем", отпадает сам собой, если согласен с фактом, что между php и веб-приложением, должно быть что-то еще. Если не согласен, то фактически признаешь спагетти код, как нечто нормальное.
Вся ваша беда в том, что почему то best-practics считается, что это "что-то еще" должно быть "между". А почему не "рядом"?

Я согласен, PHP далеко не идеален, да и вообще нет идеальных языков. Всегда чего-то нехватает или что-то приходится исправлять. Но для этого есть библиотеки. А вот это:
Цитата (Guest @ 31.08.2016 - 13:30)
компоненты request, response, router, errorHandler и прочее.
100%-е атрибуты фреймворка. Как раз того, что "между". В чем отличие фреймворка от библиотеки, я писал здесь.

Теперь по порядку Зачем в приложении роутер? Допустим нет такой задачи, сделать ЧПУ (я на работе никогда их не использую, не нужны там они и даже вредят). Так для чего он мне? Рассуждения, что "может потом понадобится" не канают. Не понадобится никогда, его чисто технически нет возможности использовать. Да и вообще, роутер - чистая прерогатива фреймворка. Решение универсальное. Не нужно оно в приложении, где и так все ясно со ссылками. Это нужно только в фреймворке.

Соответственно мне не нужен request. По тем же причинам. У того, что потребуется response, всего один шанс на миллион. И если я начну его изобретать, тут же нарушу принцип YAGNI.

Что касается errorHandler, то он легко реализуется библиотекой. Причем вполне универсальной, которую можно подключить к любому приложению простым include, даже к такому:
<?php

echo "Привет, Мир!";

У меня есть такая. Есть даже лайт-версия чисто на процедурах в одном файле. А вот затолкать её в фреймворк просто так не вышло, хотя я честно старался сделать либу компонентом. Пришлось мудрить с зависимостями. И взять её оттуда теперь тоже проблема, ибо она интегрирована и потянет за собой всякую ересь.

Что еще? Большая часть того, что вы используете повседневно, на самом деле в приложении не нужно. А то, что реально нужно, решается бибиотеками. Которые, кстати, совершенно не обязательно реализуются классами. Не говоря уже об ООП.

Так что легко отвечу на вопросы:
Цитата (Guest @ 31.08.2016 - 13:30)
1. Почему таких решений как набор независимых symfony компонентов нет в мире процедурного программирования?
2. Зачем нужно писать свой велосипед на plain php, а не взять готовое (фреймворк или некоторые его компоненты)?

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

Что касается спагетти. Код inpost'а можно критиковать по разным поводам. Но уж точно это не спагетти. Это локальное решение конкретной задачи. И ничего сложного и запутанного тут нет. Это классический KISS. Потребуется еще 10 пообных задач, будет рефакторинг. А если не потребуется?

Вот спагетти. Причем с претензией на ООП. Так что оставь этот модный термин, он не применим к парадигмам.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.