Как стать автором
Обновить
12
0
Алексей @AlexNomad

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

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

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

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров1.8K

Когда проводится один статистический тест на значимость различий, всегда есть шанс (ошибка первого рода = 5%, на уровне значимости p=0.05) получить ложный положительный результат случайно. Эта ошибка означает, что мы можем ложно утверждать, что значимое различие существует, притом, что в реальности этой значимости нет.

Когда проводится несколько однотипных тестов подряд, каждый из них имеет 5% шанс на ложный положительный результат. Если коррекция отсутствует, то вероятность, что хотя бы один из этих тестов даст ложный положительный результат, быстро возрастает.

Предположим, что делается 20 однотипных тестов. Вероятность того, что получится ложный положительный результат равна 1 - (1 - 0.05)^2064%.

Как контролировать ошибки читать далее
Всего голосов 11: ↑9 и ↓2+11
Комментарии0

Принципы SOLID, только понятно

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров84K

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

Изучить принципы
Всего голосов 80: ↑66 и ↓14+59
Комментарии94

Testplane в опенсорсе: автоматизируем пользовательские сценарии в веб-интерфейсах

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

Привет! Меня зовут Евгений Константинов. Я занимаюсь разработкой инструментов автоматического тестирования в Яндексе. В этой статье хочу рассказать про историю создания инструмента Testplane

Testplane поможет вам:

- протестировать разные сценарии в любом браузере; 

- проверить вёрстку с помощью скриншотного тестирования; 

- выполнить тестирование ваших React-компонентов;

- запустить клиентские unit-тесты в контексте браузера. 

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

Обобщенные фабрики тайпгардов в TypeScript

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров8.4K

Привет, Хабр! Меня зовут Сергей Соловьев, я разрабатываю интерфейсы международных платежей в Тинькофф Бизнесе. Уверен, многие хотят писать надежный, поддерживаемый, но при этом лаконичный код. Как найти баланс?

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

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

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

Автоматическое тестирование ускорило разработку в 50 раз. Сказка от создателей FoundationDB

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров9.1K
Автоматическое тестирование по сравнению с обычным, источник

Стартап Antithesis Operations LLC создан разработчиками известной системы FoundationDB. Они говорят, что между двумя продуктами много общего: «Когда в 2010 году мы взялись за создание масштабируемой, отказоустойчивой распределённой базы данных с ACID-транзакциями, большинство людей не думали, что такое возможно. Вот и сейчас многие не верят в полную автоматизацию тестирования».

Сейчас они уверены, что произвели революцию в разработке программного обеспечения. Они сделали полностью автономную и детерминированную систему автоматического тестирования. Внедрение системы в их собственной компании ускорило разработку в 50 раз, потому что программисты теперь думают только о коде и не боятся ошибок. 100% багов выявляется автоматически. Вручную писать тесты не надо, никаких тестировщиков, SDET и QA. Двое-трое программистов выполняют работу за 100−150 человек. Настоящая сказка!
Читать дальше →
Всего голосов 31: ↑26 и ↓5+33
Комментарии13

Троттлинг в Kubernetes. Или как настроить лимиты, чтобы приложения не “тормозили”

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров8.1K

Главная рекомендация - отказаться от лимитов!

А теперь подробнее.

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

Начну с того, что самым распространенным способом является задание request и limit по CPU и RAM. С оперативной памятью все достаточно просто - при превышении потребления, OMM-Killer остановит процесс. А вот с CPU есть целый ряд нюансов и возможностей наступить на грабли.

Это происходит из-за того, что ресурс процессора делится не долями, а по времени. 

Это можно представить так

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

Почему люди не пользуются вашим продуктом (даже если он может спасти тысячи жизней)

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров13K
«Красный дракон», судно Ланкастера

Когда Васко да Гама в 1497 году обогнул мыс Доброй надежды, больше половины его экипажа из 160 человек погибли от цинги. Этот показатель был довольно привычным: по статистике, от цинги умерло больше моряков, чем от войн, несчастных случаев и всего остального.

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

Спустя сто с небольшим лет, в 1601 году, у английского мореплавателя Джеймса Ланкастера появилась гипотеза о том, что лимонный сок предотвращает цингу.

Его гипотеза не только была абсолютно верной (как мы знаем сейчас, цинга вызывается дефицитом витамина C), но он ещё и провёл эксперимент, результаты которого оказались вполне убедительными. Он добавил в рацион моряков на одном из его судов лимонный сок, а морякам на других судах не давал его. Ни один моряк на судне, где выдавался лимонный сок, не заболел цингой.

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

