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

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

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

Заставляем работать MinIO и Postgresql вместе

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

Всем привет, в этой статье я хочу рассказать, как у меня получилось интегрировать MinIO и Postgres, а именно, что после каждой загрузки картинки в объектное хранилище у нас появляется запись в БД.

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

Корпоративный куколдизм

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

Зачастую мне приходится слышать в подкастах или лицезреть в комментариях примерно такой диалог: "Я вашу айтишечку на балде вертел. Я сюда ради денег пришёл, которые в России ни в одной другой области не платят. Я вру на собесах об опыте, потому что работодатели точно так же врут соискателям об условиях работы, требования к джунам сениорские, а зарплата - нет"

Читать далее
Всего голосов 351: ↑262 и ↓89+229
Комментарии1150

Как я уменьшил размер образа docker на 40%

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

Ежедневно по работе я сталкиваюсь с Dockerfile, написал несколько из них самостоятельно, создавал контейнеры и всё такое. Но я никогда не публиковал их в реестре docker hub. Мне хотелось создать ugit — инструмент для отмены команд git (написанный в виде шелл-скрипта), который бы могли использовать люди, не любящие устанавливать случайные шелл-скрипты из Интернета.

Да-да, знаю. НАДО ПЕРЕПИСАТЬ ЕГО НА GO/RUST/ЕЩЁ КАКОМ-ТО ВОЛШЕБНОМ ЯЗЫКЕ. Сейчас скрипт состоит из пятисот с лишним строк Bash, поэтому я перепишу его на другой язык только под страхом смертной казни. Кроме того в ugit уже есть практически все функции (осталось реализовать отмену лишь небольшого количества команд, используемых не так часто).

В этой статье я расскажу о том, как написал официальный Dockerfile для ugit (шелл-скрипта) и снизил размер образа почти на 40% (с 31,4 МБ до 17,6 МБ), выполняя пошаговые попытки работы по инструкции. Надеюсь, это замотивирует других любителей шелла тоже публиковать свои скрипты в виде образов docker!

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

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

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

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

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

Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform

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


Привет, Хабр! Меня зовут Илья Нырков, я архитектор в VK Cloud. В своей работе встречаюсь с желанием партнеров (это и крупный энтерпрайз, и различные стартапы) использовать Kubernetes, но их останавливает сложность поднятия, конфигурирования кластера, деплоя в нём приложений и построения CI/CD-процессов вокруг него. Я постараюсь показать на практическом примере, который вы можете повторить сами, как развернуть за сравнительно небольшое время полноценный CI/CD с рабочим приложением, доступным для внешних пользователей.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+36
Комментарии0

Уровни изолированности транзакций для самых маленьких

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

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

Если у вас есть собственные кейсы, которыми вы бы хотели поделиться, пишите в комментариях. 

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

Я изучал иностранный язык 3 месяца с DuoLingo. Почему это не самый эффективный инструмент для изучения языка

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

Уже чуть более трех месяцев я учил испанский язык  с помощью тренажера DuoLingo. Это первая часть эксперимента. Моей целью было оценить объем знаний и перспективы использования DuoLingo изучающими иностранный язык.

Я не тратил много времени, 10-15 минут в день, иногда меньше. При этом я намеренно не использовал других источников. В общем, действовал, как средний студент без особой мотивации.

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

Паттерн Unit of Work в разрезе чистой архитектуры DDD на языке Golang

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

Всем привет! Недавно мне выпала возможность разработать шаблон сервиса, который можно было бы использовать как для монолитной, так и для микро‑сервисной архитектуры. Шаблон должен был придерживаться принципов Domain‑Driven Design (DDD). В этом процессе, я столкнулся с двумя интересными проблемами:

Проблема 1: Сложности обеспечения транзакционности базы данных

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

Проблема 2: Нарушение изолированности слоя

В попытке решить первую проблему, некоторые разработчики переносят работу с транзакциями на уровень слоя приложения, чтобы избежать прямой зависимости от базы данных. Однако, такой подход, несмотря на его обоснование, может нарушить изолированность слоев и противоречить принципам DDD и чистой архитектуры. Это, в конечном итоге, затрудняет поддержку приложения и усложняет его масштабирование.
Эти две проблемы стали отправной точкой для исследования применения паттерна Unit of Work и его роли в обеспечении надежности и консистентности данных в контексте Golang и DDD.

В статье я расскажу о своем подходе к решению этих задач.

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

Джира для джунов, или как планировать и “не сгореть”

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

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

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

GOST: швейцарский нож для туннелирования и обхода блокировок

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

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Всего голосов 145: ↑142 и ↓3+174
Комментарии113

Введение в Чистую архитектуру через 6 кругов рефакторинга

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

Разделяй и влавствуй, или как провести клининг легаси-кода GoLang.

Этот пост является частью большого цикла статей, в которых мы демонстрируем, как создавать приложения на Go, которые легко разрабатывать, поддерживать и с которыми приятно работать в долгосрочной перспективе. Мы делаем это, делясь проверенными методами, основанными на множестве экспериментов с командами, которыми мы руководили, и научных исследованиях («при съёмках фильма ни одно животное не пострадало»).

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

Что касается подхода к «чистой» архитектуре, описываемого далее, то это симбиоз двух идей: разделение Ports и Adapters, а также контроль за тем, как пакеты ссылаются друг на друга...

