Запилил статейку про то, что не надо пытаться использовать каждый шаблон проектирования. "Please, stop talking about Repository pattern with Eloquent" - https://adelf.tech/2019/useless-eloquent-repositories Завтра на хабре перевод сделаю.
Обсуждать попробуем на реддите (а вдруг кто-то таки сагрится, авторов статей про репозитории в ларавель проектах много): https://www.reddit.com/r/laravel/comments/b3fmhx/please_stop_talking_about_repository_pattern_with/
Обсуждать попробуем на реддите (а вдруг кто-то таки сагрится, авторов статей про репозитории в ларавель проектах много): https://www.reddit.com/r/laravel/comments/b3fmhx/please_stop_talking_about_repository_pattern_with/
adelf.tech
Please, stop talking about Repository pattern with Eloquent | adelf.tech
Not every pattern should be implemented in application. Each pattern should be used in right place and time. Trying to use the Repository pattern with Eloquent entities is not a good idea.
👍1
Вчерашняя статья зашла нормально. Жалко никто особо спорить не стал. Перевод на хабре: https://habr.com/post/444688/
Вторая (и, надеюсь, последняя) статья про репозитории с элоквентом. Описывается полезный частичный вариант их использования. Для запросов чтения. https://adelf.tech/2019/read-eloquent-repositories
Обсуждаем и плюсуем на реддите: https://www.reddit.com/r/laravel/comments/b5ryn2/useful_eloquent_repositories_adelftech/
Перевод на хабре - скоро.
Обсуждаем и плюсуем на реддите: https://www.reddit.com/r/laravel/comments/b5ryn2/useful_eloquent_repositories_adelftech/
Перевод на хабре - скоро.
adelf.tech
Useful Eloquent Repositories? | adelf.tech
Repository pattern might be used partially with Eloquent and be very useful. CQRS, Decorator and other good practices here.
Подал заявку на доклад на Laracon EU Amsterdam. Попробую "наехать" на Адама Вотана. А вдруг возьмут? :) Правда, немного напутал. Думал она в мае уже. А оказывается - в конце августа. Это в Мадриде у них будет эвент майский, но у меня не получается туда попасть.
На моем новом проекте(которому уже лет 9) права юзеров на какие-то действия сделаны через битовые маски. Модная тема была раньше, чтобы сэкономить пару байт в базе данных. Сейчас больше двух сотен разных прав(или пермишенами их правильнее называть). Совет простой - никогда не используйте битовые маски :) Особенно когда командой разрабатывается. Уже при мне очень сильно налажали из-за обычной опечатки. Хорошо хоть на продакшен не вылезло...
До конференции DevConf https://devconf.ru/ осталось чуть больше месяца. До 21 мая можно подавать заявки на доклады. Если есть чем поделиться - https://conf.guru/ru/c/devconf2019/offer
devconf.ru
Профессиональная конференция веб-разработчиков Devconf 2019
DevConf - профессиональная конференция, посвященная ведущим технологиям программирования и веб-разработки.
Кажется, меня таки заапрувили на Laracon EU :) Будем пробовать жечь! Доклад будет в противовес докладу Адама Вотана "Cruddy by design". Надо же народу и другой взгляд показать!
We are super excited that we've signed the first 5 speakers for Laracon EU in Amsterdam. This year Amsterdam is going to be packed with 25+ technically focused talks in an exceptionally amazing venue.
The world is NOT cruddy by design by Adel Faizrakhmanov
Event Sourcing in Laravel with EventSauce by Dries Vints
Performance optimisation: how do I go about it? by Kasia Zien
Time Driven Development by Katerina Trajchevska
Be nice, help the person who hacks your servers to get your data by Srdjan Vranac
https://laracon.eu/2019/amsterdam
We are super excited that we've signed the first 5 speakers for Laracon EU in Amsterdam. This year Amsterdam is going to be packed with 25+ technically focused talks in an exceptionally amazing venue.
The world is NOT cruddy by design by Adel Faizrakhmanov
Event Sourcing in Laravel with EventSauce by Dries Vints
Performance optimisation: how do I go about it? by Kasia Zien
Time Driven Development by Katerina Trajchevska
Be nice, help the person who hacks your servers to get your data by Srdjan Vranac
https://laracon.eu/2019/amsterdam
21 июня в рамках конференции DevConf (https://devconf.ru) будет проведен бесплатный митап Larabeer Moscow. План мероприятия: в неформальной обстановке послушать доклады, пообщаться друг с другом и найти точки соприкосновения. Мой доклад про сложности большого проекта и их преодоление уже в программе.
Нужны те, кому тоже есть чем поделиться. Высоких требований к докладам нет - просто шарим знания друг с другом. Хочется просто послушать и пообщаться? Тоже будем рады.
Регистрируйтесь - https://www.meetup.com/ru-RU/Laravel-Russia/events/262030886/
Нужны те, кому тоже есть чем поделиться. Высоких требований к докладам нет - просто шарим знания друг с другом. Хочется просто послушать и пообщаться? Тоже будем рады.
Регистрируйтесь - https://www.meetup.com/ru-RU/Laravel-Russia/events/262030886/
devconf.ru
Профессиональная конференция веб-разработчиков Devconf 2019
DevConf - профессиональная конференция, посвященная ведущим технологиям программирования и веб-разработки.
Давно ничего не писал. Отдыхал, работал, плюс опять увлекся плагинописательством к шторму. Обновил свой .env files support плагин. Сильно оптимизировал его, убрав ненужную индексацию. Начал писать новый, на Kotlin. До ужаса приятный язык. После некоторой неловкости при знакомстве, уже общаюсь с ним довольно легко. Очень много плюшек. Недавно вспомнил, что уже в конце августа выступать на Laracon :) Для тренировки написал небольшую статью, опишу ее в отдельном посте.
Небольшая статья про кеширование в Laravel. Вроде и про основы, но и некоторые трюки и запреты присутствуют.
https://adelf.tech/2019/laravel-caching-basics
Перевод на хабре: https://habr.com/ru/post/463495/
https://adelf.tech/2019/laravel-caching-basics
Перевод на хабре: https://habr.com/ru/post/463495/
adelf.tech
Laravel caching basics | adelf.tech
Caching technique allows to create much more scalable applications by remembering some query results using fast in-memory storage engines. However, incorrectly implemented caching can dramatically reduce application's user experience. This article is about…
Очень давно ничего не писал. Этому есть уважительная причина. Мое выступление на Laracon было не очень удачным, я расстроился и решил сделать что-нибудь, чтобы компенсировать неудачу.
Компенсация вылилась в три месяца напряженной работы, и это при том, что мой текущий фулл-тайм контракт никто не отменял. Результатом стал новый Laravel плагин для PhpStorm, содержащий огромное количество всевозможных авто-дополнений и кодогенераций, которые значительно упрощают рутинные операции при Laravel-разработке. Небольшое обзорное видео тут - https://youtu.be/8klTJYhNo-A
Меня невероятно прет от разработки плагинов для IDEA на Котлин. Мечтаю о том, чтобы делать это фулл-тайм. Поэтому решил попробовать его продавать)
Компенсация вылилась в три месяца напряженной работы, и это при том, что мой текущий фулл-тайм контракт никто не отменял. Результатом стал новый Laravel плагин для PhpStorm, содержащий огромное количество всевозможных авто-дополнений и кодогенераций, которые значительно упрощают рутинные операции при Laravel-разработке. Небольшое обзорное видео тут - https://youtu.be/8klTJYhNo-A
Меня невероятно прет от разработки плагинов для IDEA на Котлин. Мечтаю о том, чтобы делать это фулл-тайм. Поэтому решил попробовать его продавать)
YouTube
Продуктивная Laravel разработка с Laravel Idea
Новый плагин для PhpStorm для эффективной Laravel-разработки. Генерация кода и удобные авто-дополнения, ускоряющие рутинную часть работы.
https://plugins.jetbrains.com/plugin/13441-laravel-idea
Ссылка на упоминаемый Laravel Ide helper: https://github.c…
https://plugins.jetbrains.com/plugin/13441-laravel-idea
Ссылка на упоминаемый Laravel Ide helper: https://github.c…
Я создал трейт в проекте :( да не прогневаются на меня боги за это!
Я давно придерживаюсь мнения, что трейты в PHP созданы лишь для того, чтобы затыкать дыры в архитектуре. И здесь идеальный пример. Необходимо было создать удобное редактирование бизнес-правил для юзеров. Там две почти параллельные иерархии классов и очевидно, что смысл в них один и тот же и они должны были быть объединены! Но нельзя, потому что легаси и правила эти уже лежат на продакшене и т.д. и т.п.
Создание трейта оказалось единственным вариантом не копипастить логику в этом случае. Но это лишь еще раз подтверждает мое мнение о трейтах.
Я давно придерживаюсь мнения, что трейты в PHP созданы лишь для того, чтобы затыкать дыры в архитектуре. И здесь идеальный пример. Необходимо было создать удобное редактирование бизнес-правил для юзеров. Там две почти параллельные иерархии классов и очевидно, что смысл в них один и тот же и они должны были быть объединены! Но нельзя, потому что легаси и правила эти уже лежат на продакшене и т.д. и т.п.
Создание трейта оказалось единственным вариантом не копипастить логику в этом случае. Но это лишь еще раз подтверждает мое мнение о трейтах.
Я перевел бОльшую часть своей книги "Архитектура сложных веб-приложений. С примерами на Laravel". Книга про то, как развиваются приложения когда растут и когда над ними работают командой. Или, если кратко, куда совать код из контроллеров.
Выложил абсолютно бесплатно здесь - https://github.com/adelf/acwa_book_ru буду потихоньку переводить до конца и сообщать о процессе на этом канале.
Выложил абсолютно бесплатно здесь - https://github.com/adelf/acwa_book_ru буду потихоньку переводить до конца и сообщать о процессе на этом канале.
GitHub
GitHub - adelf/acwa_book_ru: Книга "Архитектура сложных веб-приложений. С примерами на Laravel"
Книга "Архитектура сложных веб-приложений. С примерами на Laravel" - adelf/acwa_book_ru
👍2
Вас неожиданно стало очень много и я чувствую себя обязанным что-то написать.
Книга очень хорошо зашла. Я даже вылез в тренды гитхаба - https://github.com/trending на 6 место. Это накладывает ответственность побыстрее закончить перевод. Я более-менее разобрался с делами. Выпустил 2.1 релиз Laravel Idea. Теперь хочу дописать одну статью про объектно-ориентированное мышление, которую надеюсь закончить завтра, и сразу за книгу!
Кстати тема статьи хорошо коррелирует с главой про Доменный слой. Возможно, в будущем надо будет добавить туда содержимое этой статьи.
Книга очень хорошо зашла. Я даже вылез в тренды гитхаба - https://github.com/trending на 6 место. Это накладывает ответственность побыстрее закончить перевод. Я более-менее разобрался с делами. Выпустил 2.1 релиз Laravel Idea. Теперь хочу дописать одну статью про объектно-ориентированное мышление, которую надеюсь закончить завтра, и сразу за книгу!
Кстати тема статьи хорошо коррелирует с главой про Доменный слой. Возможно, в будущем надо будет добавить туда содержимое этой статьи.
GitHub
GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.
JetBrains выложили большой отчёт за 2019 год: https://www.jetbrains.com/company/annualreport/2019/
Я там засветился цитатой в разделе Marketplace. Там же есть статистика по скачиваемым плагинам. Оказалось, что мой .env files support - самый популярный по количеству пользователей среди тех, какие хоть как-то относятся к PhpStorm. И в top10 всех плагинов вообще. Приятно, однако :)
Я там засветился цитатой в разделе Marketplace. Там же есть статистика по скачиваемым плагинам. Оказалось, что мой .env files support - самый популярный по количеству пользователей среди тех, какие хоть как-то относятся к PhpStorm. И в top10 всех плагинов вообще. Приятно, однако :)
JetBrains
JetBrains 2019 Annual Highlights – Celebrating 20 Years!
JetBrains is 20 years old and more than 8 million developers use and trust our tools! How did we get here? What took place in 2019? Read all about it.
Перевёл ещё две главы - доменный слой (https://github.com/adelf/acwa_book_ru/blob/master/manuscript/9-domain-layer.md) и CQRS (https://github.com/adelf/acwa_book_ru/blob/master/manuscript/10-cqrs.md).
GitHub
acwa_book_ru/manuscript/9-domain-layer.md at master · adelf/acwa_book_ru
Книга "Архитектура сложных веб-приложений. С примерами на Laravel" - adelf/acwa_book_ru
Forwarded from Deleted Account
Привет, начинаем онлайн-митап через 50 минут! 📼 Смотри на ютубе, 🍕 получай пиццу за вопросы, - и холиварь с экспертами после докладов.
Сетка докладов (время московское):
▶️ 11:05 - “Удаленка для разработчика” (Иван Матвеев, Skyeng).
▶️ 12:02 - “Побеждаем легаси без боли” (Антон Жуков, ManyChat).
▶️ 13:02 - “Две причины для CQRS” (Адель Файзрахманов, Laravel Idea).
▶️ 14:02 - “Модули как альтернатива микросервисам” (Юлия Николаева, iSpring).
▶️ 15:02 - “GraphQL: плюсы и минусы на практике” (Антон Морев, WormSoft).
▶️ 16:02 - “Готовим код к выходу в свет” (Михаил Самаркин, SimbirSoft).
В перерывах: 🐘 розыгрыш редкого слона, 🎟 билета на PHP Russia и приставки для тех, кто общался с 🤖 пхпботом (ссылка в описании трансляции).
Сетка докладов (время московское):
▶️ 11:05 - “Удаленка для разработчика” (Иван Матвеев, Skyeng).
▶️ 12:02 - “Побеждаем легаси без боли” (Антон Жуков, ManyChat).
▶️ 13:02 - “Две причины для CQRS” (Адель Файзрахманов, Laravel Idea).
▶️ 14:02 - “Модули как альтернатива микросервисам” (Юлия Николаева, iSpring).
▶️ 15:02 - “GraphQL: плюсы и минусы на практике” (Антон Морев, WormSoft).
▶️ 16:02 - “Готовим код к выходу в свет” (Михаил Самаркин, SimbirSoft).
В перерывах: 🐘 розыгрыш редкого слона, 🎟 билета на PHP Russia и приставки для тех, кто общался с 🤖 пхпботом (ссылка в описании трансляции).
YouTube
Онлайн-митап про легаси, монолиты, CQRS, GraphQL, редкие утилиты и вредные советы разработчику Васе
06:25 - Иван Матвеев, Skyeng: "День и инструменты разработчика на удаленке". Оставь фидбек, чтобы получить эту и другие презентации https://forms.gle/jNLTHj1kfV8EWws86
40:25 - вопросы докладчику
1:02:26 - Антон Жуков, ManyChat: "Безболезненная победа…
40:25 - вопросы докладчику
1:02:26 - Антон Жуков, ManyChat: "Безболезненная победа…
Закончил перевод!
https://github.com/adelf/acwa_book_ru
Очень долго переводил последнюю главу, за что извиняюсь. Главу про саги решил выбросить совсем, потому что опыта мало и она совсем бесполезная была. Форматы pdf, epub и mobi также доступны.
https://github.com/adelf/acwa_book_ru
Очень долго переводил последнюю главу, за что извиняюсь. Главу про саги решил выбросить совсем, потому что опыта мало и она совсем бесполезная была. Форматы pdf, epub и mobi также доступны.
GitHub
GitHub - adelf/acwa_book_ru: Книга "Архитектура сложных веб-приложений. С примерами на Laravel"
Книга "Архитектура сложных веб-приложений. С примерами на Laravel" - adelf/acwa_book_ru
❤2
Наблюдал вчера одну из самых убогих и бесполезных вещей в мире PHP - интерфейс полностью состоящий из статических методов. Признаться, я даже не знал что так можно. Зачем такой интерфейс? Поисследовав код, стало понятно, что если его переписать с нормальными, нестатическими, методам, то всё стало бы намного логичнее и можно было бы выбросить солидный кусок кода.
Типичный карго-культ: "я пишу с интерфейсами, я крутой". Главное - влепить интерфейс. Думать не надо.
Типичный карго-культ: "я пишу с интерфейсами, я крутой". Главное - влепить интерфейс. Думать не надо.