Возможно, вы подумаете, что британский флот сразу одобрил или, по крайней мере, проверил эту инновацию, которая была простой, дешёвой и практически на 100% эффективной.

Но лишь в 1795 году, почти двести лет спустя после успешного эксперимента Ланкастера и три сотни лет после времени Васко да Гамы флот наконец-то предписал всем своим морякам употреблять цитрусовые (из-за добавления лаймового сока в еду британцев и прозвали «лайми»). До коммерческого флота это нововведение добиралось ещё дольше.

Нам может показаться непостижимым, почему для принятия такой простой инновации, позволявшей избавиться от цинги и сохранить тысячи жизней, потребовалось так много времени. Кто-то может сказать, что её принятию помешали медленные коммуникации и распространение информации. Но ведь не на три сотни лет?
Читать дальше →
Всего голосов 41: ↑37 и ↓4+53
Комментарии44

Покажи мне свой Git, и я скажу, кто ты

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

Можно ли с помощью GitHub анализировать работу, не заглядывая в монитор сотрудника — без скриншотов и тайм-трекеров?

Я Александр Кириллов, технический директор компании Evrone. Больше 20 лет я посвятил разработке. В этой статье поделюсь с вами опытом, который собрал за время работы с распределенными командами. Расскажу о том, как, не нарушая приватность разработчиков, следить за качеством работы на проектах и отслеживать нежелательные паттерны с помощью метрик в Jira и Git.

Читать далее
Всего голосов 63: ↑53 и ↓10+53
Комментарии26

Чек-лист переезда в K8s

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

Меня зовут Алексей Шарапов. Я занимаюсь построением процессов и командами в AkBars Digital. В нашем формате работы девопсы погружены в продуктовые команды, то есть у нас не сервисная модель. Еще я разрабатываю наше внутреннее облако, автоматизирую и запускаю проекты на Kubernetes. В статье рассмотрим оба аспекта моей работы: немного поговорим про командное взаимодействие и немного про инструментарий.

Одни из самых частых вопросов от инженеров, которые я слышу: «Есть проект 10 микросервисов, пора ли запускать его в K8s или нет?» или «У нас есть проект, мы хотим поехать в K8s — надо ли нам это делать или нет?». Мы много занимались его решением, в том числе, с компаниями в формате аудита. Из этого опыта и родилась статья.

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

Как не отказаться от тестирования фича-веток при переходе на микросервисы

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

В современном мире приложение — это огромная связка микросервисов. Функционально её протестировать сложнее, чем монолит. Кто-то решает это единым staging’ом и чатиком синхронизации: «займу auth на полчасика». Другой уходит с головой в shift-left или тестирует в canary. Разберём, как катнуть веточку сервиса и получить свой личный staging.

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

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

Ликбез по запуску Istio

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


Istio Service Mesh


Мы в Namely уже год как юзаем Istio. Он тогда только-только вышел. У нас здорово упала производительность в кластере Kubernetes, мы хотели распределенную трассировку и взяли Istio, чтобы запустить Jaeger и разобраться. Service mesh так здорово вписалась в нашу инфраструктуру, что мы решили вложиться в этот инструмент.


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

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

Лучшие продукты отталкиваются от настоящих проблем: Intercom про Jobs-to-be-Done. Часть 1

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


Jobs-to-be-Done — это подход к созданию продукта на основе анализа работы, которую стремится выполнить клиент с помощью продукта. Появился в 90-х годах и был адаптирован Intercom для IT-продуктов. Подход состоит из теории, почему «вечные» работы, для выполнения которых «нанимают» продукты, важнее свойств личности пользователя, а также фреймворка для практического применения при разработке продуктов.

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

Как я определение “продукта” искал

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

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


На мой вопрос: “Почему ты пришла к нам?” — мне был дан простой ответ: “Кафе и туалеты — это тоже услуги для клиентов!” Здесь вспоминаются слова Рене Декарта: “Если бы среди философов навсегда установилось согласие относительно значения слов, то почти все их споры были бы прекращены” (“Правила для руководства ума”).


Мы работаем продуктовой командой, и у меня встал вопрос: как описать наш продукт так, чтобы каждый понимал, что мы делаем и в чем мы можем помочь? Чтобы дать на него ответ, я решил разобраться, что означает само слово “продукт”.


Результат моих изысканий под катом…
image

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

Windows must die

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


Об авторе: Joel — ИТ-журналист с 19-летним стажем и создатель Deep Space Nine Upscale Project (DS9UP).

Согласно заявлениям Microsoft, Windows 11 сделает существенный шаг назад по сравнению с Windows 10. В частности, Windows 11 Home теперь будет требовать как доступ к Интернету, так и учетную запись Microsoft для настройки ПК.

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

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

Компьютер — это не Интернет


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

Но это не единственная моя причина.
Читать дальше →
Всего голосов 179: ↑155 и ↓24+171
Комментарии582

Прогрессивное конспектирование II: Примеры и метафоры. Разум как плацдарм для идей

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

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

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

Прогрессивное конспектирование: практическая техника создания доступных заметок. Контроль внимания. Второй мозг. Поток

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

Современные цифровые технологии позволяют легко "захватывать" информацию из любых источников. Мы пропускаем через себя много информации, но мало из этого, что приносит настоящую пользу, а всё потому, что мы делаем это в неправильное время

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

Почему ПМ часто проигрывают аналитикам, а те в свою очередь часто пасуют перед тестерами?

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

Знакома ли вам такая картина описанная в названии статьи и задумывались ли вы над ответом на этот вопрос. Как ни странно один и тот же ответ может подходить для двух этих различных случаев. И там и там выигрывает тот кто правильно понимает и работает с требованиями. Но если копнуть глубже, то обнаруживается что смысл заложенный в ответ в обеих случаях очень сильно отличается.

Разбираем первый случай Для начала рассмотрим структуру требования, как такового. Ссылки что такое требование Если коротко, то у нас получается две составляющие требования. Часть которая относится к управлению. И часть которая описывает собственно содержание. Итого мы имеем управленческие атрибуты и описание сути. К управленческим атрибутам относится автор, критичность, сложность и стоимость реализации, сроки реализации и т. д..

Читать далее
Всего голосов 8: ↑6 и ↓2+10
Комментарии23

Выводы Grofers после двух лет Kubernetes в production

Время на прочтение15 мин
Количество просмотров10K
Прим. перев.: эта статья — опыт миграции на Kubernetes одного из крупнейших в Индии онлайн-магазинов продуктов. В ней Vaidik Kapoor, software engineer из Grofers, рассказывает о главных ошибках и препятствиях этого долгого путешествия, а также делится своими мыслями о целесообразности и плюсах подобного переезда в целом.

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

В данной публикации я хочу поразмышлять о полученном опыте и поделиться уроками, извлеченными из него. Надеюсь, это поможет вам принимать более взвешенные решения и повысит шансы на успех в аналогичных затеях.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии4

Что под капотом у BI? Детальный разбор технологии In-Memory OLAP

Время на прочтение15 мин
Количество просмотров13K
Привет, Хабр! Меня зовут Иван Вахмянин, и сегодня я хочу рассказать о том, что находится “под капотом” у современной BI-системы, от чего зависит ее производительность (и как можно её ненароком убить), и какие технические оптимизации позволяют технологии In-Memory OLAP выигрывать по скорости у других подходов.


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

Kubernetes, микросервисы, CI/CD и докер для ретроградов: советы по обучению

Время на прочтение7 мин
Количество просмотров29K
Кажется, тема «зачем нужен Kubernetes», уже раздражает. Хочется сказать: «все кому надо — давно уже поняли», однако я разделил бы технических (и околотехнических) работников на тех, кто «понял и знает как использовать», и тех, кто «понял, но хочет знать, как сделать знания актуальными».

Возможно, вы менеджер, который последние 10 лет работал на одном и том же стеке; возможно, вы разработчик, который поддерживает старое решение или пишет на привычном языке в привычной среде. Возможно, вы просто перешли из технического в организационный менеджмент и вдруг выяснили, что все, что вы знали, больше не актуально, и хочется понять — есть ли какой-то относительно простой сценарий, как это можно догнать. Я постараюсь дать советы, основываясь на собственном опыте, — от человека, который осознал, что, находясь на организационном управлении, скоро будет выражаться словами «Kubernetes — это эффективная технология, мы должны стремиться к ее применению», не вполне понимая, что лежит за этими словами и за всей технической культурой, развившейся в последнее время.

Почему я считаю важным уметь менять парадигму технологического мышления?
Читать дальше →
Всего голосов 37: ↑31 и ↓6+37
Комментарии37

Информация

В рейтинге
Не участвует
Откуда
Химки, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Chief Technology Officer (CTO)