Pull to refresh
12
0
Алексей @AlexNomad

User

Send message

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

Level of difficultyEasy
Reading time11 min
Views1.5K

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

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

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

Как контролировать ошибки читать далее
Total votes 11: ↑9 and ↓2+11
Comments0

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

Level of difficultyEasy
Reading time6 min
Views72K

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

Изучить принципы
Total votes 80: ↑66 and ↓14+59
Comments94

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

Reading time5 min
Views6K

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

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

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

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

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

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

Читать далее
Total votes 31: ↑31 and ↓0+33
Comments0

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

Level of difficultyMedium
Reading time10 min
Views7.9K

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

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

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

Читать далее
Total votes 40: ↑40 and ↓0+42
Comments6

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

Level of difficultyMedium
Reading time10 min
Views9K
Автоматическое тестирование по сравнению с обычным, источник

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

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

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

Level of difficultyMedium
Reading time3 min
Views7.7K

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

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

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

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

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

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

Читать далее
Total votes 10: ↑6 and ↓4+3
Comments7

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

Level of difficultyEasy
Reading time8 min
Views13K
«Красный дракон», судно Ланкастера

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

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

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

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

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

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

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

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

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

Reading time15 min
Views37K

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

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

Читать далее
Total votes 63: ↑53 and ↓10+53
Comments26

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

Reading time10 min
Views6.5K

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

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

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments2

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

Reading time15 min
Views3.2K

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

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

Читать далее
Total votes 7: ↑6 and ↓1+6
Comments0

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

Reading time9 min
Views48K


Istio Service Mesh


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


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

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments1

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

Reading time11 min
Views16K


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

Вторая часть
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments4

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

Reading time9 min
Views9.4K

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


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


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


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

Читать дальше →
Total votes 12: ↑9 and ↓3+10
Comments21

Windows must die

Reading time4 min
Views70K
image


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

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

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

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

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


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

Но это не единственная моя причина.
Читать дальше →
Total votes 179: ↑155 and ↓24+171
Comments582

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

Reading time7 min
Views5.5K

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

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments1

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

Reading time9 min
Views19K

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

Читать далее
Total votes 6: ↑5 and ↓1+8
Comments4

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

Reading time5 min
Views5.7K

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

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

Читать далее
Total votes 8: ↑6 and ↓2+10
Comments23

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

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

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

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

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

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


Читать дальше →
Total votes 14: ↑13 and ↓1+21
Comments8

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

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

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

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

Information

Rating
4,799-th
Location
Химки, Москва и Московская обл., Россия
Registered
Activity

Specialization

Chief Technology Officer (CTO)