
PHP *
Скриптовый язык общего назначения
Нам точно нужен фреймворк?
В статье Маттиас рассказывает о том, какие вопросы должен задать себе разработчик, прежде чем выбрать фреймворк или отказаться от фреймворков вообще. Перевод статьи читайте под катом. В комментариях делитесь своим опытом выбора и использования фреймворков.

Автоматическая проверка кода за 5 минут
Давайте посмотрим как будет выглядеть настройка в новом проекте.
У вас нет разрешения на доступ к API. OpenCart

Перед началом разработки модуля клиент сообщил, что в админке на странице редактирования заказа у него часто/рандомно не работает изменение заказа: У вас нет разрешения на доступ к API!
Изначально я не придал этому значения, так как проблема у клиента была до меня, а сроки по разработке были крайне сжатые (как обычно), а значит ее решение это второстепенная задача, однако на этапе внедрения модуля в интернет-магазин клиента начались проблемы.
Laravel-дайджест (8–21 марта 2021)
Подборка свежих уроков, видео и пакетов по фреймворку Laravel.

Сказ о том, как команда IT animals в Северо-Западном хабе «Цифровой прорыв» выиграла

В прошлом году я случайно наткнулась на сайт #ЦифровойПрорыв и шутки ради отправила ссылку тимлиду нашей команды: смотри, поучаствуем? Мы как раз успевали на последний региональный Северо-Западный хаб.
Из положения о конкурсе:
Хакатон — ограниченное во времени соревновательное мероприятие для IT-специалистов и специалистов сферы цифровой экономики, в рамках которого участники в составе команд от 3 до 5 человек (программисты, дизайнеры, менеджеры, аналитики) создают прототипы цифровых решений. Сами кейсы ставятся организациями–партнерами хакатона.
Всего в рамках Конкурса планировалось проведение 8 окружных онлайн–хакатонов, которые завершились Финалом.
Принцип Парето
Я не верила, что мы ввяжемся в эту авантюру до последнего — синдром самозванца всегда был моим спутником.
Команду собрали из коллег: тимлид/архитектор/питчер — Илья Шумилов, 2 фуллстек — Дмитрий Николаев и Кирилл Петров, аналитик/тестировщик — Марина Никулина. Так появилась команда IT animals.
Самое смешное, что, предлагая поучаствовать, я не дочитала до пункта про призы, и свято верила, что идем к победе ради ачивки и толстовок.
Когда объектов не достаточно

Я искал материалы об истоках объектно-ориентированного программирования. Причина была в том, что в сообществе Laravel возникла тенденция использовать паттерн Action и говорить вот что такое «настоящее ООП». У меня возникли некоторые сомнения, и вместо того, чтобы задавать вопросы, я решил поискать ссылки времён Smalltalk. Нашёл книгу Smalltalk, Objects, and Design. И мне было так интересно её читать, что я решил поделиться с вами своими находками.
Паттерн Action гласит, что логику нужно обёртывать в классы Action. Эта идея не нова, в других сообществах продвигалась «Чистая архитектура», при которой каждый «сценарий использования» (или Interactor) должен являться самостоятельным классом. Всё очень просто. Но об этом ли говорит ООП?
Если вам интересна суть статьи, то:
- Smalltalk был одним из первых ООП-языков. Он стал источником таких концепций, как наследование и обмен сообщениями (или как минимум он их популяризировал, насколько я вижу).
- Как сказал Алан Кей, придумавший термин «объектно-ориентированное программирование», объектов не достаточно. Они не обеспечивают нам архитектуру. Объекты — это про взаимодействие между ними, и в случае с большими системами вам нужна возможность разделения приложения на модули, которые можно отключать по отдельности, заменять и включать снова в общую систему, не кладя при этом всё приложение. В этом контексте Алан предлагает идею инкапсуляции «сообщений» в классы, когда каждый экземпляр является сообщением в системе, подкрепляя идею наличия в Чистой архитектуре классов «Action» или «интеракторов».
Продолжайте читать, если я разжёг в вас интерес.
Еще немного про сервисный слой в PHP

В жизни каждого разработчика наступает момент, когда одного понимания популярных паттернов и правил написания чистого кода начинает не хватать. Обычно это происходит, когда на поток поступает проект сложнее типового сайта-каталога. При создании такого проекта очень важно заложить правильную архитектуру (особенно, если проект долгосрочный), которая будет способна максимально гибко и быстро адаптироваться под новые требования бизнеса.
Сегодня мы поговорим об одном из способов организации бизнес логики - сервисном слое (он же service layer), когда и зачем его нужно применять, а также какие проблемы архитектуры он поможет решить. Примеры реализации будут показаны с использованием архитектурного паттерна MVC и фреймворка Laravel.
Как дойти до CQRS, если у тебя PHP

Недавно я посмотрел доклад «Как перестать бояться CQRS». Вроде бы простая идея, но есть нюансы. Так и появился этот выпуск.
CQRS vs CQS (не перепутай)
Теория программирования: пакетные принципы и метрики

