У меня чтобы сдвинуться с мёртвой точки и начать заниматься делами есть своя фишка: я начинаю наводить порядок: на рабочем месте/в комнате/на кухне/в сарае на даче/на жёстких в компьютере/в инструментах - не важно. В итоге и полезное дело сделано (на которое часто не хватает времени), и у меня в процессе мысли приходят в порядок. После чего текущие дела зачастую решаются быстро, а иногда даже с удовольствием.
из большинства VGA-карт, тоже не ахти, но ведь не 60 же, как в графических.
Хмм, на сколько помню, во времена Windows 95 "большинство видео карт" являлись уже S3 Trio64 V+, по крайней мере в наших краях, а эти видеокарты SVGA и вполне держали 800*600 75Гц, если монитор поддерживал конечно. Вот в 1024*768 только 60Гц и это было откровенное убийство зрения :(
Вспоминается мой самый успешный разгон: Celeron 300A с 300 до 450Мгц, это было круто. Материнка, конечно, поспособствовала: легендарная ASUS P3B-F. А сейчас свой AMD FX 8350 Black Edition даже лень разгонять не смотря на разблокированный множитель, нормальные мать и башню: для моих задач и так хватает производительности.
У нас камеры были статические но вот примерно при -35 некоторые переставали давать картинку, хотя пинговались. Лечили это просто: "прогревали" флуд пингом большими пакетами :). Через минут 5-10 обычно "оттаивали" все камеры, которые ещё пинговались.
P.S. Камеры были всякие разные купленные в Китае. Некоторые вообще переставали пинговаться пока на улице не теплело.
Вот представь, завтра выходит обновление ядра Yii, твои действия?
Вот вообще не огорчусь: я взял у них идею а именно из файлов взял только Session.php.
Это такая фишка везде видеть Денисов Поповых?
[03:29:23 root@hosting:/home/htdocs/boot.nsk.ru]# grep -r Yii ./
./vendor/twig/twig/doc/intro.rst:Slim, Yii, Laravel, and Codeigniter — just to name a few.
./include/classes/Session.php: * Session is a Web application component that can be accessed via `Yii::$app->session`.
./include/classes/Session.php: * Starting with Yii 2.0.21 `sameSite` is also supported. It requires PHP version 7.3.0 or higher.
./include/classes/Session.php: * foreach (Yii::$app->session->getAllFlashes() as $key => $message) {
./include/classes/App.php: * @var Session Session implementation from Yii2 framework
Ну код ревью такой код не прошел бы.
Из-за одного файла?
Посыл статьи был как код шёл от плохого к хорошему. И скрытая просьба чтобы мне указали на ошибки. А в итоге сеньёры цепляются к одному файлу.
чтобы не тащить ещё одну зависимость, stormiix/laravel-mix-twig-extension, в которой по сути делается тоже самое.
Я попробовал использовать symfony/webpack-encore-bundle, штука прикольная, кастомизации куда больше чем в laravel-mix, но я так и не смог настроить как мне надо. Может времени мало потратил (часа три), может у меня запросы специфичные. Но вернулся на laravel-mix. Вот мой конфиг:
Здесь я рекомендую смотреть на Симфони, как на проект, который пытается форсить правильные подходы
Так я уже использую консоль и Twig. Но надо свой код писать что понять красоту или перебор Симфони. Мой шаблонизатор укладывался в две функции. Сам PHP это шаблонизатор, но речь о другом. Не слишком ли много абстракций? Вопрос риторический.
Но это не SOLID а просто типы указал.
А скажите, как я могу следовать SOLID и при этом чтобы небыло оверинжинирнга? Я в статье не уверен что для такой простой задачи нужен контейнер. Ну реально: просто получаю реквест и по роутингу отдтаю контроллеру который даёт респонс.
Да, тестировать такое сложно, спасибо что мне сказали это.
Да, по SOLID, мне интерфейсов сделать/задействовать примерно чуть больше чем ноль. В чём плюс кроме как что мои модули смогу использоваться в других проектах?
Это хорошо, я рад помочь другим людям.
Ну мы уходим от темы моей статьи: работает, быстро работает. Хотя использование Twig это уже абстракция над абстракцией, благо кешируется.
Спасибо, Вы абсолютно правы. Да, статья не техническая. Скорее просто история программирования.
Но вот нормальная архитектура, построенная на автоматическом создании объектов-сервисов и пробрасывания их в конечные объекты-потребители с помощью контейнера, как раз и решила бы проблему «связности в моей ЦМС», которая в итоге перестала бы напоминать Йии1-2 с его фреймворком, который весь лежит в одном объекте.
Спасибо! Я и сам это понимаю, супер объект это уж точно антипаттерн :( Но он удобен :((( Но надо перестать его использовать.
Правильно ли я понимаю, что папка classes в CMS это скопированные классы из yii? Почему не затащил свой проект на базу Yii?
Только адаптировал classes\Session, и я там оставил копирайты. Видимо это было ошибкой.
Я бегло изучил код, его кол-во и т.д. и как по мне, проще было взять чистый фреймворк и перенести кодовую базу в него, нежели пытаться файлики из yii внедорять в свой проект, на это есть одна простая причина — твой код необновляем. Вот представь, завтра выходит обновление ядра Yii, твои действия?
А Вы точно видели код? Да, я вдохновлялся их кодом, но я вообще не использую их контейнер к примеру. Ну или как я с базой работаю, это же ActveRecord паттерн, я его скопировал?
А вы умеете JSON'ы-то гонять? Там разные задачи бывают. Или это Выше Ваших Высоких Принципов? Тогда не удивительно что без работы.
Отбор-то искусственный полностью. А не естественный
Отбор простой: кто-то работает а кто-то рефлексирует что работы нет.
У меня чтобы сдвинуться с мёртвой точки и начать заниматься делами есть своя фишка: я начинаю наводить порядок: на рабочем месте/в комнате/на кухне/в сарае на даче/на жёстких в компьютере/в инструментах - не важно. В итоге и полезное дело сделано (на которое часто не хватает времени), и у меня в процессе мысли приходят в порядок. После чего текущие дела зачастую решаются быстро, а иногда даже с удовольствием.
Именно самолёт, а не планер, уже пара человек человек полностью сделать не могла: двигатель брался готовый.
Хмм, на сколько помню, во времена Windows 95 "большинство видео карт" являлись уже S3 Trio64 V+, по крайней мере в наших краях, а эти видеокарты SVGA и вполне держали 800*600 75Гц, если монитор поддерживал конечно. Вот в 1024*768 только 60Гц и это было откровенное убийство зрения :(
Вспоминается мой самый успешный разгон: Celeron 300A с 300 до 450Мгц, это было круто. Материнка, конечно, поспособствовала: легендарная ASUS P3B-F. А сейчас свой AMD FX 8350 Black Edition даже лень разгонять не смотря на разблокированный множитель, нормальные мать и башню: для моих задач и так хватает производительности.
Крутые видимо дядьки если работали в восьмидесятых годах с системой, ядро которой было опубликовано только 25 августа 1991 :)
У нас камеры были статические но вот примерно при -35 некоторые переставали давать картинку, хотя пинговались. Лечили это просто: "прогревали" флуд пингом большими пакетами :). Через минут 5-10 обычно "оттаивали" все камеры, которые ещё пинговались.
P.S. Камеры были всякие разные купленные в Китае. Некоторые вообще переставали пинговаться пока на улице не теплело.
Вот вообще не огорчусь: я взял у них идею а именно из файлов взял только Session.php.
Это такая фишка везде видеть Денисов Поповых?
[03:29:23 root@hosting:/home/htdocs/boot.nsk.ru]# grep -r Yii ./
./vendor/twig/twig/doc/intro.rst:Slim, Yii, Laravel, and Codeigniter — just to name a few.
./include/classes/Session.php: * Session is a Web application component that can be accessed via `Yii::$app->session`.
./include/classes/Session.php: * Starting with Yii 2.0.21 `sameSite` is also supported. It requires PHP version 7.3.0 or higher.
./include/classes/Session.php: * foreach (Yii::$app->session->getAllFlashes() as $key => $message) {
./include/classes/App.php: * @var Session Session implementation from Yii2 framework
Из-за одного файла?
Посыл статьи был как код шёл от плохого к хорошему. И скрытая просьба чтобы мне указали на ошибки. А в итоге сеньёры цепляются к одному файлу.
Я знаю, пока просто думаю как мне его применить в свой проект. Но если уж тащить такую зависимость то используя TypeScript, чего мелочиться :)
Вы не поверите, я тоже! :) В зависимостях в package.json он и есть. Но в своём движке я в итоге сделал функцию
чтобы не тащить ещё одну зависимость, stormiix/laravel-mix-twig-extension, в которой по сути делается тоже самое.
Я попробовал использовать symfony/webpack-encore-bundle, штука прикольная, кастомизации куда больше чем в laravel-mix, но я так и не смог настроить как мне надо. Может времени мало потратил (часа три), может у меня запросы специфичные. Но вернулся на laravel-mix. Вот мой конфиг:
Так я уже использую консоль и Twig. Но надо свой код писать что понять красоту или перебор Симфони. Мой шаблонизатор укладывался в две функции. Сам PHP это шаблонизатор, но речь о другом. Не слишком ли много абстракций? Вопрос риторический.
В любом случае спасибо за рекомендацию!
Спасибо, после Yii2 вроде в порядке :)
Всем вопросам вопрос.
Самобытная. Самописная. Она именно моя. Мой опыт. Об этом статья.
Кодовая база маленькая, но как код написан никто не обругал :) Я про стиль. Я так думаю для джуниора неплохо.
Да, я хотел критики. Я её получил.
А скажите, как я могу следовать SOLID и при этом чтобы небыло оверинжинирнга? Я в статье не уверен что для такой простой задачи нужен контейнер. Ну реально: просто получаю реквест и по роутингу отдтаю контроллеру который даёт респонс.
Да, тестировать такое сложно, спасибо что мне сказали это.
Да, по SOLID, мне интерфейсов сделать/задействовать примерно чуть больше чем ноль. В чём плюс кроме как что мои модули смогу использоваться в других проектах?
Это хорошо, я рад помочь другим людям.
Ну мы уходим от темы моей статьи: работает, быстро работает. Хотя использование Twig это уже абстракция над абстракцией, благо кешируется.
Так посыл стати что всегда надо двигаться дальше!
Но в 2010 я не мог писать так:
А уже пишу.
Да, надо было в статье это показать. Видимо в следующей статье это сделаю.
Спасибо! Я и сам это понимаю, супер объект это уж точно антипаттерн :( Но он удобен :((( Но надо перестать его использовать.
Конечно! Это в планах! Почему я и хочу под PSR переписать!
Я уже заложил это: базовый контроллер выдаёт в JSON результат если там в result тип array :)
И стать фуллстэк? Я уже писал на Vue, но нет у меня пока ни времени, ни желания изучать TypeScript :)
Только адаптировал classes\Session, и я там оставил копирайты. Видимо это было ошибкой.
А Вы точно видели код? Да, я вдохновлялся их кодом, но я вообще не использую их контейнер к примеру. Ну или как я с базой работаю, это же ActveRecord паттерн, я его скопировал?
С вашими требованиями не прошёл, спору нет.