Pull to refresh
6
0

PHP разработчик

Send message

Шпаргалка по Redis

Reading time8 min
Views409K
Про Redis (официальный сайт, материалы на Хабре) написано много, но мне до сего дня не хватало материала, который послужил бы шпаргалкой по его практическому использованию, а так же справочником по базовым теоретическим моментам. Постараюсь заполнить этот пробел в богатой базе знаний Хабра.

Я поставил перед собой цель показать возможности Redis с помощью примеров кода. После публикации приму любые предложения по улучшению материала.

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

Ключи


Redis — хранилище данных в формате «ключ-значение». Факты о ключах:
  • Ключи в Redis — бинарно-безопасные (binary safe) строки.
  • Слишком длинные ключи — плохая идея, не только из-за занимаемой памяти, но так же и в связи с увеличением времени поиска определенного ключа в множестве в связи с дорогостоящим сравнением.
  • Хорошая идея — придерживаться схемы при построении ключей: «object-type:id:field».


Типы данных Redis


  • Строки (strings). Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа, ограничены размером 512 Мб.
  • Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка. Максимальное количество элементов — 232 — 1.
  • Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств. Максимальное количество элементов — 232 — 1.
  • Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы. Максимальное количество пар «ключ-значение» — 232 — 1.
  • Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score».

Про типы данных Redis есть отдельная хорошая статья: «Структуры данных, используемые в Redis».
Читать дальше →

Понимаем JIT в PHP 8

Reading time7 min
Views40K
Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP»




TL;DR


Компилятор Just In Time в PHP 8 реализован как часть расширения Opcache и призван компилировать операционный код в инструкции процессора в рантайме.

Это означает, что с JIT некоторые операционные коды не должны интерпретироваться Zend VM, такие инструкции будут выполняться непосредственно как инструкции уровня процессора.
Читать дальше →

Мои вопросы работодателю, когда подаюсь на разработчика

Reading time9 min
Views89K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее

Как работает реляционная БД

Reading time51 min
Views559K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →

Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)

Reading time15 min
Views28K

Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.

Цель и вебинара и статьи - дать начинающим представление о тех понятиях, которые вынесены в заголовок, чтобы помочь из избежать повсеместной путаницы, сопровождающей эти темы.

Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!

Лонг-рид с кодом ждёт вас!

Как прокачаться в PHP: 70 ресурсов из опроса русскоязычного сообщества

Reading time8 min
Views40K

В чаты по PHP часто приходят с вопросами про развитие: какие книги стоит прочитать в первую очередь, на какие каналы подписаться, какие курсы хороши. Если повезет, в ответ чат поделится парой рекомендаций. Мы решили агрегировать их в список и собрали 150+ мнений по актуальным ресурсам для PHP-разработчика. 

Без длинных интро. Самые упоминаемые ресурсы идут первыми в разделах, а те, которые советовали новичкам, отмечены флажком 🚩. 

Читать далее

Руководство по написанию защищённых PHP-приложений в 2018-м

Reading time18 min
Views59K

Приближается 2018 год, и технари — в частности веб-разработчики — должны отбросить многие старые методики и верования в сфере разработки защищённых PHP-приложений. Особенно это относится ко всем, кто не верит, что такие приложения вообще возможны.


Это руководство — дополнение к электронной книге PHP: The Right Way с сильным уклоном в безопасность, а не общие вопросы программирования на PHP (вроде стиля кода).

Читать дальше →

Как я работал в Дубае

Reading time19 min
Views116K


Предисловие


Здравствуйте, меня зовут Александр Зеленин, и я инженер-программист. В 2018 году я получил приглашение в Дубай в компанию Careem (поглощён Uber’ом за 3.1ккк$) архитектором/тимлидом в команду по финансовому взаимодействию с водителями.


В этой статье я постараюсь покрыть все ключевые темы проживания в ОАЭ: от вакансий и интервью до ипотек и бессрочного резидентства с конкретными цифрами на конец 2020 года и ссылками на релевантные сервисы. Секции не упорядочены и могут читаться в любом порядке.

Как там, в Дубае?

А чего плохого в монополии Яндекса? И вообще в монополиях?

