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

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

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

Алгоритмы сортировки в Swift

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

Алгоритмы сортировки в Swift. Краткое пособие для подготовки к собеседованию для начинающего разработчика на Swift.

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

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

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

Всем привет, хабровчане и гости сайта

Сегодня решил рассказать о своем опыте, как я при помощи docker-compose и bash скрипта настроил развертывание бекенд приложения с базой данных.

Какая была идея? Хотелось при помощи одной команды в терминале разворачивать Java приложение с базой данных так, чтобы можно было передать все необходимые переменные в момент запуска и нигде не хранить их.
Так, чтобы можно было развернуть новую версию приложения даже с телефона, просто заранее заготовив необходимую команду.

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

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

Дело было так...
Всего голосов 8: ↑5 и ↓3+4
Комментарии21

Intersection Observer API: примеры использования

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


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

Обзор


Intersection Observer API (IOA) позволяет приложению асинхронно наблюдать за пересечением элемента (target) с его родителем (root) или областью просмотра (viewport). Другими словами, этот API обеспечивает вызов определенной функции каждый раз при пересечении целевого элемента с root или viewport.

Примеры использования:

  • «ленивая» или отложенная загрузка изображений
  • бесконечная прокрутка страницы
  • получение информации о видимости рекламы для целей расчета стоимости показов
  • запуск процесса или анимации, находящихся в поле зрения пользователя

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

Основы реактивного программирования с использованием RxJS. Часть 3. Higher Order Observables

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


В данной статье мы рассмотрим, как можно в одном потоке обрабатывать другой, для чего это нужно, и как нам в этом помогут операторы Higher Order Observables (дальше HOO).

Серия статей «Основы реактивного программирования с использованием RxJS»:



При работе с потоками часто возникает ситуация, когда необходимо в качестве значения одному потоку передать результаты работы другого. Например, мы хотим выполнить ajax запрос и его ответ обработать в текущем потоке, или запустить несколько параллельных запросов, реализовать pooling. Думаю, многие привыкли решать подобные задачи, используя такой механизм как promise. Но можно ли решать их используя RxJS? Конечно, и все куда проще чем вы думаете!
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии6

Bluebird: пояс с инструментами для асинхронщика

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

Асинхронность. Асинхронность никогда не меняется. Node.js использовал асинхронность, чтобы получить большой rps для io-операций. TC39 добавила промисы в спецификацию для борьбы с адом колбеков. Наконец, мы стандартизировали async/await. Но асинхронность никогда не меняется. Погодите, что это синеет в небе? Похоже bluebird несёт в клюве пояс с инструментами для тех из нас, кто плотно подсел на thenable-объекты и всю эту асинхронную лапшу.


Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии20

Пять докладов для фронтендера

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

Всем привет!

Делимся полезными материалами с недавно прошедшего митапа Frontend Mix, где экперты ЮMoney и Альфа Банка рассказали, как они создают продукт. 

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

Красота математики в формате бумаги A4

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

КДПВ


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

Узнать больше
Всего голосов 94: ↑83 и ↓11+90
Комментарии88

Корутины C++20 и многозадачность на примере контроллеров stm32

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

На Хабре уже неоднократно появлялись статьи, посвященные применению современных стандартов C++ при программировании микроконтроллеров, в том числе и появившихся в c++20 корутин.

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

Читать далее
Всего голосов 22: ↑21 и ↓1+28
Комментарии30

[Карьера в IT] Главное: что нужно знать, чтобы найти работу, пройти собеседование и выбрать оффер

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

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

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

CI/CD и еще один CD. Разбираемся в терминологии pipelines в контексте автоматизации тестирования

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

В IT индустрии используется большое разнообразие инженерных культур и практик, таких как Agile, бережливое производство (lean software development), DevOps. Все они так или иначе нацелены на бесперебойную доставку ценности за счет повторяемых коротких итераций. Неотъемлемой частью такого подхода является конвейерный подход или по-английски – pipelines. Подразумевается, что в идеальном мире разработчик заливает код на сервер и дальше происходит магия, состоящая из автоматизированных этапов сборки проекта, контроля качества кода, запуска тестов и сбора метрики. На рынке существует большое количество платных и бесплатных инструментов для настройки такого процесса, который мы называем “процессом непрерывной интеграции” или CI/CD (Jenkins, GitLab CI, Teamcity и д.р.). Однако для построения действительно зрелого процесса недостаточно просто установить инструмент. За каждым этапом конвейера стоит сложная логика того, что должно быть запущено, на каких вычислительных ресурсах и как эти ресурсы используются.


