Как стать автором
Обновить
54
1.1
FanatPHP @FanatPHP

User

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

Анемичная модель предметной области и логика в сервисах

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

Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где логика находится в сущностях, а cервиcы рекомендуют писать только в редких случаях.

В этой статье я хочу показать, почему логика в сервисах является более правильным подходом. Мы рассмотрим пример бизнес-требований и их реализацию с Anemic domain model.

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

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

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

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

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

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

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

Мы пилили монолит — много нас, а он один. Полезные советы от команды Яндекс Еды

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

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

Распилить
Всего голосов 42: ↑39 и ↓3+36
Комментарии36

Фишинг «фичи» Телеграма

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

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

В этой статье я расскажу вам про две "фичи", которые исправлять мессенджер не намерен, но которые могут быть легко использоваться для социальной инженерии, особенно в связке.

Читать далее
Всего голосов 120: ↑118 и ↓2+116
Комментарии61

Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы

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

Сегодня хочу рассказать о том, какие ошибки можно допустить на начальном этапе создания e-commerce проекта в проектировании модели данных и в разработке веб-приложения. И, самое главное, как эти ошибки исправить: снизить потребление памяти в 1000 раз и кратно уменьшить нагрузку на дисковую систему. Кейс основан на реальных событиях, однако без упоминания компаний в связи с политикой конфиденциальности и профессиональной этикой.

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

Профайлинг Laravel приложений с XDebug и PHPStorm

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

Профайлинг приложений важный этап перед релизом ресурсоёмкой фичи. Везде трубят про удобную отладку PHP-приложений при помощи XDebug и PHPStorm, однако напрочь забывают про замеры времени операций, которые, порой, превышают те самые 3 секунды, которые пользователь будет ждать на странице. Если у Вас есть метод API, который долго работает, самое время его проверить профайлером XDebug, а PHPStorm поможет красиво визуализировать и изучить файл профиля.

Начнём профайлинг
Всего голосов 8: ↑8 и ↓0+8
Комментарии9

Flask для начинающих

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

Как начать работать с Flask

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

Вы новичок в программировании и мечтаете о создании собственных веб-приложений? Эта статья — ваш ключ к пониманию Flask, одного из самых доступных и гибких веб-фреймворков на Python. От установки и простых примеров до работы с данными и базами данных — мы покрываем все, что вам нужно для старта.

За 15-20 минут чтения вы получите не только теоретические знания, но и практические советы от опытного разработчика. Присоединяйтесь к миру веб-разработки и откройте для себя, как просто и увлекательно может быть создание ваших первых веб-приложений с Flask!

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

Как мы внедряли Sentry. Часть 1 — установка и настройка

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

Привет! Я Виталий, DevOps в LEADS.SU, в этой статье хочу рассказать как мы внедряли Sentry self-hosted и приводили к продакшен состоянию, которое должно отвечать требованиям высокодоступности - нельзя терять события ошибок. При этом не хотелось заморачиваться с кластеризацией для разных инструментов (вроде redis, postgresql, clickhouse, kafka и прочее). И тут мы вспомнили про распределенную сеть доставки логов из нескольких узлов td-agent и решили попробовать.

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

PHPize.online: ещё одна онлайн площадка для работы с PHP с шахматами и библиотекаршами. (SQL и ChatGPT)

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

История началась чуть больше двух лет назад. В силу обстоятельств я на две недели остался заперт дома и проводил большую часть времения в компании ноутбука. Чтобы отвлечься рефрешил странички StackOverflow и Тостера в поиске интересных вопросов где бы пригодились мои знания. Ккак знают завсегдатаи этих сайтов у вопрошающих требуют "покажи свой код" да и при ответе считается хорошим тоном публикация работающего ответа. В случае PHP или SQL все просто вот https://dbfiddle.uk вот https://onlinephp.io все просто и понятно - написал код лил запрос опубликовал ссылку и готово.

Оказалась что есть большая категория на стыке PHP и MySQL. Как быть хотелось бы и в этом случае опубликовать ссылку на то и другое и желательно на одном сайте. Вечер был убит на поиски достойного кандидата - безрезультатно.

Следующий день - все по написанному:
- Отрицание - не может быть что никто такого еще не сделал
- Гнев, Торг, Депрессия - пропущу
- Принятие - похоже придется делать самому

Планирование:
- фронт: тяп ляп HTML/CSS пару строк Javascript, даже JQuery не понадобился :)

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

Каково это — быть операционной системой?

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

Pier-Luc Brault придумал забавную игру, которая превращает вас в... операционную систему. Некий пользователь загружает нас процессами, которые нужно распределять по свободным CPU. Если мы будем плохо справляться с задачей, пользователь выйдет из себя и перезагрузит нас. Game over.  

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

Разбираемся с асинхронным PHP

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

Как перенести обработку электронных писем в отдельный процесс, чтобы он не блокировал исходный веб-запрос? Именно это мы и рассмотрим в данной статье, в частности, всевозможные способы решения данной проблемы на PHP, используя новую инфраструктуру (или без нее).

Читать далее
Всего голосов 23: ↑19 и ↓4+15
Комментарии30

ClickHouse: полезные лайфхаки

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

Я начала пользоваться ClickHouse до того, как это стало мэйнстримом: первый раз я столкнулась c этой базой данных лет 8 назад. C тех пор я уверена, что это лучшая DB для аналитики. Большинство аналитиков, которых я знаю, в восторге от ClickHouse (иногда чтобы проникнуться, требуется немного времени: разобраться и привыкнуть к синтаксису).

В этой статье я расскажу что такое ClickHouse и почему я считаю его идеально подходящим мощным инструментом для аналитики. А также поделюсь tips & tricks из моего опыта. Поехали.

Поехали
Всего голосов 48: ↑47 и ↓1+46
Комментарии4

Как использовать Midjourney: подробный гайд, лайфхаки, промты

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

Ранее мы рассказывали о своих впечатлениях и результатах тестирования приложений на основе нейросети. В своей работе на платформе «РСХБ в цифре» мы активно используем Midjourney и искусственный интеллект. В новой статье хотим поделиться советами, которые позволят с нуля разобраться в основных функциях и командах, чтобы приступить к созданию интересных изображений с помощью этого приложения.

Читать далее
Всего голосов 54: ↑53 и ↓1+52
Комментарии10

Делюсь опытом участия в хакатоне от Совкомбанка

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

Сегодня, я хочу поделиться опытом и рассказать про участие в хакатоне от совкомбанка. Подробнее про хакатон можно почитать тут. Для лл я вкратце опишу задачу — командой до 5 человек сделать внутренний сервис для подбора персонала и ведения HR деятельности.

Читать далее
Всего голосов 20: ↑15 и ↓5+10
Комментарии9

Двухуровневый CI-процесс PHP-проекта

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

Непрерывная интеграция (CI, англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Целей у непрерывной интеграции две:

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

[Личный опыт] Неожиданная страна для релокейта: как Киргизия очаровывает гостеприимством, комфортом и климатом

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

Сейчас в поисках простого релокейта многие отправляются в Сербию, Грузию или Казахстан. Но есть страна, куда переехать еще проще — причем по уровню комфорта она не слишком уступает многим другим. Речь о Киргизии, или, как его называют местные, Кыргызстане.

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

Читать далее
Всего голосов 62: ↑53 и ↓9+44
Комментарии191

Как и зачем компании накручивают голоса на хабре

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


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

Большинству читателей хабра даже невдомёк, что на этом ресурсе идёт настоящая корпоративная борьба за первые места в рейтинге компаний. Это престиж, имя, реклама и вообще можно почесать чувство собственной важности. Хотя в новой версии хабра, особенно мобильной, это совершенно потеряло смысл, потому что рейтинг компаний не видно.

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

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

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

Сократ мне друг, но истина дороже

Поэтому расскажу вам, механизм рейтинга, и как компании его накручивают. И предложить методы борьбы с накрутками у компаний, для администрации Хабра.
Читать дальше →
Всего голосов 255: ↑242 и ↓13+229
Комментарии227

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

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

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

Читать далее
Всего голосов 114: ↑107 и ↓7+100
Комментарии83

Как за неделю превратить Open redirect в RCE

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

В этой статье я расскажу вам о том, как ровно год назад я связал в цепочку несколько проблем безопасности для достижения Удаленного выполнения кода (RCE) на нескольких серверах компании VK. Я постарался описать свои шаги в подробностях, так как мне самому, как постоянному читателю отчетов по баг-баунти, всегда хочется понять, как исследователь мыслит во время обнаружения необычных уязвимостей. Надеюсь, для вас эта статья будет интересна.

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

Работа с Веб-сокетами на PHP

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

PHP - едва ли первое, что придет в голову, когда стоит задача поднять сервер веб-сокетов. Практически каждая статья в интернете будет пестрить предложениями использовать для этого NodeJS, Python или Go. Но поскольку PHP - это однозначно первое, что приходит в голову, когда речь идет о веб-приложениях, почему бы не попробовать?

На самом деле, запуск сервера веб-сокетов на PHP довольно прост. Существует превосходная библиотека Ratchet, позволяющая работать на любом фреймворке (или вовсе без него) полноценно и легко.

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

Читать далее
Всего голосов 17: ↑10 и ↓7+3
Комментарии20

Информация

В рейтинге
1 247-й
Зарегистрирован
Активность

Специализация

Backend Developer, Web Developer
Middle
От 140 000 ₽
PHP
OOP
MySQL
Linux
Git
SQL
Database
Nginx
Bash
Laravel