Задать вопрос
  • Для чего используются геттеры и сеттеры в Java?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Нет никакого смысла, если нормально программировать и строить простой удобный код. Этакий способ формально соблюсти инкапсуляцию и сокрытие данных: состояние приватное? Приватное :)

    Чреваты тем, что плодят высокую связанность в коде, состояние и управляется снаружи (на основе геттеров) и контролируются инварианты где угодно и как угодно. По сути превращаем сущности в структуры, но тк это все же бизнес-объекты, а знания бизнес-состояния нужно — то они гуляют по всему проекту и ничем не ограничены... заплетая и заплетая код снова и снова, а также погружая в эти «сущности» все больше и больше знаний...
    Доходит до того, что через заказ можно достать товар, через товар можно достать поставщика, через поставщика пользователя с данными аутентификации... и все работает со всем... плодя кучу сервисов и взрывая мозг...

    По вопросу

    Нужны только бля быстрых CRUD и для совместимости с кучей библиотек. А также говнокодерам «использовать данные в сервисах»

    Сеттеры и геттеры нужны для разных манипуляций: валидация, костыльного маппинга, сериализации и десерриализации.

    Хорошими и современной практикой сейчас является — не использование и геттеров и сеттеров...

    Литература:
    https://martinfowler.com/bliki/TellDontAsk.html
    https://www.martinfowler.com/bliki/AnemicDomainMod...
    Закон Деметры

    Мои изыскания:
    Зачем (не)нужны геттеры?
    Геттеры/сеттеры и проблема с инкапсуляцией (примеры на Symfony, аналог Spring в php с аналогичной плохой практикой)
    Ответ написан
    3 комментария
  • Для чего используются геттеры и сеттеры в Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Вопрос, кстати, очень даже не глупый.
    Вы абсолютно правильно заметили насчет нарушения инкапсуляции гетерами и сеттерами, но никто же не заставляет вас их писать. Если вы считаете, что объет должен быть иммутабельным - устанавливаете все поля final и инициализируете их только через конструктор. Насчет геттеров - тоже, в зависимости от бизнес-логики, не всегда они нужны.
    По этой теме почитайте литературу про ООП (например "Объектно ориентированный подход" Вайсфельда).
    И еще, например, Егор Бугаенко по этой теме имеет мнение (относиться к нему стоит со здоровым скептицизмом).
    https://www.youtube.com/watch?v=lfdAwl3-X_c&t
    Ответ написан
    4 комментария
  • Как добавить сниппет звездочек в поисковую выдачу гугл?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Вам нужно использовать свойство микроразметки AggregateRating в сниппете. Чтобы рейтинг отобразился в поисковой выдаче нужно предоставить возможность для голосования или сослаться на источник отзывов.
    Ответ написан
    6 комментариев
  • Что означает двоеточие после аргументов в функции в с++?

    @galaxy
    Это не просто функция, а конструктор со списком инициализации. Смысл - члены класса инициализируются параметрами по указанным правилам
    Ответ написан
    1 комментарий
  • Python для системного администратора, сколько?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Можно вообще не знать. Хуже от знания конечно не будет - пригодится много где, сейчас многие вещи расширяются на питоне, но если вообще не знать - от этого хуже не станет. Админу - админово.
    А про роадмап для админа тут сто тыщ вопросов было.

    Спойлер: Умение искать и находить ответы на вопросы - это одно из самых важных умений админа :)
    Ответ написан
    Комментировать
  • Python для системного администратора, сколько?

    @q2digger
    никого не трогаю, починяю примус
    Знание python будет огромным плюсом, особенно если двигаться в сторону DevOps . Многие инструменты для DevOps либо написаны с использованием python , либо могут расширяться модулями написанными на python ну и вообще - знаний мало не бывает и python - это хорошее и полезное знание.
    Ответ написан
    Комментировать
  • Какие классы должны быть в тестовом задании на CRUD новостей?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Должны быть классы, показывающие ваши знания ООП и способность задание выполнить.
    Ответ написан
    3 комментария
  • Неправильный сбор ноутбука или руки крюки?

    Отдайте в сервис. Как надоели уже умельцы, которые чуть ли не ножницами лезут разбирать ноутбук. Ну хоть бы набор отвёрток купили подходящих. Если не подходит, даже чуть-чуть - не надо пытаться откручивать. Иначе придётся потом мучиться с откручиванием. Ну и откручивать надо равномерно, нельзя открутить все винты на системе охлаждения, а один даже не стронуть -перекос радиатора легко сколет кристалл чипа (процессора, видео и чего угодно).
    Ответ написан
    8 комментариев
  • Можете помочь с настройкой webpack?

    У вас вот эта регулярка test: /\.s[as]ss$/i никогда не сработает на scss
    Ответ написан
    Комментировать
  • Как доказывать логические формулы?

    @Filipp42
    Можно привести в дизъюнктивную нормальную форму и сравнить, можно сравнить таблицы истинности, или преобразовать одно в другое.
    Ответ написан
    1 комментарий
  • Стоит ли ставить в Windows 10 антивирус?

    SagePtr
    @SagePtr
    Еда - это святое
    Если стандартный Защитник Windows не устраивает. Если устраивает - то зачем?
    Ответ написан
    1 комментарий
  • Как сделать сервер на смартфоне?

    ky0
    @ky0 Куратор тега Системное администрирование
    Миллиардер, филантроп, патологический лгун
    Всё зависит от от конкретной модели телефона. "Полноценный линукс" можно взгромоздить очень мало где и ещё меньше после этого будет способно полноценно работать. Ставьте термукс, в общем :)
    Ответ написан
    Комментировать
  • Как в PHP mysqli_query использовать переменные?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    "CREATE TABLE {$game_name} (
    game_id INT(11) DEFAULT {$output['id']},
    ...

    Но вообще, создавать под каждую игру отдельную таблицу - это крайне извратная архитектура базы данных. Учитывая ваш предыдущий вопрос, вам нужна одна единственная таблица achievements, записи в которой будут связана с играми по полю game_id.
    Ответ написан
    3 комментария
  • Как добраться до phpmyadmin?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    1. cron настраивается из командной строки сервера, доступной через ssh.

    2. Для доступа к MySQL (раз разговор про phpMyAdmin) достаточно использовать программу администрирования БД, поддерживающую подключение через ssh-тоннень - например, dBeaver: https://dbeaver.com/docs/wiki/Create-Connection/. И это будет многократно удобнее, чем phpMyAdmin.
    Ответ написан
    Комментировать
  • Core i7-10700F греется до 98 градусов с Dark Rock 4. Разве это нормально?

    @gscdlr
    Человек?
    Вдруг поможет, расскажу о 10400ф. Это то же самое, только на два ядра меньше и кэша на 4мб меньше. На частоте 4,1 ГГц, если верить аиде, его мощность около 100 Вт. С пастой мх4 и погнутым кулером zalman cnps10x optima греется около 70 градусов по самому горячему ядру в стресс-тесте той же аиды. По официальным спекам у 10700f те же 65 Вт, что у 10400ф, значит на максимальной частоте по всем ядрам у 10700ф должно быть 100-140 вт.
    Температуры больше 80 быть никак не должно. Наверное, стоит проверить монтаж кулера. Может какая-нибудь плёночка осталась на теплосъемнике кулера. Или не плотный неравномерный контакт. Стоит по биосу полазить, напругу снизить. Убрать всякие профили производительности. Если есть пресеты профилей питания, поставить послабее что-нибудь. Power limits поставить штатные.
    Ответ написан
    Комментировать
  • Можно ли заработать C++ программисту в 2021?

    Adamos
    @Adamos
    Чтобы заработать, нужно начинать не с "я почитал книжку и выучил операторы", а "я могу написать программу/сайт, которые могут...". Работу для джуна на Крестах - так, чтобы вам разжевали, что делать, а потом еще за это заплатили - вы вряд ли найдете.
    Но если самостоятельно сможете решить нужную кому-то задачу (например, написать программу-клиента к API, который возьмет нужные данные и сделает нужные вещи - поняв, что заказ, написанный совсем другими словами, можно воплотить именно так) - то на фрилансе ни возраст, ни образование не спрашивают. Зарабатывай, если можешь.

    Но вообще, выбирать для быстрого заработка Кресты - это примерно как пойти в музыкалку, чтобы подработать лабухом.
    Ответ написан
    Комментировать
  • Можно ли заработать C++ программисту в 2021?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    И хочется слезть с родительской шеи побыстрее)

    С родительской шеи слазят тогда, когда знают как заработать. Взрослый - это не количество лет, а самостоятельность.

    Никому не нужен "подработчик на С++", но ты можешь делать лабы по С++ (или по математике или по еще чему-нибудь) в своей школе/институте и там подработать.
    А с 18-ти можешь попробовать трудоустроиться, для чего уже сейчас можешь пошерстить вакансии в своем городе и учить то, что в них указано.
    Ответ написан
    Комментировать
  • Можно ли сделать 3д игру под андроид без движков если да - то как?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Конечно можно.
    Достаточно изучить математику трёхмерной графики - координаты, проекции... Хорошо понимать и разбираться в вычислительной геометрии - пересечение линий, полигонов, уметь триангулировать как выпуклые, так и невыпуклые полигоны, понимать трассировку лучей и прочее...
    Я в студенческие годы увлекался этим и вполне успешно. С нуля писал трёхмерные игры без каких-либо движков.
    Это даёт огроменные скиллы как в математике, так и в программировании.
    Ты на верном пути.
    Почитай вот это:
    "Ласло М. Вычислительная геометрия и компьютерная графика на С++"
    "Иванов В.П., Батраков А.С. Трехмерная компьютерная графика".
    Книги старые, но в этом есть их плюс - они не привязаны ни к ЯП, ни к библиотекам и фреймворка. Только основы, самая суть.
    Написано очень простым и понятным языком.
    Освоив это, тебе по зубам будут не только всякие там OpenGL, DirectX, Vulkan, но даже сам сможешь написать свою библиотеку.
    Я на основе этих книг написал крутые трёхмерные приложения - как игры, так и рейтрейсер с CSG.

    На хабре есть цикл статей как всё это сделать
    https://habr.com/ru/post/248153/
    Ответ написан
  • Что за разъем и за что он отвечает?

    @tukreb
    Это доп. питания CPU, если слабый CPU, то ни каких проблем не будет, если не подключите. А если мощный CPU, то в бусте будет просто вырубать ваш комп.
    P.S только вроде atx12v1 обязателен для подключение, хотя бы в половину, в отличие от atx12v2, иначе мать просто не стартанёт, а если стартанёт, то вырубится от любой нагрузки на ЦПУ.
    Ответ написан
    7 комментариев
  • Возможно ли сократить данный цикл?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    using namespace std;
    for(const auto& i:vec_s)
    {
        cout << i << '\n'; //выводим \n чтобы не сбрасывать буфер терминала на каждой строке
    }
    cout << flush;
    Ответ написан
    Комментировать