Pull to refresh
4
0
Дмитрий @IonianWind

Backend-разработчик

Send message

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

Level of difficultyMedium
Reading time10 min
Views2.1K

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

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

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

Читать далее
Total votes 25: ↑26.5 and ↓-1.5+28
Comments2

Как выявить токсичных сотрудников в коллективе

Reading time10 min
Views51K

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

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

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

Читать далее
Total votes 80: ↑23 and ↓57-34
Comments134

Что такое semantic-release и как с ним работать

Level of difficultyMedium
Reading time7 min
Views2.8K

Привет! Я — Алексей Бондаренко, работаю в команде Платформа Банки.ру. Сегодня хочу рассказать о semantic-release и его практическом применении на примере упрощения разработки и внедрения библиотеки в проект. 

Читать далее
Total votes 18: ↑16 and ↓2+14
Comments5

Б/У ThinkPad может быть лучше, чем новый дешёвый ноутбук

Reading time5 min
Views34K

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

Брать новое дешёвое устройство? Такой себе вариант. Вполне вероятно, что хороший подержанный ноутбук сможет закрыть ваши задачи лучше. Если его немного подшаманить.

Читать далее
Total votes 60: ↑58 and ↓2+56
Comments101

Нет у меня никакого первого имени

Level of difficultyEasy
Reading time4 min
Views16K

Открываю исходники очередного enterprise-проекта: о да-а-а, вот они, старые знакомые, лучшие друзья разработчика — first name и last name.

Читать далее
Total votes 71: ↑55 and ↓16+39
Comments163

Правда ли, что в Европе везде отсталые сервисы, медленные платежи и плохие онлайн-услуги?

Level of difficultyEasy
Reading time36 min
Views136K

На Хабре неоднократно в комментариях звучало мнение, что Россия впереди планеты всей по онлайн‑сервисам. Мол, у нас и госуслуги, и финтех, и такси, и доставки — все на высочайшем уровне, а в остальных странах, а особенно в отсталой Европе бедные бюргеры до сих пор стоят в многочасовых очередях, заполняют вручную тонны бумажек и ждут в очередях на кассах чтобы сделать банковский перевод, а курьер не привезет им ночью смузи в течении получаса после заказа. Давайте разбираться, так это или нет.

Читать далее
Total votes 282: ↑244.5 and ↓37.5+207
Comments1126

Самодельное электронное шумоподавление для квартиры

Reading time9 min
Views65K
Картинка kickstarter

Звук в нашей жизни играет большую роль, однако, «не все звуки одинаково полезны»:-), некоторые из них носят отрицательный характер, и учёные работают над тем, чтобы преуменьшить их влияние. Среди подобных звуков можно назвать шум разного рода, который, как усложняет восприятие целевой информации, например, в наушниках или открытых помещениях, так и вносит свою лепту в процесс звукового загрязнения окружающей среды. И в связи с этим, мы попробуем подумать, а насколько реально создать своё шумоподавляющее устройство, но не для наушников?

Читать дальше →
Total votes 84: ↑81 and ↓3+78
Comments111

Рассказ о моей системе личной продуктивности (и о софте, который я создал, чтобы её практиковать)

Reading time16 min
Views9.4K

Когда речь идет о личной продуктивности, то как правило имеется в виду управление действиями - задачами и проектами, временем.

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

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

Рассказываю о своем воркфлоу, который объединяет оба эти компонента и о продукте, который для него использую.

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments14

Вы за это заплатите! Цена Чистой Архитектуры. Часть 2

Level of difficultyMedium
Reading time9 min
Views7.2K

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

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

Итак, продолжим.

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

Использование кастомных шаблонов и конфигов для swagger-typescript-api

Level of difficultyMedium
Reading time8 min
Views1.7K

swagger-typescript-api - это мощный инструмент для генерации кода на основе OpenApi-контактов, о процессе работы с которым я рассказывал в предыдущей статье. Там же я упомянул, что его можно кастомизировать под нужды конкретного проекта с помощью своих шаблонов.

Именно кастомные шаблоны и бонусом, кастомная конфигурация, будут раскрыты в текущей статье. Поехали!

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

О вреде Test Driven Development

Level of difficultyMedium
Reading time2 min
Views6.3K

Artem Zakharchenko, автор библиотеки для тестирования MSW с 15К звезд на GitHub, поделился мыслями о Test Driven Development.

TDD - это неправильная практика. Она всегда была неправильной. Она неправильна по определению. Ее главная заслуга - поощрение тестирования, но на этом все и заканчивается.

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

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

Читать далее
Total votes 28: ↑19 and ↓9+10
Comments20

Как мы внедряли Sentry. Часть 1 — установка и настройка

Level of difficultyMedium
Reading time12 min
Views12K

