Хэндлим тему | Дерепко – Telegram
Хэндлим тему | Дерепко
275 subscribers
50 photos
3 videos
1 file
56 links
Discussion group @handle_topic_chat
Contact with me @xepozz
Download Telegram
—————————
| PHP SCHEMA |
—————————

Для конфигурирования через JSON или YAML есть уже JSON и YAML Schema соответственно. И каждый раз разработчики PHP выбирают эти форматы для конфигурирования своих инструментов.

Не так давно появилась идея создать аналогичную схему и валидатор для PHP! Почему бы и не попытаться?

Для чего?

Издавно PHP массивы были очень хороши для задания конфигурировании для “гибких” систем: модульная система с заранее нерегламентированным набором входных данных, потому что данные забираются лишь 1 раз, а дальше распределяются потребителям.

Конечно, валидацию таких входящих параметров можно сделать:
- Нужно определить потребителей
- Заставить потребителей отбираться свои данные из общей кучи
- Делать предупреждение в случае отсутствия или избытка данных


Но это дорого для рантайма и никто таким не занимается. Разве что Symfony компоненты, которые через билдеры создают требования для этих входящих данных: название параметра, уровень вложенности, значение по умолчанию, тип и диапазон значений.

Что это им дает?

- Можно пользователю сказать какие из параметров на определенном уровне ожидаются
- Какой тип значений подходит и нет
- Сделать Quick Fix?
- Дать быстрый фидбек до запуска валидатора, например, с помощью плагина для IDE: Значение 11 больше максимального значения 10; Разрешены “author”, “commenter”, “viewer”, но вы ввели “viewr”

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

А как?

Подобные проблемы решались уже и для других “конфигурационных” языков, на подобии JSON, YAML и их подмножеству – Schema.

С помощью Schema задается состав, порядок и обязательность всех значений в конфигурации, типы и диапазоны значений, ссылки на другие значения и различные комментарии: от deprecated и version contract до обычных комментов.

Гипотетически, можно будет перегонять конфиги из JSON в PHP одной командой, а JSON SCHEMA в PHP SCHEMA.

Все кто хочет поучаствовать в разработке PHP SCHEMA (JSON SCHEMA, YAML SCHEMA), можете присоединяться и накидывать мысли. Я думаю это будет не такой уж и большой проект, но поможет комьюнити сделать чтобы данные и инструменты работали в одном контракте.

Если есть опыт проектирования каких-либо еще конфигов, помимо изложенных мной в посте, то дополняйте.

——

Канал и некоторые начальные мысли по схеме: https://news.1rj.ru/str/phpschema/2
1👍52
Хэндлим тему | Дерепко
————————— | PHP SCHEMA | ————————— Для конфигурирования через JSON или YAML есть уже JSON и YAML Schema соответственно. И каждый раз разработчики PHP выбирают эти форматы для конфигурирования своих инструментов. Не так давно появилась идея создать аналогичную…
А че конфижить?

Места, где применяется конфигурирование на массивах:

YIi2 конфигурации компонентов BaseObject

$config = [
... /// ???
];
$user = new User($config);


YIi2 конфигурации для Factory

$config = [
… /// ????
];
$container->get(MyClass::class, $config);


Validation rules в Yii2. Насколько помню, даже в ларке было что-то похожее.

public function rules() {
return [
[[‘prop1’, ‘prop2’], ‘validator’, ‘param1’, ‘param2’ => ‘valur2’],
];
}


В Yii3 есть конфигурирование параметров, которые учитывают конфигурацию оригинальных компонентов и которые можно расширять по-своему.
А в конфигурации Dependency Injection Container конфигурация может быть только из существующих методов и свойств.

В Drupal есть свои конфиги, пример из доки:


$page = [
// '#type' is a property.
'#type' => 'page',
// 'content' is a nested render array, or child element.
'content' => [
'system_main' => […],
'another_block' => […],
'#sorted' => TRUE,
],
'sidebar_first' => [

],
];



Да вообще какой-нибудь config/my.php с контентом:

