Сообщество - Лига программистов
Добавить пост

Лига программистов

1 503 поста 11 378 подписчиков

Популярные теги в сообществе:

А программисты тут есть?

Что могу предложить: запилить ряд статей на продвинутые темы (Scala3, ФП, дизайн приложений и систем)

Что хотел бы получить: адекватные комментарии

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

Императивный и декларативный код

Всем привет, работаю java разработчиком 10 лет, хотел бы показать разницу между императивным и декларативным подходом на примере синтетической задачи по обработке списка чисел.

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

Задан список чисел, на примере:

List<Integer> input = List.of(1, 2, 3, 4, 5);

Нужно найти сумму квадратов чётных чисел - значений элементов массива. Чётные числа это такие числа, которые делятся нацело на 2, то есть остаток от деления числа на два равен нулю. Чётные числа здесь 2 и 4. Их квадраты это 4 и 16. Искомая сумма 4 + 16 = 20.

Чтобы записать алгоритм в императивном подходе, потребуется объявить переменную-аккумулятор, которая будет содержать сумму, её начальное значение будет 0. Далее пройтись по всем элементам списка, для четных их них посчитать квадрат, и добавить его к текущему значению суммы:

int sumEven = 0;

for (Integer x : input) { //пройти по всем элементам

__ if (x % 2 == 0) { //для четных

____ sumEven += x * x; //посчитать квадрат и добавить к сумме

__ }

}

assertEquals(sumEven, 20);

Декларативный подход можно показать на примере использования апи java.util.stream. Последовательно указываются инструкции для фильтрации, преобразования и аккумуляции результата:

int sumEven = input.stream()
__ .filter(x -> x % 2 == 0)
__ .map(x -> x * x)
__ .reduce(0, Integer::sum);
assertEquals(sumEven, 20);

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

Показать полностью

Почему так?

Почему при компиляции java кода через командную строку пропадает кириллица, а при intellij idea нет?

Скомпилировал при помощи команды через командную строку, запускаю. Нет кириллицы.

Почему так? Программирование, Java, Вопрос

Запускаю скомпилированный код через intellij idea, есть кириллица.

Почему так? Программирование, Java, Вопрос

Кто-нибудь знает?

Показать полностью 1

Что надо успеть за выходные

Выспаться, провести генеральную уборку, посмотреть все новые сериалы и позаниматься спортом. Потом расстроиться, что время прошло зря. Есть альтернатива: сесть за руль и махнуть в путешествие. Как минимум, его вы всегда будете вспоминать с улыбкой. Собрали несколько нестандартных маршрутов.

ПОЕХАЛИ

Продолжение поста «Продолжение поста "Java или JavaScript?"»

Да вы задолбали. Буду дальше учить жабу, нахер жаба скрипт.

Всё, это моё окончательное решение.

Продолжение поста «Java или JavaScript?»

Раз разницы особой нету, то начну пожалуй с свой путь в программировании с жаба скрипта. Посмотрел на Хабре, hh.ru, на жаба скрипте больше вакансий, наверное будет легче найти работу.

Java или JavaScript?

Я тут немного поизучал джаву и задумался. А JavaScript легче? Что лучше подойдёт новичку? Мне продолжать учить джаву (я совсем немного изучил) или лучше переключиться на JavaScript?

В дальнейшем я планирую изучать и джаву и джаваскрипт. Нет никакой разницы с чего начинать?

Docker это хорошо, если

Если умеешь его готовить

Вот в плане написания приложений - без проблем, хоть пикабу напишу.

Думал срезать углы для своих проектов, развернул сервер под убунтой в облаке, все хорошо, поставил докер, простит бог, portainer, nginx proxy manager (в докере), надеплоил туда руками контейнеров с приложениями и базами в контейнерах…и своими нжинксами для приложений…

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

В общем, не делайте так)

"Чистый код" замедляет работу приложений в 20 раз

В продолжении темы про НЕэффективность программного кода.

Вопрос на самом деле очень острый. Код, это не просто код. Это в т.ч. затраты на ИТ-инфраструктуру. Интересно было бы посчитать сколько миллиардов угробили ИТ-гиганты на поддержку подобных стандартов...

Показать полностью
Отличная работа, все прочитано!