В этой статье обсудим, что из себя представляет изолированность транзакций в БД, какие есть уровни изоляции транзакций, как их установить, какие бывают аномалии на разных уровнях, и что такое MVCC. Естественно, всё на простых примерах.
Пользователь
Prompt engineering 101
Привет!
Использование LLM все больше проникает в бизнес. И ритейл — не исключение. В X5 мы решили сделать небольшую методичку по prompt engineering для обычного бизнес‑пользователя. Мы посмотрели на получившийся результат и решили поделиться этой методичкой с сообществом, чтобы как можно больше людей смогли овладеть разными техниками, позволяющими работать с LLM эффективнее.
Для этого нам сначала придется разобраться с тем, как вообще устроены LLM, затем поговорим о промптах: общие принципы построения, техники оптимизации и промпты для изображений. А на десерт предложим вам продвинутые техники работы с LLM: автоматизированные подходы по улучшению промптов, Retrieval‑Augmented Generation и разметка данных для ML с помощью LLM.
Эффективное кеширование. От теории к практике
Как правило, статьи о кешировании начинаются за здравие, а заканчиваются LRU кешем. Попробуем переломить эту тенденцию? Начнем с того, чем LRU плох, а закончим за здравие. Я надеюсь.
Вне зависимости от того, строите ли вы хайлоад сервис для миллионов посетителей или проектируете мобильное приложение, пишите операционную систему или СУБД — ключевое звено, влияющее на конечную стоимость системы и на отзывчивость интерфейса/сервиса — это кеш.
Как я обработал один миллиард строк в PHP
Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.
Моё участие в проекте было мотивировано присутствием в нём двух моих коллег, которые достигли лидирующих позиций.
PHP не известен своими выдающимися скоростными показателями. Тем не менее, учитывая, что я работаю над профайлером PHP, я решил исследовать его производительность на примере этого вызова.
SQL инъекции для продолжающих: ломаем настоящий сайт
Про SQL-инъекции написано огромное количество статей. Все знаю про пресловутые ‘ OR 1 = 1
и аналогичные конструкции, но далеко не все реализовывали их на практике. В этой статье мы разберем на практике некоторые способы реализации SQL-инъекций на примере уязвимого сайта.
Статья предназначена для тех, кто хочет на практике разобраться с тем, что такое SQL-инъекции.
Работа с частичными моками в PHPUnit 10
В этом году должен выйти PHPUnit 10 (релиз планировался на 2 апреля 2021 года, но был отложен). Если посмотреть на список изменений, то бросается в глаза большое количество удалений устаревшего кода. Одним из таких изменений является удаление метода MockBuilder::setMethods(), который активно использовался при работе с частичными моками. Этот метод не рекомендуется использовать с версии 8.0, но тем не менее он описан в документации без каких-либо альтернатив и упоминания о его нежелательности. Если почитать исходники PHPUnit, issues и пул-реквесты на GitHub, то станет понятно, почему так и какие есть альтернативы.
В этой статье я освещу этот нюанс для тех, кто не обращал на него внимания раньше: расскажу про частичные моки, проблемы, возникающие при работе с setMethods, пути их решения, а также затрону вопрос миграции тестов на PHPUnit 10.
Laravel: разработка пакетов
Каждый разработчик рано или поздно сталкивается с необходимостью повторного использования собственного кода. В проектах PHP для этих целей создаются пакеты, устанавливаемые с помощью Composer. При этом пакеты могут быть абстрагированы от каких-либо фреймворков, либо могут быть предназначены для использования в конкретном PHP-фреймворке. В данной статье рассказывается о том, как создать PHP-пакеты для фреймворка Laravel, но материал будет полезен и тем, кто собирается разрабатывать любые другие PHP-пакеты (как публичные, так и приватные).
Для лучшего понимания данного материала рекомендуется ознакомиться с разделом о разработке пакетов в официальной документации Laravel. А для более детального изучения темы будет полезен данный ресурс.
Данная статья в большей мере ориентирована на начинающих разработчиков.
Механизмы безопасности в Laravel
Комплексный обзор множества безопасных функций Laravel, которые могут помочь вам предотвратить болезненные ошибки.
Мы рассмотрим следующие механизмы безопасности:
• Предотвращение N+1
• Защита от частично гидрированных моделей
• Опечатки атрибутов и переименованные столбцы
• Защита от массового присвоения
• Строгость модели
• Принудительное выполнение полиморфного сопоставления
• Мониторинг долгосрочных событий
Шпаргалка по SQL (postgres), которая выручает меня на собесах
Привет, Хабр!
Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.
Данная информация предполагает знание основ языка запросов и я надеюсь, она окажется полезной для разработчиков, которые сейчас активно ищут работу а также, что ты прочитаешь этот текст до конца и добавишь свой вопрос к перечню (ну или поправишь неточности в существующих)
Топ полезных SQL-запросов для PostgreSQL
Статей о работе с PostgreSQL и её преимуществах достаточно много, но не всегда из них понятно, как следить за состоянием базы и метриками, влияющими на её оптимальную работу. В статье подробно рассмотрим SQL-запросы, которые помогут вам отслеживать эти показатели и просто могут быть полезны как пользователю.
Разработка систем генеративного ИИ на базе ML Platform: создаем конкурента ChatGPT без миллионных инвестиций
2023-й — однозначно год генеративного искусственного интеллекта и сервисов на его основе, которые используют в разных кейсах и сценариях. Но даже при этом для многих сфера генеративного ИИ остается на уровне пользовательского интереса. Это упущение, ведь потенциал GPT-моделей и им подобных не ограничен поиском ответов на классические вопросы и даже ассистированием в процессе разработки. А их создание не относится к числу нерешаемых задач тысячелетия. GPT — технология, которую можно приручить, и это проще, чем кажется.
PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами
1. Общие сведения.
2. Увеличиваем потребление памяти вдвое.
3. Увеличиваем потребление памяти втрое.
4. Ещё раз увеличиваем потребление памяти на ровном месте.
5. Заключение.
SQL миграции в Postgres. Часть 1
Как обновить значение атрибута для всех записей таблицы? Как добавить первичный или уникальный ключ в таблицу? Как разбить таблицу на две? Как ...
Если приложение может быть недоступно какое-то время для проведения миграций, то ответы на эти вопросы не представляют сложности. А что делать, если миграции нужно проводить на горячую – не останавливая базу данных и не мешая другим с ней работать?
На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Резервное копирование и восстановление СУБД MySQL
О необходимости выполнения резервного копирования для любых важных данных, будь то файлы, образ ОС или базы данных, написано множество статей. Поэтому убеждать читателя в необходимости бэкапить СУБД MySQL я не буду. Напомню лишь, что помимо бэкапа необходимо регулярно проверять резервные копии на возможность восстановления.
Следующий раздел предназначен для тех, кто не читал статью по бэкапам PostgreSQL, так как он повторяет основные моменты теории резервного копирования.
Об интересных задачах по SQL
Всем доброго дня!
Стал искать задачи по SQL, чтобы освежить свои знания, и к немалому удивлению обнаружил, что, несмотря на очевидную востребованность темы, интересные наборы задач на русскоязычных ресурсах можно пересчитать по пальцам. Хочу поделиться с сообществом своим мнением по поводу этих наборов, тем более что в отличие от самих задач далеко не все их авторские решения мне понравились.
Как и зачем тестировать код на бэкенде: рекомендации для новичков
Расскажем, как автоматизировать тесты так, чтобы не тратить на них кучу времени, быстрее находить баги и не повторять их. А ещё поделимся секретом идеального теста. Спойлер: его не существует, но решение есть.
Также разберём базу: виды тестов, их отличия друг от друга, плюсы и минусы. Если вы только начинаете разбираться в тестировании, вам это точно пригодится.
Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector
Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью.
Статья написана на основе доклада с PHP Russia 2022.
Полное понимание асинхронности в браузере
- Цикл событий
Задачи, тики и Web API
Очередь задач
16,6 миллисекунды на задачу
Обработка больших задач
Микрозадачи
requestAnimationFrame
requestIdleCallback
Сравнение очередей
Цикл событий в Node.js - Функции обратного вызова
Ад обратных вызовов
Не выпускайте Залго
Жёсткая сцепленность
Проблема доверия - Обещания
Цепочки обещаний и проброс отказа
Неявное поведение
Возвращение нового обещания
Спрятанный try/catch
Thenable-объекты
Статические методы
Promise.all
Promise.race
Promise.any
Promise.allSettled
Промисификация
Обещания или функции обратного вызова?
Корутины - Async/await
Верхнеуровневый await и асинхронные модули
Обработка ошибок
Не все await одинаково полезны - Заключение
5 полезных расширений Chrome для тестировщиков
На вашу продуктивность влияют инструменты, которые вы используете. Чтобы повысить свою продуктивность, вы можете использовать различные расширения, которые дополняют функциональность браузера и позволяют быстрее выполнять больше задач.
Вышеприведенное утверждение применимо и к тестированию. Мы часто используем расширения Chrome для улучшения рабочего процесса.
Я ежедневно пользуюсь расширениями, которые я перечислила ниже. Они помогли значительно повысить эффективность моей работы. Поэтому я хочу поделиться этими расширениями и с вами.
Делаем документацию здорового человека в Git на примере Docs Ozon
Казалось бы, с документацией всё просто — пишешь, публикуешь, поддерживаешь актуальность. Например, вот у нас в Ozon есть пользовательские инструкции на docs.ozon.ru: выглядит просто как текст на сайтике, что ж необычного-то в его размещении и в целом в работе техписателей?
Если начать раскапывать, всплывёт ещё несколько вопросов:
• где хранить тексты и почему Confluence не подходит?
• как красиво оформить документацию с помощью статических генераторов сайтов
• зачем техписателям знать git и CI/CD?
• в какой момент пора искать разработчиков в команду и превращать документацию в платформу?
На связи Катя — руководитель отдела технических писателей в Ozon, и сегодня расскажу о платформе Docs Ozon изнутри.
Информация
- В рейтинге
- 4 155-й
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность