Aisamiery

Aisamiery
Рейтинг
319
Регистрация
12.04.2015

В рамках Питер-Москва вы разницы не заметите, с Питера до Москвы запрос идёт 10-12ms что ничтожно даже для динамичных онлайн игр, а для сайтов и подавно, php стартует дольше. Даже если у вас ЦА в Москве, то даже Германия для сайта это близко.

Фигнёй какой то занимаетесь

Хостится в OVH

На фронте либо статичный кэш, либо в принципе статика, либо подгрузка по апи а первый контент это просто заглушка.... сделать TTFB в 17ms не сложно, достаточно просто отдавать заранее заготовленную статику - например jamstack можно погуглить. Вот на хабре статейка https://habr.com/ru/post/439232/

---------- Добавлено 22.03.2020 в 14:19 ----------

Урл то конкурента дайте посмотреть

---------- Добавлено 22.03.2020 в 14:24 ----------

У меня на бегете есть сайтик на Grav CMS, TTFB повыше конечно, но чтобы было ниже надо php вообще не стартовать.

Можно и винде сделать захват без всяких там ножниц =))

По букам, мне мой мак нравится больше чем на винде, правда сравниваю на сравнимое =)) мак стоит >150к а мой виндовый чуть больше 30к =)))

Но если брать разработку, то макось конечно же однозначно впереди. У меня макбук про с 8гб оперативы и i5 на 4 ядра, работает не хуже чем стационарный i7 8 поколения с 6C/12T и 32Гб оперативы на винде =))) Ну а девелоперу нужны никсы, особенно вэб девелоперу. А я еще и на swift угараю для души так скажем.

ArbNet:
Aisamiery, Нашли к чему придраться :) Даже если оставить как есть, и будет много запросов мой движок не сдохнет, он не грузит на начальном этапе кучу всяких плагинов...

Ясень пень, вы еще даже с БД работать не начали. И что по вашему очень много? Вы же даже не знаете почему дохнет тот или иной сайт, а уже что то говорите. Написали 3 сотни срок кода и понтуетесь что ваш движёк не падает? Так он еще нихрена не делает, вообще ничего, с чего бы ему падать?

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

ivan-lev:
Aisamiery, командная работа набирает обороты..
Вот.. дошли до "pull request-ов" через форум 😂

Ага, чёт я разошелся =)))

ArbNet:
Aisamiery, Согласен. В данном случае так будет меньше кода.
Наверно пока тестирую... не задумывался о том чтобы упростить.

Это не просто меньше кода, это дальнейшее добавление файлов без изменения index.php

Тем более, если даем возможность расширять эту часть систему без изменения index.php (помним это важно, чтобы система обновлялась она приходит с index.php)


$nav=pathinfo(trim($_SERVER['REDIRECT_URL'],'/'));
$file = sprintf('%s.php', $nav['extension']);

if (file_exists(EXTEND. $file)) {
require EXTEND. $file;
} elseif (file_exists(CORE . $file)) {
require CORE . $file;
} else {
require CORE . ($_SESSION['ldt'] ? 'publish.php' : 'initialization.php');
}

И вот у нас уже есть папочка куда сторонний разработчик может положить файл api.php и изменить поведение системы не трогая системных файлов.

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

Ту ересь с роутингом что вы скинули даже комментировать не буду, она просто не читаемая, но по диагонали понятно что там просто полный ппц.

ArbNet:
Aisamiery, Фабрику знаю и прочие паттерны, вот только в роутинге они ни к чему(запросы могут быть разные от просто цифры счётчика допустим, расширение web у меня перенаправляет на сайт который работает на моей программе, json файла для ajax, др до готовой страницы). У меня не надо править ядро. Маршрутизация прописана в index под нужные для движка задачи, но кто знает что ещё может понадобится в будущем мне или другим пользователям, поэтому в индексе всё так просто.

Вот когда коучи начали рассказывать про паттерны. Все стали их везде втыкать надо и не надо.. А если подумать?

Блин хотел же закончить =)))

Знаете почему "индусский код" так называют? Есть такая байка, что индусам платят не за решенные задачи, а за кол-во строк кода, возьмём ваш пример:


// маршрутизация
$nav=pathinfo(trim($_SERVER['REDIRECT_URL'],'/'));
switch($nav['extension']){
case 'js': @require CORE.'js.php'; break;
case 'css': @require CORE.'css.php';break;
case 'api': @require CORE.'api.php';break;
case 'web': @require CORE.'web.php';break;
default:
if($_SESSION['ldt'])@require CORE.'publish.php';
else @require CORE.'initialization.php';
}

И чем больше расширений, тем больше строк будет кода, верно? При том приложение просто упадёт если файла не будет. Давайте в каждом case проверять наличие файла? Это еще добавит строк, а заказчик оплатить. А теперь давайте подумаем в чем разница?


$nav=pathinfo(trim($_SERVER['REDIRECT_URL'],'/'));
$file = sprintf('%s%s.php', CORE, $nav['extension']);

if (file_exists($file)) {
require $file;
} else {
require CORE . ($_SESSION['ldt'] ? 'publish.php' : 'initialization.php');
}

