[Разработка веб-сайтов, PHP, Symfony, Конференции] Говорим, как структурировать код
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет! В эту субботу PHP-чат Нижнего Новгорода проведет свой четвертый митап с интерактивной трансляцией. Доклады подготовят Валентин Удальцов из Москвы и Денис Юрьев из Новосибирска — те, кто придут очно, смогут вдоволь наобщаться с ними на афтепати в центре города, те, кто будут смотреть онлайн — задать вопросы текстом или голосом прямо из браузера.Извините, данный ресурс не поддреживается. :( Записаться на митап можно здесь, поставить колокольчик под трансляцией — здесь, а ниже вы найдете небольшое интервью с докладчиками про то, что не вошло в их выступления.Денис Юрьев (тимлид в Skysmart от Skyeng) — расскажет, как упаковать продукт в переменнуюО чем твой доклад?Пару раз я сталкивался с тем, что если два в целом похожих продукта, выросших из одного репозитория, поддерживают разные команды, через полгода это буду уже два совершенно разных проекта. Мне всегда хотелось сделать это иначе. Поэтому когда в Skyeng решили запускать новые предметы — русский, шахматы, физику, обществознание — на базе нашей с командой платформы для изучения математики, я предложил: «А давайте мы своими силами». Поддержка новых репозиториев казалась неинтересным, а с учетом планов на десяток потенциальных проектов — самоубийственным решением. Поэтому мы пошли новой дорогой.
В докладе поделюсь историей в деталях, как мы спланировали архитектуру, на какие «грабли» Symfony наткнулись в процессе — и почему оно у нас вообще получилось.
На митапе мы будем много говорить о том, как структурировать код. Дай совет самому себе из прошлого — что делать, не делать и к чему это приведет?Пораньше начать изучать практики других языков программирования и даже другие прикладные области. Например, когда-то мне казалось проще оставить бизнес-логику связанной с каналом передачи данных, а громоздкий функционал — проще положить в один сервис на много строк и не разбивать по модулям. Не надо так.Когда я начал смотреть, как происходит разработка на Unity, а там используется паттерн ECS – тут же захотелось и в PHP разбивать код на более мелкие, менее связанные части. Выделив небольшой осмысленный кусочек логики в модуль (отправка сообщения, какая-то конкретная операция над определённым видом данных и т.п.), мы получим возможность переиспользования, комбинирования, даже более простое юнит-тестирование. Расскажи историю, которая не вошла в твой долклад, но будет полезна в контексте твоей темы.Однажды нам надо было запустить проект в сжатые сроки. Какое-то внятное описание бизнес-логики при этом отсутствовало, а область была очень сложной, и мы не входили в целевую аудиторию.Казалось бы, стоило начать писать код, а понимание придет в процессе – но вместо этого мы сели и «на пальцах» начали разбирать очень сложный механизм будущего проекта. Как всё работает от и до, внутри и снаружи. Это было заразительно, появлялись идеи, нам активнее помогали коллеги. К концу третьего дня (а это была значительная часть нашего тогдашнего сжатого срока) у нас на руках было полнейшее понимание, что и как работает. Не написав ни строки кода, мы уже знали, что за чем будет идти, как распараллелить работы, что за сервис мы получим в итоге и что должно поставляться в mvp.
Вместо хаотичных вопросов и непонятных задачек, мы приходили в другие команды с подробным описанием того, что нам нужно, с контрактами и пространством для обсуждения. Приходили сильно заранее, чем если бы дошли до этого, начав писать код «вслепую».
История закончилась хорошо – запуск состоялся в срок, все получили классный опыт предварительного исследования требований и ведения переговоров «на берегу». С тех пор я стараюсь как можно плотнее понимать бизнес проекта – это делает сильнее и проект, и тебя как профессионала.О чем с тобой еще можно поговорить на митапе?Архитектура проектов, микросервисы, информационная безопасность и почему жонглирование четырьмя шариками – самое неинтересное занятие на свете. Валентин Удальцов (тимлид в Happy Inc., автор канала «Пых») — расскажет, как структурировать код, чтобы не получить большой ком грязиО чем твой доклад?Я сравню подходы package-by-type, package-by-layer, package-by-feature в контексте Agile и поговорю про принципы проектирования пакетов Роберта Мартина. Покажу пример организации модулей в проекте на Symfony, а также инструменты в PHP, которые помогут следить за связанностью модулей и направлением зависимостей.Дай совет самому себе из прошлого — что делать и не делать в разработке?Что делать — помимо SOLID изучать Package Principles. Что не делать — не воспринимать документацию к фреймворкам как образец структурирования кода.Расскажи историю, которая не вошла в твой долклад, но будет поучительна в контексте твоей темы.Очень важно периодически ставить под вопрос привычные практики: в какой-то момент я стал фанатом разбивки кода по слоям, но после нескольких споров в чатах телеграма решил попробовать альтернативный подход, — и только тогда увидел за деревьями лес. О чем с тобой еще можно поговорить на митапе?Про трейты, композицию, статанализ или любой пост из моего канала «Пых».
p.s. А еще мы разыграем на митапе такого замечательного плюшевого слона и другие призы от компаний-партнеров митапа и сообщества. Розыгрыш пройдет только среди участников в офлайне.
===========
Источник:
habr.com
===========
Похожие новости:
- [Хакатоны, Конференции] Digital-мероприятия в Москве c 19 по 25 апреля
- [Хакатоны, Конференции] Что там в Университете ИТМО — антистресс от разработчика, аксионы, кристаллы времени и хакатоны
- [Информационная безопасность, Разработка веб-сайтов, PHP, Программирование] Слабые места PHP: думай как хакер
- [Разработка веб-сайтов, JavaScript, Совершенный код, Google Chrome] Почему консоль разработчика Chrome иногда лжет (перевод)
- [Разработка веб-сайтов, CSS, Совершенный код, HTML] Еще не используешь SVG фавиконки? (перевод)
- [Информационная безопасность, Разработка веб-сайтов, Google Chrome, Браузеры] Отключение Google FloC на вашем веб-сайте (перевод)
- [Высокая производительность, Информационная безопасность, Программирование, Будущее здесь] Безопасность в масштабе HighLoad — магия или realtime?
- [Разработка веб-сайтов, CSS] Какие CSS-генераторы можно использовать в 2021 году (перевод)
- [Программирование, Конференции] Фронтенд и современные приложения. Можно без ошибок? Узнаем на DUMP-2021
- [Веб-дизайн, Firefox, Разработка веб-сайтов, CSS] CSS: работа с текстом на изображениях (перевод)
Теги для поиска: #_razrabotka_vebsajtov (Разработка веб-сайтов), #_php, #_symfony, #_konferentsii (Конференции), #_php_nn, #_php_mitap (php митап), #_php_nizhnij_novgorod (php нижний новгород), #_symfony_doklad (symfony доклад), #_blog_kompanii_skyeng (
Блог компании Skyeng
), #_razrabotka_vebsajtov (
Разработка веб-сайтов
), #_php, #_symfony, #_konferentsii (
Конференции
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:33
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет! В эту субботу PHP-чат Нижнего Новгорода проведет свой четвертый митап с интерактивной трансляцией. Доклады подготовят Валентин Удальцов из Москвы и Денис Юрьев из Новосибирска — те, кто придут очно, смогут вдоволь наобщаться с ними на афтепати в центре города, те, кто будут смотреть онлайн — задать вопросы текстом или голосом прямо из браузера.Извините, данный ресурс не поддреживается. :( Записаться на митап можно здесь, поставить колокольчик под трансляцией — здесь, а ниже вы найдете небольшое интервью с докладчиками про то, что не вошло в их выступления.Денис Юрьев (тимлид в Skysmart от Skyeng) — расскажет, как упаковать продукт в переменнуюО чем твой доклад?Пару раз я сталкивался с тем, что если два в целом похожих продукта, выросших из одного репозитория, поддерживают разные команды, через полгода это буду уже два совершенно разных проекта. Мне всегда хотелось сделать это иначе. Поэтому когда в Skyeng решили запускать новые предметы — русский, шахматы, физику, обществознание — на базе нашей с командой платформы для изучения математики, я предложил: «А давайте мы своими силами». Поддержка новых репозиториев казалась неинтересным, а с учетом планов на десяток потенциальных проектов — самоубийственным решением. Поэтому мы пошли новой дорогой. В докладе поделюсь историей в деталях, как мы спланировали архитектуру, на какие «грабли» Symfony наткнулись в процессе — и почему оно у нас вообще получилось.
Вместо хаотичных вопросов и непонятных задачек, мы приходили в другие команды с подробным описанием того, что нам нужно, с контрактами и пространством для обсуждения. Приходили сильно заранее, чем если бы дошли до этого, начав писать код «вслепую».
p.s. А еще мы разыграем на митапе такого замечательного плюшевого слона и другие призы от компаний-партнеров митапа и сообщества. Розыгрыш пройдет только среди участников в офлайне. =========== Источник: habr.com =========== Похожие новости:
Блог компании Skyeng ), #_razrabotka_vebsajtov ( Разработка веб-сайтов ), #_php, #_symfony, #_konferentsii ( Конференции ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:33
Часовой пояс: UTC + 5