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

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

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

Принципы юнит-тестирования. Часть первая

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

Привет! Меня зовут Владимир, я разработчик команды продукта «Сервис персонализации» в SM Lab. В этом посте я хотел бы рассказать (а в комментариях — обсудить) один очень важный и полезный инструмент разработчика — юнит-тесты.

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

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

Эта статья для всех – кто слышал про них, но не видел, кто приступает к написанию юнит-тестов, и кто их пишет уже давно. Надеюсь, каждый из вас найдет что-то полезное для себя.

При подготовке материала очень помогла книга Владимира Хорикова (@vkhorikov ) «Принципы юнит-тестирования». Рекомендую ее всем, кто хочет еще глубже погрузиться в эту тему.

Итак, поехали.

Читать далее
Всего голосов 26: ↑25 и ↓1+29
Комментарии17

Лучшие методики тестирования в JavaScript и Node.js

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

Это исчерпывающее руководство по обеспечению надёжности в JavaScript и Node.js. Здесь собраны десятки лучших постов, книг и инструментов.

Сначала разберитесь с общепринятыми методиками тестирования, которые лежат в основе любого приложения. А затем можно углубиться в интересующую вас сферу: фронтенд и интерфейсы, бэкенд, CI или всё перечисленное.
Всего голосов 47: ↑46 и ↓1+45
Комментарии3

13 распространенных задач в Kubernetes и способы их решения

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


Команда VK Cloud перевела статью о проблемах в Kubernetes, с которыми часто сталкиваются инженеры-разработчики при запуске новых масштабируемых отказоустойчивых веб-сервисов. 
Читать дальше →
Всего голосов 33: ↑29 и ↓4+40
Комментарии3

С чего айтишнику можно начать 2023 год?

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

Отдохните после 2022 года! На этом можно завершить статью.

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

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

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

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

Что читать Golang-разработчику. Семь главных книг: от Донована и Кернигана до МакДауэлл

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

Спрос на бэкенд-разработчиков — а Go неотделим от бэкенд-программирования — стабильно растет. У самого же Golang немало плюсов: простой, строгий, статически типизированный, он обладает развитой стандартной библиотекой и славится поддержкой параллельного и асинхронного программирования. При этом в Golang нет классов и нет поддержки наследования, что значительно повышает удобство поддержки кода. Благодаря этим и другим преимуществам Go в последние годы сохраняет статус популярного и перспективного языка.

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

Делимся рекомендациями книг под катом!

Открыть подборку книг
Всего голосов 28: ↑22 и ↓6+16
Комментарии7

Неполное руководство по DevOps

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

Привет! Меня зовут Кирилл Цветков. Я DevOps, инженер, линуксовый админ – именно через запятую и никак иначе. В этой статье я попробую последовательно рассказать вам что такое DevOps, и примирить два конфликтующих стереотипа, которые это слово окружают.

Читать далее
Всего голосов 24: ↑15 и ↓9+9
Комментарии18

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

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

Пару лет назад я заметил, что отслеживать свой прогресс стало труднее, и задался вопросом: расту ли я вообще как программист? Сколько времени я выделяю на самообразование? Решаю ли я на работе какие-то новые задачи, или я вообще ничему не учусь? В этой статье я поделюсь инструментами, которые помогли мне ответить на эти вопросы.

Читать далее
Всего голосов 22: ↑18 и ↓4+16
Комментарии51

О книге Боба Мартина «Чистый код»

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

(Картинка без намека, просто уж очень хотелось котика в статью добавить! Ведь это основной залог популярности в интернетах, правда? :))

У меня очень неоднозначное отношение к книгам Роберта Мартина… В них довольно много здравых и интересных мыслей, но иногда они выражаются столь категорично, что неокрепшим программерским мозгом они могут восприниматься неправильно. Если же мозг читателя достаточно окреп, чтобы воспринимать советы прагматично, то есть все шансы, что ничего нового из этих советов он (мозг или программист) не вынесет.
Читать дальше →
Всего голосов 78: ↑59 и ↓19+40
Комментарии59

Топ-10 книг для разработчика

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

Совершенствоваться в сфере разработки — это не только писать хороший код, но и читать о том, как его писать.




Привет, хабр! Продолжаю делиться полезными подборками. Совсем недавно я опубликовал 2 поста с перечнем Github репозиториев: Часть1 и Часть2. На этот раз предлагаю вашему вниманию подборку полезных книг для разработчиков. Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+22
Комментарии41

10 отличных Github репозиториев для разработчиков (часть 2)

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

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



Как и в прошлом случае, перевод будет довольно вольным: я опустил предисловие и эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, поехали.
Читать дальше →
Всего голосов 10: ↑7 и ↓3+6
Комментарии5

10 отличных Github репозиториев, которые должен знать каждый веб-разработчик

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

Кроме огромных репозиториев с источниками для подготовки к интервью, здесь много чего интересного


Я собрал список из десяти отличных репозиториев на Github, которые помогут вам существенно расширить свои знания.


image


А я его перевел, т.к. показалось, что пост многим будет интересен. Перевод очень вольный: я опустил нерелевантные промо-ссылки и гипер эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, перейдем к списку.
Читать дальше →
Всего голосов 63: ↑56 и ↓7+62
Комментарии8

Как быстро усвоить материал? Практические советы для разработчиков и не только

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

Эффективное обучение крайне важно для разработчика программного обеспечения, ведь постижение нового — значительная часть его работы. Умение быстро осваивать новые языки/фреймворки/инструменты сделает вас намного продуктивнее. Это своего рода суперспособность.