Чтобы применять любые принципы правильно, сначала нужно их понять — то есть осознать, откуда они взялись и для чего нужны. Если применять вслепую всё, что угодно — результат будет хуже, чем если бы мы вообще не использовали эти принципы. Я начну издалека и сначала расскажу про абстракцию.
PHP Дайджест № 200 (22 февраля – 15 марта 2021)

Свежая подборка со ссылками на новости и материалы. В выпуске: Объекты в инициализаторах, неймспейсы для расширений, и другие RFC предложения для PHP 8.1. Обновлен PSR-11, предложен PSR ClockInterface. Порция полезных инструментов, видео, подкасты, статьи, и PHP Дайджест Live в 20:00 МСК.
Приятного чтения!
Разделение кода и текста: прототип

Этот пост является продолжением предыдущей публикации Разделение кода и текста: мысли вслух. На этот раз мы пойдем чуть-чуть дальше и представим возможный API, а также сравним рабочий процесс до и после. В качестве примера использованы язык PHP и фреймворк Laravel, но это почти не имеет значения.
Работа с заказом через админку OpenCart, взгляд изнутри

Разрабатывая модуль для OpenCart, мне понадобилось добавить дополнительное поле к товарам заказа. Но прежде необходимо изучить как устроена работа с заказом через админку. Как оказалась схема не простая и немного запутанная, но это с первого взгляда.
Ближайшие события
Курсы PHP-программирования в Минске. Куда пойти учиться?

Многие мечтают об успешной карьере в IT. Весь Байнет завален статьями о перспективах специалистов, работающих в этой сфере: обзоры зарплат, возможности карьерного роста, высокая востребованность. Все знают, что хорошие PHP-программисты нарасхват.
Другое дело — что не все так просто. Чтобы попасть в их ряды, нужно пройти определенный путь. Можно ли его заменить самообразованием без наставника и практики, просто реализовав правило «10 000 часов»? Как показывает опыт — нет. Кандидату в разработчики либо не хватит терпения, либо обучение будет слишком несистемным и безрезультатным. Разберемся подробнее.
Laravel–Дайджест (22 февраля – 7 марта 2021)
Подборка свежих уроков, видео и пакетов по фреймворку Laravel.

Самый простой (для знающих Linux) и дешевый способ разместить IP-камеру на сайте для небольшой аудитории
В чем главная проблема современных недорогих IP-камер? Вы не можете просто так добавить их на свой сайт! Они выдают видео совсем не в том формате, который понимают браузеры. Да, конечно, можно зайти напрямую на камеру (и часто только с IE), и у многих моделей есть «облако». Но проблема остается — я не могу просто так взять и поместить камеру на сайт, как например, простую картинку!
Я рассмотрел множество решений для организации трансляций с IP-камер от разных поставщиков, в том числе и OpenSource решения. У большинства один недостаток, очень критичный для меня: система постоянно захватывает поток с камеры, даже если нет зрителей. В моем случае нужно было вывести картинку на сайт с удаленных камер, подключенных по 4G каналу в глухом районе.
Новости Yii 2021, выпуск 1

Привет, сообщество!
Это первый выпуск новостей в 2021. Начало года вышло продуктивным. Мы начали активно релизить пакеты Yii 3, есть значительный прогресс с пока не релизнутыми пакетами. Улучшили инструментарий разработки, много всего исправили, убили лишние пакеты. И всё это параллельно с поддержкой Yii 2 и решением проблем с финансированием.
Как мы быстро распилили монолит, когда командам стало тесно

Преподаватели Skyeng не сразу попадают «на передовую» — для начала они проходят отбор и обучение. Направление найма и онбординга преподавателей появилось в 2015 году — тогда же был сделан первый коммит в наш (уже бывший) легаси-монолит. Прежняя команда активно его поддерживала и старалась развивать, но в один момент ей стало объективно сложно справляться со всеми проектами. Так появилась моя команда.
Мы стали отвечать за набор фичей внутри монолита. Первые месяц или два пытались работать с тем, что было, но быстро поняли, что у двух команд свои процессы и взгляды на работу. Чтобы не утонуть в согласованиях, решили внедрять сервисную архитектуру.
Бэкдор во взломанном 1С-Битрикс: под угрозой сотни сайтов

Субботний вечер омрачен скандалом - сайт не работает, провайдер негодяй, админы - не специалисты, а сервера - решето. Вызов принят, или почему при всей нелюбви к 1С-Битрикс в данной ситуации пострадали не только лишь все?
80+ докладов и статей, которые запомнились PHP-сообществу в 2020 году

Недавно мы решили узнать, чем помимо пандемии 2020-й запомнится пхп-разработчикам — кто что читал, смотрел, над чем работал. Получив свыше 1500 ответов, мы сели их разбирать. Вот что получилось.
Вклад авторов
pronskiy 10649.4SamDark 1519.8AloneCoder 987.8youROCK 823.0AntonShevchuk 815.0spasibo_kep 731.0AlexLeonov 620.0olegbunin 560.0zapimir 559.0alexzfort 558.0
