Raw Queries in Laravel

Business logic is often complicated. Because of this, we often need to write our own SQL queries. Luckily, Laravel‘s query builder has the tools we need to safely run such queries. A key concern when writing our own queries is protecting our application from SQL injection attacks. Normally, the query builder does this for us. However, when we write our own SQL, we need to make sure we don’t inadvertently remove this protection. Here’s what Read more

Write string slice line by line to a text file

The bufio package provides an efficient buffered Writer which queues up bytes until a threshold is reached and then finishes the write operation to a file with minimum resources. The following source code snippet shows writing a string slice to a plain text file line-by-line. package main   import ( "bufio" "log" "os" )   func main() { sampledata := []string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "Nunc a mi dapibus, faucibus mauris eu, fermentum ligula.", Read more

Указатели в Go Lang

Когда мы вызываем функцию с аргументами, аргументы копируются в функцию: func zero(x int) { x = 0 } func main() { x := 5 zero(x) fmt.Println(x) // x всё еще равен 5 } В этой программе функция zero не изменяет оригинальную переменную x из функции main. Но что если мы хотим её изменить? Один из способов сделать это — использовать специальный тип данных — указатель: func zero(xPtr *int) { *xPtr = 0 } func main() Read more

Правильная регистрация консольных команд Symfony в DI

Как добавить такую команду в DI? <?phpdeclare(strict_types=1);namespace App\Console;use Symfony\Component\Console\Command\Command;final class DoStuffCommand extends Command{ protected function configure(): void { $this ->setName('app:do:stuff') ->setDescription('This command does stuff') ; } // ...} Неправильный способ services: _defaults: autoconfigure: true App\Console\DoStuffCommand: ~ # tags: [ console.command ] # с тегом, если не используется автоконфигурация В чем тут проблема? Symfony DI не знает имя вашей команды при компиляции! Если в проекте есть такие команды, консольное приложение будет все их инициализировать при каждом Read more

Symfony State Machines and Domain Driven Design

It has been just over 2 years since Symfony released their Workflow component. I was of course thrilled by the news and started to work on multiple PRs to make the component support state machines. It was a really cool experience working with the Symfony community and discussing everything from Petri nets to minor code optimizations. I often get questions how to work with the Workflow component and questions like “what should I do in Read more

Работаем с MySQL в Go

Сегодня хочу рассказать о небольшом опыте работы с MySQL (хотя тут можно использовать и любую другую БД) в Go. Я нашел для себя отличный способ работать с БД из Go и спешу им поделиться. Вообще в Go есть несколько важных вещей для того, чтобы делать запросы. Например database/sql и github.com/go-sql-driver/mysql. А для того, чтобы мапить результат запроса в структуру — будем использовать github.com/jmoiron/sqlx sqlx — это набор экстеншнов поверх database/sql которые позволяют сделать минимальную “орм” Read more

Pessimistic vs Optimistic Locking in Laravel

Introduction When two or more clients want to update the same record, a conflict may occur which is known as a race condition. To prevent such a conflict, a pessimist system assumes the worst, i.e., the updates always occur at the same time. Thus, it eliminates the race condition by locking the record. Pessimist systems typically rely on the database locking facilities; for example InnoDB’s row-level lock. On the other hand, an optimistic system assumes Read more

How do slices internally work in golang

Why do slices exists if you already have arrays in golang? Let’s see why we need slices in golang. So in this blog, we will talk about What are slices and why do we need them? How do they internally work in golang? What mistakes can we make while using slices and how to avoid those mistake. For understanding the importance of slices, first, let’s see what are arrays in golang? You are familiar with Read more

Database Transactions and Resource Locking in Laravel

Database transactions and pessimistic locking are probably not the most used features, however, they can be extremely useful. Let’s take a brief look and then examine how Laravel’s database layer supports these features. In this post, we don’t focus on the plain SQL implementation of database transactions or locking. After explaining shortly, we move on the Laravel implementation of these features. However, you can find links that are providing longer and better explanations in the Read more

Что такое ETL: как справиться с анализом big data

Крупные предприятия собирают, хранят и обрабатывают разные типы данных из множества источников, таких как системы начисления заработной платы, записи о продажах, системы инвентаризации и других. Эта информация извлекается, преобразуется и переносится в хранилища данных с помощью ETL-систем. Расскажем, что такое ETL, а также какие платные и общедоступные решения для работы с данными есть на рынке. ETL — что это такое и зачем? В переводе ETL (Extract, Transform, Load) — извлечение, преобразование и загрузка. То есть Read more


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

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

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