Как ее приобрести? Читайте в тексте Джоша Комо, эксперта с многолетним опытом в разработке ПО, ИТ-блогера и автора обучающего курса «CSS для разработчиков JavaScript». В статье Джош описывает практики и рекомендации, которые помогут начинающим специалистам (например, студентам и тем, кто переходит в разработку из какой-либо другой области) в развитии их профессиональных навыков.

Под катом — наш перевод англоязычного материала. Обращаем ваше внимание, что позиция автора не всегда может совпадать с мнением МойОфис.

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

Очевидное, невероятное, корпоративное. Эпизод 1. Проблема воина в команде

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

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

Чем больше масштаб – тем заметнее становится то, что подготовленный строй солдат действует эффективнее, чем толпа индивидуалистов.

Об этом и поговорим
Всего голосов 14: ↑10 и ↓4+9
Комментарии20

10 самых популярных докладов за всю историю 404fest

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

Юбилейная подборка видео топовых докладов Фестиваля 404. Пока мы готовимся к эпичнейшей айти-тусовке эвер, самое время вспомнить доклады, которые больше всего цепляли публику. Располагайтесь поудобнее ?

Читать далее
Всего голосов 15: ↑11 и ↓4+17
Комментарии0

Как оценить Soft Skills на собеседовании и помочь разработчику их развить

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

Довольно очевидно, что junior-разработчику и тимлиду требуется сильно различающийся набор навыков. И если в случае hard skills всё уже миллион раз проанализировано и посчитано, то о необходимом наборе soft skills в зависимости от должности мы можем только понимать на уровне ощущений и здравого смысла. 

Более того, в нашей индустрии не принято говорить после собеседования, что кандидату отказано из-за его уровня soft skills, хотя мы даже не пытаемся конкретизировать, что конкретно в нём нас не устраивает. Вы наверняка слышали или сами употребляли фразы вроде «просто человек странный», «почему-то не нравится» или «чувствуем, что он не вольется в команду». Но почему? Что на самом деле с ним не так?

Я решил провести собственное исследование гибких навыков и сегодня хочу поделиться результатами. Расскажу, какие навыки важны на каждом из уровней разработчика — от джуниора до руководителя. А также, как их можно проверить на собеседовании и эффективно развить внутри компании.

Читать далее
Всего голосов 21: ↑18 и ↓3+24
Комментарии18

Скорее всего, вам не стоит работать в стартапе

Время на прочтение12 мин
Количество просмотров13K
image

Если вы достаточно долго работаете в Кремниевой долине, то у вас наверняка есть собственная история «упущенного журавля», когда из-за неудачного стечения обстоятельств или врождённой глупости вы отказались от возможности участия в стартапе, которая бы принесла огромную выгоду. Это случалось с каждым. Лично я в начале 2017 года отказался от Allbirds (кому нужны ещё одни уродливые кроссовки? Оказалось, что всем). Мой редактор Нэтан выполнял фриланс-работу для Coinbase в первый год работы компании, больше не брал у неё заказов (упс) и попросил, чтобы ему заплатили в долларах (ещё одно «упс»).

Стремление к доле в стартапе и увлечённость его миссией — идеологическая «красная таблетка» мира стартапов. Огромные капиталы основателей и первых сотрудников, празднующих IPO на яхтах с ледяными скульптурами, крутые слова типа «совпадение мотиваций» и «культура одержимости миссией» — из-за всего этого предложение работы на условиях передачи доли компании оказывается сложно игнорировать. Присоединяйся к стартапу и измени свою жизнь.

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

Сегодня я хочу донести до вас противоположное суждение, которое редко можно услышать в этом мире: вероятно, вам не стоит работать в стартапе.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+20
Комментарии12

Не нервничай

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

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

Читать далее
Всего голосов 15: ↑4 и ↓11-7
Комментарии4

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Время на прочтение25 мин
Количество просмотров141K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


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

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →
Всего голосов 67: ↑65 и ↓2+90
Комментарии37

Навыки Senior Engineer, помимо программирования (неполный список)

Время на прочтение2 мин
Количество просмотров8.1K
  1. Как провести собрание. И нет, не болтать больше всех на собрании, а именно провести его.
  2. Как написать проектную документацию, получить отзывы и довести ее до решения в разумные сроки
  3. Как наставлять «младшего» коллегу по команде, инженера в середине карьеры, нового менеджера, которому нужен технический совет
  4. Как порадовать старшего менеджера, который хочет поговорить о технических вещах, которых он на самом деле не понимает, не закатывая глаза и не заставляя его чувствовать себя глупо
  5. Как объяснить техническую концепцию за закрытыми дверями высокопоставленному лицу, слишком смущенному, чтобы открыто признать, что он ее не понимает
  6. Как убедить другую команду использовать ваше решение вместо написания собственного
  7. Как заставить другого инженера сделать что-то для вас, попросив о помощи таким образом, чтобы он почувствовал, что его ценят
  8. Как вести проект, даже если вы не менеджерите никем из людей, работающих над ним
  9. Как заставить других инженеров прислушиваться к вашим идеям, не заставляя их чувствовать угрозу
  10. Как прислушиваться к идеям других инженеров, не чувствуя угрозы
Читать дальше →
Всего голосов 49: ↑25 и ↓24+6
Комментарии29

7 лучших библиотек для создания молниеносно быстрых приложений ReactJS

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

ReactJS по умолчанию обладает высокой производительностью. Но время от времени у вас появляется шанс сделать его еще лучше. И замечательное сообщество React придумало для этого несколько фантастических библиотек.

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

Давайте начнем.   

.     .     .

Читать далее
Всего голосов 16: ↑12 и ↓4+8
Комментарии6
1
23 ...

Информация

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