Search
Write a publication
Pull to refresh
81
0
Vladimir Chernyshev @VolCh

Software Engineer, Technical Lead

Send message

Тестирование на основе моделей

Reading time9 min
Views49K

Картинка с unsplash.com

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

Принято считать, что тестирование следует после разработки ПО. В каком-то смысле это правда: нельзя проверить работающий продукт, пока он не готов. Однако в эпоху гибких методологий только ленивый не слышал про так называемый принцип «смещения влево», или shift left — включение специалиста по тестированию в процесс разработки продукта как можно раньше.
Как это возможно?
Сейчас разберемся!

Функторы, аппликативные функторы и монады в картинках

Reading time5 min
Views195K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста:


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →

Как постичь машинное обучение, если ты не великий математик

Reading time4 min
Views38K
Предлагаем почитать перевод статьи Diego Isco с ресурса dev.to. Она будет полезна начинающим специалистам в области ML.

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

5 претензий к Deno

Reading time3 min
Views16K
image

Предисловие


Я не часть команды deno. Я не его фанат. Я не слежу за ним. Я даже не очень-то в него верю. Но видя негативную реакцию сообщества просто не могу не вступится. В этой статье я бы хотел рассмотреть самые частые претензии в адрес Deno и предложить альтернативную точку зрения.
Читать дальше →

Пять лет Rust

Reading time13 min
Views31K

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


Напомним, если кто забыл: Rust — это язык программирования общего назначения, который обладает средствами, позволяющими строить надёжное и эффективное программное обеспечение. Rust может быть использован в любой области: от ядра вашей операционной системы до вашего следующего web-приложения. Этот язык полностью построен участниками открытого многоликого сообщества, в основном волонтёрами, кто щедро делился своим временем и знаниями для того, чтобы помочь сделать Rust таким, какой он есть сейчас.

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

Может ли менеджер мотивировать своих сотрудников?

Reading time16 min
Views11K
Все много раз слышали, что это задача руководителей и компании — мотивировать своих сотрудников. И мы часто задаем себе вопросы: «Как я могу это делать? Дать больше денег, дать новую должность, отправить в командировку, предложить обучение?» Мы делаем это, но часто это не срабатывает. Сотрудники всё равно остаются недовольны или уходят. В своем докладе на TeamLead Conf Ольга Проходская рассказала о том, как руководитель может определять и влиять на мотивацию своей команды.


Ольга Проходская — HR Business Partner в Wargaming. В компании почти 5000 сотрудников в 19 офисах, расположенных по всему миру. Главная ценность компании — игроки, и их уже более 20 млн. Подразделение, в котором работает Ольга, называется WG Platform и представляет из себя инженерную организацию, которая разрабатывает «неигроспецифичные» сервисы для всех игр вселенной Wargaming.

Несмотря на то, что Wargaming — большая организация, у подразделений достаточно много автономности в выборе подходов в работе с людьми. Об одном из них и пойдет речь в статье.

Риторика в качестве инструмента безопасника

Reading time13 min
Views5.7K
Сотрудники порой как дети малые. Говоришь одно – делают другое. Либо вообще не делают. Просишь не приклеивать стикеры с паролями на монитор – прячут под клавиатуру. Напоминаешь быть внимательными к подозрительной почте – кивают и тут же забывают. Мне эта ситуация всегда напоминает журнал учёта инструктажей по пожарной безопасности. Прошёл обучение? Прошёл. Расписался? Конечно. А кто-нибудь что-нибудь помнит из обучения? *звук критической ошибки Windows* Вот и с вопросами ИБ аналогично.

Есть избитая фраза про эффективность профилактики болезней. Но раз за разом разосланные инструкции забываются, а любое наказание воспринимается коллективом, как репрессии и угнетение честного люда. Безопасник же воспринимается этаким медведем из анкедота, который ходит по офису с вопросами а-ля «Почему без шапки?». Ну и почему так получилось?

Дело в том, что на этой ситуации хорошо видна разница между «бумажной» и реальной безопасностью. Для первой нам достаточно всех заставить что-то прослушать-просмотреть и расписаться в бумагах. После чего в случае нарушений можно нещадно махать шашкой. Вот только реальные проблемы такой подход не решает. Нужного эффекта получится добиться только когда сотрудник сам понимает, для чего нужны те или иные меры. Если сотрудник знает, почему не нужно найденную флешку подключать к корпоративной машине, но не верит в реальность такой угрозы, это ваша недоработка. Вы не были достаточно убедительны в том, чтобы сотрудник не только знал про опасность, но и понимал, что это случится с ним.

Данная статья написана под впечатлением от пособия С.В. Конявской «Прикладная риторика для специалистов по защите информации». Под катом описывается собственное видение теории и практики применения риторики для задач информационной безопасности.
Читать дальше →

[ В закладки ] CSS: использование внутренних и внешних отступов

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


Эта статья посвящена всему, что нужно знать о настройке расстояний между элементами и о настройке внутренних пространств элементов. В частности, речь пойдёт о том, в каких ситуациях стоит использовать внутренние отступы (padding), а в каких — внешние (margin).
Читать дальше →

Эффективная система аттестаций, которая позволит стать лучшим руководителем

Reading time18 min
Views10K


В прошлом, когда я был молодым менеджером продукта, один из моих руководителей в корне изменил мою карьеру. Шел второй год моей работы в Airbnb. Я справлялся со своими обязанностями, но не более. Мой новый руководитель Влад Локтев обратил внимание, что завершение проекта, который я вел, откладывалось на недели. Он не был удивлен, помог вернуть проект в нужное русло и завершить его. Но я знал, что на очередной аттестации мне припомнят эту ошибку. Когда пришло время, я действительно получил далеко не блестящие оценки. Влад обозначил мои точки роста, в том числе рекомендовал сфокусироваться на коммуникациях, направленных на контроль статусов задач, и их жесткой приоритизации. После этого разговора я мог бы выйти подавленным. Но вместо этого, наоборот, я почувствовал небывалый эмоциональный подъем и желание действовать – мне стало ясно, что нужно делать.
Читать дальше →

Ошибки, которые погубят проект любой сложности. Опыт менеджеров Redmadrobot

Reading time10 min
Views10K


Мы, электрические, запускаем проекты с 2008 года, и за 11 лет сформировали сильную команду робоменеджеров. Прокачивать железных помогают боевые задачи и одна из самых сложных — управлять проектом. Ситуации, при которых появляется необходимость взять на себя обязанности PM (project manager), бывают разные: в маркетинге — при создании сайта, в HR — при организации мероприятий. Мы вспомним десятки подобных случаев.

Мы подготовили список ошибок, которые допускают новоиспеченные руководители проектов и дополнили их своими рекомендациями. В статье два варианта рекомендаций: простые и для тех, кто хочет заморочиться — с референсами и ссылками на полезные ресурсы. Так что у вас не останется и шанса их повторить при надлежащем внимании. Надеемся, что это позволит сделать ваш проект проще, качественнее и внесет предсказуемость в процесс его создания.
Читать дальше →

Checklist для архитектора

Reading time8 min
Views15K
Из этой статьи вы узнаете, как организовать процесс построения эффективной разработки в распределенной цифровой компании, как сделать это через общение экспертов и как это происходит на примере МТС.

МТС, как и многие другие современные компании, подверглась так называемой цифровой трансформации. Говоря простым языком, нашим приоритетом стал запуск цифровых процессов и продуктов.

Для меня, как для технаря, это значит, что направление бизнеса в компании целиком зависит от качества ИТ-систем и их способности к быстрому эволюционированию.

Конечно, это неправильное определение, и маркетологи могут со мной поспорить — и даже переспорить! Но для всего, что вы прочитаете ниже, его вполне достаточно.


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

5 практических рекомендаций по использованию React-хуков в продакшне

Reading time8 min
Views14K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что в компании commercetools приняли на вооружение хуки React в начале 2019 года — в момент их появления в React 16.8.0. С тех пор программисты компании постоянно перерабатывают свой код, переводя его на хуки. Хуки React позволяют, не используя классы, работать с состоянием компонентов и пользоваться другими возможностями React. Используя хуки, можно, работая с функциональными компонентами, «подключаться» к событиям жизненного цикла компонентов и реагировать на изменения их состояния.


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

UML для разработчиков

Reading time5 min
Views84K
Интернет полон статей про UML, вы найдете сотни примеров для каждого вида диаграмм, и без проблем создадите свои, нотация не сложная. Но так ли уж необходимо тратить на это время? Наш богатый опыт говорит «Да». Если у вас в команде более 2 человек и проект от 3 месяцев, то уже имеет смысл отрисовать 2-3 вида диаграмм. В одной нашей команде более 30 человек, проект длительностью более 3 лет, и мы используем...2-3 вида диаграмм.

Нотация UML избыточна. С другой стороны она недостаточна для проектирования распределенных систем, и здесь нам помогает Archimate. В этой статье мы расскажем, что действительно полезно из всего этого многообразия, и рассмотрим на примере полный цикл создания диаграмм для проекта.
Читать дальше →

Корректное завершение работы pod’ов в Kubernetes-кластере

Reading time4 min
Views13K

image
Корректное завершение работы контейнеров в Kubernetes


Это вторая часть нашего пути (прим. пер. — ссылка на первую статью) к достижению нулевого времени простоя при обновлении Kubernetes-кластера. В первой части мы изложили проблемы и задачи, возникающие при выполнении операции drain для нод в кластере. В этом посте мы расскажем, как решить одну из таких проблем: корректно завершить работу pod’ов.

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

С чего начинается Elasticsearch

Reading time14 min
Views307K

Elasticsearch, вероятно, самая популярная поисковая система на данный момент с развитым сообществом, поддержкой и горой информации в сети. Однако эта информация поступает непоследовательно и дробно.


Самое первое и главное заблуждение — "нужен поиск, так бери эластик!". Но в действительности, если вам нужен шустрый поиск для небольшого или даже вполне себе крупного проекта, вам стоит разобраться в теме поподробней и вы откажетесь от использования именно этой системы.

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

5 вопросов по SQL, которые часто задают дата-сайентистам на собеседованиях

Reading time6 min
Views144K
Хотя составление SQL-запросов — это не самое интересное в работе дата-сайентистов, хорошее понимание SQL чрезвычайно важно для того, кто хочет преуспеть в любом занятии, связанном с обработкой данных. Дело тут в том, что SQL — это не только SELECT, FROM и WHERE. Чем больше SQL-конструкций знает специалист — тем легче ему будет создавать запросы на получение из баз данных всего, что ему может понадобиться.



Автор статьи, перевод которой мы сегодня публикуем, говорит, что она направлена на решение двух задач:

  1. Изучение механизмов, которые выходят за пределы базового знания SQL.
  2. Рассмотрение нескольких практических задач по работе с SQL.

В статье рассмотрено 5 вопросов по SQL, взятых с Leetcode. Они представляют собой практические задачи, которые часто встречаются на собеседованиях.
Читать дальше →

Microsoft полностью перейдет на отрицательный уровень выброса углерода к 2030 году

Reading time2 min
Views5.1K


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

Microsoft в лице генерального директора Сатьи Наделлы и других первых лиц компании официально заявила о намерении к 2030 году достигнуть отрицательного уровня эмиссии углерода, а к 2050 году полностью устранить последствия выбросов за все время с момента основания компании в 1975 году. Также Microsoft намерена инвестировать в развитие технологий по устранению углеродного следа $1 млрд и помогать своим клиентам в сокращении выбросов.
Читать дальше →

Как мигрировать с mocha на jest в 15 простых шагов — и зачем

Reading time10 min
Views10K


Уже давно я заглядывался на фреймворк для тестирования jest, в котором есть огромное количество всяких вкусных фишек, одна из которых — многопоточное выполнение тестов. При условии того, что у меня был проект на 5000 юнит тестов, миграция обещала быть крайне полезной. Далее я расскажу 14 простых шагов, за которых мне удалось мигрировать — пусть и с некоторыми оговорками — и что мы в результате получили. Спойлер — всё получилось очень круто.

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

Современный курс по Node.js в 2020

Reading time4 min
Views111K


Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.

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

Ubuntu — не лучший настольный Linux

Reading time3 min
Views193K
Захотев перейти на Linux дома или на работе, люди обычно ставят Ubuntu, Mint, Fedora, порой даже Debian. И очень зря не пробуют Manjaro Linux — на мой взгляд, этот дистрибутив удобнее Убунты (которая уже де-факто — Default Linux), и даже удобнее Минта.

Manjaro — производная от Arch Linux (так же как Ubuntu — производная от Debian), пилится европейской командой Manjaro Team. У Манжары почти такая же структура системы, как у Арча, но с некоторыми особенностями, которые делают его на 146% юзерфрендли.
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity