YiiFramework Новости Yii 2020, выпуск 1

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Достаточно часто говнокод просто не работает.
Пример из жизни, SAAS. Есть такая штука, называется контракт. Клиент хочет фичу, которая заявлена в спеках. Скачать каталог. Каталог скачивается 10 минут - из базы, POST-запросом. Выборка из базы выполняется медленно. Клиенту не подходит. Или будет работать быстро, или контракт подписан не будет. Кешировать не получается потому что запрос POST, а не GET.
Надо переписывать. Без знаний про nginx accel download задачу решить сложно.

Один проект непредсказуемо падал раз в несколько дней. Теряются позиции в выдаче, проект умирает. Nginx откушивает 1 Гб оперативки, и еще много подобных проблем. Это не "кое-как", стоял вопрос закрытия проекта, получилось продлить его жизнь на много лет.
 

AmdY

Пью пиво
Команда форума
Достаточно часто говнокод просто не работает.
Пример из жизни, SAAS. Есть такая штука, называется контракт. Клиент хочет фичу, которая заявлена в спеках. Скачать каталог. Каталог скачивается 10 минут - из базы, POST-запросом. Выборка из базы выполняется медленно. Клиенту не подходит. Или будет работать быстро, или контракт подписан не будет. Кешировать не получается потому что запрос POST, а не GET.
Надо переписывать. Без знаний про nginx accel download задачу решить сложно.

Один проект непредсказуемо падал раз в несколько дней. Теряются позиции в выдаче, проект умирает. Nginx откушивает 1 Гб оперативки, и еще много подобных проблем. Это не "кое-как", стоял вопрос закрытия проекта, получилось продлить его жизнь на много лет.
Здесь же не качество кода виновато, а подходы к архитектуре.


p.s.
Хороший камень в огород цепляющихся за рид-врайт модели. У тебя тяжёлый рид, который надо выносить в отдельный сервис, не влияющий на работу остального портала и обрабатывающийся по своей модели.
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@Adelf я имел ввижу кеширование на CDN вроде Акамая, они ответы на POST не кешируют,
а вообще, ответ отдавался с динамической постраничной разбивкой, и я добавил манифест, которой фиксировал список частей, чтобы его можно было кешировать стабильно - это полный редизайн
 

Adelf

Administrator
Команда форума
Мне просто показалось смешным, что POST запрос помешал закешировать медленную выборку из базы :) но может чего не так понял...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
вот это уже таки профдеформация - я не расписал ограничения в деталях,
дело в том, что когда фронт-серверов много, так просто без уникального идентификатора состояния набора данных ответ из сервиса не закешировать - будет неконсистентность кеша, надо решать одну из трех сложных проблем программирования, а выгружать целиком на уровень CDN и забить не дает HTTP-протокол
 

fixxxer

К.О.
Партнер клуба
Люди не непогрешимы и средний уровень разработчиков невысок. Потому популярны простые решения вроде вордперса, опенкарта или этого же Yii 1.
Простым задачам - простые решения. Никто ж не предлагает всякую контентную фигню делать с применением DDD и CQRS. :) Вордпресса достаточно.
Фиксер с напрягом, но разберётся с говнокодом на Yii, а вот средний специалист по yii не сможет во вменяемые сроки доработать то, что на своих высокоуровневых решениях соберёт Фиксер.
"Средний специалист по Yii" :) Давайте еще "среднего специалиста по Yii" отправим ядро Линукса дорабатывать.
Кстати, в "высокоуровневых решениях" нет ничего сложного. Начиная с определенного уровня сложности декомпозиция позволяет управлять сложностью, делая каждую составную часть достаточно простой. Сложным это все кажется с непривычки, поскольку требуется изучить новый для себя подход, выработать новые нейронные связи в мозгу. На самом деле ничего сложного нет. Куда сложнее, когда сложность размыта по всему коду и при реализации новых требований надо вносить множество изменений и тут и там.

Вот, смотри о чем я:

 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
я ж про это и написал - архитектура на высоком уровне решает проблемы низкого качества кода
 

fixxxer

К.О.
Партнер клуба
я ж про это и написал - архитектура на высоком уровне решает проблемы низкого качества кода
Вот это, кстати, и отличает senior разработчика - умение видеть проблемы на высоком уровне, смотреть дальше того куска кода, который вот прямо сейчас открыт в IDE. Средний разработчик зачастую пытается решить проблемы не на том уровне.
 

Фанат

oncle terrible
Команда форума
Вот это, кстати, и отличает senior разработчика - умение видеть проблемы на высоком уровне, смотреть дальше того куска кода, который вот прямо сейчас открыт в IDE. Средний разработчик зачастую пытается решить проблемы не на том уровне.
Я тут втихую утасткиваю твои высказывания в свой твитырь.Уже второе
 

fixxxer

К.О.
Партнер клуба
Я тут втихую утасткиваю твои высказывания в свой твитырь.Уже второе
😄 да вот только для твиттера такие капитанские высказывания и годятся. Я все никак не возьмусь про CQRS обещанное написать, длинные тексты мне тяжело даются, нужен настрой :)
 
Сверху