На собеседовании кандидаты очень часто гордо говорят, что знают CI/CD. Но знать можно по-разному. Одно дело нажимать кнопку запуска и смотреть, какой цвет получился: красный или зеленый. И совсем другое дело настраивать весь флоу от и до самостоятельно, чем обычно и занимаются DevOps инженеры. Для проверки глубины знаний я задаю базовый вопрос, на который очень редко получаю ответ: “А в чем разница между CI и CD ?”. Далее я хочу поделиться своим пониманием отличий CI от CD и от еще одного CD на примере запуска автотестов. Заранее предупрежу, что мое видение может частично отличаться от вашего. Ведь у всех нас немного разный опыт, разные проекты и источники для изучения, которые могут расходиться. Главное, что какое-то видение у вас есть!

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

Простые highload паттерны на Go

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

Привет, Хабр! Меня зовут Агаджанян Давид, хочу поделиться некоторыми инженерами рекомендациями, которые часто на моем опыте помогали держать highload нагрузку не прибегая к хардкору. Примеры будут на Go. Эти подходы довольно хорошо известны, но как мне кажется они недооценены и многие этими подходами пренебрегают. Если вы впервые видите их, то рекомендую хотя бы попробовать реализовать в своих проектах и провести бенчмарки, возможно вы будете приятно удивлены..

Читать далее
Всего голосов 29: ↑25 и ↓4+24
Комментарии5

Agile подход к разработке и управлению требованиями

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

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

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

Недельный геймдев: #81 — 7 августа, 2022

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

Из новостей: игровой движок The Machinery больше не поддерживается, а разработчики просят клиентов удалить исходники и бинарники, 9 месяцев разработки и вот вышел Godot 3.5, DreamWorks к концу года планирует выложить в опенсорс под лицензией Apache 2.0 рендерер MoonRay.

Из интересностей: из разработчиков игр в разработчики сервиса Balancy для разработчиков игр, 5 часов наслаждаемся концентрированным Джоном Кармаком, пулы памяти GPU в D3D12, шейдер водички в UnrealEngine.

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

Разработка драйвера сетевого адаптера для Linux. Часть 1

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

В этой статье мы рассмотрим как устроен драйвер сетевого адаптера для Linux.

Cтатью разделим на две части.

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

Хотя при разработке драйверов необходимо использовать стандартные ядерные фреймворки, такие как clock, reset, libphy и пр., поначалу мы будем работать с адаптером напрямую через регистры состояния и управления. Это позволит нам детально разобраться с аппаратной частью.

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

Нам нужна макетная плата с сетевым адаптером, на которую можно поставить Linux. Возьмем Orange Pi Zero на платформе Allwinner H2+. В состав платформы входят четыре процессорных ядра Cortex-A7, поддерживается ОЗУ стандартов LPDDR2, LPDDR3, DDR3, широкий спектр соединений и интерфейсов, в том числе сетевой адаптер, для которого мы будем разрабатывать драйвер. Подробное описание платформы тут, документация на платформу Allwinner H3 Datasheet.

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

Как использовать Docker в приложениях Node.js и React

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

В этой статье поговорим о том, как разработать и запустить бэкэнд на Node.js-Express и фронтенд на React в контейнере Docker.

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

Тимлид без команды — всё ещё тимлид? Или уже нет?

Время на прочтение11 мин
Количество просмотров7.6K
Тимлид — это, как известно, глава команды, то есть руководитель подразделения. У успешного тимлида есть специфические компетенции, повышенные хард-скилы и множественные софт-скилы. Однако нужно ли, имея весь этот позитивный багаж, идти на роль тимлида? И можно ли со всеми этими качествами нанести пользу компании и себе, не занимая позиции тимлида?



‎Я расскажу, зачем не быть тимлидом, обладая при этом всеми необходимыми компетенциями. Расскажу о методе двух императоров, чтобы описать модель, когда в команде помимо настоящего тимлида есть «как бы» тимлид, человек с тимлидскими навыками. А также, поскольку тимлид не бывает бывшим, отдельно пройдусь по особенностям найма экс-тимлидов на синьорные позиции.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+14
Комментарии12

17 убойных репозиториев GitHub, которые нужно сохранить

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

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

Читать далее
Всего голосов 153: ↑123 и ↓30+114
Комментарии44

6 хитростей Python, о которых никто не рассказывает новичкам

Время на прочтение5 мин
Количество просмотров43K
В наши дни Python — это самый популярный в мире язык программирования. Одна из причин этого кроется в том, что разработчики с удовольствием пишут на Python. Это выгодно отличает Python от других языков.

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



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

Код примеров можно найти в GitHub-репозитории, ссылку на который автор статьи выдаёт тем, кто подписался на рассылку проекта worldindev.ck.page.
Читать дальше →
Всего голосов 56: ↑33 и ↓23+23
Комментарии27

Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре

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

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Читать далее
Всего голосов 158: ↑157 и ↓1+188
Комментарии37

11 хитростей Chrome DevTools, которые помогут Вам стать Senior FrontEnd-разработчиком

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

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

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

Давайте посмотрим
Всего голосов 55: ↑49 и ↓6+50
Комментарии23

Информация

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