Reading time13 min
Views58K

В этот блок выдачи могут попасть только сервисы группы юрлиц Яндекса

Я уже несколько постов разбираю наше обращение в ФАС по поводу интеграции поиска Яндекс с различными сервисами Яндекса. Напомню предыдущие серии: предупреждение ФАС, ФАС возбуждает дело против Яндекса. В комментариях к постам встречается огромное количество вопросов относительно того, чего, собственно, плохого в том, что делает Яндекс. Они частично задевают вообще фреймворк антимонопольных законов России и мировую практику, поэтому я сейчас постараюсь на уровне ликбеза рассказать, откуда такие принципы вообще пошли.

Итак, основные точки прошлого обсуждения:

  • Почему Яндекс не может делать со своим продуктом что угодно? Это же их поиск, нет?
  • Почему крупные компании пошли за помощью государства, а не прибегли к рыночным методам, если их что-то не устраивает в работе Яндекса?
  • Почему бы не сделать свой конкурирующий поисковик и не устанавливать в нём свои правила?
  • Чем вообще плоха монополия?
  • Чем отличается доминирующий игрок от просто игроков?
  • Почему государство вдруг должно устанавливать правила для интернет-рынков? Неужели нельзя порешать это саморегуляцией?

Чтобы понять смысл антимонопольного регулирования, нужно мысленно смоделировать несколько ситуаций, что бы было, если бы его не было вообще. Давайте для начала разберёмся, зачем оно вообще существует в современном мире.
Читать дальше →

Дебажим PHP-контейнер с помощью Xdebug и PhpStorm

Reading time2 min
Views29K
Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP».





Инструкция Docker #9: xdebug

Я создам очень простую php-страницу и подебажу ее с помощью xdebug и PhpStorm.

Исходные файлы можно найти здесь:
github.com/ikknd/docker-study в папке recipe-09
Читать дальше →

Собеседование наоборот: вопросы соискателя к компании

Reading time6 min
Views77K
Всем привет! Хочу очередной раз поднять тему про найм. Только я собираюсь поговорить об этом с точки зрения кандидата, а не работодателя. Ведь собеседование, вопреки многим стереотипам, процесс двусторонний — вопросы может задавать не только интервьюер, но и сам соискатель. За прошлый год я провёл порядочное количество собеседований, и абсолютное большинство кандидатов огорчило меня отсутствием вопросов о компании, всего 5 человек стали меня расспрашивать о работе.

Я же считаю, что вопросы на собеседовании должен задавать и сам кандидат, ведь ему предстоит там работать. Из стандартного описания вакансии невозможно понять, что творится в компании, да и на собеседовании принято всё немного приукрашивать. Я думаю, что соискатель должен максимально использовать собеседование для того, чтобы выяснить реальное положение дел в компании. Мало кому захочется попасть в некомфортные условия или в убыточную компанию без перспектив. Если интересно, как во время собеседования получить реальное представление о компании, то добро пожаловать под кат. Я дам список вопросов, которые обычно не ждут интервьюеры, возможно кому-то они помогут принять правильное решение при поиске работы.

image
Читать дальше →

С камерой в облака. Часть 1

Reading time6 min
Views242K


Многие из нас размышляли об установке камеры на летательный аппарат. Вот я и прошел этот путь. Углубившись в тонкости видеополетов от первого лица (FPV), делюсь полученными знаниями с теми, кто тоже хочет испытать новые ощущения.

Пост состоит из 2 частей. В первой — ответы на основные вопросы. Их легко найти в интернете по-отдельности, но сложно вместе: дальность полета (чем ограничивается и какая максимальная), качество картинки, грузоподъемность, стоимость и сроки (от выделения бюджета до первого полета).

Вторая часть (сейчас в процессе) — о сборе конкретной системы со всеми тонкостями, какие мне только удалось найти и испробовать. Что именно и где купить, как расположить на модели, зачем и что экранировать, где требуются ферритовые кольца, а где виброгасители.

Ну что же, перейдем сразу к делу.
Читать дальше →
2

Information

Rating
Does not participate
Location
Россия
Registered
Activity