Некоторые особенности MongoDB
На одном из проектов, с которыми я работаю, основной базой данных стала MongoDB. Я хочу поделиться некоторыми наблюдениями, они будут полезны для тех разработчиков, которые пока не имели дела с Монго.
1. Коллекции.
Базы данных в MongoDB делятся не на таблицы, а на коллекции — по сути дела, одномерные массивы данных, состоящие из отдельных записей.
2. Формат данных.
Каждая запись в коллекции — это JSON-документ. Формально его формат называется BSON, но с точки зрения работы с ним разницы никакой, можете считать, что это JSON. Со всеми вытекающими из этого последствиями — совершенно произвольный набор полей (что положите, то и будет) и произвольной же вложенностью. Подчинённые данные для элементов удобно хранить как раз в таких вложенных наборах — к примеру, ссылки на посты, связанные с текущим.
3. Типизация.
Раз нет обязательных полей, нет и типизации. Под одним и тем же именем вы можете хранить совершенно разные по формату данные. Тем самым вы, возможно, осложните себе жизнь, но это ваше священное право как разработчика.
4. Ключ.
Уникальный идентификатор у элемента, конечно, есть — поле _id. Оно гарантированно будет присутствовать в любой записи. Правда, значение его не цифровое, а символьное. И если ваши элементы нумеруются где-то в другом месте (как у нас), сохраняйте оригинальные id тоже.
Индексы, как и в SQL-базах, присутствуют и действительно ускоряют выборки.
5. Поиск.
В поиске тоже есть своя специфика. Например, запрос на выборку, обращённый напрямую к БД, тоже задаётся в виде JSON. Например, такая запись
или в полном виде
равносильна SQL-запросу типа
Также MongoDB по умолчанию не делает никакой разницы между полем со значением NULL и отсутствующим в этой записи вовсе, потому запрос
Так, запрос
выберет только
а запрос на существование
Вообще, MongoDB — это довольно интересная система, советую поизучать её практически. А я на сегодня закончу, оставив напоследок ссылку на документацию по БД: https://www.mongodb.com/docs/.
На одном из проектов, с которыми я работаю, основной базой данных стала MongoDB. Я хочу поделиться некоторыми наблюдениями, они будут полезны для тех разработчиков, которые пока не имели дела с Монго.
1. Коллекции.
Базы данных в MongoDB делятся не на таблицы, а на коллекции — по сути дела, одномерные массивы данных, состоящие из отдельных записей.
2. Формат данных.
Каждая запись в коллекции — это JSON-документ. Формально его формат называется BSON, но с точки зрения работы с ним разницы никакой, можете считать, что это JSON. Со всеми вытекающими из этого последствиями — совершенно произвольный набор полей (что положите, то и будет) и произвольной же вложенностью. Подчинённые данные для элементов удобно хранить как раз в таких вложенных наборах — к примеру, ссылки на посты, связанные с текущим.
3. Типизация.
Раз нет обязательных полей, нет и типизации. Под одним и тем же именем вы можете хранить совершенно разные по формату данные. Тем самым вы, возможно, осложните себе жизнь, но это ваше священное право как разработчика.
4. Ключ.
Уникальный идентификатор у элемента, конечно, есть — поле _id. Оно гарантированно будет присутствовать в любой записи. Правда, значение его не цифровое, а символьное. И если ваши элементы нумеруются где-то в другом месте (как у нас), сохраняйте оригинальные id тоже.
Индексы, как и в SQL-базах, присутствуют и действительно ускоряют выборки.
5. Поиск.
В поиске тоже есть своя специфика. Например, запрос на выборку, обращённый напрямую к БД, тоже задаётся в виде JSON. Например, такая запись
{post_id: 4},или в полном виде
db.comments.find({post_id: 4}),равносильна SQL-запросу типа
SELECT * FROM `comments` WHERE `post_id` = '4'.Также MongoDB по умолчанию не делает никакой разницы между полем со значением NULL и отсутствующим в этой записи вовсе, потому запрос
{category: null}
отбёрет не только те, у которых поле category содержит null, но и те, в которых нет такого поля. Различить их можно, применяя специальные операторы.Так, запрос
{category: {$type: 'null'}} выберет только
category = null,а запрос на существование
{category: {$exists: false}}
вернёт все записи, где нет поля category.Вообще, MongoDB — это довольно интересная система, советую поизучать её практически. А я на сегодня закончу, оставив напоследок ссылку на документацию по БД: https://www.mongodb.com/docs/.
Mongodb
Welcome to the MongoDB Docs - MongoDB Documentation - MongoDB Docs
Official MongoDB Documentation. Learn to store data in flexible documents, create an Atlas deployment, and use our tools and integrations.
👍2
Как работают очереди в Laravel
Возможно, вы никогда не сталкивались с очередями, но хотите разобраться с тем, как они функционируют. Я заинтересовался этой темой, что-то для себя вынес и готов поделиться найденным с вами.
Рассмотрим вкратце:
- для чего нужны очереди
- как произвести первоначальную настройку проекта
- как создать класс задания
- как вызвать задание в нужном месте
- как работает процесс обработки заданий
Для чего нужны очереди
Как известно, время для отдачи ответа пользователю ограничено, а бывают задачи, которые могут или даже заведомо не укладываются в этот лимит. Например, отправка большого числа писем или обработка больших файлов (которые запросил тот же пользователь). Очевидно, что работу такого типа мы должны выполнять в фоновом режиме, не грузя основной сервер, обрабатывающий запросы. Для этого очереди подходят как нельзя лучше: когда нам надо, мы поставили задачу в очередь, выполняем код дальше, а обработчик очередей выполнит её по мере возможности.
Как произвести первоначальную настройку проекта
Для начала нам нужен драйвер очередей, он указывается в файле
Подробнее о настройке драйверов очередей можно почитать в документации Laravel: https://laravel.com/docs/9.x/queues#driver-prerequisites.
Как создать класс задания
Выполним консольную команду
Пример класса задания: https://github.com/codewayblog/laravel-queues-how/blob/master/SomeJob.php
Как вызвать задание в нужном месте
Обращаемся к статическому методу
Пример вызова: https://github.com/codewayblog/laravel-queues-how/blob/dfeae6f24ce66a7aad1e99562e987b9c17aef376/MainController.php#L17
Как работает процесс обработки заданий
Во время вызова класс задания создаётся, сохраняет нужные данные и сериализуется. В таком упакованном виде задание помещается в очередь (как именно, зависит от драйвера очередей) и там ждёт своего часа.
Обработка заданий запускается с помощью команды
Так в общих чертах устроены очереди в Laravel. Интересный и нужный функционал, на мой взгляд.
Возможно, вы никогда не сталкивались с очередями, но хотите разобраться с тем, как они функционируют. Я заинтересовался этой темой, что-то для себя вынес и готов поделиться найденным с вами.
Рассмотрим вкратце:
- для чего нужны очереди
- как произвести первоначальную настройку проекта
- как создать класс задания
- как вызвать задание в нужном месте
- как работает процесс обработки заданий
Для чего нужны очереди
Как известно, время для отдачи ответа пользователю ограничено, а бывают задачи, которые могут или даже заведомо не укладываются в этот лимит. Например, отправка большого числа писем или обработка больших файлов (которые запросил тот же пользователь). Очевидно, что работу такого типа мы должны выполнять в фоновом режиме, не грузя основной сервер, обрабатывающий запросы. Для этого очереди подходят как нельзя лучше: когда нам надо, мы поставили задачу в очередь, выполняем код дальше, а обработчик очередей выполнит её по мере возможности.
Как произвести первоначальную настройку проекта
Для начала нам нужен драйвер очередей, он указывается в файле
config/queue.php (пример моего файла тут: https://github.com/codewayblog/laravel-queues-how/blob/master/queue.php), также в .env-файле стоит указать дефолтный драйвер (ключ QUEUE_CONNECTION). Вот мой env-файл: https://github.com/codewayblog/laravel-queues-how/blob/master/.env. Как видите, я использовал RabbitMQ. Он нуждается в отдельной настройке, но для пробы можно обойтись базой данных (драйвер database).Подробнее о настройке драйверов очередей можно почитать в документации Laravel: https://laravel.com/docs/9.x/queues#driver-prerequisites.
Как создать класс задания
Выполним консольную команду
php artisan make:job {имя-класса}. В папке app/Jobs создатся шаблонный класс с указанным именем и методом handle(). В конструкторе привязываем в класс данные, которые нужны для выполнения задания, в методе handle() — ту логику, которая нужна для собственно выполнения. Стоит учесть, что выполняться задача будет в консольном режиме, поэтому всякие браузерные штуки будут ей недоступны — их надо зашить ещё в момент создания.Пример класса задания: https://github.com/codewayblog/laravel-queues-how/blob/master/SomeJob.php
Как вызвать задание в нужном месте
Обращаемся к статическому методу
dispatch() класса команды. Передаём туда все те же аргументы, которые требуются в конструкторе — они будут туда проброшены внутри dispatch().Пример вызова: https://github.com/codewayblog/laravel-queues-how/blob/dfeae6f24ce66a7aad1e99562e987b9c17aef376/MainController.php#L17
Как работает процесс обработки заданий
Во время вызова класс задания создаётся, сохраняет нужные данные и сериализуется. В таком упакованном виде задание помещается в очередь (как именно, зависит от драйвера очередей) и там ждёт своего часа.
Обработка заданий запускается с помощью команды
php artisan queue:work. В цикле обработчик забирает задание, распаковывает его обратно в экземпляр класса, и вызывает метод handle().Так в общих чертах устроены очереди в Laravel. Интересный и нужный функционал, на мой взгляд.
GitHub
laravel-queues-how/queue.php at master · codewayblog/laravel-queues-how
Contribute to codewayblog/laravel-queues-how development by creating an account on GitHub.
👍1
Выступаю на PHP Russia 2022
Про выступление
Мой доклад называется "Модульный Laravel, или как собрать фичу в кучу". Он принят в секцию "Митап" и по предварительным данным выступать я буду 25 ноября с 17 часов. Сама конференция будет на сей раз совмещена с Highload++ (просто в разных залах выступления планируются) и назначена на два дня: 24 и 25 ноября. Цены, к сожалению, уже кусаются. 60 тысяч за очное участие. Но лично я считаю, что посетить конференцию будет крайне полезно.
Тезисы доклада
1. Структура файлов, генерируемая при создании Laravel-проекта, проблематична для проектов сложнее набора CRUD-ов. Файлы складываются по типам, и при работе с одной фичей приходится перелопатить несколько папок. Необходимость частичного выделения функционала в отдельный сервис превращается в головную боль.
2. Предлагается новый feature-based подход, основывающийся на группировке кода и шаблонов по фичам. Изначально это про структуру хранения вашего кода.
3. Для реализации этого подхода создана библиотека, о которой речь также пойдёт в выступлении. Это как раз та самая, которую я упоминал в предыдущих постах (https://packagist.org/packages/garmonic/laravel-features-arch, а пост про создание composer-пакета тут: https://t.me/code_way/10).
4. Приведя в порядок структуру файлов, можно пойти дальше и реализовать на базе той же библиотеки полноценную функциональную модульность — такую возможность она тоже даёт.
Есть шанс, что видеозапись будет, но гарантии нет. Так что лучше приходите живьём.
Полезные ссылки
Весь список докладов: https://highload.ru/moscow/2022/abstracts
Билеты: https://highload.ru/moscow/2022#prices
Расписание конференции в текущем виде: https://docs.google.com/spreadsheets/d/1-S-wRL2xMQOTpmOvY9kHuzYq-Gaj33Z-UVrSf9mqRyA/edit#gid=6132978
#php #laravel #конференция #митап #phprussia #phprussia2022
Про выступление
Мой доклад называется "Модульный Laravel, или как собрать фичу в кучу". Он принят в секцию "Митап" и по предварительным данным выступать я буду 25 ноября с 17 часов. Сама конференция будет на сей раз совмещена с Highload++ (просто в разных залах выступления планируются) и назначена на два дня: 24 и 25 ноября. Цены, к сожалению, уже кусаются. 60 тысяч за очное участие. Но лично я считаю, что посетить конференцию будет крайне полезно.
Тезисы доклада
1. Структура файлов, генерируемая при создании Laravel-проекта, проблематична для проектов сложнее набора CRUD-ов. Файлы складываются по типам, и при работе с одной фичей приходится перелопатить несколько папок. Необходимость частичного выделения функционала в отдельный сервис превращается в головную боль.
2. Предлагается новый feature-based подход, основывающийся на группировке кода и шаблонов по фичам. Изначально это про структуру хранения вашего кода.
3. Для реализации этого подхода создана библиотека, о которой речь также пойдёт в выступлении. Это как раз та самая, которую я упоминал в предыдущих постах (https://packagist.org/packages/garmonic/laravel-features-arch, а пост про создание composer-пакета тут: https://t.me/code_way/10).
4. Приведя в порядок структуру файлов, можно пойти дальше и реализовать на базе той же библиотеки полноценную функциональную модульность — такую возможность она тоже даёт.
Есть шанс, что видеозапись будет, но гарантии нет. Так что лучше приходите живьём.
Полезные ссылки
Весь список докладов: https://highload.ru/moscow/2022/abstracts
Билеты: https://highload.ru/moscow/2022#prices
Расписание конференции в текущем виде: https://docs.google.com/spreadsheets/d/1-S-wRL2xMQOTpmOvY9kHuzYq-Gaj33Z-UVrSf9mqRyA/edit#gid=6132978
#php #laravel #конференция #митап #phprussia #phprussia2022
highload.ru
Алексей Васильев на HighLoad++ 2022
1. Структура файлов, генерируемая при создании Laravel-проекта, проблематична для проектов сложнее набора CRUD'ов. Файлы складываются по типам, и при работе с одной фичей приходится перелопатить несколько папок. Необходимость частичного выделения функционала…
Forwarded from PHP Russia Channel
Про модульный Laravel, или как собрать фичу в кучу расскажет Алексей Васильев
⠀
📋 https://bx.vc/h9k0pd
⠀
Структура файлов, генерируемая при создании Laravel-проекта, проблематична для проектов сложнее набора CRUD'ов. Файлы складываются по типам, и при работе с одной фичей приходится перелопатить несколько папок. Необходимость частичного выделения функционала в отдельный сервис превращается в головную боль.
⠀
Предлагается новый feature-based-подход, основывающийся на группировке кода и шаблонов по фичам.
⠀
Для реализации этого подхода Алексей создал библиотеку, о которой речь также пойдёт в выступлении.
⠀
Приведя в порядок структуру файлов, можно пойти дальше и реализовать на базе той же библиотеки полноценную функциональную модульность — такую возможность она тоже даёт.
⠀
🖐 Ждем вас 24 и 25 ноября в Москве
⠀
✅ Программа конференции и билеты здесь - https://bx.vc/wsgiyp
⠀
📋 https://bx.vc/h9k0pd
⠀
Структура файлов, генерируемая при создании Laravel-проекта, проблематична для проектов сложнее набора CRUD'ов. Файлы складываются по типам, и при работе с одной фичей приходится перелопатить несколько папок. Необходимость частичного выделения функционала в отдельный сервис превращается в головную боль.
⠀
Предлагается новый feature-based-подход, основывающийся на группировке кода и шаблонов по фичам.
⠀
Для реализации этого подхода Алексей создал библиотеку, о которой речь также пойдёт в выступлении.
⠀
Приведя в порядок структуру файлов, можно пойти дальше и реализовать на базе той же библиотеки полноценную функциональную модульность — такую возможность она тоже даёт.
⠀
🖐 Ждем вас 24 и 25 ноября в Москве
⠀
✅ Программа конференции и билеты здесь - https://bx.vc/wsgiyp
По горячим следам PHP Russia
Конференция закончилась сегодня после 19 часов. Было много интересных докладов, обсуждений, познакомился с многими замечательными разработчиками. Сама атмосфера была потрясающая: живо, радостно, но по-деловому.
Ждите обновлений — будут по крайней мере краткие отзывы на все доклады, где я был и рассказ о моём собственном выступлении.
#phprussia #phprussia2022
Конференция закончилась сегодня после 19 часов. Было много интересных докладов, обсуждений, познакомился с многими замечательными разработчиками. Сама атмосфера была потрясающая: живо, радостно, но по-деловому.
Ждите обновлений — будут по крайней мере краткие отзывы на все доклады, где я был и рассказ о моём собственном выступлении.
#phprussia #phprussia2022
Доклады первого дня конференции
(по следам PHP Russia 2022)
Привожу выступления, на которых я был, и краткие отзывы на них. Почти не редактировал записанное к себе сразу после очередного доклада.
1. Доклад Александра Пряхина
"Долгоиграющие приложения в PHP"
Очень интересно, много было про особенности написания демонов и параллельную обработку данных. Это не самый типичный способ использования PHP, поэтому там попадаются неочевидные для разработчика вещи.
2. Доклад Александра Лисаченко
"Виртуализируй меня... полностью!"
Пока недостаточно разбираюсь в Docker/Kubernetes, но было любопытно. Стоит покопаться в этой теме. В основном речь шла о тонкой настройке Docker и Kubernetes с использованием специального синтаксиса.
3. Доклад Валентина Удальцова
"ID-баттл: UUID vs автоинкремент"
Понятная проблема, полезное сравнение разных вариантов идентификаторов. В итоге получилось, что в зависимости от задачи можно использовать UUID v.7 или автоинкремент (который не так плох, как может показаться. Я пока UUID толком не использовал, может, и зря.
4. Доклад Александра Володина
"Апгрейд и рефакторинг PHP-проектов — теперь это просто"
Получилось очень харизматично и весело 😀 Докладчик — адепт
5. Доклад Александра Кирсанова
"Честные модули внутри монолита, или Когда Composer не подходит"
Классный доклад про новое решение команды VK —
6. Доклад Валерия Горбачёва
"Хождение по граблям PDO"
Захватывающее повествование о неочевидных особенностях работы
7. Доклад Петра Мязина
"Интеграция PHP-проекта с 1С"
Познавательное выступление, особенно в связи с обращениями к 1С по Rest API и HTTP-сервисам стороны 1С. У нас на проекте тоже есть синхронизация с 1С, но работает она по старинке, через XML-файлики. Кстати было узнать, что можно и по-другому.
Далее будет про второй день PHP Russia, как и обещал. Скорее всего, пост выйдет сегодня или завтра.
#php #phprussia #phprussia2022 #HighLoadMoscow2022
(по следам PHP Russia 2022)
Привожу выступления, на которых я был, и краткие отзывы на них. Почти не редактировал записанное к себе сразу после очередного доклада.
1. Доклад Александра Пряхина
"Долгоиграющие приложения в PHP"
Очень интересно, много было про особенности написания демонов и параллельную обработку данных. Это не самый типичный способ использования PHP, поэтому там попадаются неочевидные для разработчика вещи.
2. Доклад Александра Лисаченко
"Виртуализируй меня... полностью!"
Пока недостаточно разбираюсь в Docker/Kubernetes, но было любопытно. Стоит покопаться в этой теме. В основном речь шла о тонкой настройке Docker и Kubernetes с использованием специального синтаксиса.
3. Доклад Валентина Удальцова
"ID-баттл: UUID vs автоинкремент"
Понятная проблема, полезное сравнение разных вариантов идентификаторов. В итоге получилось, что в зависимости от задачи можно использовать UUID v.7 или автоинкремент (который не так плох, как может показаться. Я пока UUID толком не использовал, может, и зря.
4. Доклад Александра Володина
"Апгрейд и рефакторинг PHP-проектов — теперь это просто"
Получилось очень харизматично и весело 😀 Докладчик — адепт
Rector и активно продвигал использование этого инструмента (пожалуй, даже слишком активно). Но даже если отбросить фанатизм, Rector — реально полезная вещь.5. Доклад Александра Кирсанова
"Честные модули внутри монолита, или Когда Composer не подходит"
Классный доклад про новое решение команды VK —
Modulite. Средства PHP не позволяют изолировать отдельные классы, Modulite помогает это реализовать (путём добавления плагина для PHPStorm и новых инструментов в CI/CD). Полезная вещь для многих разработчиков.6. Доклад Валерия Горбачёва
"Хождение по граблям PDO"
Захватывающее повествование о неочевидных особенностях работы
PDO с разными движками БД (при всей универсальности PDO они таки есть). Очень разнообразный опыт докладчика, интересно было прикоснуться к нему.7. Доклад Петра Мязина
"Интеграция PHP-проекта с 1С"
Познавательное выступление, особенно в связи с обращениями к 1С по Rest API и HTTP-сервисам стороны 1С. У нас на проекте тоже есть синхронизация с 1С, но работает она по старинке, через XML-файлики. Кстати было узнать, что можно и по-другому.
Далее будет про второй день PHP Russia, как и обещал. Скорее всего, пост выйдет сегодня или завтра.
#php #phprussia #phprussia2022 #HighLoadMoscow2022
❤1
🗓 Доклады второго дня конференции
(по следам PHP Russia 2022)
1. Доклад Сергея Тарасова
"Как мы приготовили массу блюд с помощью одного ингредиента: GraphQL"
GraphQL — интересная технология, стал немного лучше понимать её и для чего она нужна. И рассказано было хорошо, довольно легко для восприятия.
2. Доклад Рамазана Рамазанова
"Почему PHP такой дырявый"
Многие уязвимости, упомянутые в выступлении, и советы по избежанию их очевидные, но всё-таки важно поднимать тему безопасности — об этом в пылу разработки часто забывают. И правильно спикер отметил, что фреймворки — тоже не панацея.
3. Круглый стол
"Domain Driven Design и PHP: идеальная пара или натягивание совы на глобус?"
Краткое, но содержательное погружение в тему DDD. Шутки про отсутствующий собственно стол тоже очень оживили обстановку. Отдельно отмечу присутствие эксперта из мира C# Алексея Мерсона — это расширило контекст обсуждаемых проблем.
4. Доклад Ивана Красникова
"Безболезненная подгрузка миллионов товаров с сотен интернет-магазинов на PHP"
Интересный опыт спикера, уверен, что доклад был полезен всем, кто работает с различными большими выгрузками, товарными в особенностями. Если будем заводить ElasticSearch, точно стоит вспомнить основные положения.
5. Доклад Ивана Лещёва
"Фича — это объект! Сокращаем диффы, снижаем каплинг, продлеваем жизнь"
Свежий и довольно бескомпромиссный взгляд на фичу и организацию кода. Есть, о чём задуматься с точки зрения архитектуры кода.
Далее будет пост про моё выступление, с приложением слайдов и текста. По срокам: самое позднее в субботу.
#php #phprussia #phprussia2022 #HighLoadMoscow2022
(по следам PHP Russia 2022)
1. Доклад Сергея Тарасова
"Как мы приготовили массу блюд с помощью одного ингредиента: GraphQL"
GraphQL — интересная технология, стал немного лучше понимать её и для чего она нужна. И рассказано было хорошо, довольно легко для восприятия.
2. Доклад Рамазана Рамазанова
"Почему PHP такой дырявый"
Многие уязвимости, упомянутые в выступлении, и советы по избежанию их очевидные, но всё-таки важно поднимать тему безопасности — об этом в пылу разработки часто забывают. И правильно спикер отметил, что фреймворки — тоже не панацея.
3. Круглый стол
"Domain Driven Design и PHP: идеальная пара или натягивание совы на глобус?"
Краткое, но содержательное погружение в тему DDD. Шутки про отсутствующий собственно стол тоже очень оживили обстановку. Отдельно отмечу присутствие эксперта из мира C# Алексея Мерсона — это расширило контекст обсуждаемых проблем.
4. Доклад Ивана Красникова
"Безболезненная подгрузка миллионов товаров с сотен интернет-магазинов на PHP"
Интересный опыт спикера, уверен, что доклад был полезен всем, кто работает с различными большими выгрузками, товарными в особенностями. Если будем заводить ElasticSearch, точно стоит вспомнить основные положения.
5. Доклад Ивана Лещёва
"Фича — это объект! Сокращаем диффы, снижаем каплинг, продлеваем жизнь"
Свежий и довольно бескомпромиссный взгляд на фичу и организацию кода. Есть, о чём задуматься с точки зрения архитектуры кода.
Далее будет пост про моё выступление, с приложением слайдов и текста. По срокам: самое позднее в субботу.
#php #phprussia #phprussia2022 #HighLoadMoscow2022
👍2
Мой доклад на PHP Russia: как это было
В этом посте многое касается обстановки и того, что было вокруг выступления. Если вас интересует только содержательная его часть, можете скачать презентацию и текст ниже.
Сам же текст получился большим, милости прошу в Telegraph: https://telegra.ph/Moj-doklad-na-PHP-Russia-kak-ehto-bylo-12-03
В этом посте многое касается обстановки и того, что было вокруг выступления. Если вас интересует только содержательная его часть, можете скачать презентацию и текст ниже.
Сам же текст получился большим, милости прошу в Telegraph: https://telegra.ph/Moj-doklad-na-PHP-Russia-kak-ehto-bylo-12-03
Telegraph
Мой доклад на PHP Russia: как это было
Преамбула Это было 25 ноября в пятом часу дня. 4-й этаж Crocus Expo. Предыдущий доклад в 7-м зале закончился раньше ожидаемого, я перебрался в 8-й. Рядом со входом меня встретила девушка из HelpTeam по имени Саша, которая и рассказала вкратце, что нужно будет…
Итоги 2022 года в PHP-сообществе
Крайне советую заполнить форму опроса. Потом, если хотите, возвращайтесь и почитайте мои ответы.
1. В 2022 году я
Стал сеньором.
В нашей небольшой команде пока нет грейдов, но привлечение меня к собеседованиям в качестве ведущего разработчика говорит само за себя. Ну и плюс своя библиотека и выступление на PHP Russia.
2. В этом году моим основным языком был
PHP.
Собственно, и с чего бы ему поменяться? PHP — основа стека команды, да и моего личного. Мне нравится этот язык, и я продолжу на нём писать. Тем более, со временем он становится только лучше.
3. А еще я пробовал(а) писать на
Не пробовал.
В наступающем году всё-таки доберусь до Go, может, и другие языки потыкаю.
4. Основной PHP-фреймворк на работе
Laravel.
Как выбрали его для проектов, так и сохраняем ему верность. Я хорошо знаю особенности Laravel, но и до сих пор обнаруживаю в нём какие-то любопытные вещи.
5. Любимый PHP-фреймворк вне работы
Laravel.
На личные проекты в завершающемся году было не так много времени, однако это не помешало по-прежнему предпочитать именно этот фреймворк.
6. CMS которые ты используешь в работе
Не использую.
Сами мы с контентом не работаем, а вот менеджеры пользуются инструментами, созданными нами же.
7. В 2022 году моя команда
на 7.4.
Надеюсь, на 8-ю версию когда-нибудь перейдём, но пока сидим на 7.4.
8. Какие компании заметны в PHP-сообществе?
VK, Badoo, Avito, Skyeng, Happy Inc, Manychat
Ответил, что было знакомо по Хабру и по прошедшей конференции.
9. 2022 год — год релокаций. Пришлось ли тебе переехать?
Не уезжал(а) и не планирую.
10. 2022 год — год релокаций. Пришлось ли тебе искать новое место работы?
Нет.
Я уже 2,5 года в Equip Group, в том числе весь 2022-й.
11. В этом году я регулярно читал(а), смотрел(а), слушал(а)
Подкаст Пятиминутка PHP, Библиотека PHP-шника, Пых, другое (Cutcode на Youtube)
В "Библиотеке PHP-шника" столько всего выходит, не успеваю читать. С остальными двумя в этом смысле благополучнее. Cutcode смотрю от случая к случаю (но интересно, к тому же это одно из немногих русскоязычных мест, где регулярно рассказывают об обновлениях Laravel).
12. Статья года (напиши название или ссылку — составим рейтинг, что почитать другим).
"Перестаньте использовать SQLite в Unit-тестах"
Ещё одна хорошая версия — "PHPCleanArchitecture — Что нового?".
13. Видео / доклад года (напиши название или ссылку — составим рейтинг, что почитать другим).
Доклад Валерия Горбачёва "Хождение по граблям PDO" на PHP Russia.
Выбирать я мог, по сути, только из тех докладов, где я был (и которые упоминал в прошлых постах). Доклад про PDO — возможно, не бесспорный, но хороший кандидат. Лишнее напоминание о том, чтобы мы не полагались полностью на библиотеки — всю работу они за нас не сделают, и нюансы при их использовании всегда есть.
14. Библиотека года (напиши название или ссылку).
https://github.com/VKCOM/modulite
Пусть
Крайне советую заполнить форму опроса. Потом, если хотите, возвращайтесь и почитайте мои ответы.
1. В 2022 году я
Стал сеньором.
В нашей небольшой команде пока нет грейдов, но привлечение меня к собеседованиям в качестве ведущего разработчика говорит само за себя. Ну и плюс своя библиотека и выступление на PHP Russia.
2. В этом году моим основным языком был
PHP.
Собственно, и с чего бы ему поменяться? PHP — основа стека команды, да и моего личного. Мне нравится этот язык, и я продолжу на нём писать. Тем более, со временем он становится только лучше.
3. А еще я пробовал(а) писать на
Не пробовал.
В наступающем году всё-таки доберусь до Go, может, и другие языки потыкаю.
4. Основной PHP-фреймворк на работе
Laravel.
Как выбрали его для проектов, так и сохраняем ему верность. Я хорошо знаю особенности Laravel, но и до сих пор обнаруживаю в нём какие-то любопытные вещи.
5. Любимый PHP-фреймворк вне работы
Laravel.
На личные проекты в завершающемся году было не так много времени, однако это не помешало по-прежнему предпочитать именно этот фреймворк.
6. CMS которые ты используешь в работе
Не использую.
Сами мы с контентом не работаем, а вот менеджеры пользуются инструментами, созданными нами же.
7. В 2022 году моя команда
на 7.4.
Надеюсь, на 8-ю версию когда-нибудь перейдём, но пока сидим на 7.4.
8. Какие компании заметны в PHP-сообществе?
VK, Badoo, Avito, Skyeng, Happy Inc, Manychat
Ответил, что было знакомо по Хабру и по прошедшей конференции.
9. 2022 год — год релокаций. Пришлось ли тебе переехать?
Не уезжал(а) и не планирую.
10. 2022 год — год релокаций. Пришлось ли тебе искать новое место работы?
Нет.
Я уже 2,5 года в Equip Group, в том числе весь 2022-й.
11. В этом году я регулярно читал(а), смотрел(а), слушал(а)
Подкаст Пятиминутка PHP, Библиотека PHP-шника, Пых, другое (Cutcode на Youtube)
В "Библиотеке PHP-шника" столько всего выходит, не успеваю читать. С остальными двумя в этом смысле благополучнее. Cutcode смотрю от случая к случаю (но интересно, к тому же это одно из немногих русскоязычных мест, где регулярно рассказывают об обновлениях Laravel).
12. Статья года (напиши название или ссылку — составим рейтинг, что почитать другим).
"Перестаньте использовать SQLite в Unit-тестах"
Ещё одна хорошая версия — "PHPCleanArchitecture — Что нового?".
13. Видео / доклад года (напиши название или ссылку — составим рейтинг, что почитать другим).
Доклад Валерия Горбачёва "Хождение по граблям PDO" на PHP Russia.
Выбирать я мог, по сути, только из тех докладов, где я был (и которые упоминал в прошлых постах). Доклад про PDO — возможно, не бесспорный, но хороший кандидат. Лишнее напоминание о том, чтобы мы не полагались полностью на библиотеки — всю работу они за нас не сделают, и нюансы при их использовании всегда есть.
14. Библиотека года (напиши название или ссылку).
https://github.com/VKCOM/modulite
Пусть
Modulite и была представлена только на ноябрьской конференции, я уверен, что она наведёт ещё шороху в PHP-мире.Google Docs
Привет! Подводим итоги 2022 в русскоязычном PHP-сообществе.
Результаты опубликуем в конце января / начале февраля на phpcommunity.ru. При желании в конце можно оставить почту — волей рандома подарим кому-нибудь PHP-слона и классный мерч.
Кстати, здесь можно посмотреть итоги за 2021.
Кстати, здесь можно посмотреть итоги за 2021.
👍2
Вести с полей
А именно с PHP Russia 2024.
Как будто и не прошло два года)
Насыщенный был сегодня день, дальше накидаю фото и видео из снятого.
Посетил 6 докладов из 8 возможных, на утренний не доехал ещё, посмотрел в два захода трансляцию, пятичасовой пропустил из-за собеседования.
Рад был видеть знакомые лица — Валентина Удальцова, Петра Мязина, Александра Макарова, познакомиться с автором канала CutCode Данилом Щуцким.
Осталось передохнуть перед завтрашним продолжением! 🔥🔥🔥
А именно с PHP Russia 2024.
Как будто и не прошло два года)
Насыщенный был сегодня день, дальше накидаю фото и видео из снятого.
Посетил 6 докладов из 8 возможных, на утренний не доехал ещё, посмотрел в два захода трансляцию, пятичасовой пропустил из-за собеседования.
Рад был видеть знакомые лица — Валентина Удальцова, Петра Мязина, Александра Макарова, познакомиться с автором канала CutCode Данилом Щуцким.
Осталось передохнуть перед завтрашним продолжением! 🔥🔥🔥
🔥2❤1