Pull to refresh
0
0
Андрей Шишкин @compilator

Senior software engineer

Send message

Микросервисы, Apache Kafka и Domain-Driven Design

Reading time10 min
Views25K

Почему Apache Kafka стала стандартом и основой архитектуры микросервисов. Как Kafka не только заменяет другое промежуточное ПО, но и позволяет создавать сами микросервисы с помощью DDD и нативных API Kafka: Kafka Streams, ksqlDB и Kafka Connect.

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

Как подружить Java и C++. Часть первая

Reading time5 min
Views100K
Здравствуйте.

Как вы, наверное, уже догадались, речь пойдет о JNI. Для тех, кто не знает что это, объясняю: JNI (или java native interface) — это такая штука, которая позволяет делать вызовы нативного кода из java машины и наоборот.

Зачем это может потребоваться? Есть несколько причин: необходимость использовать код, который уже написан для нативной платформы, необходимость реализовать что-то такое, что невозможно сделать с помощью одной JVM (например, работа с какими-нибудь специфическими железками), ну и ускорение выполнения критических кусков кода (правда, это весьма спорный момент).

Так как же им пользоваться?
Total votes 41: ↑39 and ↓2+37
Comments53

Коллекции в Java: о чём многие забывают

Reading time6 min
Views141K
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.

Содержание:


  1. List.subList
  2. PriorityQueue
  3. EnumSet и EnumMap
  4. Set.add(E) и Set.remove(E) возвращают булево значение
  5. Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
  6. Map.keySet() и Map.values()
  7. Arrays.asList может быть ключом
  8. Collections.max
  9. LinkedList, Stack, Vector, Hashtable
Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments37

Software versioning

Reading time10 min
Views57K

Методология изменения версий продукта программного обеспечения


   Software versioning — это процесс создания уникальных имен или номеров для различных версий продуктов программного обеспечения.

   При имеющейся категории номера версии (главная, второстепенная), номера обычно выставляются в возрастающем порядке и соответствуют новым разработкам в программном обеспечении. На начальном уровне отслеживанием постепенно появляющихся версий электронной информации занимается система управления версиями, позволяющая хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определяя, кто и когда сделал то или иное изменение и многое другое. Вместе с тем для отслеживания изменений программного обеспечения было создано большое количество схем присвоения номеров версиям.
Читать дальше →
Total votes 91: ↑76 and ↓15+61
Comments18

Рабочий стол в облаке

Reading time9 min
Views35K

В каком случае необходимо отдать предпочтение тому или иному решению для организации «виртуальных рабочих столов» и как найти условия оптимальные для их работы?



Рабочий стол в облаке - Inoventica Services


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


Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments30

Мастер-класс Бориса Вольфсона. Основы Agile

Reading time25 min
Views108K
image

Этот пост написан по мотивам мастер-класса Бориса Вольфсона (директора по развитию HeadHunter), посвященного (сюрприз!) основам Agile. Материал будет полезен всем, кто либо совсем не знаком с данной методологией разработки сложного ПО, либо имеет о ней смутное представление.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments13

Netcracker приветствует Хабрахабр

Reading time1 min
Views43K


Давай знакомиться! Мы – Netcracker.

У нас:
• Более 6 тысяч программистов, инженеров, аналитиков, тестировщиков, прочих айтишников и не только.
• Сотня крупных и очень крупных внедрений в таких компаниях как AT&T, France Telecom, Deutsche Telecom, DHL.
• Портфолио из нескольких десятков продуктов, начиная от eCommerce порталов для абонентов и CRM систем для сотрудников Call-центров, заканчивая мобильными приложениями для сетевых инженеров, в полях разворачивающих сетевую инфраструктуру.

И тем не менее, о компании Netcracker и ее продуктах мало кто знает.
Почему так происходит
Total votes 60: ↑35 and ↓25+10
Comments51

Функциональное программирование для всех

Reading time33 min
Views351K

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Total votes 188: ↑181 and ↓7+174
Comments151

Information

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