return [
… /// ????
];
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥2
Заставляем джуна работать на себя или Jetbrains Junie в деле!

Практически 5 минут назад пришло письмо о том, что мне одобрили инвайт на бета версию.
Скачал, включил, смотрю – нельзя. Оказывается указал почту не ту, на которую зареган мой аккаунт.

Вышел из аккаунта, триал под другой почтой – работает.

Первые слова:
– Чисто. По сравнению с другими АИ-блокнотами, где всё в куче. Здесь разделение есть
– Долго. Sending LLM request работает долговато. Как будто локально у меня сервится моделька.
– Работает! Сказал сконвертить JSON в PHP, прикрепил package.json. Оно пошло грепнуло весь проект и заодно все остальные и файлы перевела в PHP

Всё. Больше ничего нет. Инлайн подсказки, настройки, анализ, пока этого нет. Есть только “чат”, где можно попросить что-то сделать.
Можно еще перезапустить, посмотреть историю, отмена, всё в этом духе.

Русский понимает!

Из письма:

> Junie is currently available in the following JetBrains IDEs: IntelliJ IDEA Ultimate, PyCharm Professional and WebStorm. For now, Junie is supported on only the macOS and Linux platforms.


Ну что, как там называется новый AI блокнот с форком от VS Code?



@handle_topic
1👍6🔥1👏1
Golang
👣 Microsoft анонсировала радикальное улучшение производительности TypeScript за счет новой нативной реализации компилятора, написанной на Go. Самое главное: В 10 раз (!) быстрее компиляция, в 2 раза меньше памяти просит; На видео как раз тест нового…
TypeScript компилятор переписывают с JavaScript на Go.

Увидел еще сегодня утром, только добрался почитать повнимательнее.

На скрине видны бенчмарки некоторых популярных библиотек. Очень сильно – прирост в среднем х10. В том числе, на открытие VS Code.

Новый компилятор будет с 7 версии, сейчас 5.8.

Сейчас существует проблема долгих LSP серверов, которые сводят всю гибкость и модульность поддержки языков и фреймворков в яму, убивая весь DX при разработке: когда ты ввел символ и знаешь что IDE тебе подскажет остальные 10 и ждёшь несколько секунд, пока она сделает это. А чем больше проект, тем больше время ожидания.

JavaScript сам по себе не выполняется, его должен кто-то исполнять: NodeJS / Deno / Bun.
Тогда как в стандартных поставках всегда участвует нода, я бы еще взглянул на сравнение с Deno и Bun. Эти убийцы ноды уже годами показывают приросты x10. Может просто стоит задеприкейтить ноду?

А еще любители Rust пришли в обсуждения нового компилятора и накинули на вентилятор.
Там ничего интересного нет, бессмысленный трёп, в который уже нейронки начали пускать для генерации ответов и возражения.

Ждём PHP на Go? Или лучше Kotlin PHP Target?



Блог
https://devblogs.microsoft.com/typenoscript/typenoscript-native-port/

Обсуждение “Why GO?”
https://github.com/microsoft/typenoscript-go/discussions/411

@handle_topic
1👍5🔥1
FOSSASIA 2025

Free Open Source Software ASIA проходит сегодня в Бангкоке, в Таиланде.

У меня в профиле гитхаба стоит Таиланд, просто не менял еще с момента когда там жил. И около месяца назад получил приглашение придти к ним на митап:
– Входной билет бесплатный
– Могу запитчить свой проект на 5 min pitch или что-то такое
– Пообщаться, посмотреть как всё происходит

Жил бы я в Тае, или оплатили бы мне туда билеты, я бы точно сгонял. Написал письмо с отказом, а так хотелось бы! Пока буду наблюдать онлайн.
Кстати, там из русских будут Яндекс с YDB выступать.

Всем желающим посмотреть онлайн стримы есть ссылка на ютуб.

FOSSASIA идёт несколько дней:

С Четверг, 13 Марта, 2025 5:00 МСК (+3)
По субботу, 15 Марта, 2025 14:00 МСК (+3)



Трансляция
https://www.youtube.com/@FOSSASIAorg

Расписание
https://eventyay.com/e/4c0e0c27/schedule?date=2025-03-13



@handle_topic
2👍3🔥1😢1🫡1
Находки в опенсорсе: Python
Привет! Стартуем новый проект для любителей опенсорса: помогаем меинтейнерам и контрибьюторам найти друг друга. Как оно работает? - В данном канале меинтейнеры разных Python проектов (от CPython, mypy, Litestar до taskiq) могут в любой момент выложить простые…
Помощь в Опенсорсе.

Ребята из Python комьюнити организовали канал с интересной темой: Помощью в опенсорс Python продуктах.

Но ребята шарят за Python 🐍, а PHP 🐘 брать не хотят в компанию. Поэтому я решил организовать свой опенсорс с блэкджеком и всеми прилагающимися!

Канал: @open_source_php

ℹ️ Как это будет работать?

Если вы:
- Автор популярного open source продукта
- Автор не очень популярного продукта, но хотите его сделать известнее
- Контрибьютор, который хочет внести свой вклад в продукт
- Владелец специфичного домена, который может поделиться знаниями

🛠 То вы можете:
- Поделиться ссылкой на Issue, кратко описав что нужно сделать
- Попросить помощи в решении проблемы у продукта, где автор не вы (хоть доработки самого PHP)
- Найти продукт, в который вы можете внести свой вклад
- Пообщаться с автором продукта
- Представить свой проект, написав небольшое описание


Надеюсь, этот канал поможет поднять активность в PHP комьюнити и сделает разработку продуктов немного активнее.



@handle_topic
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍154🔥2
Стачка. 18-19 апреля. Ульяновск.

Стачка – это крупнейшая региональная IT-конференция России. 18-19 апреля она пройдет в Ульяновске (УлГПУ).

→ 4 направления: “Разработка”, “Digital-маркетинг”, “Управление”, “Дизайн и Контент”;
→ 250+ докладов от лучших спикеров IT-индустрии .

Я буду выступать в Разработке с докладом “Удобная разработка”?

Обсудим Developer Experience, как из простого продукта сделать сложную систему, если никому не сказать о наличии документации к этому, как из всего этого появился MetaStorm и куда он растёт.

Регистрация участников и подача докладов уже открыты на сайте: https://ul25.nastachku.ru.
В программе крутые доклады, мастер-классы, афтепати, общение с экспертами!

Кто еще не купил билет, то у меня есть промокод на 15%, дайте знать кому нужен. Кто купил – пишите в чат, встретимся попьём кофе.
1👍8🔥32
Слоник пхп, когда наступил в ларавел
1🤣12👍2🔥2🦄1
Model Context Protocol

Это открытый стандарт, который позволяет AI-приложениям напрямую подключаться к различным источникам данных и инструментам.

Умные штуки могут подключаться к тупым, как это происходило с умными выключателя, которые можно подключить еще и к Алисе.

Представьте, что у вас есть ассистент, который может не только отвечать на вопросы, но и взаимодействовать с вашими гаджетами.
Например, он может включить чайник, выключить свет, завести автомобиль, сказать робо-собаке пойти и пнуть кота 🫡

От вас потребуется в каком-нибудь Claude Desktop добавить ваши MCP и упомянуть ваше желание.

Как это работает:
- Вы ведете диалог с вашим ассистентом, как обычно
- Ассистент понимает, что нужной информацией он не обладает, но ей могут обладать некоторые из активных серверов
- Ассистент начинает взаимодействовать с этими серверами

Пока что идёт этап внедрения, когда различные тулзы делают точки расширения через эти MCP Servers.

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

Главным здесь становится уже не утечка данных, а их потеря. Грустно будет, если вдруг ваш AI ассистент решит дропнуть тяжелую базу, чтобы SQL выполнялся быстрее 🤪

Нужно будет поиграться поплотнее с MCP, есть какие-нибудь бешеные идеи?

——

Сайт со спецификацией, определениями и примерами
https://modelcontextprotocol.io/introduction

@handle_topic
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥6😁2
Essential Tools for JetBrains IDE Plugin Development

Вчера прошел еще один стрим от Jetbrains на тему разработки плагинов.

На стриме рассказали о полезных тулзах, которыми вы 100% будете пользоваться, даже не замечая этого.

Коротко про инструменты:

🐳 DevKit
Плагин для интеграции с plugin.xml (настройки плагина), добавляет инспекций и подсказок в ваш код, который будет взаимодействовать с IDEA SDK. Must-have штука, особенно для начала.
Для *.bnf и *.flex файлов предоставляет удобный запуск генераторов через контекстное меню.

🖥 UI Inspector
DevTools в мире JB IDEA. По Control+Command+Click на элемент открывает модалку, где показано дерево UI элементов, их характеристики “кто создал”, “какой id”, “какая ширина” и т.п.
Помогает найти кнопку/экшен и взять её ID, чтобы вызвать программно или подсмотреть как сверстать такой же элемент самому.

🧱 PsiViewer
Существует как отдельный плагин, так и внутренние тулзы. Делаю практически одно и то же: представляют код в редакторе в виде дерева.
Именно по таким деревьям в плагинах вы и будете “ходить” по коду. Каждый язык имеет свои элементы и способ формирования элементов, поэтому деревья могут быть очень разными. Тем более, на 1 файл могут претендовать несколько языков и можно посмотреть на 2 параллельных дерева.
Помимо деревьев можно узнать некоторую информацию об элементах: что за класс, какие ссылки на него есть, как выглядит структура блоков для будущей работы с форматированием кода.

Для большинства полезных вещей в IDE нужно включить Internal Mode, для этого необходимо добавить idea.is.internal=true к “Custom properties” в “Help” меню.
Можете сделать такое для своей IDE и поиграться.

Я еще заметил у Jakub “Kotlin Notebook”, как Jyputer Notebook, только для IDE!
Очень хочу потестить, хоть это и не официально рабочая штука!

——

Это уже второй стрим за последние полгода про разработку плагинов для JB IDEA.

Невозможно не заметить, что в ребята создают активность и это очень правильно.
Из последнего глобального: переехали со Slack на свой форум. Я думаю это очень сильно поможет индексации в гугле. Сейчас все ссылки ведут на YouTrack, в котором, обычно, ничего не решено и не понятно.
Теперь же у них будет свой stackoverflow, в котором можно помогать и изучать API IDEA.

——

Стрим: https://www.youtube.com/live/blXmgF5gbWg
Enabling Internal Mode: https://plugins.jetbrains.com/docs/intellij/enabling-internal.html
Jetbrains Platform Forum: https://platform.jetbrains.com

@handle_topic
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍5🔥32😎1
This media is not supported in your browser
VIEW IN TELEGRAM
😁6👍4🔥3😱1
Все в Ульяновск?

Сегодня кончилась 13-я Стачка, которая проходила в Ульяновске, бывшем Симбирске, бывшем Синбирске.

Приехал на двух поездах с пересадкой в Москве, приехал за день до начала.

Нам провели экскурсию на завод УАЗ, посмотрели на свежеиспеченые буханки и патриоты.
Впечатляет. 6 минут на конвейере механики на полный сбор патриота! Кузов и внутрянка делается на одном конвейере, потом ставится на полусобранную платформу, которая собирается на другом конвейере, дальше стыкуется и машина едет на тесты.
Посетили музеи УАЗа, есть очень крутые образцы. Жаль, что не было поддержки для их запуска в производство.

Проведи экскурсию по городу, помимо Ленина здесь какое-то огромное количество больших людей побывало: от царей до писателей, от разбойников до полководцев. Неймдроппинг бешеный был.

Погуляли по набережке, спустились вниз, и даже поднялись! Кто был в Ульяновске, тот поймет это 😺

Город советую к посещению, сразу с прогулкой на завод и экскурсией!

@handle_topic
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12🔥4😁1👌1