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

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

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

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

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

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

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

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

Читать далее
Всего голосов 28: ↑30 и ↓-2+32
Комментарии3

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

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

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

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

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

Читать далее
Всего голосов 80: ↑23 и ↓57-34
Комментарии134

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

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

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

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии5

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

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

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

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

Читать далее
Всего голосов 60: ↑58 и ↓2+56
Комментарии101

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

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

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

Читать далее
Всего голосов 71: ↑55 и ↓16+39
Комментарии163

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

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

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

Читать далее
Всего голосов 282: ↑244.5 и ↓37.5+207
Комментарии1126

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

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

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

Читать дальше →
Всего голосов 84: ↑81 и ↓3+78
Комментарии111

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

О вреде Test Driven Development

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 64: ↑61 и ↓3+58
Комментарии65

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

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии5

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

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

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

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

Читать далее
Всего голосов 30: ↑28 и ↓2+26
Комментарии6

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

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

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

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

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

Следуй за белым кроликом
Всего голосов 58: ↑58.5 и ↓-0.5+59
Комментарии16

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

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

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

Погрузиться в чтение
Всего голосов 28: ↑22 и ↓6+16
Комментарии40

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

Время на прочтение2 мин
Количество просмотров240K
Во многих компаниях программистам запрещают работать в наушниках или отвлекают их по мелким вопросам. Вероятно, причина кроется в плохой информированности менеджеров и других сотрудников, насколько вредно так делать.

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

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

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

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


Введение


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

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

Давайте перейдем непосредственно к рекомендациям!
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии15

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

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

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

Читать далее
Всего голосов 26: ↑24 и ↓2+22
Комментарии8
1
23 ...

Информация

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