Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

«Идеальный» кластер. Часть 3.1 Внедрение MySQL Multi-Master кластера

Время на прочтение16 мин
Количество просмотров78K

В продолжение цикла статей об «Идеальном» кластере хочу поделиться моим опытом развертывания и настройки Multi-Master кластеров MySQL.




Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии71

Основы репликации в MySQL

Время на прочтение10 мин
Количество просмотров330K
С репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
Читать дальше →
Всего голосов 72: ↑70 и ↓2+68
Комментарии44

Дайджест свежих материалов из мира фронтенда за последнюю неделю №429 (17 — 23 августа 2020)

Время на прочтение3 мин
Количество просмотров8.6K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+15
Комментарии1

Laravel-Дайджест (27 июля – 2 августа 2020)

Время на прочтение1 мин
Количество просмотров3.7K

Подборка новых статей по Laravel. Срочное исправление уязвимости во фреймворке. Анонс женского сообщества Ларавел-разработчиц. Новый стек разработки приложений. Бесплатный курс по веб-сокетам.


Laravel Дайджест

Читать дальше →
Всего голосов 7: ↑5 и ↓2+6
Комментарии3

Laravel-Дайджест (10–16 августа 2020)

Время на прочтение1 мин
Количество просмотров3.7K

Подборка новых статей по фреймворку Laravel. Некоторые подробности о Laravel 8. Как правильно писать масштабируемые приложения. Интеграция Paypal и Pusher.


Laravel Дайджест

Читать дальше →
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

PHP-Дайджест № 185 (20 июля – 3 августа 2020)

Время на прочтение5 мин
Количество просмотров14K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Alpha 3, PhpStorm 2020.2, новый оператор ?->, снова обсуждение синтаксиса атрибутов и другие новости PHP Internals, обзор системы типов в PHP, порция полезных инструментов, видео, стримы и многое другое.

Приятного чтения!


Всего голосов 63: ↑63 и ↓0+63
Комментарии22

Где наша бизнес-логика, сынок?

Время на прочтение18 мин
Количество просмотров83K
Спасибо небу за то, что в субботу шел дождь, и я это прочитал (а вы скажите спасибо за то, что перевел). В воскресенье, однако, светило солнце и форматирование текста было отложено.

Отдельное спасибо автору, за разрешение отдельной публикации.

Крайне занятная статья о том, что такое бизнес логика и где ей жить. Статье, кстати, уже три года. А я нередко встречаю системы, где код от данных не отделен. Может привести к реальному холивару.

не поддайся темной стороне силы usernаme
Всего голосов 121: ↑112 и ↓9+103
Комментарии122

Бизнес-логика в базе данных при помощи SchemaKeeper

Время на прочтение6 мин
Количество просмотров4.5K

Цель статьи — на примере библиотеки schema-keeper показать инструменты для упрощения разработки баз данных в PHP-проектах, использующих СУБД PostgreSQL.


Будут рассмотрены следующие вопросы:


  1. В каком виде хранить дамп структуры БД в системе контроля версий (далее по тексту — VCS)
  2. Как отслеживать изменения в структуре БД после сохранения дампа
  3. Как переносить изменения в структуре БД на другие окружения без конфликтов и гигантских файлов миграций
  4. Как наладить процесс параллельной работы над проектом нескольких разработчиков
  5. Как безопасно деплоить большее количество изменений в структуре БД на production-окружение

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


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

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

Что такое CI (Continuous Integration)

Время на прочтение10 мин
Количество просмотров142K
CI (Continuous Integration) — в дословном переводе «непрерывная интеграция». Имеется в виду интеграция отдельных кусочков кода приложения между собой. Чем чаще мы собираем код воедино и проверяем:

  • Собирается ли он?
  • Проходят ли автотесты?

Тем лучше! CI позволяет делать такие проверки автоматически. Он используется в продвинутых командах разработки, которые пишут не только код, но и автотесты. Его спрашивают на собеседованиях — хотя бы понимание того, что это такое. Да, даже у тестировщиков.

