и проинициализировал объект?
Ну например у людей меняется возраст
incrementAge(); в классе прописать?)
то есть сет метод сделать? XD
vasya.incAge(); vs vasya.setAge(vasya.getAge() + 1); Есть разница по-моему)))
А теперь у него поменялся не возраст, а вес.
Ты мыслишь правильно, именнованные методы лучше чем анемичные геттеры и сеттеры, но в джаве так не принято. Обычно именнованные методы лежат отдельно в каких-нибудь “сервисах”, которые уже используют объект как структурку с геттерами и сеттерами
а смысловая разница в чем. Суть set метода, что ты устанавливашеь значение поля. Называться он может хоть pieceOfSheetMethod, но по соглашению называть их принято setFieldName()
У анемичной модели есть свои плюсы
Разве что только простота создания. Не надо думать
Инкремент метод может просто сделать новый объект с новым значением, вместо того, чтобы мутировать старый
Если я делаю приложение для контроля веса пользователя, там скорее всего будет decrease/increase? Однако даже если я решусь сделать сеттер , то в нём уже будет какая-никакая логика (нельзя поставить вес меньше 0, условно), что уже в целом ок У меня скорее вопрос про "классические гет/сет" которые генерируются той же IDE или библиотеками lombok
Локализация ответственности, отделение данных от логики.
А в чём тогда отличие от структурного программирования, кроме синтаксиса?)
Уточни что такое “Локализация ответственности”. отделение данных от логики - в чем преимущество?
Ни в чем. В джаве большинство структурно и прогают. А что такое ООП это холивар вообще
В том, что поддерживать это проще
А зачем я тогда перехожу с Си и читаю книжки по ООП?)))
Это точно, достаточно вспомнить жопоподрывающий видос с канала экстримкод, где основные парадигмы варьируются от 3 до бесконечности. Далеко ходить не надо, 10 лет назад все говорили только об инкапсуляции, наследовании и полиморфизме. А сейчас уже приплели абстракцию и прочее)
Так как раз наоборот. У тебя инварианты данных разбросаны по разным местам, что ведет к ошибкам. Тот кто меняет или добавляет инвариант - должен учитывать другие инварианты с этими же данными, а они лежат хрен знает где
Лучше изучай Java SE и в сторону spring смотри)
Да холивар это про совсем дебри какие то , практикой набить основные шишки довольно просто и не задумываться об ИСТИННОМ ООП
Джава вообще сомнительный выбор в 2021
Котлин?
Потому что у джавы и жвм куча других преимуществ)
А черт тебя знает. Оставайся на C, он же велик и могуч
Да не только. Сейчас в моде смесь функционального подхода, с реализацией трейтов. Скала, TS, Rust вот это всё
Скала))
Ну это ж скорее экзотика , кроме ТС. А тут классика "нестареющая"
Про скала видел только отказ, Раст вообще в JIT не катируется
Смысл в том, что сейчас без многопоточки никуда. А многопоточку без боли можно писать только с иммутабельными объектами
Но многопоточка то ведь тоже специфичный кейс для большинства. Все сидят тут на спрингбуте и кладут на синхронайзы , кеши и вот это вот все довольно долгое время
Ну хз, Финтех на ней живет спокойно и очень здорово
Хотя ты и не говорил про обучение , так что с позиции выбора да
Да нифига не специфичный. У тебя в современном мире все машины многоядерные.
А на чём писать надо?
За что тебе готовы платить, очевидно
Стикер
Ну а часто ли рядовому кодеру приходится в потоки лезть?
Меня в джаве больше бесит отсутсвие нормальной и понятной как в шарпах асинхронности. Либо я тупой, либо ничего на этот счёт нет или слишком сложна
Вопрос зависит от проекта, а не от "рядового кодера", мне кажется
За год коммерческого ни разу 😅
Да ну камон, сейчас не 2010. Многопоточка это не про страшные wait - notify
Асинхронность это больше про питоны/жсы всякие не?
А. Она вам реально нужна не для поиграться?
А что тебя смущает? В шарпах асинк это стейт машина под капотом, в джаве у тебя стримы, екзекьюторы и спринг
Ну тут да , мы за рпзные вещи начали. Если речь о проекте , согласен. Если об обучении , не знаю не знаю
Ну параллелят задачи часто
Например?
Реактивные стримы. Project reactor например
Ну я хочу запустить отдельно метод не блокируя программу, чтобы он в бесконечном цикле крутился сам с собой и что-то делал. await Task.Run(method()) и погнали. А в джаве как?
executorservice, обращайся
То же самое только без await
Ну ещё надо будет отнпслндоапться от Runnable разве что
ну хз
Какое наследование, лямбды кому завозили
Запишу пожалуй, спасибо
Ну или так
https://www.baeldung.com/java-future https://www.baeldung.com/java-completablefuture
А это подобие колбэков
В completable future не обязательно колбеки пихать, его ради этого и создавали
Все же хорошо бы уточнить: Выбор для изучения / Выбор для реализации (чего-либо)
Для обоих вещей. Для обучения самый простой вариант это пайтон и js
Да и кучу всего примешать можно - и решает человек в комплексе
да java тоже не сильно сложная
Я на самом деле хотел бы, чтобы ни эти языки, ни джава не были у человека первым
Ага, с багажом сомнительных архитектурных решений и поддержкой 20 летних версий
Да я тоже думаю, что haskell идеальный вариант
Ну если касаемо обучения я считаю что брать экзотику как первый язык конечно плохая идея, ну и первый язык так или иначе хард. А вот для проектов вполне нормально наверно , тут я не такой пробитый
У нас в школе был Бейсик, но я ничего не понял и забил. Просто копипейст. А в универе шарп показали и мне зашло, но не долго. Спустя 8 лет вспомнил что что-то писал и вот я в джаве 🌚
Я скорее подумал бы, например, о подмножестве Котлина, скалы, притом не привязываясь к рантайму
Хз, как по мне начинающему надо брать js, который не обременен рамками парадигм. Что пишешь, то и получаешь. Потому что сначала надо фундаментальные знания себе в голову вложить, а потом уже бороться с языком. Потом уже просто берёшь один язык с ручным управлением памятью и один язык с gc. Но это идеальный мир, конечно
У жс свои очень странные грабли везде вокруг раскиданы, которые без кругозора кмк немного ломают восприятие
Динамическую типизацию новичку давать это бред имхо
>имхо
Ну и что ты предложишь фронту? С тс начать?
Фронту предложу бекенд)))
+++
А вообще Зависит опять же от целей человека. Новичок зачастую вообще не определился, чего он хочет, следственно советовать могу только пробовать разные языки и области разработки)
А почему нет?
Давайте свернем это в @flood
Обсуждают сегодня