Как стать автором
Обновить
4
0.1
Сергей Шлоков @sergant210

Пользователь

Отправить сообщение

Уровни изоляции транзакций в БД

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров14K

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

Читать далее
Всего голосов 15: ↑14 и ↓1+18
Комментарии11

Prompt engineering 101

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров15K

Привет!

Использование LLM все больше проникает в бизнес. И ритейл — не исключение. В X5 мы решили сделать небольшую методичку по prompt engineering для обычного бизнес‑пользователя. Мы посмотрели на получившийся результат и решили поделиться этой методичкой с сообществом, чтобы как можно больше людей смогли овладеть разными техниками, позволяющими работать с LLM эффективнее.

Для этого нам сначала придется разобраться с тем, как вообще устроены LLM, затем поговорим о промптах: общие принципы построения, техники оптимизации и промпты для изображений. А на десерт предложим вам продвинутые техники работы с LLM: автоматизированные подходы по улучшению промптов, Retrieval‑Augmented Generation и разметка данных для ML с помощью LLM.

Читать далее
Всего голосов 16: ↑14 и ↓2+16
Комментарии9

Эффективное кеширование. От теории к практике

Время на прочтение13 мин
Количество просмотров70K
image

Как правило, статьи о кешировании начинаются за здравие, а заканчиваются LRU кешем. Попробуем переломить эту тенденцию? Начнем с того, чем LRU плох, а закончим за здравие. Я надеюсь.

Вне зависимости от того, строите ли вы хайлоад сервис для миллионов посетителей или проектируете мобильное приложение, пишите операционную систему или СУБД — ключевое звено, влияющее на конечную стоимость системы и на отзывчивость интерфейса/сервиса — это кеш.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии59

Как я обработал один миллиард строк в PHP

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров20K

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

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

PHP не известен своими выдающимися скоростными показателями. Тем не менее, учитывая, что я работаю над профайлером PHP, я решил исследовать его производительность на примере этого вызова.

Читать далее
Всего голосов 66: ↑64 и ↓2+72
Комментарии33

SQL инъекции для продолжающих: ломаем настоящий сайт

Время на прочтение5 мин
Количество просмотров22K

Про SQL-инъекции написано огромное количество статей. Все знаю про пресловутые ‘ OR 1 = 1 и аналогичные конструкции, но далеко не все реализовывали их на практике. В этой статье мы разберем на практике некоторые способы реализации SQL-инъекций на примере уязвимого сайта.

Статья предназначена для тех, кто хочет на практике разобраться с тем, что такое SQL-инъекции.

Читать далее
Всего голосов 20: ↑16 и ↓4+14
Комментарии7

Работа с частичными моками в PHPUnit 10

Время на прочтение8 мин
Количество просмотров7.2K

В этом году должен выйти PHPUnit 10 (релиз планировался на 2 апреля 2021 года, но был отложен). Если посмотреть на список изменений, то бросается в глаза большое количество удалений устаревшего кода. Одним из таких изменений является удаление метода MockBuilder::setMethods(), который активно использовался при работе с частичными моками. Этот метод не рекомендуется использовать с версии 8.0, но тем не менее он описан в документации без каких-либо альтернатив и упоминания о его нежелательности. Если почитать исходники PHPUnit, issues и пул-реквесты на GitHub, то станет понятно, почему так и какие есть альтернативы.

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

Читать далее
Всего голосов 45: ↑45 и ↓0+45
Комментарии0

Laravel: разработка пакетов

Время на прочтение15 мин
Количество просмотров12K

Каждый разработчик рано или поздно сталкивается с необходимостью повторного использования собственного кода. В проектах PHP для этих целей создаются пакеты, устанавливаемые с помощью Composer. При этом пакеты могут быть абстрагированы от каких-либо фреймворков, либо могут быть предназначены для использования в конкретном PHP-фреймворке. В данной статье рассказывается о том, как создать PHP-пакеты для фреймворка Laravel, но материал будет полезен и тем, кто собирается разрабатывать любые другие PHP-пакеты (как публичные, так и приватные).

Для лучшего понимания данного материала рекомендуется ознакомиться с разделом о разработке пакетов в официальной документации Laravel. А для более детального изучения темы будет полезен данный ресурс.

Данная статья в большей мере ориентирована на начинающих разработчиков.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Механизмы безопасности в Laravel

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров9.9K

Комплексный обзор множества безопасных функций Laravel, которые могут помочь вам предотвратить болезненные ошибки.

Мы рассмотрим следующие механизмы безопасности:

Предотвращение N+1
Защита от частично гидрированных моделей
Опечатки атрибутов и переименованные столбцы
Защита от массового присвоения
Строгость модели
Принудительное выполнение полиморфного сопоставления
Мониторинг долгосрочных событий

Читать далее
Всего голосов 20: ↑18 и ↓2+19
Комментарии5

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров210K

Привет, Хабр!

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

Данная информация предполагает знание основ языка запросов и я надеюсь, она окажется полезной для разработчиков, которые сейчас активно ищут работу а также, что ты прочитаешь этот текст до конца и добавишь свой вопрос к перечню (ну или поправишь неточности в существующих)

Читать далее
Всего голосов 156: ↑149 и ↓7+177
Комментарии178

Топ полезных SQL-запросов для PostgreSQL

Время на прочтение7 мин
Количество просмотров97K

Статей о работе с PostgreSQL и её преимуществах достаточно много, но не всегда из них понятно, как следить за состоянием базы и метриками, влияющими на её оптимальную работу. В статье подробно рассмотрим SQL-запросы, которые помогут вам отслеживать эти показатели и просто могут быть полезны как пользователю.

Читать далее
Всего голосов 70: ↑68 и ↓2+78
Комментарии16

Разработка систем генеративного ИИ на базе ML Platform: создаем конкурента ChatGPT без миллионных инвестиций

Время на прочтение8 мин
Количество просмотров7.5K


2023-й — однозначно год генеративного искусственного интеллекта и сервисов на его основе, которые используют в разных кейсах и сценариях. Но даже при этом для многих сфера генеративного ИИ остается на уровне пользовательского интереса. Это упущение, ведь потенциал GPT-моделей и им подобных не ограничен поиском ответов на классические вопросы и даже ассистированием в процессе разработки. А их создание не относится к числу нерешаемых задач тысячелетия. GPT — технология, которую можно приручить, и это проще, чем кажется.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+21
Комментарии5

PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров19K

1. Общие сведения.
2. Увеличиваем потребление памяти вдвое.
3. Увеличиваем потребление памяти втрое.
4. Ещё раз увеличиваем потребление памяти на ровном месте.
5. Заключение.

Читать далее
Всего голосов 43: ↑43 и ↓0+43
Комментарии56

SQL миграции в Postgres. Часть 1

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров35K

Как обновить значение атрибута для всех записей таблицы? Как добавить первичный или уникальный ключ в таблицу? Как разбить таблицу на две? Как ... 

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

На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии19

Резервное копирование и восстановление СУБД MySQL

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров23K

О необходимости выполнения резервного копирования для любых важных данных, будь то файлы, образ ОС или базы данных, написано множество статей. Поэтому убеждать читателя в необходимости бэкапить СУБД MySQL я не буду. Напомню лишь, что помимо бэкапа необходимо регулярно проверять резервные копии на возможность восстановления.

Следующий раздел предназначен для тех, кто не читал статью по бэкапам PostgreSQL, так как он повторяет основные моменты теории резервного копирования.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Об интересных задачах по SQL

Время на прочтение7 мин
Количество просмотров18K

Всем доброго дня!

Стал искать задачи по SQL, чтобы освежить свои знания, и к немалому удивлению обнаружил, что, несмотря на очевидную востребованность темы, интересные наборы задач на русскоязычных ресурсах можно пересчитать по пальцам. Хочу поделиться с сообществом своим мнением по поводу этих наборов, тем более что в отличие от самих задач далеко не все их авторские решения мне понравились.

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии11

Как и зачем тестировать код на бэкенде: рекомендации для новичков

Время на прочтение13 мин
Количество просмотров13K

Расскажем, как автоматизировать тесты так, чтобы не тратить на них кучу времени, быстрее находить баги и не повторять их. А ещё поделимся секретом идеального теста. Спойлер: его не существует, но решение есть.

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии6

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров25K

Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью. 

Статья написана на основе доклада с PHP Russia 2022.

Читать далее
Всего голосов 54: ↑54 и ↓0+54
Комментарии13

Полное понимание асинхронности в браузере

Время на прочтение24 мин
Количество просмотров113K
Про асинхронность JavaScript написано много статей, документации и книг. Но вся информация сильно распределена по интернету, поэтому сложно быстро и полностью разобраться, что к чему, и составить цельную картину в голове. Не хватает одного исчерпывающего гайда. Именно эту потребность я и хочу закрыть своей статьёй.

Читать дальше →
Всего голосов 78: ↑78 и ↓0+78
Комментарии26

5 полезных расширений Chrome для тестировщиков

Время на прочтение4 мин
Количество просмотров25K

На вашу продуктивность влияют инструменты, которые вы используете. Чтобы повысить свою продуктивность, вы можете использовать различные расширения, которые дополняют функциональность браузера и позволяют быстрее выполнять больше задач. 

Вышеприведенное утверждение применимо и к тестированию. Мы часто используем расширения Chrome для улучшения рабочего процесса. 

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии6

Делаем документацию здорового человека в Git на примере Docs Ozon

Время на прочтение7 мин
Количество просмотров35K

Казалось бы, с документацией всё просто — пишешь, публикуешь, поддерживаешь актуальность. Например, вот у нас в Ozon есть пользовательские инструкции на docs.ozon.ru: выглядит просто как текст на сайтике, что ж необычного-то в его размещении и в целом в работе техписателей? 

Если начать раскапывать, всплывёт ещё несколько вопросов:

• где хранить тексты и почему Confluence не подходит?

• как красиво оформить документацию с помощью статических генераторов сайтов

• зачем техписателям знать git и CI/CD?

• в какой момент пора искать разработчиков в команду и превращать документацию в платформу?

На связи Катя — руководитель отдела технических писателей в Ozon, и сегодня расскажу о платформе Docs Ozon изнутри.

Читать
Всего голосов 43: ↑41 и ↓2+44
Комментарии40
1
23 ...

Информация

В рейтинге
4 155-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность