Constructors in Golang

There are no default constructors in Go, but you can declare methods for any type. You could make it a habit to declare a method called «Init». Not sure if how this relates to best practices, but it helps keep names short without loosing clarity. package main import «fmt» type […]

Повторная отправка HTTP-запросов в Guzzle с помощью RetryMiddleware

Если приложение обращается к каким-либо сторонним сервисам через API, часто встречается ситуация, что сторонний сервис временно недоступен, или перегружен. Т.к. от результатов запроса может зависеть дальнейшее выполнение скрипта, требуется предусмотреть такую ситуацию, и временный отказ внешнего сервиса не должен вызывать серьезных сбоев в работе приложения. Одним из решений будет повторная […]

How to determine the size of MySQL databases and tables

This article demonstrates how to determine MySQL database size and MySQL table size. You can do this by using the phpMyAdmin web interface or by using the command line. USING THE COMMAND LINE You can use the mysql command-line program to determine the sizes of MySQL databases and tables. To do this, […]

Использование констант в SELECT-запросах SQL

Любите ли вы «магические числа» в коде? Все эти if (a == 259)… Никто их не любит. И SQL-запросов это касается в той же степени, как и языков программирования. «Магические» числа делают код нечитаемым, любые изменения в нём будут головной болью, и нужно всегда избегать их, если есть такая возможность. […]

Как добавить сразу две связанные по ключу записи в базу при помощи SQL

Если перед вами стоит задача добавить некое словарное значение в одну таблицу, при этом, значение первичного ключа может вычисляться автоматически (из sequence, например) и тут же создать еще одну запись в другую таблицу, так, чтобы эта вторая запись ссылалась на первую (например, имела ID новой записи из первой таблицы в […]

Стандартные исключения в PHP. Когда какое применить.

Все программисты PHP должны уметь работать с исключениями. Есть много документации и хороших статей по работе с ними. Все используют базовый класс Exception в своем коде, а, дорастая до определенного уровня, начинают плодить собственные классы исключений. Само по себе это делает код более удобочитаемым и управляемым, но часто ведет к […]

Что такое fillable и guarded? Как быстро заполнить fillable в Laravel?

Есть такая проблема в laravel, что нельзя вставлять в таблицу базы данных какую-либо информацию до тех пор, пока не заполнишь в моделе массив fillable. Но вот в чем проблема — колонок в таблице может быть много, и как перечислить их все? Ходят слухи, что достаточно вставить звездочку в массив [*] […]

Using the MessageSending Event in Laravel

Like all core Laravel features, sending mail is made easy and convenient by the clean and expressive API that it exposes. Carrying out tasks such as changing service providers from Mandrill to Mailgun (when they decide to only make it available to Mailchimp customers) can be handled with a simple […]

Gracefully Stopping Docker Containers

Much of the focus of Docker is on the process of packaging and running your application in an isolated container. There are countless tutorials that explain how to run your application in a Docker container, but very few that discuss how properly stop your containerized app. That may seem like […]

В чем преимущество Kubernetes по сравнению с Docker Swarm и подобными решениями?

Сейчас в сам докер добавили кубернетес в качестве одного из доступных движков. Т.е. уже по умолчанию, «из коробки», можно работать с кубернетесом. Думаю что сам докер в будущем перейдет на Kubernetes — все таки сообщество пользователей и разработчиков гораздо больше, чем для сворма. Так что нас ждет Kubernetes, а все […]