Монолитный микросервис или микросервисный монолит? Странный народец эти самые Архитекторы ИТ, ну или молодая часть. Как только разговор уходит в сторону наследуемых систем, у молодняка начинается истерика и плевания в сторону пенсионеров. Мол все надо по аджилу и через микросевисы, и тогда во вселеной будет счастье. Ладно, а как мне передать через микросервисы по RDP запрос в Excel? ВСЕ СЛОМАТЬ и ВЫ идиоты*!-обычный ответ младоархитекторов (те кто себя узнал - обижайтесь). Очень радуют решения по замене корпоративной Active Directory. Все сломать, и вы идиоты! Оказывается, база данных постгре справиться легко и непринуждённо с 18 млн записями номенклатуры. Правда миграция будет стоить 18 млрд , а что вы хотели у вас старая система. Правда никто не умеет писать LDAP запросы, но это не проблема младоархитекторов. А как вам решение по передаче HEIC фото с использованием restApi. Младоархитекторы все пользуются яблочной техникой, иначе они не архитекторы, но не видели формат HEIC и размер изображения в этом формате не отслеживают. Конечно же JSON и gPRC решат наши проблемы с обработкой этих изображений. И главное. Все сломать, и вы идиоты! К чему я все это? В последнее время стоимость на ИТ архитекторов резко выросла. Чем моложе архитектор, тем больше уверенности, что переползти с наследуемых протоколов мы не сможем, просто потому, что в лексиконе младоархитектора нет слов: сокеты, файловый обмен, LDAP, QEMU и др. Вероятно, мы действительно должны отказаться от наследуемых систем и стать докеризорованными, кафканосящими, мелкосервисными ИТ архитекторами. *литературное, мягко скрашенное, завуалированное обращение к ИТ архитекторам, взращённых на принципах марксизма -ленинизма.
За сценой жизни
7
подписчиков
Вопросы на которые никто не хочет отвечать.
Хранимые процедуры и почему их не используют «специалисты»?
В вашей практике, наверное, встречались ситуации, когда корпоративные данные хранятся в базе данных. Если вдруг используемая база данных не гаражная поделка, то в ней скорее всего есть возможность писать хранимые процедуры. И управлять этим хранимыми процедурами. Не буду вдаваться в детали работы и хранения данных с использованием хранимых процедур отмечу другие плюсы. Если вдруг ваш запрос к базе данных содержит больше 100 символов, то использование конструкции хранимой процедуры прячет от разработчика содержимое запроса. Создание запроса можно доверить настоящему специалисту по SQL. Т.е. обращение...
Java enum лучший одиночка из всех одиночек
В java класс является отражение данных требующих обработки. В большинстве проектов типов данных значительно меньше чем классов в приложении. Это вызвано тем что разработчики создают еще и вспомогательные утилитарные классы, ведущие обработку классов-данных. А оно нам надо? Конечно же все подходы имеют и свои плюсы, и свои минусы, и все-таки не просто так разработчики из OracLe добавили специальный класс Enum способный самостоятельно выполнять обработку данных. В чем плюс Enum ? Конечное же в его уникальной идентичности...
Сколько ядер?
По умолчанию, наша jvm использует ForkJoinPool , тот в свою очередь использует все процессорное ядра доступные на конкретной машине. А оно нам надо ? Ведь кроме сборщика мусора есть и другие потоки требующие отдельных процессорных ядер например, вдруг есть какой-нибудь «слушатель» сокета или файловой системы . Соответственно количество процессорных ядер надо бы ограничить для ForkJoinPool, и сделать это можно использовав системное свойство : Java...
Spring и хлам
Spring в момент загрузки подгружает больше 20000 классов. А оно вам надо? «Разогрев» JDK + Spring занимает на порядок больше времени ,чем обычный JDK ( а учитывая ,что на территории РФ - никто не создает свои версии JDK, да да я про модульную сборку JDK для конкретных целей), и теперь борьба за производительность, ради которой используют Spring и прочий хлам, становиться безрезультатной. Короче, если приложение использует Spring создайте свою версию JDK, содержащую только и только необходимые модули...
Мы крутые перцы, Мы используем Java 20+!
Lover lover = new Lover (int idLover, BigDecimal costPerHour, String pogonyalovo ); Alien alien = new Alien (int idAlien, BigDecimal distanceToTarget, String pogonyalovo); Каждый из вышеуказанных классов кроме сеттеров и геттеров содержит переопределенные методы equal() и hashCode(), и даже toString(). ….. Крутые перцы, почему Вы не используете record? В таком случае...
Почему многопоточный пакет JDK называется конкуретным?
Java –разработчика хлебом не корми дай написать многопоточное приложение. И он пишет в ожидании увеличения производительности приложения. Написав приложение, запустив множество потоков ExecutorService (ForkJoinPool настоящий разработчик не использует по двум причинам: FJP создан какими то людьми из Oracle и вторая причина FJP оттюнингован и работает великолепно), разработчик с удовольствием смотрит на свой многостраничный, плохо документированный, труднопонимаемый код в котором различные потоки делают тривиальные задачи. Вроде быстро. И получается странная картина: с одной стороны кастомное решение...
Без SOLID никуда или куда?
Дйствительно ли SOLID так нужен Java разработчику? Итак –«S» или Single Responsible принцип единственной ответственности. По-простому один класс с одним методом. Вроде бы хороший принцип. Но как быть с родовым классом Object содержащего уйму методов изменения? Сам класс Object может быть и переопределён и наследован и серилиализован и десериализован. Как тогда быть с «S» принципом? Или «О» принцип, тот которой Open Closed. Все бы хорошо, но дженирки и дженерики тут как то плохо вписываются. А ведь есть еще PECSпринцип для наших дженериков. А «L» в честь мадам Лисковой. Разве не сам Г. Шилдт писал...
Миграция в Java
99% современных java-программистов используют только синтаксис java и не используют технологию Java (C) - Jose Paumard. Devoxx 2024 Другими словами, миграция с одной версии JDK на другую проходит легко и гладко только если программист производит перетаскивание синтаксических конструкций. Копирует текст. Но каждая новая версия JDK содержит не только "новый синтаксический сахар", но и различные новшества и даже новые запрещения. Кроме различных улучшений самой JVM, оптимизации...
Классные задачки по Java от Naftalin.
Задача №1 1. List ints = new ArrayList(List.of(1, 2, 3, 5, 6)); 2. List sublist = ints.subList(0, 0); 3. System.out.println(sublist); 4. sublist.addAll(List.of(10, 11, 12)); 5. System.out.println(ints); Что будет напечатано в строке 5? Задача №2 1. String[] stringArray = { "one", "two", "three" }; 2. List stringList = Arrays.asList(stringArray); 3. int[] intArray = { 1, 2, 3 }; 4. List intList = Arrays.asList(intArray); 5. System.out.println(stringList.contains("one")); 6. System.out.println(intList.contains(1)); Что будет напечатано в строках 5 и 6? Задача №3 1. String []strings = {"one", "two", "three", null}; 2...
Кого надо слушать java-разработчику, ну кроме родителей?
1. Для того чтобы слушать надо выработать привычку слушать. 2. Не думаю что слушать про java на русском хорошая идея, половина слов и так на английском 3. Даже на английском не рекомендуется слушать братьев из Индии 4. Про коллекции и дженерики José Paumard 5. Про «лучшие практики» Stephen Colebourne 6. Про устройство JVM Alex Shipilev 7...
Docker’изация java приложений.
Большинство Java разработчиков размещают java приложение в виртуальных средах, таких как Docker. Плохо это или хорошо зависит от приложения созданного java разработчиком. В основном, разработчики или девопсы даже не задумываются о настройке Docker, операционной системы и jvm. Написал один раз yaml и дальше пайпланишь в автоматическом режиме. Вот пример. Один из проектов, попавших на переработку, потому что был очень медленный в промышленной эксплуатации, а на машинах разработчиков естественно «летал». Каждый разработчик считал обязательным создать в своей части кода многопоточную реализацию класса ForkJoinPool...