Привет! Я Виталий, DevOps в LEADS.SU, в этой статье хочу рассказать как мы внедряли Sentry self-hosted и приводили к продакшен состоянию, которое должно отвечать требованиям высокодоступности - нельзя терять события ошибок. При этом не хотелось заморачиваться с кластеризацией для разных инструментов (вроде redis, postgresql, clickhouse, kafka и прочее). И тут мы вспомнили про распределенную сеть доставки логов из нескольких узлов td-agent и решили попробовать.

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

Вы за это заплатите! Цена Чистой Архитектуры. Часть 1

Level of difficultyMedium
Reading time11 min
Views23K

Всем привет, меня зовут Артемий, я работаю старшим Android-разработчиком в команде пользовательского профиля в RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы в проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.

Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры (далее — ЧА). Предупреждаю сразу, это лонгрид в двух частях!

Читать далее
Total votes 64: ↑61 and ↓3+58
Comments65

4 вида распространённых ошибок в Event-Driven системах

Reading time8 min
Views4.9K

В последние несколько лет в крупных компаниях наблюдается значительный рост внедрения event-driven (событийно-ориентированных) систем. Каковы основные причины этой тенденции? Это чистой воды хайп или есть веские причины, побуждающие к внедрению этой архитектуры? С нашей точки зрения, основными причинами, по которым многие компании выбирают этот путь, являются:

Читать далее
Total votes 17: ↑15 and ↓2+13
Comments5

Дроби в ранних цивилизациях

Level of difficultyEasy
Reading time8 min
Views8K

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

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

Читать далее
Total votes 30: ↑28 and ↓2+26
Comments6

Лучшие практики для надёжной работы с RabbitMQ

Level of difficultyEasy
Reading time13 min
Views19K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.

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

Следуй за белым кроликом
Total votes 58: ↑58.5 and ↓-0.5+59
Comments16

Септик и автономная канализация. Часть 1. Основы

Level of difficultyEasy
Reading time13 min
Views10K

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

Погрузиться в чтение
Total votes 28: ↑22 and ↓6+16
Comments40

Никогда не отвлекай программиста

Reading time2 min
Views240K
Во многих компаниях программистам запрещают работать в наушниках или отвлекают их по мелким вопросам. Вероятно, причина кроется в плохой информированности менеджеров и других сотрудников, насколько вредно так делать.

Крис Парнин (Chris Parnin) из технологического института Джорджии решил восполнить этот недостаток и опубликовал чрезвычайно насыщенную статью со ссылками на различные исследования по этой теме.

Для начала, несколько фактов, которые относятся ко всем работникам интеллектуального труда. Задача, прерванная по ходу выполнения, занимает в два раза больше времени и содержит вдвое больше ошибок, чем та же задача, которая выполнялась без прерывания (Czerwinski:04). Офисные сотрудники вынуждены отвлекаться при выполнении 57% задач (Mark:05). Опросы говорят о том, что сотруднику требуется в среднем 15 минут, чтобы вернуться в нормальный ритм после того, как его отвлекли (vanSolingen:98).
Читать дальше →
Total votes 263: ↑248 and ↓15+233
Comments180

Переключение между контекстами губительно для продуктивности

Reading time6 min
Views14K


Введение


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

Я попросил Юджина Шульга, закаленного в боях техлида и технического директора Telnyx, поделиться с нами мыслями о том, как справляться с переключением между контекстами. Его карьерный путь напоминает мой собственный. Он начинал программистом, затем поднялся до руководящей позиции и в конце концов стал техническим директором компании. Рекомендации, которые он дает, основаны на его личном опыте работы программистом, руководителем команды и руководителем руководителями.

Давайте перейдем непосредственно к рекомендациям!
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments15

Покрытие архитектуры as Code тестами

Level of difficultyEasy
Reading time16 min
Views5.1K

💬 На самом деле, моя идея написания тестов на архитектуру настолько проста, легко реализуема и при этом полезна, что я до сих пор толком не понимаю, почему я не встречал материалов на эту тему, и сама тема всё ещё не используется повсеместно 🙂
Статья написана по следам моих докладов на трёх крупных ИТ-конференциях, на каждой из которых ко мне подходили архитекторы и разработчики российских бигтехов, говорили, что я очень точно попал в их боли и предложил суперпрактику, которую они теперь будут внедрять. На всех трёх конференциях я получил высшие оценки от аудитории, а на двух из них доклад был признан лучшим в своей секции. В конце статьи приведена ссылка на видео доклада с одной из конференций.
В статье я поделюсь своей идеей и OpenSource-реализацией решения для написания тестов, разберу примеры тестов на небольшой учебной микросервисной архитектуре, а также расскажу про личный опыт и профит от применения этой практики.
Для разработчиков монолита тоже есть небольшой бонус: в OpenSource-репозитории появилась реализация и примеры тестов на архитектуру модульного монолита.

Читать далее
Total votes 26: ↑24 and ↓2+22
Comments8
1
23 ...

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity