Челендж на 2026

Александр Воробьев
На сайте с 03.02.2020
Offline
64
#531

[5/12] Очередной этап челенджа

шаблонизатор

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

Состояние на сегодня на github

фреймворк

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

----

ArbNet планируешь включиться? есть видение перспектив участия?

GitHub - joke-php/templator at eecfa4b7dec3897f24dafa30cd450abada15fa0b
GitHub - joke-php/templator at eecfa4b7dec3897f24dafa30cd450abada15fa0b
  • joke-php
  • github.com
Шаблонизатор для микрофреймворка Joke. В разработке.
ArbNet
На сайте с 27.10.2019
Online
152
#532
Александр Воробьев #:
ArbNet планируешь включиться? есть видение перспектив участия?

Конечно. Каждый день практически собираюсь, но не решусь видео что-то записать. А на словах объяснять это не целесообразно. Да и сейчас меня больше интересует написание микросервисной системы на Rust, основу вот донастрою на днях, работу с модулями и интерпретатором языка, далее хотелось бы параллельно работать над двумя этими проектами.

ЗЫ. Вот ты тут словами пишешь что сделал, но лично мне влом лезть в твой гит и разбираться в коде, хотелось бы наглядности демонстрации в видео. Мне не понятно

Александр Воробьев #:
добавил файловое кеширование. Точнее специализированный кеш для компилируемых исходников. В частности для кеширования php скриптов компилируемых из шаблонов.

Что значит файловое кэширование(от английского cache («тайник», «запас», «кэш»), всякие бездари даже в словарях к сожалению пишут с буквой "е")и компилируемых php скриптов? Мне лично не хватает наглядности.

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

Александр Воробьев
На сайте с 03.02.2020
Offline
64
#533
ArbNet #:
ЗЫ. Вот ты тут словами пишешь что сделал, но лично мне влом лезть в твой гит и разбираться в коде, хотелось бы наглядности демонстрации в видео. Мне не понятно

Видео требует времени. Я не могу выкладывать сырые видео с "пык мыками" (а диктор я не особо). И я готов их выкладывать, но в режиме "регулярно" если только будет с твоей стороны видимое участие, а так: когда будет время посвободнее. Видео мне дают профит - мне полезно потренировать разговорный жанр :) , но очень много работы и по выкройкам и по проектам клиентов. На фреймворк то удается иногда не более 15 минут в день выделить.... Так что писать видео когда есть ощущение, что я единственный реальный участник челенджа... в обещкм видео сейчас имеет низкий приоритет.  

ArbNet #:
Что значит файловое кэширование(от английского cache («тайник», «запас», «кэш»), всякие бездари даже в словарях к сожалению пишут с буквой "е")и компилируемых php скриптов? Мне лично не хватает наглядности.

У меня заложена парадигма компиляции. Т.е. в момент хита (наиболее частого, не "первого") - шаблоны не будут вообще затрагиваться. Т.е. на первом хите шаблон (точнее вся необходимая для конкретной страницы структура шаблонов) будет компилироваться в обычные php файлы (или файл). Так же тут могут быть вариации по необходимости - это может быть как вообще статический html. Так и просто php файл который будет формировать подготовленную страницу на основе динамических данных. Это ради производительности. Нет смысла парсить шаблоны каждый раз, достаточно один раз после изменений в них. Это даст прирост производительности:  любой парсинг шаблона (а каком бы он формате не был) - это дорогая операция, и за счет компиляции я избавляюсь от этого на каждом хите, плюс скомпилированный php файл уже обрабатывается OPcache - что дает еще плюс к производительности т.е. единожды созданный байткод не создается каждый раз.

ArbNet #:
Кроме того я и сам не хочу делать нудные видео и показывать написание кода, хочется сразу результата, но и донести до людей суть и возможности как что работает. Вот поэтому и тяну с записью своих видео и стартом в челлендже, думаю ещё как лучше всё демонстрировать.

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

---------

Ну и не по теме (предлагаю не углубляться в спор на эту тему - просто поясняю свою позицию)

Безусловно ты лучше всех знаешь правила русского языка. Тем не менее я больше доверяю другим источникам. А именно:

- «Русский орфографический словарь» РАН (в том числе в электронной версии «Академос» Института русского языка им. В. В. Виноградова) фиксирует написание через «е»: кеш, кеширование

Общая закономерность русского письма: не в начале корня после согласных буква «э» пишется для передачи гласного [э] и одновременно для указания на твёрдость предшествующего согласного лишь в ограниченном числе нарицательных слов иноязычного происхождения. В большинстве подобных случаев закрепляется написание с «е», особенно если есть родственное слово с устойчивым «е» (как «кеширование» по отношению к «кеш»)

По такой же модели в языке закрепились и другие заимствования: флеш (не флэш), хеш (и производное хеширование).

Александр Воробьев
На сайте с 03.02.2020
Offline
64
#534
ArbNet #:
хотелось бы наглядности демонстрации в видео. Мне не понятно
К слову, а те видео, что я уже записал ты смотрел? По ним (точнее по тому, о чем в них речь, и что в них демонстрируется) есть, что сказать?
ArbNet
На сайте с 27.10.2019
Online
152
#535
Александр Воробьев #:
К слову, а те видео, что я уже записал ты смотрел? По ним (точнее по тому, о чем в них речь, и что в них демонстрируется) есть, что сказать?
Мельком, не всё смотрел. Говорить тут не чего, всё банально по методичкам..
ArbNet
На сайте с 27.10.2019
Online
152
#536
Александр Воробьев #:
У меня заложена парадигма компиляции. Т.е. в момент хита (наиболее частого, не "первого") - шаблоны не будут вообще затрагиваться. Т.е. на первом хите шаблон (точнее вся необходимая для конкретной страницы структура шаблонов) будет компилироваться в обычные php файлы (или файл). Так же тут могут быть вариации по необходимости - это может быть как вообще статический html. Так и просто php файл который будет формировать подготовленную страницу на основе динамических данных. Это ради производительности. Нет смысла парсить шаблоны каждый раз, достаточно один раз после изменений в них. Это даст прирост производительности:  любой парсинг шаблона (а каком бы он формате не был) - это дорогая операция, и за счет компиляции я избавляюсь от этого на каждом хите, плюс скомпилированный php файл уже обрабатывается OPcache - что дает еще плюс к производительности т.е. единожды созданный байткод не создается каждый раз.
Понятно. То есть ты на основе своего шаблонизатора создаёшь php файлы для каркаса страницы, а потом просто в этих файлах вызываются функции для вставки содержимого. Умно, сам придумал или позаимствовал от куда-то такой подход?
Александр Воробьев
На сайте с 03.02.2020
Offline
64
#537
ArbNet #:
Мельком, не всё смотрел. Говорить тут не чего, всё банально по методичкам..

Ну вот, а ты говоришь "видео". Какой смысл (если принимать во внимание твое пожелание выше) если ты не смотришь, а все, что смог выдать это "Говорить тут не чего, всё банально по методичкам.."  - для этого ни видео, даже кода не нужно. Ведь обоснования требуют размышлений... :) 

Это самое бесполезное пояснение. Цель данной темы попробовать обсуждать вопросы разработки и ведения проекта. Даже если "по методичке". Что не так? В чем недостаток этих подходов? Для чего делать иначе - какой будет профит?  В таком ключе ты можешь вести обсуждение?

Александр Воробьев
На сайте с 03.02.2020
Offline
64
#538
ArbNet #:
Понятно. То есть ты на основе своего шаблонизатора создаёшь php файлы для каркаса страницы, а потом просто в этих файлах вызываются функции для вставки содержимого. Умно, сам придумал или позаимствовал от куда-то такой подход?
Сам по себе подход такой используется практически везде (и не только в PHP). Он на поверхности и вполне естественный т.к. обуславливается тем как работает PHP. Различия только в конкретике реализации. Тут уже лучше погружаться в код (если есть интерес в обсуждении) - видео (тем более если будет без обратной связи) не имеет смысла, т.к. нужны вопросы - ответы. Так что если есть вопросы по реализации - спрашивай.
ArbNet
На сайте с 27.10.2019
Online
152
#539
Александр Воробьев #:
в том числе в электронной версии «Академос» Института русского языка им. В. В. Виноградова

Я же говорю бездари.. давно уже не воспринимаю современных учёных с точки зрения истинности.

Вот тебе даже ответ от ИИ:

Правильный и единственный нормативный вариант в современном русском языке — кэширование (через букву «э»).

Вот подробное объяснение, почему так:

Правило передачи иностранных звуков: В русском языке буква «э» пишется в заимствованных словах после согласных (кроме шипящих и «ц»), чтобы передать твёрдое произношение этого согласного перед гласной [e]. В слове cache (англ. [kæʃ]) звук [k] — твёрдый, поэтому по-русски пишем к + э.

Словарная фиксация: Слово «кэширование» закреплено в авторитетных орфографических словарях (например, в словаре В. В. Лопатина) и входит в перечень обязательных для использования в деловой и технической документации (в частности, оно содержится в справочниках издательства «Мир энциклопедий» и рекомендовано ИРЯ РАН).

Исключение для терминов: Несмотря на то, что в разговорной речи и в некоторых старых текстах можно встретить вариант «кеширование» (по аналогии с другими словами, где «е» смягчает согласную), в строгой литературной норме это считается ошибкой.

Вывод: Пишите всегда «кэширование» (и производные: кэш, кэшировать, кэш-память).
Александр Воробьев
На сайте с 03.02.2020
Offline
64
#540

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

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

joke/src/Cache/FileRelatedCache.php at 8b51829e0157c56deadeed348c8b4cc71fc32fd5 · joke-php/joke
joke/src/Cache/FileRelatedCache.php at 8b51829e0157c56deadeed348c8b4cc71fc32fd5 · joke-php/joke
  • joke-php
  • github.com
A minimal PHP microframework with manual routing and dependency injection container. - joke-php/joke

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий