Search
Write a publication
Pull to refresh
12
7
Alexander Kardapolov @akardapolov

User

Send message

Финальные классы в PHP, Java и других языках

Reading time3 min
Views8.7K
Использовать финальные классы или не использовать финальные классы? Вот в чём вопрос. А ещё в том, когда и как это делать правильно.


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

Rebase Flow. Способ приготовления и его поддержка в GitHub, GitLab, BitBucket

Reading time7 min
Views44K

Немного истории


В самом начале 2010 года Vincent Driessen пишет отличную статью A successful Git branching model. Для понимания того, о чем пойдет речь дальше, со статьей нужно, конечно же, познакомиться. А для тех, кому сложен язык оригинальной статьи, на хабре есть её отличный перевод.


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



Git


Кажется, что модель идеальна. Быть может так оно и есть, если у вас небольшая команда, неизменяемый скоуп релизов, высокая культура работы с VCS. Тогда, действительно, GitFlow может и удовлетворит все ваши потребности. Но, к сожалению, описанные условия подходят не всем командам и не всем проектам. К слову, найти статьи, в которых бы авторы описывали проблемы этой модели не так уж и просто даже в 2016 году. Но как мы все знаем, серебряной пули нет, а, значит, и в этой модели всё хорошо далеко не для всех.

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

Возможности SQLite, которые вы могли пропустить

Reading time8 min
Views44K
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Читать дальше →

Обработка исключений в контроллерах Spring

Reading time9 min
Views111K

image


Часто на практике возникает необходимость централизованной обработки исключений в рамках контроллера или даже всего приложения. В данной статье разберём основные возможности, которые предоставляет Spring Framework для решения этой задачи и на простых примерах посмотрим как всё работает. Кому интересна данная тема — добро пожаловать под кат!

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

Финансовое latency critical приложение на Java и Akka

Reading time19 min
Views7.6K

Всем привет! В своей статье я поделюсь опытом разработки одного из финансовых приложений на Java в ТехЦентре Дойче Банка, расскажу про стек технологий, который мы используем, и каких результатов достигаем

Читать далее

Все об OpenShift Egress. Часть 1

Reading time8 min
Views30K


Про управление входящим в OpenShift трафиком (оно же Ingress) написано много в документации и различных статьях по его настройке. Но, кроме контроля входящего в кластер трафика, в работе зачастую требуется контроль исходящего трафика (Egress). А на эту тему информации, систематизирующей подходы и технические решения, значительно меньше. Постараемся заполнить эту нишу серией постов.

Итак, в каких ситуациях нужен контроль исходящего из кластера трафика?
Читать дальше →

Apache Kafka как основа для велосипедостроения. Николай Сивко (okmeter.io)

Reading time22 min
Views9.6K


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


В своем докладе я расскажу о нашем опыте разработки и эксплуатации специализированной timeseries БД, в основе которой лежит Apache Kafka.

Представлен предварительный выпуск GIMP 3.0 — что нового?

Reading time3 min
Views12K

Разработчики графического редактора GIMP 3.0 представили версию 2.99.2, которая считается предварительной версией новой стабильной ветки GIMP 3.0. Среди основных нововведений — переход на GTK3, добавление штатной поддержки Wayland и HiDPI, переработка и оптимизация кода, добавление API для разработки новых плагинов. Появилась также возможность выделения нескольких слоев и добавлено кэширование отрисовки.

О подробностях нового выпуска — под катом.
Читать дальше →

Ценности DDD

Reading time10 min
Views38K
Основоположником DDD (Domain Driven Design, предметно-ориентированное проектирование) является Эрик Эванс, который в довольно далеком 2003 году подарил миру свою знаменитую книгу о предметно-ориентированном проектировании. Безусловно, не все, что описано в книге придумал автор с нуля. Многие идеи и практики существовали и до него, но у Эванса получилось все это систематизировать и правильно расставить акцента. Давайте попробуем разобраться, что же именно предлагает Эванс.
Читать дальше →

Краткий обзор системы Apache NlpCraft

Reading time7 min
Views2.6K
В данной статье я бы хотел познакомить читателей с одним из проектов Apache Software Foundation сообщества — NlpCraft. NlpCraft — библиотека с открытым исходным кодом, предназначенная для интеграции языкового интерфейса в пользовательские приложения.

Цель проекта — тотальное упрощение доступа к возможностям NLP (Natural Language Processing) разработчикам приложений. Основная идея системы — это уловить баланс между простотой вхождения в NLP проблематику и поддержкой широкого диапазона возможностей промышленной библиотеки. Задача проекта бескомпромиссна — простота без упрощения.

На момент версии 0.7.1 проект находится в стадии инкубации Apache сообщества и доступен по адресу https://nlpcraft.apache.org.
Читать дальше →

За что получает деньги наемный работник? Не понимаете? Сейчас поймете

Reading time4 min
Views152K
«За что я плачу тебе деньги?» — обычный вопрос работодателя работнику, причем саркастический, как правило.

«За что я тут корячусь на тебя?» — столь же обычный вопрос работника к работодателю.
Разобраться, за что же действительно работодатель платит деньги наемному работнику, поможет моя собственная теория, закодированная в десять букв – «ПЗП – ПЗС – ПЗПИ»

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

Мышление письмом

Reading time9 min
Views59K


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

Что же я получил после полугода использования мышления письмом?
Читать дальше →

Как Spring Data Jdbc определяет, что объект новый

Reading time4 min
Views13K
image

В этом посте мы рассмотрим, как Spring Data Jdbc при сохранении объекта понимает: новая сущность и надо выполнить insert или такая сущность в базе данных уже есть и надо выполнить update.

Пост рассчитан на начинающих программистов и не содержит каких-то супер хитрых вещей.

Уже 13 ноября в OTUS пройдет demo-урок курса «Разработчик на Spring Framework» по теме: «Метрики и актуатор». По ссылке вы сможете бесплатно зарегистрироваться на урок. А прямо сейчас хочу поделиться с вами своей авторской статьей.


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

Swagger/OpenAPI Specification как основа для ваших приёмочных тестов

Reading time17 min
Views76K

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


Я занимаюсь автоматизацией тестирования в Яндексе с 2013 года. Из них более четырёх лет автоматизирую тестирование REST API-сервисов. На Heisenbug я рассказал об использовании OpenAPI-спецификации как основы для приёмочных тестов, а также о том, как легко поддерживать автотесты на огромное количество REST API-сервисов и добавлять автотесты на новые проекты.



Под катом — видеозапись и расшифровка моего доклада. Примеры из доклада есть на GitHub.

Как говорить с сотрудниками. 7 аспектов, о которых забывают

Reading time7 min
Views33K
Говорить с сотрудниками — это, на самом деле, не о «говорить». И не о методе «активного слушания». Я вообще не люблю все эти искусственные «техники». И речь здесь будет идти не о техниках привлечения внимания, махания руками и положенной длительности зрительного контакта. Разговор с сотрудником — это намного шире, чем просто поговорить. И если на заре своей карьеры менеджера я это понимал слабо, то после более чем 10 лет управления осознал, что некоторые банальности совсем таковыми не являются.

image
И тогда пришло время остановиться и задуматься — какие ошибки люди допускают чаще всего. © Unsplash

Немного обо мне
Меня зовут Александр, и я руковожу уже больше 10 лет Департаментом Исследований, Разработки и Инноваций компании Qulix Systems.

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

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

Это моя первая статья — потому буду крайне рад комментариям и рекомендациям. Спасибо!
Читать дальше →

Прививки прошлого — что мы знаем о вакцинах?

Reading time17 min
Views11K

Вакцина, вакцины, прививки - сегодня это достаточно популярные слова. И как бы то ни было, являетесь ли вы их ярым противником или ярым сторонником, они с нами. Они часть нашей жизни, и это неизбежно. Ведь во многом самой нашей жизнью, в том виде, в котором она есть у нас сейчас, мы обязаны вакцинам и вакцинации. Что же это? Говоря научным языком, это биологический препарат, ответственный за появление у вас иммунитета к определенному заболеванию.

Как работает вакцина, понять не сложно. Препарат, который вам вводят, содержит агент, который напоминает вызывающий заболевание микроорганизм. Как правило, его производят из ослабленных или убитых форм патогена, от которого вас иммунизируют. Иногда это не сам патоген, а препарат из его токсинов или «выжимка» одного из его поверхностных белков - какой-то кусочек (антиген), который ваша иммунная система сможет запомнить и подготовить набор оружия (антитела) для отражения его атаки, когда он появится снова. Если шаблон памяти есть, супостата узнают, начнется цикл производства оружия, системный поиск и уничтожение патогена, чтобы вы смогли оставаться здоровыми и невредимыми.