При том не важно сколько вы там решите добавить расширений и приложение не упадёт по сути никогда (ну надеюсь 2 файла в else всегда существуют).

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

Stek:
Не про это.
require - подгружает код в любом случае, а выполняет его только в зависимости от логики.
include - подгружает код только когда к нему идет обращение.

От куда вы такое взяли?

require аналогично include, за исключением того, что при ошибке он также выдаст фатальную ошибку уровня E_COMPILE_ERROR. Другими словами, он остановит выполнение скрипта, тогда как include только выдал бы предупреждение E_WARNING, которое позволило бы скрипту продолжить выполнение.

php.net

LazyLoad делается по другому принципу, через автолоадер и стандарт, например PSR-0 ранее или сейчас PSR-4

---------- Добавлено 20.03.2020 в 15:44 ----------

ArbNet:

А если подумать?
Я так сделал чтобы можно было просто добавлять другие обработчики или удалять если что не нужно. Элементарно Ватсон :)

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

Stek:
Что то я уже пхп поздабыл, поправьте если я не прав:
1. на require подавление ошибок не действует
2. в данном коде require подгрузится для всех блоков, в не зависимости от кейса. А вот include как раз подгрузит только нужный.
3. статику лучше отдавать средствами вэб сервера.
4. подавлять ошибки вообще очень плохая практика. Если уж так приспичило - есть error_reporting и вывод их куда нибудь в лог фай.

1. Действует, просто будет белая пустая страница, так как будет подавлен Fatal

2. Нет. Свитч отработает как надо. Разница в том что первый выкидывает Fatal а второй Warning

3. Вообще не обсуждается даже, я в целом даже не вижу прикола этого свитча и по приведенному коду я так понимаю человек даже не знает определения слова роутинг, раз показал именно этот код.

4. Это наследие с php4, сейчас это треш полнейший. В 7 версии даже Fatal нормально ловятся.

danforth:
Ггг, кажется ты стал забывать на каком форуме находишься. Просто сравни его с севладом.

Я чуть выше писал, что его поведение очень напоминает поведение местных ВП спецов, которые "сделают все за 3 дня и естественно за 3 рубля"©

danforth:

Я не понимаю зачем заниматся травлей ТС. Я думаю ТС вполне адекватен, чтобы по итогу согласится с проблемными местами своего фреймворка, если с ним аргументированно вести дискуссию.

Травля если и начинается, то ответом на его посты. Он спрашивает, ему отвечают (нормально как правило) и дальше ТСа начинает заносить на поворотах маленько. Никак он не воспринимает ни критику, ни советы, вообще ничего - сам себе на уме. Думает что он написал файлик со свитчем и заюзал xml либу с ядра (при том видимо SimpleXML, потому что остальные осилить нужны мозги), теперь перец такой, что его всякий юзеры джанги хрен переплюнут.

danforth:
И судя по всему, он не ставит целей написать инструмент для матерых разработчиков.

Он делает убийцу ВП и Laravel одновременно если что.

ArbNet:

У меня намного проще :)
никаких

Вот в этом и проблема, у вас никаких инструментов, зачем ваш фреймворк, если можно switch сделать и самому? И вы вот это пишите 3 месяца и переделываете?

ArbNet:

Вот зачем столько всякой хрени..

Вы не делали сложных проектов, ни одного. Суть в том, что в программе её компоненты должны выполнять минимальную функцию и знать ровно столько сколько им нужно чтобы выполнить эти действия. Тогда любой кусочек программы можно будет переписать малой кровью. Если у вас код зависит от другого кода и так по наклонной, то любое изменение в проекте будет грозить крахом всего проекта и кучей багов. Сервис контейнер позволяет не влезая в ядро подменить реализацию любой части системы на нужную тебе, не трогая ядро фреймворка, исходники модулей других разработчиков и так далее, что я замечу очень важно в модульных системах.

ArbNet:

У меня просто по расширению запускается обработчик

Вам осталось совсем чуть чуть

---------- Добавлено 20.03.2020 в 14:32 ----------

ArbNet:
На выходе более качественный продукт, чем у этих сеньоров :)

У вас не хватит опыта сделать качественный продукт. Нельзя прочитать книжку и сделать качественный продукт. Я хз почему вас считают подкованным человеком другие форумчане, но я явно вижу что у вас уровень "прочитал книжку Котёрова наполовину". Где же ваш релевантный опыт? В каких проектах вы участвовали, чтобы говорить что вы лучше "этих сеньоров". Чем лучше то? Почему вы вообще считаете себя разработчиком/программистом? Потому что стучать по клавиатуре умеете? По вершкам нахватались и ходите с умным видом "это говно и вот это говно".

Удачи вам в ваших разработках и обучении. Как вам уже сказали "пилите Шура, пилите, она золотая"

PS. Вы даже языка то толком не знаете, и не знаете почему нельзя использовать подавление ошибок которого у вас 6 из 10 строк кода.

PPS. А код который вы привели в простонародье называется "индусским", потому что это все можно написать более коротко, понятнее, лайтовее, с проверкой файла на существование и всего одним require

Всего: 4110