3 года программирования вслепую. Часть 2
Всем доброго времени суток! Продолжаю свой рассказ о том, как "Войти в IT" без подгляда. Прошлая часть была посвящена, в основном, обучению. В этой больше расскажу о работе.

Скриптовый язык общего назначения
Всем доброго времени суток! Продолжаю свой рассказ о том, как "Войти в IT" без подгляда. Прошлая часть была посвящена, в основном, обучению. В этой больше расскажу о работе.

Важная информация для всех, кто стремится попасть на стажировку. Набор «антисоветов», которые можно «перевернуть» и применить на практике, чтобы повысить свои шансы на попадание в ту или иную компанию.

Всем привет. Меня зовут Сергей, я работаю в digital-агентстве Convergent лидером команды бэкэнд разработки. Одно из основных направлений работы агентства ⸺ это разработка под заказ веб-приложений. Такая деятельность подразумевает, что зачастую создается достаточно много однотипных проектов. Они могут отличаться механиками, но основные юзкейсы повторяются: регистрация, авторизация, личный кабинет, админка и т. д. В данной статье я хочу рассказать о том, как мы оптимизировали процессы переиспользования кода и пришли в итоге к модульному подходу, ну и затрону еще немного технической стороны вопроса. Основной язык программирования в компании — PHP, так что дальше я расскажу о работе с этим языком. В нашем случае он отлично подходит для создания сайтов различного уровня сложности, различных активаций и промо-кампаний.

Недавно в команде произошел случай, который заставил обратить наше внимание на статью 2013 года. Материал не потерял актуальности, а перевода я не нашел, поэтому решил заполнить пробел. Но сначала немного предыстории.
Комьюнити-менеджеры обратили внимание на редко всплывающий баг в приложении: если пользователь закрепит контент вверху своего профиля, а затем модератор этот контент по каким-то причинам забанит, то у пользователя нет возможности ничего с этим закреплённым и забаненным контентом сделать: открепить его нельзя и другими способами от него избавиться тоже не получится. Типичный краевой случай, который редко встречается в реальной жизни. Я хоть и менеджер, но решил не отвлекать никого из команды на эту мелочь, а пофиксить баг самостоятельно, заодно стряхнуть немного пыль с навыков разработки.
Буквально через два уровня абстракций я оказался в коде, датированном 2016-2017 годами, то есть занялся software archeology. В какой-то момент меня возмутило, что вместо интерфейса репозитория в конструктор класса сервиса была передана реализация. Ещё одним уровнем абстракции ниже оказалось, что это всё-таки был интерфейс, но назывался он просто ContentRepository, а не ContentRepositoryInterface, как написал бы любой адепт ООП и принципов SOLID. Это уже не лезло ни в какие ворота, и я потребовал у архитектора оснований (кстати, рекомендую его статью о том, как мы вдвое ускорили построение лент подписок). Он в свою очередь невозмутимо показал пункт внутренних правил оформления кода, где была проставлена ссылка на статью 2013 года («А» — археология, как и было сказано).
Под катом — перевод этого материала.



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


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


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

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


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

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

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

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