Но если всё так просто, спросите вы - куски бактерий или их белков безвредны и дают нам иммунитет - почему сегодня до сих пор нет вакцин от всего? А ещё лучше, одной вакцины, которая бы содержала в себе все убитые известные патогены и одним уколом делала нас неуязвимыми для микро вселенной? Давайте разберёмся.

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

Читать далее

Как я развивал аудирование с помощью интервального повторения. Мой опыт

Reading time6 min
Views15K
Всем привет. Весь прошлый год я развивал навык аудирования, используя интервальные повторения для более эффективного заучивания непонятых фраз. За это время концепция, которой я пользовался, постепенно эволюционировала, обросла методикой, софтом и подходом. Обо всем этом я и хочу рассказать общественности (т.к. всем заинтересованным друзьям я уже рассказал).


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

jsqry — лучше, чем jq

Reading time8 min
Views9.6K

В своей прошлой статье на Хабре я писал про библиотеку Jsqry, которая предоставляет простой и удобный язык запросов (DSL) к объектам JSON. С тех пор прошло много времени и библиотека тоже получила свое развитие. Отдельный повод для гордости — библиотека имеет 98% покрытие кода тестами. Однако в этой статье речь не совсем о ней.


Думаю, многие из вас знакомы с инструментом jq, который является практически стандартом де-факто для работы с JSON в командной строке и скриптах. Я тоже являлся её активным пользователем. Но меня все время беспокоила неоправданная сложность и неинтуитивность синтаксиса запросов этой утилиты. И не меня одного, вот лишь несколько цитат с hacker news:


I have been using jq for years and still can't get it to work quite how I would expect it to.

I have the same issue with jq. I need to use my google fu to figure out how to do anything more than a simple select.

I don't know what the term would be, mental model, but I just can't get jq to click. Mostly because i only need it every once in a while. It's frustrating for me because it seems quite powerful.

I know I might be a dissenting opinion here, but I can never wrap my head around jq. I can manage jq ., jq .foo and jq -r, but beyond that, the DSL is just opaque to me.

Let's just say it: jq is an amazing tool, but the DSL is just bad.

Yeah, I find jq similar to writing regexes: I always have to look up the syntax, only get it working after some confusion why my patterns aren't matching, then forget it all in a few days so have to relearn it again later.

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

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

Вдохновляющие портфолио Data Science

Reading time6 min
Views12K
image

Data Science — сложная область знания. Она в равной степени сочетает в себе математику и статистику, информатику и черную магию. С середины 2020 года Data Science быстро растет, многочисленные соискатели роятся над каждым объявлением о приеме на работу. Кроме того, бушующая пандемия, в дополнение ко всему, тянет вниз.

Старания в получении списка сертификатов об окончании курсов не продвинут вас далеко, если только у вас нет добросовестно заслуженных дипломов магистра или PhD (кандидата наук). Сертификаты массовых открытых онлайн-курсов, таких как на Coursera или eDx, хороши, но у меня нет свидетельств их большой значимости. Kaggle тоже уже не тот: его открытые соревнования — кладбище переобученных моделей, а настоящие соревнования выигрывают команды, с которыми трудно соревноваться, более того, такие соревнования в любом случае ограничены в смысле личного портфолио.

Выход всё же есть — делать собственные интересные проекты и из них собирать портфолио, которое выгодно представит вас. В данном материале представлены вдохновляющие примеры таких портфолио. Используйте их для улучшения вашего собственного портфолио Data Science, изучения новых навыков или чтобы открыть для себя интересные проекты.
Приятного чтения!

Мониторинг БД Oracle с помощью OEM

Reading time10 min
Views38K
image

Привет! Меня зовут Александра, я работаю в команде тестирования производительности. В этой статье расскажу базовые сведения об OEM от Oracle. Статья будет полезна для тех, кто только знакомится с платформой, но и не только для них. Основная цель статьи — помочь провести быстрый анализ производительности БД и поиск отправных точек для более глубокого анализа.
OEM (Oracle Enterprise Manager) — платформа для управления БД. OEM предоставляет графический интерфейс для выполнения большого количества операций с базами данных: резервное копирование, просмотр аварийных журналов, графиков производительности.
Читать дальше →

Information

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