Оставь надежду, всяк сюда входящий
Всего голосов 16: ↑12 и ↓4+11
Комментарии4

Положите это в корзину: как настроить рекомендательную систему для предсказания покупок на основе предыдущего опыта

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

Рекомендательные системы стали неотъемлемой частью современного ритейла. Они помогают покупателям найти интересующие их товары и услуги, а также предсказывают, что они могут приобрести в будущем на основе их предыдущих покупок. Эти системы играют важную роль в улучшении пользовательского опыта, увеличении конверсии и повышении доходности компаний. В этой статье мы, команда «ДатаЛаб»* (ГК «Автомакон»), рассмотрим, как настроить рекомендательную систему для точного прогнозирования покупок на основе опыта покупателей, исследования закономерностей в покупках и других факторов.

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

Как построить надёжную шину данных на Apache Kafka

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

С помощью Apache Kafka мы в Авито гарантируем соблюдение контрактов публикуемых событий. Рассказываем, как мы переработали архитектуру и сделали работу с Kafka удобнее и надёжнее.

Мы можем пережить даже полный отказ дата-центра. Почему — тоже расскажем в этой статье.

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

Архитектура на Unity без Zenject. Часть 3

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

Всем привет! 👋

Меня зовут Игорь Гулькин, и я Unity разработчик. За свои 5 лет накопилось много опыта, поэтому в этой статье хотел бы поделиться принципами и подходами, с помощью которых можно реализовать архитектуру игры просто и гибко без фреймворка. Цель доклада, дать не просто готовое решение, а показать ход мыслей и паттерны, с помощью которых ее можно выстроить. Если вы не читали первую и вторую части, то рекомендую начать с них :).

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

Стартуем микросервис на Node.js + fastify + Typescript + prisma + mongodb + grpc

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

Зачастую возникает необходимость начать новый микросервис.

Вот и у меня совсем недавно возникла такая потребность. А ведь еще хочется и чего-то новенького попробовать.

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

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

Фиксим снижение производительности до релиза

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

В этой статье описывается, как команда Netflix TVUI реализовала надежную стратегию для быстрого и легкого обнаружения аномалий производительности до релиза.

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

Архитектура фронтенда и какой она должна быть

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

Все мы знаем про, или слышали про практики и паттерны проектирования SOLID, GRASP, MVC, MV** и даже применяем их с переменным успехом, стараясь нащупать эффективный подход к построению приложений. Но это лишь приводит к разнообразию реализаций наших приложений и частей функционала. Уже долгое время пытаюсь понять по каким правилам должно строиться фронтенд приложение чтобы оно удовлетворяло следующим критериям:

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

Какие у нас есть варианты?

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

Насколько жарко — это слишком жарко? Жара + влажность становятся опасными быстрее, чем многие думают

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

По мере изменения климата волны жары становятся все более интенсивными: они длятся дольше, идут чаще, а температуры всё выше. Сейчас одна такая волна проносится через Европу: в Испании и Португалии только за прошедшую неделю умерли 1100 человек. Люди просто оказались не готовы к температурам выше 35 ºС: у них в домах не было кондиционеров, а многие днем выходили и пытались работать как обычно. И получили огромные проблемы со здоровьем.

В целом по Европе за одно это лето счет идет уже на десятки тысяч. Этот год, по всей видимости, станет даже более смертоносным, чем печально известный 2003-й, когда в Европе от жары погибло 30 000 людей. Но тогда температура доходила до 37 ºС, сейчас — под тем же Парижем фиксируют уже до +42 ºС.

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

Попытаемся ответить.

Читать далее
Всего голосов 91: ↑86 и ↓5+104
Комментарии609

Мягкий способ релокации в Европу, или Поиск тихой гавани в неспокойные времена

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

Если 20-21 года можно назвать «годами удалёнки», то 2022 можно назвать годом релокации. Если раньше мысль о переезде посещала меня в формате «ну когда-нибудь потом, перееду в тепло ближе к пенсии», то после февраля этого года, когда зарубежные компании начали сворачивать бизнес в России, заказчики — сокращать бюджеты, а деньги со счёта в банке можно ждать неделями — вопрос о переезде в другую страну встал ребром. Причём не с целью «переждать», а как минимум для небольшой адаптации за рубежом, для возможного переезда уже на ПМЖ.

В качестве такой первой остановки выбрал Сербию (почему именно её расскажу дальше). Если вас тоже посещали/посещают мысли уехать — переходите под кат, там я делюсь своими критериями выбора страны,  деталями переезда и сведениями, которые удалось узнать у уже переехавших.

Читать далее
Всего голосов 68: ↑58 и ↓10+67
Комментарии203

Быть тимлидом, а не казаться: обзор человечных практик и инструментов

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

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

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

Нелегко применять софты: быть открытым, уверенным, проявлять эмпатию.

Тяжело даются one-on-one, фидбек и общение, особенно когда надо поговорить не про работу, а про что-то еще.

То есть многие просто не знают, что делать, когда становятся тимлидами: сначала им сложно и некомфортно, у них не получается или получается не то, а ожидания бизнеса и команды не очень понятны. А потом им непонятно, как можно те самые sotf skills развивать, если каждый one-on-one отнимает массу сил. 

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

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

Информация

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