1. fomiash fomiash 12 Ноября (ред.)

    При оборачивании в транзакцию нескольких программных сервисов или иного вложенного кода, стоит учитывать, что:

    1. Внутри этих сервисов может быть привязано событие или иной триггер, которое отработает как успешное в то время как транзакция будет отменена. Например, может быть отправлено сообщение пользователю на E-mail или иным способом.
    2. Вызов фонового события внутри транзакции или обращение к другому сервису не может быть отменено вместе с транзакцией.
    3. Транзакция в транзакции. Возникает неочевидное поведение в различных БД при использовании rollback, теряется атомарность, если внутренняя транзакция уже сохранена, а внешняя нет (в MySQL это будет считаться одной транзакцией).
    4. Неуспешная отработка сервиса или иного кода внутри транзакции может быть не очевидна для отката транзакции.
    5. Слишком строгий уровень изоляции транзакций при сложных процессах внутри самой транзакции может послужить причиной задержек выполнения.
  1. fomiash fomiash 11 Ноября (ред.)

    MyRocks, движок хранения к СУБД MySQL от Facebook

    Facebook запустил проект MyRocks, который включает новый движок хранения для системы управления базами данных MySQL 5.6. Он основан на RocksDB и оптимизирован для использования с Flash-накопителями. Основными задачами MyRocks являются улучшение эффективности хранения данных на Flash-носителях и уменьшение объема базы данных.

    В InnoDB основными факторами, способствующими большому потреблению дискового пространства, являются фрагментация, низкая степень сжатия и фиксированный размер страниц для хранения данных (8 КБ). Даже если данные занимают 5 КБ, блок размером 8 КБ все равно будет расходоваться. В отличие от этого, MyRocks использует плавающий размер страниц и предлагает более эффективный метод сжатия. Кроме того, MyRocks требует меньше операций последовательного чтения и записи благодаря модели хранения данных на основе логов (Log Structured Merge Trees), которая допускает только добавление данных, а очистка выполняется сборщиком мусора.

    Внедрение нового хранилища на основных серверах Facebook для хранения аналогичного объема данных позволило сократить размер базы данных на 50% по сравнению с сжатым хранилищем InnoDB и в 3,5 раза по сравнению с InnoDB без сжатия. Также использование MyRocks привело к ускорению процесса репликации за счет снижения количества операций чтения при обновлении ключей. Операции загрузки данных в базу тоже стали быстрее благодаря пакетной обработке.

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

    Репозиторий: https://github.com/facebook/mysql-5.6

  1. fomiash fomiash 30 Июня (ред.)

    В совокупности с неинтуитивным роутингом в YII

    В Yii3 обещается более удобный роутинг, чем в предыдущих версиях, похожий на роутинг Laravel.

  1. fomiash fomiash 24 Июня (ред.)

    PS Возможно, что будет нужна функция Hleb\Static\System::getTaskPermissions() для того, чтобы определить заранее, может ли конкретная задача выполняться в нужном режиме.

  1. fomiash fomiash 07 Июня (ред.)

    UPD Если изменить маршрут на:

    // Файл /routes/main.php
    Route::any('/{controller}/{method}')
        ->module('common', 'Modules\Common\Controllers\<controller>Controller@action<method>');

    то будет более полная подстройка под Yii2, так как теперь только методы контроллера начинающиеся с "action" будут участвовать в подборе совпадений. Например, адрес /site/index будет указывать в контроллер модуля SiteController и его метод actionIndex(). При этом в rules() останется по прежнему ключ 'index' в данном случае.

  1. fomiash fomiash 07 Июня (ред.)

    Часть подобных статей вынес в раздел "Вопросы", с недавнего времени он также пополняется категорией FAQ, так что велком.

  1. Evg Evg 06 Июня (ред.)

    Интересно, спасибо!

  1. fomiash fomiash 04 Июня (ред.)

    Нужно настроить права на папку storage по этой инструкции https://hleb2framework.ru/ru/2/0/settings

  1. Evg Evg 24 Мая (ред.)

    Освежил в памяти, спасибо. +

  1. fomiash fomiash 20 Мая (ред.)

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

  1. fomiash fomiash 20 Мая (ред.)

    Если ваше приложение будет работать с базой данных, необходимо установить расширение PHP PDO и соответствующий драйвер (например, pdo_mysql для MySQL).

    В остальном фреймворк по умолчанию работает с базовым набором расширений PHP. Дополнительно устанавливать ничего не нужно.

  1. fomiash fomiash 20 Мая (ред.)

    Конфигурационные файлы, в том числе для настройки баз данных, хранятся в папке config. Подробнее про конфигурацию https://hleb2framework.ru/ru/2/0/configuration

    Для подключения к базе данных MySQL найдите файл config/database.php (или config/database-local.php, если он есть) и измените блок, который по умолчанию имеет название 'mysql.name', также убедитесь, что в 'base.db.type' выставлено это название.

        // База данных по умолчанию:
        'base.db.type' => get_env('DB_TYPE','mysql.name'),
        // Список баз данных:
        'db.settings.list' => [
            'mysql.name' => [
                'mysql:host=localhost',
                'port=3306',
                'dbname=%dbname%', // Название базы данных
                'charset=utf8',
                'user' => '%username%', // Имя пользователя
                'pass' => '%password%', // Пароль
            ],
        ]
    
  1. fomiash fomiash 19 Мая (ред.)

    Об уровне подачи информации у этой организации можно судить по статье на Хабре . За эту статью упомянутая там компания подала в суд и пришлось срочно вносить в статью изменения. Неужели хваленые юристы профсоюза ничего в статье не обнаружили перед выкладкой? Делайте выводы.

  1. fomiash fomiash 19 Мая (ред.)

    Эти две версии отличаются очень сильно, но просматривается приемственность.

    В общем - HLEB1 поддерживает версии php 7.2 - 8.2 и на текущий момент не развивается, только поддержка безопасности.

    Все силы направлены на HLEB2, этот фреймворк современнее, в нем учтены нюансы разработки первого фреймворка и он имеет более расширенные возможности.

    Вот связанные посты на эту тему:

    Переход на HLEB2 c первой версии фреймворка

    Отчет по подготовке версии HLEB 2.0

    Вместо отчёта по фреймворку HLEB 2

    Заметки о переделке фреймворка HLEB

    В преддверии версии фреймворка HLEB 2.0

  1. Evg Evg 08 Мая (ред.)

    Здорово! Разница конечно есть существенная. +

  1. fomiash fomiash 13 Декабря 2023 (ред.)

    Небольшое уточнение к Dependency inversion - имеется ввиду, что все используемые зависимости класса должны исходить из его интерфейса и быть там как бы зафиксированы.

  1. fomiash fomiash 29 Ноября 2023 (ред.)

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

  1. fomiash fomiash 07 Октября 2023 (ред.)

    Недавно читал перепалку программистов, что преимущество Symfony перед другими PHP-фреймворками как раз в том, что Symfony не позволяет писать "плохой" код. Как раз описанный выше проект на этом фреймворке, что показывает, что фреймворк не может повлиять на качество кода разработчика, и дело совсем не в инструментах, а какие руки эти инструменты держат.

  1. BahtSim BahtSim 27 Сентября 2023 (ред.)

    Можно поити дальше и добавить в правила animals.txt специально для культуры фури. Если не в курсе, то это подростки, которые идентифицируют себя с животными. Сорри за офтоп.

  1. Evg Evg 21 Сентября 2023 (ред.)

    Главная, что работа идет. Ждем, ждем... интересно.

  1. Preset Preset 27 Июля 2023 (ред.)

    Стол с пинг-понгом или турник тоже имеют место быть. Какие-то нейробиологи доказали, что физическая активность благотворно влияет на умственную деятельность. Все в интересах начальника :)

  1. BahtSim BahtSim 24 Июля 2023 (ред.)

    Хороший список! Для молодежи еще добавил бы в него наставничество и обучение.

  1. Evg Evg 14 Июля 2023 (ред.)

    Очень интересно, спасибо. Пропустил это дело. Надо последить, че там.

  1. Evg Evg 26 Июня 2023 (ред.)

    Интересно, спасибо.

  1. YuraN YuraN 13 Июня 2023 (ред.)

    :) Ждем новую версию, Evg - Libarea тоже ждет и мы ждем. Про сроки не спрашиваю, а желаю плодотворной работы:)



Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.