Поэтому я расскажу в статье о том, что это такое. Как CI устроен и чем он пригодится вашему проекту. Если вы больше любите видео-формат, можно посмотреть мой ролик на youtube на ту же тему.


Читать дальше →
Всего голосов 30: ↑26 и ↓4+30
Комментарии22

SASS PHP extension

Время на прочтение1 мин
Количество просмотров6.3K
Недавно я наткнулся на интересную статью о Python-биндинге для libsass, в которой я узнал о существовании такой замечательной библиотеки, как libsass (реализация рубивского sass на C++). Имея опыт в написании PHP расширений, я решил сделать SASS/SCSS обработчик, используя libsass. Исходный код полученного расширения Вы можете найти тут — sass-php.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии11

Сводные таблицы в SQL

Время на прочтение10 мин
Количество просмотров72K
Сводная таблица – один из самых базовых видов аналитики. Многие считают, что создать её средствами SQL невозможно. Конечно же, это не так.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии9

Дайджест интересных материалов для мобильного разработчика #350 (22 — 28 июня)

Время на прочтение3 мин
Количество просмотров4.5K
В этом выпуске, конечно, у нас много материалов с WWDC — App Clips, виджеты, новый Xcode, macOS Big Sur, изменения в StoreKit, UIKit и SwiftUI. Кроме них стилизация, полезные инновации, логистика, анимации и многое другое.

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Дайджест свежих материалов из мира фронтенда за последнюю неделю №421 (22 — 28 июня 2020)

Время на прочтение3 мин
Количество просмотров8.6K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии2

Laravel-Дайджест (22–28 июня 2020)

Время на прочтение2 мин
Количество просмотров4.2K

Подборка новых статей по фреймворку Laravel. Научимся авторизировать пользователя через Гейты и Политики. Перепишем проект с веб-сокетов на Livewire. Поработаем с аутентификацией через JWT, SPA+Sanctum и Socialite+Facebook. Задеплоим приложение в Kubernetes.


Laravel Дайджест

Читать дальше →
Всего голосов 9: ↑8 и ↓1+9
Комментарии0

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Время на прочтение9 мин
Количество просмотров120K
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.

Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированного индекса вида (AGE,STATE). Давайте рассмотрим почему это так.

Читать дальше →
Всего голосов 74: ↑58 и ↓16+42
Комментарии57

Как верстать веб-интерфейсы быстро, качественно и интересно

Время на прочтение14 мин
Количество просмотров44K

image


Всем привет! Давно хотел и наконец написал небольшую книжку — бодрое пособие по своей профессиональной области: актуальным подходам к разметке интерфейсов, экранному дизайну и доступности. Она о моем оригинальном подходе к созданию GUI, препроцессорам CSS (для объективности, немного и об альтернативных подходах), и его эффективном практическом использовании с javascript и популярными реактивными компонентными фреймворками Vue и React. Материал представлен аккуратно последовательно, но безумно интенсивно и динамично — ничего лишнего или даже слишком подробного — для того чтобы увлеченный и подготовленный читатель не потерял интереса и «проглотил на одном дыхании». С другой стороны, текст, достаточно сложный ближе к концу, и на всем протяжении — густо насыщенный идеями, ссылками на технологии и подходы — поэтому, очевидно, будет «на вырост» начинающим. Но, в любом случае, как и если вы только начали интересоваться данной тематикой, так и если уже давно занимаетесь веб-дизайном, версткой и программированием фронтенда — вам может быть полезно на него взглянуть.

Читать дальше →
Всего голосов 16: ↑9 и ↓7+10
Комментарии60

Ускорение старения современных технологий

Время на прочтение12 мин
Количество просмотров20K
Когда меня просят дать интервью, или когда приглашают выступить с рассказом о моей работе по модернизации устаревших систем, то, и так происходит всегда, все хотят говорить о мейнфреймах и о COBOL. Я так думаю, что собеседники ждут от меня хороших баек о тяготах возни со старыми системами. Эти байки интересно послушать программистам, которым о подобных вещах беспокоиться не приходится, так как их профессиональные навыки построены на современных технологиях.


Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии30

Сколько инструкций процессора использует компилятор?

Время на прочтение3 мин
Количество просмотров35K
Месяц назад я попытался сосчитать, сколько разных инструкций поддерживается современными процессорами, и насчитал 945 в Ice Lake. Комментаторы затронули интересный вопрос: какая часть всего этого разнообразия реально используется компиляторами? Например, некто Pepijn de Vos в 2016 подсчитал, сколько разных инструкций задействовано в бинарниках у него в /usr/bin, и насчитал 411 — т.е. примерно треть всех инструкций x86_64, существовавших на тот момент, не использовались ни в одной из стандартных программ в его ОС. Другая любопытная его находка — что код для x86_64 на треть состоит из инструкций mov. (В общем-то известно, что одних инструкций mov достаточно, чтобы написать любую программу.)

Я решил развить исследование de Vos, взяв в качестве «эталонного кода» компилятор LLVM/Clang. У него сразу несколько преимуществ перед содержимым /usr/bin неназванной версии неназванной ОС:

  1. С ним удобно работать: это один огромный бинарник, по размеру сопоставимый со всем содержимым /usr/bin среднестатистического линукса;
  2. Он позволяет сравнить разные ISA: на releases.llvm.org/download.html доступны официальные бинарники для x86, ARM, SPARC, MIPS и PowerPC;
  3. Он позволяет отследить исторические тренды: официальные бинарники доступны для всех релизов начиная с 2003;
  4. Наконец, в исследовании компиляторов логично использовать компилятор и в качестве подопытного объекта :-)

Начну со статистики по мартовскому релизу LLVM 10.0:
ISA Размер бинарника Размер секции .text Общее число инструкций Число разных инструкций
AArch64   97 МБ 74 МБ 13,814,975 195
ARMv7A 101 МБ 80 МБ 15,621,010 308
i386 106 МБ 88 МБ 20,138,657 122
PowerPC64LE 108 МБ 89 МБ 17,208,502 288
SPARCv9 129 МБ 105 МБ 19,993,362 122
x86_64 107 МБ 87 МБ 15,281,299 203
В прошлом топике комментаторы упомянули, что самый компактный код у них получается для SPARC. Здесь же видим, что бинарник для AArch64 оказывается на треть меньше что по размеру, что по общему числу инструкций.

А вот распределение по числу инструкций:
Читать дальше →
Всего голосов 66: ↑65 и ↓1+91
Комментарии226

PHP-Дайджест № 182 (1 – 22 июня 2020)

Время на прочтение5 мин
Количество просмотров14K

Свежая подборка со ссылками на новости и материалы. В выпуске: 3 принятых и 6 новых RFC-предложений из PHP Internals, включая голосование за новый синтаксис для атрибутов — @@ и почему #[] был бы лучше, переименования black/whitelist в PHP-мире, как отлаживают PHP-разработчики, аналог ngrok на PHP, видео, подкасты и многое другое.

Приятного чтения!


Всего голосов 36: ↑35 и ↓1+46
Комментарии58

Сколько кода на C++ нужно написать для разбора HTTP-заголовка Authorization с помощью easy_parser из RESTinio?

Время на прочтение9 мин
Количество просмотров6.6K


Мы продолжаем развивать бесплатный и открытый встраиваемый в С++ приложения HTTP-сервер RESTinio. В реализации RESTinio активно используются C++ные шаблоны, о чем мы здесь регулярно рассказываем (недавний пример).


Одной из точек приложения C++ной шаблонной магии стал easy_parser, небольшая реализация нисходящего рекурсивного парсера на базе PEG. Easy_parser был добавлен в RESTinio в прошлом году для того, чтобы упростить работу с HTTP-заголовками.


Мы уже немного обсуждали easy_parser-е в предыдущей статье. А сегодня хочется показать как же easy_parser применяется при разработке RESTinio. На примере разбора содержимого HTTP-заголовка Authorization. Попробуем, так сказать, заглянуть в потроха RESTinio.


Грамматика Authorization


Структура заголовка Authorization определена в RFC7235 следующим образом:

Читать дальше →
Всего голосов 17: ↑15 и ↓2+22
Комментарии13
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность