adelf on programming
1.55K subscribers
46 photos
1 video
63 links
Download Telegram
Подал заявку на доклад на Laracon EU Amsterdam. Попробую "наехать" на Адама Вотана. А вдруг возьмут? :) Правда, немного напутал. Думал она в мае уже. А оказывается - в конце августа. Это в Мадриде у них будет эвент майский, но у меня не получается туда попасть.
На моем новом проекте(которому уже лет 9) права юзеров на какие-то действия сделаны через битовые маски. Модная тема была раньше, чтобы сэкономить пару байт в базе данных. Сейчас больше двух сотен разных прав(или пермишенами их правильнее называть). Совет простой - никогда не используйте битовые маски :) Особенно когда командой разрабатывается. Уже при мне очень сильно налажали из-за обычной опечатки. Хорошо хоть на продакшен не вылезло...
Кажется, меня таки заапрувили на 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
21 июня в рамках конференции DevConf (https://devconf.ru) будет проведен бесплатный митап Larabeer Moscow. План мероприятия: в неформальной обстановке послушать доклады, пообщаться друг с другом и найти точки соприкосновения. Мой доклад про сложности большого проекта и их преодоление уже в программе.

Нужны те, кому тоже есть чем поделиться. Высоких требований к докладам нет - просто шарим знания друг с другом. Хочется просто послушать и пообщаться? Тоже будем рады.

Регистрируйтесь - https://www.meetup.com/ru-RU/Laravel-Russia/events/262030886/
Давно ничего не писал. Отдыхал, работал, плюс опять увлекся плагинописательством к шторму. Обновил свой .env files support плагин. Сильно оптимизировал его, убрав ненужную индексацию. Начал писать новый, на Kotlin. До ужаса приятный язык. После некоторой неловкости при знакомстве, уже общаюсь с ним довольно легко. Очень много плюшек. Недавно вспомнил, что уже в конце августа выступать на Laracon :) Для тренировки написал небольшую статью, опишу ее в отдельном посте.
Очень давно ничего не писал. Этому есть уважительная причина. Мое выступление на Laracon было не очень удачным, я расстроился и решил сделать что-нибудь, чтобы компенсировать неудачу.

Компенсация вылилась в три месяца напряженной работы, и это при том, что мой текущий фулл-тайм контракт никто не отменял. Результатом стал новый Laravel плагин для PhpStorm, содержащий огромное количество всевозможных авто-дополнений и кодогенераций, которые значительно упрощают рутинные операции при Laravel-разработке. Небольшое обзорное видео тут - https://youtu.be/8klTJYhNo-A

Меня невероятно прет от разработки плагинов для IDEA на Котлин. Мечтаю о том, чтобы делать это фулл-тайм. Поэтому решил попробовать его продавать)
Я создал трейт в проекте :( да не прогневаются на меня боги за это!

Я давно придерживаюсь мнения, что трейты в PHP созданы лишь для того, чтобы затыкать дыры в архитектуре. И здесь идеальный пример. Необходимо было создать удобное редактирование бизнес-правил для юзеров. Там две почти параллельные иерархии классов и очевидно, что смысл в них один и тот же и они должны были быть объединены! Но нельзя, потому что легаси и правила эти уже лежат на продакшене и т.д. и т.п.

Создание трейта оказалось единственным вариантом не копипастить логику в этом случае. Но это лишь еще раз подтверждает мое мнение о трейтах.
Я перевел бОльшую часть своей книги "Архитектура сложных веб-приложений. С примерами на Laravel". Книга про то, как развиваются приложения когда растут и когда над ними работают командой. Или, если кратко, куда совать код из контроллеров.

Выложил абсолютно бесплатно здесь - https://github.com/adelf/acwa_book_ru буду потихоньку переводить до конца и сообщать о процессе на этом канале.
👍2
Вас неожиданно стало очень много и я чувствую себя обязанным что-то написать.

Книга очень хорошо зашла. Я даже вылез в тренды гитхаба - https://github.com/trending на 6 место. Это накладывает ответственность побыстрее закончить перевод. Я более-менее разобрался с делами. Выпустил 2.1 релиз Laravel Idea. Теперь хочу дописать одну статью про объектно-ориентированное мышление, которую надеюсь закончить завтра, и сразу за книгу!

Кстати тема статьи хорошо коррелирует с главой про Доменный слой. Возможно, в будущем надо будет добавить туда содержимое этой статьи.
JetBrains выложили большой отчёт за 2019 год: https://www.jetbrains.com/company/annualreport/2019/

Я там засветился цитатой в разделе Marketplace. Там же есть статистика по скачиваемым плагинам. Оказалось, что мой .env files support - самый популярный по количеству пользователей среди тех, какие хоть как-то относятся к PhpStorm. И в top10 всех плагинов вообще. Приятно, однако :)
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 и приставки для тех, кто общался с 🤖 пхпботом (ссылка в описании трансляции).
Закончил перевод!

https://github.com/adelf/acwa_book_ru

Очень долго переводил последнюю главу, за что извиняюсь. Главу про саги решил выбросить совсем, потому что опыта мало и она совсем бесполезная была. Форматы pdf, epub и mobi также доступны.
2
Наблюдал вчера одну из самых убогих и бесполезных вещей в мире PHP - интерфейс полностью состоящий из статических методов. Признаться, я даже не знал что так можно. Зачем такой интерфейс? Поисследовав код, стало понятно, что если его переписать с нормальными, нестатическими, методам, то всё стало бы намного логичнее и можно было бы выбросить солидный кусок кода.

Типичный карго-культ: "я пишу с интерфейсами, я крутой". Главное - влепить интерфейс. Думать не надо.
Сегодня выложил релиз Laravel Idea, в котором долго и старательно пытался сделать то, что давно хотел иметь: нормальный тайпхинтинг в Eloquent-запросах!

Сначала надо было вытащить информацию о таблицах базы данных. И я не придумал ничего лучше, чем проанализировать миграции. Соответственно, если там какая-то сложная логика, то плагин ничего не поймёт. Но логику там держать нехорошо, о чем очень скоро напишу статью. Вероятно, в следующих версиях появится возможность брать информацию прямо с базы данных, если она подключена у вас в IDE.

Вторая проблема в том, что в php нет дженериков, поэтому пришлось эмулировать их псевдоклассами, которые генерятся прямо в файле в _ide_helper_models.php. Результат на первый взгляд весьма неплох. На картинке внизу все методы подсказываются и в конце комплитятся элементы класса Post.
Решил выглядеть серьёзной компанией и стал спонсором онлайн Laracon, который будет уже 28 мая. Недавно заметил, что они разыгрывают 250 бесплатных билетов.

Попробуйте попытать удачу - https://laracon.eu/online.
Позвали на бесплатный онлайн PHP-митап 30 мая модератором зум-комнаты, так что буду там. В программе – 5 докладов, из них два с половиной мне кажутся весьма интересными, но не скажу какие :)

🔶 Антон Губарев из Skyeng расскажет, как команда учительских продуктов строила сервисно-независимую архитектуру в монолите
🔹 Евгений Сальников из Lamoda - о том, как они живут с PHP, Java, Golang, Kotlin и Typescript в одной команде
🔶 Андрей Овчинников из iSpring поделится, как за 2 дня разработки написать решение, которое оптимизирует работу с видео в AWS
🔹 Александр Новиков из Spiral Scout сделает обзор редких, но хороших инструментов статического анализа кода
🔶 Андрей Поликанин из InterNations покажет и расскажет, как слепой разработчик может работать в обычной команде

Ссылка на youtube-трансляцию. Начнётся всё 30 мая.