Pull to refresh
6
0
Alexander Kardapolov @akardapolov

User

Send message

Скринкасты терминала. Запись действий в консоли Linux

Reading time6 min
Views9.6K

Копипаст из чужой консоли

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

Существуют специализированные инструменты именно для консольных скринкастов. Для этого они задействуют встроенный псевдотерминал Linux, то есть PTY. Самые продвинутые добавляют спецэффекты типа подсветки нажатий клавиш и, самое главное, позволяют выделить мышкой и скопировать текст прямо из «видео».
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments9

Публикуем проект с помощью Gradle и Sonatype в Maven Central без рук

Reading time5 min
Views9.7K

Это такое приятное чувство, когда ты закончил какую-то задачу. А особенно когда твой проект уже готов к релизу. Остался лишь последний шаг.

Публикация проекта в Maven Central, имеено об этом я расскажу в этой статье. Как настроить Gradle, чтобы потом без труда настроить CI.

Читать далее ->
Total votes 14: ↑14 and ↓0+14
Comments7

Микросервисы для чайников: как на них перейти с монолита с нуля

Reading time12 min
Views72K

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

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

Читать далее
Total votes 23: ↑21 and ↓2+25
Comments31

Когда и зачем нужен CI/CD

Reading time6 min
Views27K

Скорость сборки продукта — важное конкурентное преимущество в разработке программного обеспечения. То, что раньше делалось месяцами, сегодня выполняется за считанные дни без потери качества. Путь к ускорению релизов лежит через автоматизацию и внедрение CI/CD.

В статье разберём, когда и зачем нужен CI/CD, но перед этим, расскажем, как устроена методология и почему эффективнее внедрить её, чем деплоить вручную.

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

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

Reading time4 min
Views40K

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

Читать далее
Total votes 42: ↑24 and ↓18+13
Comments53

Вредные советы при построении Аналитики (Data Lake / DWH / BI) – чего стоит избегать

Reading time5 min
Views6.5K

Всем привет! На связи Артемий, со-автор и преподаватель курсов Data Engineer, DWH Analyst.

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

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

В публикации Вас ожидает:

- Использование select * – всё и сразу

- Употребление чрезмерного количество CTEs (common table expressions)

- NOT DRY (Don’t repeat yourself) – повторение и калейдоскопический характер расчетов

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

Да что это такое, ваше качество кода?

Reading time5 min
Views8K

Салют, коллеги.

Лично я, очень люблю поговорить про качество, поддерживаемость и выразительность кода (эти умные слова, часто звучат на код ревью)

К сожалению, такие разговоры часто и быстро скатываются в холивар. Но, кажется, я нашел способ "вести разговоры о высоком без боли".

Мысль такая, если приземлить обсуждение на конкретную практическую задачу, то будет сильно проще понять, какой именно смысл вкладывает в слово "выразительность" собеседник. 

Читать далее
Total votes 10: ↑9 and ↓1+11
Comments38

Пишите плохой код и не стыдитесь этого

Reading time4 min
Views11K
Писать хороший код я умею. Обычно это предполагает, что нужно потратить немного больше времени здесь и сейчас во имя некоего более совершенного миропорядка в будущем. Но здесь мы исходим из предпосылки, что нам известно, чего ждать от будущего. А в разработке будущее обычно прогнозируется с трудом.

Неопределенность может порождаться тем, что нам не всё известно о технологии, о бизнесе, о пользователе, объеме данных в системе, продолжительности жизни кода, а также другими неизвестностями, о которых мы даже не подозреваем (за расширенным списком примеров обратитесь к 2020 году).

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

Любые препятствия плохо влияют на продолжительность цикла. Они лишают меня возможности превращать неопределенность в определенность – а в этом и состоит суть обучения. Быстрое обучение формирует наиболее устойчивую ценность, оно выступает своего рода коэффициентом, на который умножается качество кода и архитектуры впоследствии. Есть такая поговорка «Писать значит переписывать», перелагая ее на код, можно сказать: «Писать код – значит проводить рефакторинг».

Исходя из этого, вот несколько причин, почему не нужно бояться писать паршивый код. Точнее сказать, почему не нужно бояться писать больше паршивого кода.
Читать дальше →
Total votes 25: ↑13 and ↓12+4
Comments27

Что такое качество. Разбираемся в иерархии терминов «QA», «QC» и «тестирование»

Reading time9 min
Views29K

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

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

Как улучшить межсерверное взаимодействие и сэкономить время разработчика

Reading time11 min
Views7.9K

Привет! Я Алексей, Java-разработчик. В статье поделился опытом внедрения подхода Contract-First в backend. 

Под катом подробности:

— что такое Code-First и зачем переходить на Contract-First,

— как перестать писать API-объекты руками и сэкономить 12 человеко-недель в спринт,

— как поддерживать однотипный код и API, если у вас 100+ микросервисов и 60 бэкендеров.

Читать о внедрении Contract-First
Total votes 13: ↑12 and ↓1+13
Comments5

Реверс-инжинирим структуру БД PostgreSQL по плану запроса к ней

Reading time4 min
Views5.5K

Большая часть оптимизаций запросов к базам PostgreSQL может выполняться "механически", следуя разного рода маркерам в плане выполнения запроса, которые подскажут, что и как можно ускорить. Но "глубинные" переработки алгоритма, вроде описанных в статье про DBA-детектив, требуют от разработчика детального понимания используемой структуры логических связей.

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

А ведь она уже и так находится "под ногами" в момент анализа плана запроса - надо только лишь удобно увидеть ее!

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

Лучшие практики тестирования микросервисов

Reading time9 min
Views15K

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

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

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

Экспорт UI дизайн-интерфейсов из Figma в Xcode iOS/Android Studio, в виде .xib/xml

Reading time4 min
Views8.6K

Экспорт UI дизайн-интерфейсов из Figma в Xcode iOS/Android Studio, в виде .xib/xml

FigmaConvertXib это инструмент для экспорта элементов дизайна из проекта Figma, в среду разработки, с точностью 90%. В результате конвертации будут созданы файлы xib / xml, и уже с помощью интерфейс редактора Xcode/Android Studio, можно будет манипулировать всеми элементами у себя коде. Если дизайн вашего проекта разрабатывается в Figma, и вы не реализуете дизайн программно, то это для вас. Для того чтобы не тратить огромное время на реализацию всех UI элементов.

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

Мониторинг веб-приложения на Rust с использованием Prometheus и Grafana

Reading time13 min
Views13K

В статье показано как настроить мониторинг веб-приложения на Rust. Приложение выставляет наружу Prometheus метрики, которые визуализируются с помощью Grafana. Мониторинг осуществляется для проекта mongodb-redis demo, детально рассмотренного здесь. В итоге получена следующая архитектура:


architecture

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

Что нужно знать, чтобы быть синьором?

Reading time11 min
Views90K

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

Ну-ка, ну-ка...
Total votes 165: ↑147 and ↓18+151
Comments258

JTBD: почему любимая работа вызывает отвращение?

Reading time12 min
Views24K

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

Читать далее
Total votes 72: ↑64 and ↓8+73
Comments28

Изобретем велосипед снова или построим график комбинаций бинарных переменных

Reading time2 min
Views1.6K

Про пакет ComplexUpset в R.

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

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

Тревожно писать и публиковать статьи (и не только)? Пройдите по чужим граблям

Reading time7 min
Views9.6K

Так случилось, что моей первой работой был мой же вуз — без особого труда ровно 1 сентября года защиты диплома я вышла на работу, в собственный кабинет, с приятными обязанностями и интересными, давно знакомыми задачами. Коллеги — мои преподаватели и администрация, которых я знала 5 с лишним лет, стены помогают, друзья забегают между парами. Dolce vita! Но за 7500 — даже в 2007 это было так себе (никак). Не очень счастливый случай заставил меня двигаться на первую настоящую работу — и тут рвануло по всем направлениям: игры кончились, а ребёнку не сообщили. Интеллектуальные, ментальные, коммуникативные трудности приводили к виражам стресса. Работать головой и держать себя в руках казалось невероятным, конфликты и ошибки буквально выбивали из седла. Спустя три года "настоящей" работы я закрепилась в том самом седле почище любого ковбоя, но определённые проблемы пришлось побороть. Одна из них — первые шаги на Хабре в качестве профессионального автора. Необходимость написать статью каждый раз вызывала дикое беспокойство. Знаю, что таких авторов немало — даже среди тех, кто пишет "для себя". Поэтому делюсь своим личным опытом борьбы с рабочей тревожностью — зря что ли столько времени отведено на праздники.

Читать далее
Total votes 35: ↑32 and ↓3+44
Comments47

Как мы избавились от 80% своего кода, повысив скорость разработки и уменьшив количество ошибок

Reading time12 min
Views63K


Оптимизация кода и развитие микросервисной архитектуры занимает значительную часть жизни команды разработчиков МВидео-Эльдорадо. Тем любопытней изучить опыт коллег за рубежом. Предлагаем вашему вниманию очередной пост на тему: «А как там у них».
Читать дальше →
Total votes 81: ↑73 and ↓8+82
Comments101

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity