-
Про архитектуру
Решил написать еще одну заметку про проектирование. Меня периодически спрашивают, как привести в порядок проект или как выстроить в нем архитектуру. Как правило программисты интересуются больше техническими вопросами (про дизайн, архитектуру, стек технологий), а менеджмент как найти нормального архитектора. Есть такая книга “Thinking, Fast and Slow”. На русский язык название почему-то перевели как “Думай медленно……
-
Запечатывание в Java.
Наконец-то нашел время дописать статью в блоге, которая давно уже в черновиках лежит…. Итак, про запечатанные классы и немного про алгебраические типы данных. Запечатанные классы определяются с помощью ключевого слова sealed. Это нужно, чтобы ограничить в наследовании. Потенциальных наследников в таком случае нужно указать явно, через запятую после permits. Например так: На самом деле, основной…
-
Про record
Появились в версии Java 14, но я предпочитаю использовать LTS версии, поэтому начал активно использовать только в Java 17. Не вижу смысла в очередной раз переписывать однотипные статьи из интернета с одними и тем же примерами record-ов вида “Hello World”. Здесь хотел поделиться своими впечатлениями после нескольких месяцев использования, когда и как их удобно использовать,…
-
Multi-map в Java 8
Мультикарта (multi-map) может пригодиться в реальной работе или на собеседовании. Почему-то в некоторых компаниях при приёме на работу любят давать алгоритмические задачки на её использование (лично я так не поступаю). По сути это обычная карта (Map) в которой значением является коллекция (List или Set). Сейчас в JCF (Java Collections Framework) нет готового класса для Multimap.…
-
Про настройку шрифтов в IDE (Netbeans) под Linux.
Какой самый лучший шрифт для программиста? Каждому своё. Одним нравятся округлые очертания, другому наоборот тонкие и острые. Поэтому выбор шрифта — дело вкуса, хотя конечно есть базовые требования. Самое главное и очевидное — шрифт должен быть моноширинным, т.е. все символы должны быть одной ширины. Это очень важно для того, чтобы сохранить структуру кода, т.к. иначе…
-
Про org.json парсер
С json парсерами в Java дела обстоят следующим образом. С одной стороны их существует несколько разновидностей, с другой стороны сложно сделать выбор. Хорошо когда только один критерий принятия решения, например скорость работы или размер библиотеки. Сложности начинаются тогда, когда нужно выбрать с учетом нескольких характеристик. В этой небольшой заметке я хотел бы кратко описать случаи,…
-
Установка и настройка Apache Tomcat под Linux
Причины. Замысел написать эту статью про установку и настройку, наверное, одного и самых популярных веб-серверов на Java возник уже давно. Одной из причин было желание сделать небольшую заметку “для себя” с подробной инструкцией. Возможно эта статья также пригодится другим java программистам. Пользы для кого-нибудь ещё, например для системных администраторов в ней будет не так много.…
-
Про Android TV.
Небольшая предыстория. Так получилось, что мы пишем приложение для Android TV. Вообще, обычно я занимаюсь тем, что в программисткой среде принято называть “суровым энтерпрайзом” — веб-службы, высокая нагрузка и прочие Java EE штуки. Тем не менее, иногда мы делаем проекты и под мобильные платформы. Как правило это заказная разработка, например мобильные приложения для внутренних нужд…
-
FWD: Just Say mNo to Hungarian Notation!
Не могу пройти мимо призыва Джейка Вартона – “Скажи mNo венгерской нотации!“. Во-первых (и это мое личное мнение), использовать такую нотацию в исходниках на Java действительно нелепо. Во-вторых, когда-то давно я grep-ом проходил исходники андроида (кажется 16-ый API Level) и там нотация не соблюдалась. Более того она была некорректной (статические поля с m-префиксом). Вартон молодец,…
-
Заметка об экспериментах со SnappyDB (NoSQL KeyValue DB под Android)
Небольшая заметка про SnappyDB. Это NoSQL база данных под Android, которая базируется на LevelDB и алгоритме сжатия Snappy. LevelDB – это key-value база данных. Написана Google-ом для каких-то своих мега проектов. Snappy – метод сжатия данных, сбалансированный на скорость (т.е. приоритет быстрота, а не степень сжатия). Также написана Google-ом. Авторы SnappyDB на своем блоге приводят…