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

mokevnin

Kirill Mokevnin

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

CTO at hexlet.io

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

Рекомендации по составлению вакансий для начинающих разработчиков главное изображение
Мотивация

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
27 апреля 2017
11 Время чтения статьи ~5 минут Читать дальше
Монокультура главное изображение
Мотивация

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

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

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

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

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

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

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

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

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

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

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

Аватар пользователя Kirill Mokevnin
Kirill Mokevnin
21 января 2017
465 Время чтения статьи ~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
7 Время чтения статьи ~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 минуты Читать дальше