Аватар пользователя Kirill Mokevnin
15592

mokevnin

Kirill Mokevnin

На Хекслете с 12 июля 2014

CTO at hexlet.io

Ульяновск, Ульяновская область, Россия

Монокультура главное изображение
Мотивация

Монокультура в программировании — это использование одного стека для решения всех возникающих задач. Она существует не только на уровне конкретного человека и его предпочтений, но также часто встречается на уровне компаний. В таких компаниях, как правило, все делается с использованием одной технологии.

Если вам интересно, как и почему монокультура может приводить к более дорогим и сложным решениям, то добро пожаловать под кат.

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
26 марта 2017
24 Время чтения статьи ~10 минут Читать дальше
Ловушки обучения главное изображение
Код

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
23 февраля 2017
374 Время чтения статьи ~4 минуты Читать дальше
Мотивация

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
11 февраля 2017
19 Время чтения статьи ~4 минуты Читать дальше
Начинаем писать тесты (правильно) главное изображение
Код

Как начать писать тесты? Сколько нужно писать? На что их нужно писать, а на что — не нужно? Стоит ли всегда применять TDD? Если вас интересуют ответы на эти вопросы, то вы читаете правильную статью. В своей жизни я написал не одну тысячу тестов всех мастей для разных платформ, использовал во все поля TDD и ставил процесс тестирования в командах, проектах и даже целых компаниях. И теперь я попробую обобщить этот опыт и поделиться им.

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
24 января 2017
220 Время чтения статьи ~10 минут Читать дальше
Совершенный код: именование в программировании главное изображение
Код

Что самое трудное в работе программиста? Выдумывать имена для переменных.

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
21 января 2017
435 Время чтения статьи ~3 минуты Читать дальше
Мотивация

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
13 января 2017
36 Время чтения статьи ~4 минуты Читать дальше
Код

Для настройки окружения проекта можно использовать (а многие так и делают) стандартные средства операционной системы. Такие, как пакетный менеджер (yum, apt), прямое редактирование конфигурационных файлов, bash-скрипты, curl/wget и многое другое.

Этот подход, с одной стороны, самый простой, но он обладает рядом недостатков, некоторые из которых критические.

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
03 октября 2016
12 Время чтения статьи ~4 минуты Читать дальше
Код

Настройка рабочего окружения — не такое простое занятие, как может показаться на первый взгляд. Обычно начинающие разработчики (и не только) устанавливают проект и его зависимости прямо на ту систему, где они работают. Этот подход обладает рядом недостатков.

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
03 октября 2016
6 Время чтения статьи ~5 минут Читать дальше
Код
function hammingWeight($weight)
{
    $array = str_split(decbin($weight));
    $amount = 0;
    foreach ($array as $value) {
        $amount += $value;
    }
    return $amount;
}
  • Понятно ли с первого взгляда что делает функция (основываясь на содержимом)?
  • Попробуйте воспроизвести определение понятия "Вес Хемминга" глядя только на код
Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
22 августа 2016
13 Время чтения статьи ~2 минуты Читать дальше