Concurrency, Goroutines and GOMAXPROCS

When new people join the Go-Miami group they always write that they want to learn more about Go’s concurrency model. Concurrency seems to be the big buzz word around the language. It was for me when I first started hearing about Go. It was Rob Pike’s Go Concurrency Patterns video that finally convinced me I needed to learn this language.To understand how Go makes writing concurrent programs easier and less prone to errors, we first Read more

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 Employee struct { Name string Age int } func (e *Employee) Init(name string, age int) { e.Name = name e.Age = age } func info(name Read more

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

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

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, follow these steps: Log in to your account using SSH. At the command line, type the following command, replacing username with your A2 Hosting account username: mysql -u Read more

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

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

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

Если перед вами стоит задача добавить некое словарное значение в одну таблицу, при этом, значение первичного ключа может вычисляться автоматически (из sequence, например) и тут же создать еще одну запись в другую таблицу, так, чтобы эта вторая запись ссылалась на первую (например, имела ID новой записи из первой таблицы в одном из своих столбцов), возникает вопрос, где взять значение первичного ключа вновь добавленной записи. Допустим, у нас есть таблица-справочник dictionary с полями id , title. Read more

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

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

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

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

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 5 second config change. Trapping mail in development and staging whilst sending in production is handled by an environment variable. It really does take the Read more

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 a silly topic — who cares how you stop a container, right? Well, depending on your application, the process by which you stop your app Read more


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть