
Приветствую вас, хабравчане! Немного набравшись смелости решил написать свою первую статью, точнее поделиться небольшим опытом, в интересной как мне показалось теме, а именно как в динамический массив в конфиге, добавить загрузчик файлов.
Скриптовый язык общего назначения
Приветствую вас, хабравчане! Немного набравшись смелости решил написать свою первую статью, точнее поделиться небольшим опытом, в интересной как мне показалось теме, а именно как в динамический массив в конфиге, добавить загрузчик файлов.
Я хотел бы, чтобы они появились и знаю многих разработчиков, которые согласны со мной. С другой стороны, есть группа PHP-программистов, возможно, даже большая, которые не знают, что такое дженерики и для чего они нужны.
Давайте поговорим о том, что такое дженерики, почему PHP их не поддерживает и что, возможно, нас ждёт в будущем.
В конце декабря 2019 года передо мной стояла задача разработки агрегатора культурных событий. Решение предполагало создание 2х инструментов: для добавления мероприятий на сайте, для сбора и предъявления актуальных данных о планируемых событиях.
В обзоре я кратко опишу основные этапы разработки, сложности реализации проекта.
Всем привет.
Я разрабатываю библиотеку для работы с Entity Attribute Value (репозиторий), сокращенно EAV (модель базы данных для хранения произвольных данных). В конце прошлой статьи я спросил у вас о чём мне ещё надо написать, вы попросили показать пример использования и сделать замеры быстродействия.
Что для нас важно при работе с данными ? Скорость записи (добавления или обновления) и скорость чтения (конкретно - фильтрации по моделям одной сущности). При чём скорость поиска в приоритете, потому что записываем мы один раз в цать дней, а читаем каждую минуту/секунду и даже не один раз, а может быть и не одну сотню раз.
Фишка библиотеки в том что бы работать не с представлением построенном на базовых таблицах EAV, а работать с небольшой частью этих данных записанных в отдельное материализованное представление или в отдельную таблицу.
В Новогодние каникулы я сделал замеры производительности и хочу с вами поделиться результатами
Что будем измерять ?
Чтение:
Время вычитывания всех позиций категории
Время формирования параметров фильтрации
Время фильтрации
Запись:
Время добавления новой характеристики (атрибута)
Время добавления новой товарной позиции (модели)
Время обновления товарной позиции
У нас было: N различных систем, которые обращались друг к другу напрямую; M маркетологов, которые генерировали идеи, хотели проводить разные тесты и часто предлагали подключить какой-нибудь новый сервис; и K менеджеров по продажам, у которых было много рутинной работы.
Все это порождало проблемы по поддержке и ошибки человека.
Решение: автоматизация и инкапсуляция бизнес-процессов. Разработать систему, которая снимет с людей рутину и уменьшит количество ошибок, ускорит работу, которую будет просто поддерживать и масштабировать.
На одном из утренних дэйликов, мобильные разработчики подняли вопрос о том, что документация по API не соответствует действительности. По горячим следам быстро нашли, что действительно есть нестыковки: разработчик пофиксил баг, но не обновил документацию по роуту. Так как такое уже случалось не впервые - была заведена задача на подумать, что можно с этим поделать.
Ждать долго не пришлось, при обновлении на сервере PHP c 7.2 до 7.4 - мы получили страницу с описанием ошибки, вместо документации. Ошибка найдена в библиотеке, которую мы использовали для рендеринга UI документации. ПР на гитхабе был создан быстро, но провисел в статусе open почти неделю. После этого, тикет насчет документации пошел в работу.
Да, именно так: я начинал писать основу PHP движка в 2001-ом году.
Тогда всё было проще: каталог inc/, в нём header.php, footer.php, common.php.
Но это было скучно и неинтересно, надо было ещё больше фишек, которые я бы мог предложить заказчикам. Так появился раздел admin/. Но примерно в тоже время появился PHPNuke, это была бомба! Такой уровень кастомизации! Я понял, что ничего подобного я предложить не смогу, но и по требованиям мой движок был куда как проще, хотя позволял организовать каталог товаров, список статей, галерею. Несколько лет я дальше двигался по основной своей работе: администрирование Linux-серверов.
На текущий момент есть много сервисов, откуда можно получить курсы валют, но все они либо неудобные, либо у них отсутствует одна или более нужных вам валют.
Хочу предложить вам обзор современного, а может быть, даже и лучшего решения на рынке, для получения курсов валют как в реальном времени, так и за прошлые периоды.
Страсти по Laravel UI — сообщество против Тейлора. Лучшие практики безопасности Laravel-приложений. Уроки по новым возможностям восьмой версии фреймворка. Подробный обзор Laravel JetStream.
В этой статье будет рассмотрен способ переноса почты между разными серверами с помощью утилиты IMAPSync через примитивный интерфейс пользователя.
Процесс миграции передаем пользователю по причине запрета организацией использовать пароли от почтовых ящиков сотрудников в скрипте. Для этого разработан web-интерфейс пользователя.
Подборка новых статей по фреймворку Laravel. Посмотрим доклады с Laracon. Подивимся визуальному генератору кода Vemto. Изучим Event Sourcing. Узнаем, как добиться финансового успеха c Laravel. Отпразднуем новую версию Laravel Excel и 20 миллионов скачиваний.
В Харькове прошёл Magento-митап, и на нём прозвучали доклады Робина ван Раана, Александра Шкурко и Максима Грома. В них много полезного. Ловите.
Робин ван Раан рассказал о новейших практиках оптимизации RequireJS. С их помощью фронтенд сайта можно ускорить в 3 раза!
Александр Шкурко рассказал, в каких случаях лучше использовать команды вместо репозиториев в Magento 2. Всё это проиллюстрировано лучшими, на мой взгляд, картинками!
Максим Гром коснулся скользкой темы ныряния в Magento DI. Многим это тоже будет полезно.