Pull to refresh
1
0
Send message

Как инженеры GitHub используют GitHub Copilot: 4 способа

Reading time4 min
Views3.4K


Узнаем, как GitHub Copilot повышает эффективность работы инженеров из GitHub, позволяя автоматизировать повторяющиеся задачи, сохранять концентрацию и многое другое.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments1

От простого ИТ-ландшафта к единой платформе разработки: эволюция ИТ в Тинькофф

Level of difficultyMedium
Reading time9 min
Views1.2K


Создание внутренней платформы разработки — спасение для больших компаний во многих кейсах: помогает избавиться от «зоопарка технологий», унифицировать стандарты и подходы, обеспечить безопасность и стабильно улучшать ИТ внутри компании. Но создание единой платформы — результат эволюционного пути развития, и часто этот путь занимает десятки лет.
Читать дальше →
Total votes 11: ↑12 and ↓-1+13
Comments2

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

Level of difficultyMedium
Reading time9 min
Views2.1K

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

Читать далее
Total votes 9: ↑9.5 and ↓-0.5+10
Comments28

Как настроить ETL с json’ами в Apache NiFi

Level of difficultyEasy
Reading time9 min
Views1.4K

Привет, Хабр! Меня зовут Сергей Евсеев, сегодня я расскажу, как в Apache NiFi настраивается ETL-пайплайн на задаче с JSON’ами. В этом мне помогут инструменты Jolt и Avro. Пост пригодится новичкам и тем, кто выбирает инструмент для решения схожей задачи.

Что делает наша команда

Команда работает с данными по рекрутингу — с любой аналитикой, которая необходима персоналу подбора сотрудников. У нас есть различные внешние или внутренние источники, из которых с помощью NiFi или Apache Spark мы забираем данные и складируем к себе в хранилище (по умолчанию Hive, но есть еще PostgreSQL и ClickHouse). Этими же инструментами мы можем брать данные из хранилищ, создавать витрины и складывать обратно, предоставлять данные внутренним клиентам или делать дашборды и давать визуализацию.

Описание задачи

У нас есть внешний сервис, на котором рекрутеры работают с подбором. Сервис может отдавать данные через свою API, а мы эти данные можем загружать и складировать в хранилище. После загрузки у нас появляется возможность отдавать данные другим командам или работать с ними самим. Итак, пришла задача — нужно загрузить через API наши данные. Дали документацию для загрузки, поехали. Идем в NiFi, создаем пайплайн для запросов к API, их трансформации и складывания в Hive. Пайплайн начинает падать, приходится посидеть, почитать документацию. Чего-то не хватает, JSON-ы идут не те, возникают сложности, которые нужно разобрать и решить.

Ответы приходят в формате JSON. Документации достаточно для начала загрузки, но для полного понимания структуры и содержимого ответа — маловато. 

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

Читать далее
Total votes 12: ↑13.5 and ↓-1.5+15
Comments3

Книга: «Podman в действии»

Reading time14 min
Views3.5K
image Привет, Хаброжители!

Пришло время обновить свой контейнерный движок! Менеджер контейнеров Podman обеспечивает гибкое управление слоями образов и полную совместимость с Kubernetes, а также дает возможность пользователям без прав администратора создавать, запускать непривилегированные контейнеры и управлять ими. OCI-совместимая поддержка Docker API позволяет перевести существующие контейнеры на Podman, не ломая свои скрипты и не меняя привычного порядка работы.

«Podman в действии» познакомит вас с менеджером контейнеров Podman. Простые объяснения и примеры позволят быстро разобраться с тем, что такое контейнеры, как они работают и как управлять ими. Вы получите глубокие знания об используемых Podman компонентах Linux и даже узнаете больше о Docker. Особенно ценны соображения автора Дэна Уолша по поводу безопасности контейнеров.

Для разработчиков и системных администраторов, имеющих опыт работы с Linux и Docker.
Читать дальше →
Total votes 9: ↑12 and ↓-3+15
Comments0

Оптимизация запросов в ClickHouse с помощью создания цепочки материализованных представлений

Reading time10 min
Views939

В ClickHouse материализованные представления (materialized views) являются механизмом, автоматически выполняющим запросы к исходным таблицам при поступлении новых данных. 

Материализованное представление (МП) - это специальный тип таблицы, содержащей результат выполнения запроса к исходным данным. Этот результат фактически представляет собой кэшированное представление данных из исходных таблиц. Одной из ключевых особенностей МП в ClickHouse является их автоматическое обновление. При поступлении новых данных в исходные таблицы МП обновляется, автоматически пересчитываясь в соответствии с определенным запросом.

Читать далее
Total votes 8: ↑8.5 and ↓-0.5+9
Comments0

Platform Engineering: что, зачем и как

Level of difficultyMedium
Reading time10 min
Views1.7K

Привет! Меня зовут Александр Тарханов, я тимлид команды платформы в 05.ru. 

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

Что дальше
Total votes 4: ↑5 and ↓-1+6
Comments6

Их Айти VS наш Айти: чем отличается разработка в Европе и в РФ

Level of difficultyEasy
Reading time5 min
Views46K

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

Различий между российскими и европейскими программистами не так много. И те, и другие работают в Jira, используют одни и те же инструменты и подчас даже читают одни и те же книги. Однако нюансы есть.

Читать далее
Total votes 50: ↑42 and ↓8+34
Comments271

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

Level of difficultyEasy
Reading time6 min
Views4K

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

Читать далее
Total votes 9: ↑5 and ↓4+1
Comments16

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

Reading time10 min
Views2.4K

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

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

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

Читать далее
Total votes 7: ↑9 and ↓-2+11
Comments2

На какие AI Coding Assistants стоит обратить внимание в 2024?

Reading time8 min
Views7.5K

Не является секретом, что LLM в настоящее время являются неотъемлемой частью нашего рабочего процесса. Особое внимание заслуживает AI Coding Assistant — искусственный интеллект, или просто программный помощник, который поддерживает разработчиков, помогая писать более качественный и точный код, тем самым экономя время и ресурсы.

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

Но прежде чем мы погрузимся в детали этих инструментов, давайте ответим на вопрос: "Что такое эти помощники?".

Приятного прочтения(:

Читать далее
Total votes 18: ↑19 and ↓-1+20
Comments9

QA-тестировщикам — рецензия на книгу «Тест-дизайн. Практическое руководство» Ольги Назиной

Level of difficultyEasy
Reading time5 min
Views4.3K

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

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments2

Cобытия жизненного цикла компонента

Level of difficultyEasy
Reading time6 min
Views1.8K

Друзья, привет!

Практическое понимание событий жизненного цикла компонентов даёт возможность быстро анализировать и разрабатывать бизнес-задачи. Мы разберём 7 событий жизненного цикла компонентов на примере Composition API в Vue3 фреймворке.

Читать далее
Total votes 13: ↑14 and ↓-1+15
Comments7

Как мы реализовали аутентификацию трафика для MSA на базе монолита

Level of difficultyMedium
Reading time13 min
Views1.4K

Привет, Хабр! Меня зовут Салахутдинов Дмитрий, я принципал инженер в СберМаркете. Занимаюсь развитием Ruby-платформы и масштабированием системы через декомпозицию монолита на сервисы.

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

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

Как я снизил время инкрементальных сборок Rust на 40%

Level of difficultyMedium
Reading time9 min
Views3.1K

Я форкнул и модифицировал компилятор Rust rustc. Одна фича — кэширование раскрытия процедурных макросов — привела к снижению времени инкрементальных сборок на 11-40% в различных реальных крейтах. Благодаря этому ускорились dev-сборки и меньше стал тормозить rust-analyzer (IDE IntelliSense).

Если вы специалист в повышении производительности компилятора Rust, то можете сразу перейти к разделу «Кэширование раскрытия макросов: ускорение инкрементальных сборок Rust на 40%».

Читать далее
Total votes 15: ↑17.5 and ↓-2.5+20
Comments5

Стресс и выгорание в мире разработки ПО

Level of difficultyEasy
Reading time9 min
Views10K
Автор: Sow Ay

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

Если вспомнить конкретно 2017 год, то он стал для меня весьма неприятным. Я регулярно испытывал панические атаки, сидел на релаксантах и пытался писать код, находясь под серьёзным давлением дедлайнов и новых ответственностей. Тогда я как раз унаследовал от своего предшественника должность главы отдела информационных технологий. Теперь я отвечал за небольшую команду разработчиков. При этом наш стартап дал многим партнёрам множество обещаний. Моей же задачей была их реализация, и я мог их либо нарушить, либо выполнить. У меня получилось и то и другое.
Читать дальше →
Total votes 54: ↑60 and ↓-6+66
Comments48

Книга: «Рецепты Python. Коллекция лучших техник программирования»

Reading time15 min
Views11K
image Привет, Хаброжители!

В «Рецептах Python» используется простой, но эффективный метод освоения 63-х базовых навыков программирования на Python. Сначала формулируется вопрос, например «Как найти элементы в последовательности?» Затем приводится базовое решение на чистом понятном коде. Далее исследуются другие интересные подходы, такие как поиск подстрок или пользовательские классы. Перед переходом к следующему вопросу полученные навыки закрепляются с помощью решения задач.

Автор рассматривает все языковые средства, необходимые для уверенного владения Python. По ходу знакомства с книгой вы изучите лучшие приемы написания питонического кода. В освоении каждого инструмента помогут конкретные рекомендации и рисунки. Многочисленные перекрестные ссылки указывают на возможность повторного использования рассматриваемых средств и концепций в различных контекстах.
Читать дальше →
Total votes 6: ↑7 and ↓-1+8
Comments4

Автоматизируем контроль качества микрофронтов

Level of difficultyMedium
Reading time8 min
Views1.1K

Привет, Хабр! Меня зовут Миша Трифонов, я head of frontend в компании Cloud.ru и основатель сообщества TeamSnack. Поделюсь опытом, кейсами, решениями за 3,5 года работы в направлении микрофронтов.

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

Читать далее
Total votes 5: ↑4.5 and ↓0.5+4
Comments1

Как в МТС запускали уникальный b2b-сервис и почему нельзя сразу построить ракету

Reading time9 min
Views990

Мы привыкли к доставке всего: банковских карт, документов, техники, лекарств и продуктов. В этом смысле к b2c-сервису уже почти не осталось вопросов, но в b2b есть ещё много всего неповоротливого.

Мы в команде Личного кабинета МТС Бизнес первыми среди сотовых операторов запустили онлайн-подключение и доставку SIM-карт корпоративным клиентам, которую можно заказать самостоятельно. Рассказываем, как мы это сделали.

Читать далее
Total votes 5: ↑6.5 and ↓-1.5+8
Comments1

Правила деления: как трансформировать ИТ-команды для повышения их эффективности

Level of difficultyMedium
Reading time8 min
Views1.5K

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

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

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

Читать далее
Total votes 14: ↑13.5 and ↓0.5+13
Comments0
1
23 ...

Information

Rating
Does not participate
Registered
Activity