Чего вы ждёте от мастер-класса по Symfony?

Добрый всем день! В старом чате из МК по Laravel, на почте и в ВК набралась от вас куча замечаний и предложений когда, зачем, кому и как проводить предстоящий мастер-класс по разработке проекта на Symfony Framework. Спасибо отважной Юлии за то, что она всё это время всё это читала, выслушивала и передавала все идеи мне.

В связи с этим провели стрим, где обсудили особо интересные предложения по содержимому и формату и сделали из этого кучу выводов:

Если есть желание провести время в компании программистов, то подключайтесь:


Описание на странице мастер-класса


UPD: Добавил видеоприглашение со всеми подробностями.

Комментарии

 

Валерий

Работу с авторизацией и правами

Ответить

 

Evgeniy

Учитывая уровень фреймворка Symfony то в мастер классе хотелось бы увидеть подробно его преимущества по сравнению с более "простыми" системами. Обязательно очень подробно DOCTRINE с реальными примерами и возможностями ООП реализации этого шаблона. Объяснить где узкие места и как правильно описывать сущности и прочее.
Так же было бы классно увидеть подробный пример использования PHP OAuth 2.0.
Плюс как правильно организовывать REST API к системе на symfony - было бы здорово увидеть реальный пример.
Ну и конечно PSR - где насколько и как глубоко привязываться к этим стандартам - делать ли адаптеры и прочее.

Ответить

 

Dmitry

Никакой особой сложности в Symfony нет, компонентный фреймворк. Частью его компонентов ты наверняка и сейчас пользуешься. DOCTRINE - похожа на актив рекорд если разделить на 2 части, отдельно репозиторий, отдельно сущность. Т.е. при запрос в репозиторий возвращается не он же, а объекты определенного типа.
REST - и есть рест. ничего специфичного нет.
Привязываться к PSR или нет это сугубо индивидуально, особенно если это не код который будет продаваться или опенсорс код

Ответить

 

Руслан

WORKFLOW, использование стратегий в доктрине. Интересует больше плюсы и минусы в практике, когда применять, когда не стоит.

Ответить

 

Алексей

весь курс как у symfonycast но на русском, и в дополнение типовые проблемы которые там не освещены: древовидные структуры: на примере меню аккордеон тут и вложенная структура(как сущность лучше делать связывать manytoone или нет, и вообще что в сущности должно быть, а что лишнее) и работа с запросом к примеру на странице материала категории должен быть активный пункт меню родителя и под меню название категории т.е развернуто меню и вывод этого в твиге через макрос или еще как то (я с этим всем бился довольно долго, разбирал бандлы чужие которые не очень работали на старте новой версии симфони, и не уверен что сделал хорошо)

Сервисы как и когда лучше использовать.
Voters - скудно объяснено только на примере доступа, а наверняка их можно использовать много где еще.
события хотелось бы подробнее о них..

у doctrine неплохая документация, но хотелось бы больше в особенности про связи многие ко многим, к примеру если делать приложение с тестами как лучше создавать сущности и работать с ними это же отдельное хранение вопросов, ответов, связь их с юзверями и их ответами..., а еще типы вопросов...
шифрование данных тоже не освещено, как шифровать данные в хранилище (база,файл или еще где) к примеру личные сообщения пользователей друг другу...

или к примеру есть бандл с пагинацией KnpPaginatorBundle он супер не надо писать лишнего ничего, но он сортировку делает прямо в get запросе ввиде u.id и т.д, что мне кажется не очень, а так зашифровал u.id на что то, и пользователь не видит реальных данных, или про банк карты и т.д я вообще молчу...


это из того что сейчас вспомнил и что самое сложное было и непонятное пока ждал курса от вас и грыз Симфони сам через доки, stackoverflow и symfonycast

Ответить

 

Алекс

Зачем нужен пересказ Symfonycast? Английский там элементарный, все очень просто и доходчиво.

Ответить

 

Алексей

дополню свой комментарий
про меню не дописал что в идеале tree builder какой то сделать.
Зачем нужен пересказ Symfonycast?
потому что не многие судя по вопросам его вообще смотрели или читали документацию, а русской версии нет вообще, я не спорю что там не сложно в особенности с Google Chrome который и переводит не плохо текст..., но все же в интерпретации Дмитрия такой курс круче, тем более там уроков в сумме на 1 каст по времени Дмитрия не наберется наверное (5-6 часов)

Ответить

 

Evgeniy

Только Frontend поменьше. Это точно не главное в Symfony. Вернее не то чему стоит учится 5 часов к ряду на МК онлайн. Сила и слабость symfony это компонентная ООП модель. Захотел добавил захотел заменил. Сила в гибкости - слабость в сложности. Symfony это не массовый продукт. Это решение на всю жизнь проекта.

Ответить

 

Алекс

Что многие "не смотрели и не читали" symfonycast так это ведь их проблемы, не так ли? Нет русской версии? Это серьезный аргумент? Ну ведь должен программист хоть минимальными навыками английского обладать. В случаи с symfonycast и этого хватит.
Что касается продолжительности. Только в разделе Symfony 4 у них более 18 часов. А ведь есть еще такие не потерявшие актуальность разделы как "Api" и "Тестирование". Все это пересказывать, серьезно?

Ответить

 

Алекс

Я вот работаю с Симфорни и Доктриной скоро будет год как, а до сих пор не прочувствовал, где же эти хваленые преимущества Доктрины над active record. Да, да, знаю - в крупных проектах, несоблюдения AR принципов Solid и т.д., но... не прочувствовал и всё! Вот если бы Дмитрий это как то показал,донес было бы здорово.

Ответить

 

k0v4

Поддерживаю ваш комментарий, пишу на symfony около двух месяцев, но так и не понял этих преимущества. Скорее всего это связана с небольшим опытом...

Ответить

 

Dmitry

Да их по сути и нет. Есть плюсы и минусы. В плюс можно выделить то что доктрина позволяет писать более чистый, надежный код. Например вы описываете интерфейс репозитория и тип возвращаемых сущностей и можете быть уверенны что это будет работать надежно, как и задумано. С актив рекорд так просто не получится, потому что возвращая из "репозитория" объекты актив рекорд вы не можете быть уверенны что их потом не будут использовать как репозиторий или для того что бы дернуть какую то внутреннюю логику, что порождает не предсказуемость поведения. Приходиться либо возвращать массивы либо писать кастомные объекты, но это какой то оверхед.
Минусы то что доктрина все возвращает объект сущности (в начале это был + :) ). Т.е. если у вас большие сущности, придется тянуть все данные. А если таких объектов в выборке дохрена, будет большая нагрузка как на проц так и на память.

Ответить

 

Evgeniy

А как же кэш - сущность - сжатие - кэш. Все читают с кэша.
Обновили сущность - создали сжатие - записали в кэш.
Все читают с кэша.
Сжатие - JSON или любое подобное.
Кэш - Redis
А так если все брать на каждый запрос - это уж простите Bitrix а не Simfony.
Собственно ради этого и следует изучать Symfony - не потому что она может, а потому что с ней можно это сделать.

Ответить

 

Dmitry

Собственно стоит изучать как раз для того что бы думать где кеш нужен, а где нет ;) Пихать везде кеш - это как раз подход битрикса :) Вы наверное считаете что серилизация/десерилизация, чтение из файла, запись в редис(оперативная память) - это бесплатные операции?
И не очень понял как кеш вообще относится к symfony, вы считаете что это ее фишка? Насколько я знаю, кеш - это способ оптимизации и применять его можно где угодно, не только в symfony :)

Ответить

 

Федот

А что у Битрикс не так с кэшем? вроде как все настраивается теперь достаточно тонко,
есть какие то скрытые нюансы? а то не смог увидеть проблем, недавно магазин делал.

Ответить

 

Evgeniy

Кэш кэшу рознь. В битриксе всегда все хорошо. Там тишь да гладь, безмятежность да спокойствие)))

Ответить

 

Федот

Ну не совсем конечно так все гладко, однако для средних магазинов вполне потянет и интеграция есть с 1с при их бюджетах такое за радость)

Ответить

 

Evgeniy

Согласен - и процессы у них стандартные +-. О большем то и не мечтают. Все зависит от задачи, сроков, жизненного цикла проекта и его изменяемости. Ну и конечно от бюджета)))

Ответить

 

Федот

Ну вот, у меня вообще есть сомнение, что заказ на симфони возможен, это для какой то корпоративной системы наверное, а там тоже Битрикс рулит или ковыряться с каким то наследием в какой нибудь крупной конторе.
Где вот её используют целиком обычно хотелось бы тоже от Дмитрия получить ответ тоже.
А вот её компоненты очень даже ничего и много где используются, так что да, симфони лучше знать, чем не знать)

Ответить

 

Evgeniy

Вы писали про сущности сложные - я конкретно про сложные сущности ответил. Когда у вас операций чтения на 10 порядков больше операций обновления - что норма для проектов за 1М посетителей в месяц, то тогда операции чтения из редиса того же будут для вас манной небесной по сравнению со сборкой постоянной из базы данных. А предварительная подготовка данных очень пригодится когда тот же Rabbit появится - лучше заранее побеспокоится.А так как в symfony все очень хорошо разнесено в DOCTRINE друг от друга - гибко настраивать подобные чудеса очень классно, в отличии от того же AR .
Вообще все зависит от проекта его сложности и долгоживучести.

Ответить

 

Dmitry

Можно поподробнее что в DOCTRINE можно друг от друга настраивать в отличии от AR?
И какие такие плюсы дает symfony или доктрина (я не понял) при работе с очередями?

Ответить

 

Evgeniy

Я на первый вопрос отвечать не буду - тут если есть опыт работы с тем и с тем - то и вопрос не возникнет.
А насчет очередей - нет конечно связи - если вы внимательно прочитаете мой ответ - то увидите что там написано не про doctrine и symfony а про развитие проекта - потому как самодостаточные данные очень хорошо ложатся в очередь.

Ответить

 

Федот

Ну вот, то есть доктрина, не всегда подойдёт, можно ли обойтись без нее в симфони?
как поступить когда нужно что бы работало быстро?

Ответить

 

Evgeniy

Если не нужна Doctrine наверное не нужно и Symfony. О чем собственно и говорит количество проектов на том же Laravel и YII по сравнению с symfony. Одно из самых главных правил успешных проектов - выбирать инструменты правильные - рубанок для доски, пила дружба для ствола дерева.
Оно когда надо быстро и на 1 месяц вообще лучше взять YII2 и все в контроллере потоком запилить. Быстро безвкусно но зато результативно.

Ответить

 

Федот

Вот я и думаю тоже, но на неё есть спрос в бурже, так что ознакомиться не лишне, а использовать или нет, уже жизнь покажет, YII2 не знаю даже, не попадались желающие начать на нем новый проект в последнее время, Laravel по перспективнее выглядит вроде.

Ответить

 

Dmitry

Запросто можно обойтись без нее. Все на ваш вкус, особенно в symfony 4. Но если будешь разрабатывать более менее сложные проекты все равно придешь к системе похожей на доктрину.
Сам по себе фреймворк работает достаточно быстро. Остальное зависит от вашего кода, как вы его напишите.
С самим фреймворком я советовал бы поработать в любом случае, но только не пытаться внедрить в него свою идеологию, а принять его.
Если огромные приложения вы не пишите, даже не огромные, скорее с долгосрочной поддержкой(от 3-5 лет) то наверное стоит выбрать его. В остальных случаях я бы выбрал Laravel он реально очень крутой, удобный для разработки, огромное сообщество, огромное кол-во полезных библиотек. Я после 2х лет Laravel переходил назад на symfony - это была боль.

Ответить

 

Федот

Ясно, спасибо, за то что опытом поделились.
наверное весьма различаются походы, если говорите про боль, но наверное того стоило.
думаю в основном это из-за доктрины, остальное то наверное-более менее похоже на ларавел.

Ответить

 

Алексей Велосипедкин

Плюсы доктрины над AR в том, что можно отделить персистентный слой от доменной модели. И использовать на полную методологии DDD.

Ответить

 

Алекс

Ну и про тесты конечно. Я уверен, что и так про них будет, и тем не менее озвучу. Как организовать тестирование в Symfony. Я не про unit тесты. Тут более или менее все понятно. А вот организовать интеграционные тесты кода завязанного на Доктрину. Как это дело организовать в докере (а у нас нынче все в докере).

Ответить

 

Dmitry

Тесты ничем не отличаются ни от одного фреймворка. Все 1 в 1. Тем более интеграционные.

Ответить

 

Andrey

OAuth 2.0, Jenkins, Dev Ops примеры для повышения производительности

Ответить

 

Федот

Добрый день.
Симфони в полном сборе весьма тормозная вещь, хотелось бы увидеть как используя данный фрэймворк можно получить минимальный каркас, например с авторизацией и рест апи и как далее подключать необходимые компоненты по мере усложнения проекта, можно ли заменить доктрину на акив рекордс не сойдя с ума при этом и подключать другие компоненты вместо родных, если это удобно, как оптимизировать быстродействие, можно или использовать данный фрэймворк для RAD и как для него правильно писать тесты.
Так же просьба Дмитрию, объяснять в присущей ему изначально манере, долго и дотошно, в этом изюминка его курсов.

Ответить

 

Evgeniy

Тогда наверное SLIM + DOCTRINE + OATH2 + POSTGRESQL)))) Когда различие значений 20 мс и 120 мс по скорости для тебя становится экстремально значимым - то symfony уже не подходит. Как говорится разделяй и властвуй - FRONT отдельно BACK отдельно. Причем PHP в лучшем случае останется в части больше как маршрутизатор)))

Ответить

 

Федот

Ну я бы не стал в слим доктрину ставить, если быстрая работа нужна или эктив рекордс или что то типа пдо использовать или вообще голые запросы, но их тогда самому санитарить придется, что это не круто, можно и нарваться, а пхп да, как маршрутизатор и обработчик данных.
20 и 120 конечно не круто, в 6 раз разница, знакомый несколько лет назад говорил, что поставил симфони посмотрел сколько индекс открывается и количество запросов и удалил ее нафиг, надеюсь сейчас по лучше стало

Ответить

 

Федот

Кстати о пхп, как маршрутизаторе, я последнее время замечаю, что как то косо некоторые клиенты поглядывают на перезагрузку страницы, им хочется, что бы как спа работало, а это уже конкретное
изменение инструментария, никто не замечал подобного у своих заказчиков?

Ответить

 

Evgeniy

SPA как он есть в сути его создателей - это уже FRONTEND чистый. К такому разделению приходишь когда реально с нагрузкой в проектах сталкиваешься. До 100 000 реально загруженных уников в месяц и 100 одновременных в пике на сайте с агрегатом на 1000 запросов на сборку по клику лучше даже не смотреть на это дело. FRONT + BACK + экосреда чтобы это все работало по бюджету - это 500К рублей в месяц - и это должно приносить реальные результаты.

Ответить

 

Федот

Не только нагрузка, юзабилити тоже важный конёк, а с точки зрения нагрузки не сталкивался пока, но конечно по любому быстрее работает, это и без нагрузки видно.

Ответить

 

Evgeniy

PHP он как был так и остается)))))) От того что в браузере, он мало зависит.

Ответить

 

Федот

ну да, на ноде писать то еще удовольствие, хотя возможно это дело привычки, чем то и удобно даже, один язык

Ответить

 

Igor

Главное не делайте это в форме вебинара, где каждые 10 минут вас отвлекают тупыми вопросами "а почему докер?", "а почему не реакт?", "а я не понял вещь, которую и так 5 раз повторили" и тд.
Идеальный формат - как в курсе по микрофреймворку, но только что б за деньги, ясное дело)

Ответить

 

Игорь

Я чёт не нашел когда будет проводиться мастер-класс, от чего - не могу решить стоит ли принимать участие. Пожалуйста - дайте больше инфы о месте и времени.

Ответить

 

Дмитрий Елисеев

Сделаю отдельную страницу мастер-класса на неделе и всё там напишу.

Ответить

 

Дмитрий Елисеев

Да.

Ответить

 

Владимир

спасибо. попробую её прочитать. может действительно после неё Великие легче пойдут))

Ответить

 

y2k

Swagger

Ответить

Оставить комментарий

Войти | Завести аккаунт


(никто не увидит)



Можно использовать теги <p> <ul> <li> <b> <i> <a> <pre>