PHP

Нововведения разных версий PHP 5.5 Генераторы и корутины Ключевое слово finally Password Hashing API — правильный способ хешировать пароли из коробки array/string dereferencing, например, можно получить элемент массива сразу момент его объявления echo [1, 2, 3][0];, аналогично со строками echo ‘PHP'[0]; Теперь можно получить имя класса используя ключевое слово ::class empty() можно применять к […]

Mysql

Индексы Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск, например хэш таблицы или сбалансированные деревья. […]

Базы данных

ACID В информатике акроним ACID описывает требования к транзакционной системе (например, к СУБД), обеспечивающие наиболее надёжную и предсказуемую её работу. Требования ACID были в основном сформулированы в конце 70-х годов Джимом Греем.

Архитектура и проектирование ПО

ООП Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. Инкапсуляция (encapsulation) — это фундаментальная объектно-ориентированная концепция, позволяющая упаковывать данные и поведение в единый компонент с разделением его на обособленные части — интерфейс и реализацию. […]

Основные структуры данных

Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс.

Основы алгоритмов

Асимптотический анализ Когда мы говорим об измерении сложности алгоритмов, мы подразумеваем анализ времени, которое потребуется для обработки очень большого набора данных. Такой анализ называют асимптотическим. Сколько времени потребуется на обработку массива из десяти элементов? Тысячи? Десяти миллионов? Если алгоритм обрабатывает тысячу элементов за пять миллисекунд, что случится, если мы передадим […]

Тюнинг ядра для большого числа потоков IPv6 прокси

Настройка kernel.threads-max Внимание, данная настройка проверена не работает на Ubuntu 16.04. Ubuntu устанавливает собственные параметры для kernel.threads-max мы не рекомендуем настраивать прокси на этой системе. Проверенной системой является Debian Jessie 8.0. Кроме широкоизвестных параметров ulimit -n и ulimit -u количество потоков ограничено параметром sysctl kernel.threads-max. Этот параметр принимает максимальное значение, […]