Pull to refresh
0
0
NickGray @NickGray

User

Send message

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

Level of difficultyMedium
Reading time3 min
Views4.6K

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

Начнём профайлинг
Total votes 8: ↑8 and ↓0+8
Comments9

Неортодоксальный Eloquent. Часть 2

Level of difficultyMedium
Reading time9 min
Views3K

Eloquent - это мощный и умный инструмент, нравящийся многим своими возможностями. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простоту использования. Реализуя паттерн Active Record (AR), описанный Фаулером в книге "PoEAA", является одним из лучших реализаций на сегодняшний день.

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

Если Вы ещё не читали первую часть, самое время это сделать.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments0

Неортодоксальный Eloquent. Часть 1

Level of difficultyMedium
Reading time16 min
Views6.6K

Eloquent - это мощный и умный инструмент, нравящийся многим своими возможностями. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простоту использования. Реализуя паттерн Active Record (AR), описанный Фаулером в книге "PoEAA", является одним из лучших реализаций на сегодняшний день.

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

Как и все существующие инструменты, у Eloquent имеются свои нюансы. Как ответственные разработчики, мы всегда должны помнить о том, на что соглашаемся. Если Вы хотите узнать больше об AR и философии её разработки, очень рекомендую статью Шона МакКула.

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments7

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

Reading time13 min
Views12K

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

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments6

Постановка задач в очередь Laravel сторонними сервисами

Level of difficultyEasy
Reading time3 min
Views3K

При работе над проектом (будь-то хайповые микросервисы или монолит) довольно часто возникает ситуация, когда необходимо, чтобы один сервис поставил задачу для другого сервиса. Задача довольно тривиальная, если на обеих сторонах используется один и тот же фреймворк. Но все становится намного интересней, когда на стороне подписчика допустим Laravel со своим дефолтным форматом, а на стороне издателя что‑то модное на Go.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments1

Принцип подстановки Барбары Лисков (предусловия и постусловия)

Reading time4 min
Views19K

​Почему у многих возникают проблемы с этим принципом? Если ли более простое объяснение?

​️В данной статье мы НЕ будем рассматривать общие примеры данного принципа, о которых уже есть много материалов (пример с квадратом и прямоугольником или управления термостатами). Здесь мы немного подробнее остановимся на таких понятиях как «Предусловия», «Постусловия», рассмотрим что такое ковариантность, контравариантность и инвариантность, а также что такое «исторические ограничения» или «правило истории».

Интересно...
Total votes 22: ↑20 and ↓2+18
Comments20

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

Reading time15 min
Views11K

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

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

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments0

Используем IoC-контейнер Laravel на полную мощность

Reading time14 min
Views66K

Laravel имеет мощный IoC-контейнер, но, к сожалению, официальная документация Laravel не описывает все его возможности. Я решил изучить его и задокументировать для собственного использования.


Примеры в данной статье основаны на Laravel 5.4.26, другие версии могут отличаться.


Введение в Dependency Injection


Я не буду объяснять, что такое DI и IoC в этой статье — если вы не знакомы с этими принципами, вы можете прочитать статью "What is Dependency Injection?" от Fabien Potencier (создателя фреймворка Symfony).

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments19

Набор инструментов инди-разработчика игр

Reading time7 min
Views19K
Доброго времени суток, начинающие игроделы!

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


Внимание: данный пост не рекламный, это лишь список программ, которые помогают мне в моих проектах.
Читать дальше →
Total votes 9: ↑5 and ↓4+1
Comments17

Диздок, или написание проектной документации

Reading time8 min
Views95K
Диздок упоминают в разговорах, о нём шепчутся на форумах, примеры его ищут и зелёные новички, и бывалые разработчики. Случается, что под тусклым светом уличного фонаря происходит сделка. Фигура в тёмном капюшоне украдкой передаёт ссылку на «Месть курочки Рябы». Конечно, таинственный гонец не имеет злого умысла, но деяние совершено…


Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments5

Принцип цикады и почему он важен для веб-дизайнеров

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

Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.

Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
Читать дальше →
Total votes 696: ↑682 and ↓14+668
Comments119

Интерполяция: рисуем гладкие графики средствами PHP и GD

Reading time6 min
Views58K
Распространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.



Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.

В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).

Кратко рассмотрим методы интерполяция и аппроксимации.
Читать дальше →
Total votes 80: ↑77 and ↓3+74
Comments23

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity