Статьи чтобы набрать классы

PHP

Нововведения разных версий PHP

5.5

  • Генераторы и корутины

  • Ключевое слово finally

  • Password Hashing API — правильный способ хешировать пароли из коробки

  • array/string dereferencing, например, можно получить элемент массива сразу момент его объявления echo [1, 2, 3][0];, аналогично со строками echo 'PHP'[0];

  • Теперь можно получить имя класса используя ключевое слово ::class

  • empty() можно применять к результатам функций или выражений без необходимости сохранять этот результат в отдельную переменную

  • foreach теперь может работать с ключами не скалярного типа. В обычных PHP массивах таких ключей быть не может, но если вы используете foreach для обхода по собственно написанному итератору, то теперь вы можете возвращать любой тип в Iterator::key()

    Zend Optimiser+ был включён в состав дистрибутива как расширение OPcache extension. Впрочем, это расширение было доступно и раньше для PHP 5.2, 5.3 и 5.4 для ручной установки.

  • Обновлена библиотека GD, в частности появилась поддержа WebP

(далее…)

Статьи чтобы набрать классы

Mysql

Индексы

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

Хеш-таблицам свойственны коллизии, когда для различных ключей получается одно и тоже хэш значение. (далее…)

Статьи чтобы набрать классы

Базы данных

ACID

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

Статьи чтобы набрать классы

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

ООП

Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

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

Статьи чтобы набрать классы

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

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

Статьи чтобы набрать классы

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

Асимптотический анализ

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

Статьи чтобы набрать классы

Reverse-engineering Instagram to access the private API

This is how I reverse engineered the Instagram app + included linux binaries to locate the private key used for signing requests to their private API and therefore allowing access to uploading photos and fewer rate limits. It posed as a challenge and I was also itnerested in working out how these 3rd party clients actually upload to Instagram's servers. (далее…)

Статьи чтобы набрать классы

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

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