<rmcreative>

RSS
  1. Принципы GRASP

    4 июля

    Набор принципов GRASP, general responsibility assignment software principles, что переводится как "общие принципы распределения обязанностей", помогает, как следует из названия, правильно выбрать в какой объект или модуль распределить определённую обязанность. Под обязанностью здесь подразумевается знание/хранение информации и/или проведение каких-либо действий.

    Принципы сформулированы в 1997 году Крэгом Ларманом в книге "Applying UML and Patterns" (на русском выходила под названием «Применение UML 2.0 и шаблонов проектирования»).

    Всего их девять. Четыре основных и пять дополнительных.

    Читаем

    Комментировать
  2. PER Coding Style 1.0.0

    20 июня

    Что такое PER я уже писал. Если коротко, то это "живой" стандарт, который применяется для постоянно меняющихся тем, на которые всё-таки стандарт какой-то нужен.

    Недавно мы тегнули первую версию PER Coding Style. Изначально я был редактором, но из-за февральских событий максимум на что хватило — начать и делать пристальное ревью.

    В итоге сейчас стандарт является, по сути, копией PSR-12 с поправленными описками и ошибками. А вот в master-ветке уже есть изменения, учитывающие свежие конструкции PHP, которые войдут во вторую версию.

    2 комментария
  3. Новости Yii 2022, выпуск 1

    3 мая

    Нашёл силы составить первый выпуск в этом году.

    Несмотря на всё что происходит, разработка фреймворка не остановилась. Мы верим, что OpenSource — это что-то лучшее, что-то что всё ещё может нас объединить, что-то общее. Конечно, темпы разработки сейчас упали, но нам удаётся как разрабатывать Yii3, так и поддерживать Yii2 и Yii1.

    Читаем на хабре

    Комментировать
  4. composer для продакшна

    2 февраля

    Продакшн можно разворачивать многими способами. Один из них — когда код попадает на сервер отдельно, а зависимости ставятся запуском composer уже на месте.

    В этом случае важно:

    1. Коммитить в репозиторий composer.lock.
    2. Делать только composer install, ни в коем случае не update.
    3. Не забывать оптимизировать автозагрузку. Предпочтительней флагом --classmap-authoritative или соответствующей опцией в composer.json.
    4. Не забывать флаг --no-dev чтобы не ставить зависимости из require-dev.
    5. Указать ту же версию PHP, что используется на сервере, в platform.
    Комментировать
  5. Официально начата работа над Coding style PER

    31 января

    Coding Style PER, который заменит PSR-12, официально одобрен PHP-FIG. Работы начаты в https://github.com/php-fig/per-coding-style.

    Это первый документ группы согласно PER, то есть «живой» стандарт. Его не будут заменить каждый раз при добавлении нового синтаксиса в PHP. Вместо этого пакет правки будут релизиться по SemVer.

    Комментировать
  6. Форсируем LF для всего проекта

    27 января

    Форсировать линуксовое окончание строк LF вместо CRLF из Windows полезно потому как тот же Docker CRLF очень не любит. Настраивать локально что-то не очень приятно, поэтому просто замечательно что есть возможность форсировать это для всей команды средствами git.

    1. В корне репозитория создаём .gitattributes, пишем туда * text=auto eol=lf первой строкой.
    2. Делаем коммит с этим изменением, пушим.

    Собственно, всё. Осталось локально себе сконвертить всё в LF. В этом также поможет git:

    1. git rm --cached -r .
    2. git reset --hard
    Комментировать
  7. Галеры против продукта

    5 января

    На хабре проскачила неплохая статья, показывающая плюсы работы на «галерах», то есть в аутсорсе и аутстаффе.

    Я был и там и там. Да, есть галеры где неплохо, но:

    1. Срок жизни «галерного» проекта слишком мал, чтобы увидеть самые фатальные свои косяки. Они достанутся кому-то ещё, а вы будуете думать что решение было норм.
    2. Главная метрика любого проекта галеры — клиент доволен. Это сказывается практически на всём.

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

    Комментировать
  8. 2021

    31 декабря 2021

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

    Читаем

    1 комментарий
  9. PHP 8.1

    26 ноября 2021

    Ура! Релизнулся.

    Комментировать
  10. История одной оптимизации

    2 октября 2021

    Было: Каталог товаров с фасетами и хитрой сортировкой на MySQL.

    A: Переписали на SphinxSearch. После деплоя упёрлись в max_matches.

    B: Быстро повысили max_matches, но слишком сильно.

    C: Вернули max_matches в допустимые границы.

    Стало: Ответ сверера в два раза быстрее. Уменьшилась общая загрузка CPU и потребление памяти сервера.

    6 комментариев