Pull to refresh
-18
0
Николай Бараненко @drno-reg

Сбор, хранение и аналитика

Send message

Собираем многомодульный Gradle проект в Gitlab CI

Reading time3 min
Views9.7K

Что может быть проще? Пишем команду сборкиgradle clean buildи все готово. На первый взгяд все действительно так, и займет это немного время. Но со временем кодовая база и, соответственно, количество тестов (ну я очень на это надесь) будет расти, вы не успеете опомниться как сборка будет у вас занимать уже 10 или больше минут

Читать далее

Как мы развернули коммунальный Apache Airflow для 30+ команд и сотни разработчиков

Reading time9 min
Views11K

О том как мы внедряли Apache Airflow для использования различными командами в нашей компании, какие задачи мы хотели решить этим сервисом. Внутри описание архитектуры деплоя и наш Infrastructure as Code (IaC).

Читать далее

Случай, когда прямо посреди хирургического вмешательства всё пошло не по плану

Reading time12 min
Views23K


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

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

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

Ниже будут фотографии частей человека изнутри, поэтому аккуратно.
Читать дальше →

Работающий прототип сервиса за 2 недели при помощи Glide, Гугл-таблиц, Telegram-бота, Python и EasyOCR

Reading time9 min
Views7.5K

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

Читать далее

Веб-сервер на старом смартфоне Android

Reading time6 min
Views68K


Бывает такое, что смартфон становится ненужным — например, на нём разбивается экран или он просто старенький, тормозит даже браузер. Что делать с таким гаджетом, не выбрасывать же его? В самом деле, американцы летали на Луну с компьютерами, у которых характеристики много хуже, чем в вашем старом смартфоне. Скорее всего, в нём 4−8 процессорных ядер, 2−4 гигабайта оперативной памяти, блок бесперебойного питания с аккумулятором. Не слабее, чем некоторые компьютеры.

Попробуем найти этому смартфону полезное применение.
Читать дальше →

Линтер на все случаи жизни — GitHub Super Linter

Reading time4 min
Views25K


Команда DevOps инженеров из GitHub поделились своим универсальным решением для проверки качества кода. С ним можно настроить линтер для 17 языков всего в 11 строк:


name: Lint Code Base
on:
  push:
    branches-ignore:
      - 'master'
jobs:
  linter:
    runs-on: ubuntu-latest
    steps:
        - uses: actions/checkout@v2
        - uses: docker://github/super-linter:v2.1.0

Код выше является YAML конфигурацией для GitHub Actions (бесплатный CI/CD от GitHub) и далее мы разберемся с его содержимым и принципом работы.

Читать дальше →

Битва Jenkins и GitLab CI/CD

Reading time11 min
Views63K
В последнее десятилетие достигнуты значительные успехи в сфере разработки инструментов непрерывной интеграции (Continuous Integration, CI) и непрерывного развёртывания (Continuous Delivery, CD). Развитие технологий интеграции разработки и эксплуатации ПО (Development Operations, DevOps) привело к быстрому росту спроса на CI/CD-инструменты. Существующие решения постоянно улучшаются, стремясь идти в ногу со временем, выходят их новые версии, в мире контроля качества ПО (Quality Assurance, QA) постоянно появляется множество новых продуктов. При таком богатстве выбора подбор подходящего инструментария оказывается нелёгкой задачей.



Среди всех существующих CI/CD инструментов существуют два проекта, на которые, определённо, стоит обратить внимание тому, кто ищет что-то из этой сферы. Речь идёт о Jenkins и об инструменте GitLab CI/CD, который является частью платформы GitLab. У Jenkins имеется более 16000 звёзд на GitHub. Репозиторий GitLab на gitlab.com набрал чуть больше 2000 звёзд. Если сравнить популярность репозиториев, то окажется, что Jenkins набрал в 8 раз больше звёзд, чем платформа, в состав которой входит GitLab CI/CD. Но при выборе CI/CD-инструмента это — далеко не единственный показатель, на который стоит обращать внимание. Есть и масса других, и это объясняет то, что во многих сравнениях Jenkins и GitLab CI/CD оказываются очень близко друг к другу.
Читать дальше →

Ведение семейных финансов на C# и Xamarin. Личный опыт

Reading time11 min
Views17K

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

Автор сей статьи имеет крайне посредственные скиллы разработки, так что некоторые технические решения могут оскорбить чувства профессиональных программистов на C# и разработчиков приложений для Android.

За всеми подробностями прошу под кат.

Читать далее

Как создатель node.js сам разочаровался в нем

Reading time8 min
Views53K

Несколько лет назад на JSConf 2018 выступил Райан Даль, создатель Node.js. Его доклад вызвал сенсацию, он затронул много актуальных проблем и поднял громкий хайп, не оставив равнодушным практически никого, кто связан с серверным программированием. В его обсуждении бэкэнд программисты разделились на два лагеря: одни отстаивали Node.js, другие прочили ему скорую смерть. 

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

React: основные подходы к управлению состоянием

Reading time29 min
Views25K


Доброго времени суток, друзья!

Предлагаю вашему вниманию простое приложение — список задач. Что в нем особенного, спросите вы. Дело в том, что я попытался реализовать одну и ту же «тудушку» с использованием четырех разных подходов к управлению состоянием в React-приложениях: useState, useContext + useReducer, Redux Toolkit и Recoil.

Начнем с того, что такое состояние приложения, и почему так важен выбор правильного инструмента для работы с ним.

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

Условно, состояние можно разделить на локальное и глобальное. Под локальным состоянием, обычно, понимается состояние отдельно взятого компонента, например, состояние формы, как правило, является локальным состоянием соответствующего компонента. В свою очередь, глобальное состояние правильнее именовать распределенным или совместно используемым, подразумевая под этим то, что такое состояние используется более чем одним компонентом. Условность рассматриваемой градации выражается в том, что локальное состояние вполне может использоваться несколькими компонентами (например, состояние, определенное с помощью useState(), может в виде пропов передаваться дочерним компонентам), а глобальное состояние не обязательно используется всеми компонентами приложения (например, в Redux, где имеется одно хранилище для состояния всего приложения, обычно, создается отдельный срез (slice) состояния для каждой части UI, точнее, для логики управления этой частью).
Читать дальше →

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, DevOps
Python
Kubernetes
CI/CD
Fastapi
ClickHouse
Nginx
Big data