Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Правильно ли я обучаю модель?

Лучший ответ:
Вы только примеры фрода отправили на обучение что ли, без примеров "не-фрода"? Надо и положительные, и отрицательные примеры отправлять для двухклассовой классификации. Объём данных желательно побольше, конечно, но и с небольшим объёмом корректных данных не должно быть таких результатов, как у вас.

Худший ответ:
Данных должно быть явно больше. 140 - это ни очем.
Как вариант, можно нагенерить данные.
Берем каждую строку, и меняем один параметр. Т.о. из одной строки можно нагенерить 10-20 новых.
Но это так - метод в лоб.
Вопрос: Как избавиться от просадок скорости интернета?

Лучший ответ:
Проблема была и правда в расширении, как и предположил Yan. Виновником оказался friGate3 proxy helper, хотя до этого работал как часы и включался только на определенных сайтах (не на тех, которые тупили). Теперь буду искать хорошую замену ему. Всем спасибо за участие!

Худший ответ:
На скриншотах видно только то, как проходили данные по сетевой карте ноутбука. Там не видно, как они должны были проходить. Такие графики вполне нормальны, например, при периодическом обмене небольшими объёмами данных.
Начните с тестирования пропускной скорости сети, например с помошью iperf. Потом проверьте загрузку большого файла с интернета.
Естественно, во время тестов прочая нагрузка на сеть и интернет должна быть минимизмрована, в идеале - убрана вообще.
Вопрос: К джанго подключают nginx?

Лучший ответ:
Django запускают на каком-либо WSGI-сервере, перед которым можно поставить Nginx.

Худший ответ:
в сраврени с нгинксом никто не самодостаточный, даже го
Вопрос: Mikrotik и vpn на разные сети?

Лучший ответ:
ip firewall mangle маркируете (mark routing) трафик гостевой подсети в цепочке prerouting, потом создаете маршрут 0.0.0.0/0 через шлюз провайдера и указываете в этом маршруте метку гостевой подсети. Ну или маркируете трафик локальной сети и отправляете пакеты с этой меткой в туннель, а немаркированный трафик - в шлюз по умолчанию, как вам больше нравится.

Худший ответ:
Погуглите на тему policy routing в mikrotik.
Вопрос: Какой выбрать ноутбук для бухгалтера?

Лучший ответ:
Ну, для бухгалтера... Любой, какой по цене устраивает)))

Худший ответ:
дык, с цифровым блоком)
Вопрос: Разработка клиент-серверного приложения для Android?

Лучший ответ:
хочу попробовать разработать клиент-серверное приложения для платформы Android
тогда вам не обязательно писать сервер, а можно просто взять готовое апи, например github
если же есть желание написать своей сервер, то начните с документации.
Серьезно просто напишите к нему доку, а только потом садитесь за реализацию.

Худший ответ:
Вот даст понимание хотя бы как это делается и сч его начать
так же там есть серия роликов о самом приложении, для которого сервер пилят
Вопрос: Как в element UI связать ползунок диапазона с 2м input полями?

Лучший ответ:
В живую не тестил, но должно быть как-то так<el-input v-model="catalogFilter.price[0]" />
<el-input v-model="catalogFilter.price[1]" />
<el-slider range v-model="catalogFilter.price"/>data(){
  return {
    сatalogFilter: {
      price: [ 12600, 123600]
    }
  }
}

Худший ответ:
Так?

UPD. Как победить тормоза при большом интервале значений. Можно работать с интервалом, который не будет вызывать тормозов - уменьшить границы в 100 раз, например. А в полях ввода показывать настоящие значения. Ну а то, что таким образом станет заведомо невозможной точная настройка значений посредством слайдера - так она в любом случае невозможна для больших интервалов. В общем, вот примерчик того, как это можно сделать.

UPD. В более поздних версиях рендеринг был переделан, больше никаких тормозов.
Вопрос: В чём разница в javascript ++ перед переменной или после?

Лучший ответ:
++count - увеличивает, затем использует.
count++ - использует, затем увеличивает.
Попробуйте в консоле браузера (по очереди)var count = 1;
count // 1
++count // 2
count++ // 2
count //3

Худший ответ:
Если написатьvar a = 0;
console.log(a++)
то в консоль сначала выведется переменная "а", то бишь "0", а потом произойдет операция инкрементирования(++).
А если написатьvar a = 0;
console.log(++a)
сначала произойдет операция инкрементирования, потом в консоль выведется переменная "а", равная "1"
Вопрос: Как быстрее получить высокий рейтинг на Upwork начиная с чистого аккаунта?

Лучший ответ:
Верно ли я предполагаю что 5 копеечных заказов от разных людей позволят быстрее набить рейтинг чем если бы я взял один большой заказ с более низкой часовой ставкой и делал бы его пару месяцев?
Верно.Но я не хочу тратить 2 года чтоб выполнить на upwork 5 заказов.
И не нужно. Это можно сделать за 2 недели, за месяц, за два.

Худший ответ:
может и верно. а может и нет -- upwork никому не расскрывает алгоритм расчёта jss. и так прямо и говорит прямым текстом.
не говоря уже о том, что может изменить его в любой момент.
Вопрос: Как написать монтирование диска на bash?

Лучший ответ:
необхожимо что бы на пример при выполнении sh он находил раздел ntfs и монтировал в каталог серез fstab
Прописываете в fstab правила монтирования с опцией noauto, а в конфиг типа .bashrc или .zshrc прописываете mount /mount/point (та же точка монтирования, что указана в fstab) и оно монтируется ровно так, как вы заранее описали.

Худший ответ:
echo 'Монтирование раздела фармата NTFS'
mkdir /home/$user/Desktop/data
UUID=`blkid -s UUID -o value -t  TYPE=ntfs`
echo 'UUID='$UUID' /home/'$user'/Desktop/data ntfs defaults 0 0'
Вопрос: Домашний сервер для 3D max, как сделать?

Лучший ответ:
Домашний сервер для 3D max
никак! у тебя домашняя розетка сгорит нахрен от такого сервера

Худший ответ:
Может вам следует пересмотреть свой вопрос, на более другое подходящее решение, например обзавестись банковской картой приобретя несколько тестовых гигагерц часов на какойто рендер ферме, списки которых легко гуглятся по запросам render farm list: https://rentrender.com/all-render-farms-list/
ощутите преимущество перед постоянными отключениями света и зависаниями компьютера при игре "в танки"
или вам выгоднее когда ваша мамка заплатит за электроэнергию и копоть "9999" машин в одной комнате, плюс ко всему вы наверное "бонусом" получаете отгулы в виде рендер тайма перед заказчиками?
Вопрос: Почему в bootstrap jquery-slim подключен через window.jQuery || document.write?

Лучший ответ:
Это fallback на случай, если из CDN jquery не загрузится.
Если window.jQuery будет undefined, то выполнится document.write

Худший ответ:
Это fallback на случай, если из CDN jquery не загрузится.
Если window.jQuery будет undefined, то выполнится document.write
Вопрос: Code style для Javascript?

Лучший ответ:
4 пробела - имитация табулятора. Поэтому я отделяю табуляторами и не мучаюсь. Получается меньше символов в коде, чем даже 2 пробела.

Худший ответ:
Когда делаешь пробелами, бывает косяк при открытии фала в разные IDE или редакторах. Например у меня когда открываю через Coda2, все плывет, если пробелами.
Вопрос: Как сделать так, чтобы при выборе в списке был виден другой список?

Лучший ответ:
По событию change для select надо показывать нужный. 
Можно фильтровать по значению option.
Как-то так:<select id="type">
    <option>Выбрать</option>
    <option value="muz">Музыка</option>
    <option value="book">Аудио книги</option>
</select>

<select id="muz" style="display:none">
    <option>Выбрать</option>
    <option value="">Рок</option>
    <option value="">Классика</option>
    <option>Рэп</option>
</select>

<select id="book" style="display:none">
    <option>Выбрать</option>
    <option value="">Рок</option>
    <option value="">Классика</option>
</select>$(function(){
      $('#type').change(function () {
           $('#'+ $(this).val() ).show();
      });
});

Худший ответ:
<select id="one">
    <option>Выбрать</option>
    <option>Музыка</option>
    <option>Аудио книги</option>
</select>

<select id="two" style="display:none">
    <option>Выбрать</option>
    <option>Рок</option>
    <option>Классика</option>
    <option>Рэп</option>
</select>

<select id="someid" style="display:none">
    <option>Выбрать</option>
    <option>Рок</option>
    <option>Классика</option>
    <option>Рэп</option>
</select>$(function () {

        $('#one').change(function () {
           $('#two').show();
        });
        $('#two').change(function () {
            $('#someid').show();
        });

    });
так?
Вопрос: Как лучше организовать сеть при двух интернет провайдерах?

Лучший ответ:
Да, все правильно! Особенно, если линки гигабитные, а то и простую маршрутизацию и access control там же на L3 делайте.
Можете также на нем OSPF поднять (ну и на роутерах тоже) и будет неплохой failover между вашими маршрутизаторами, провайдерами и линками на L3.
Вот только зачем на роутеры по два линка пихать? в этой схеме и одного линка достаточно.

Худший ответ:
Сложно как то все. Можно одним маршрутизатором обойтись, Mikrotik например, на нем управлять и балансировкой и сетью и т.д.
Вопрос: Шардинг MySQL и поиск по шардам?

Лучший ответ:
Классический вопрос из серии XY Problem.
Вместо того чтобы писать "я не знаю что мне надо, но вообразил что мне нужен шардинг, поэтому расскажите как им пользоваться" надо писать "масштабирование мне требуется по такой-то причине и с такими-то условиями. подскажите наилучший вариант".
И тогда тебе подскажут ответ, в порядке частоты причин, по которым задают этот вопрос:
1. Нет, бояться миллиона записей не надо. Mysql потянет во много раз больше.
2. Сделать репликацию мастер-слейв, с нужным количеством слейвов.
3. Возможно, под какие-то условия подойдет и шардинг.Update. 
Как и ожидалось, все свелось к п.1.

Худший ответ:
Шардинг имеет смысл именно когда данные чаще всего достаются из одного шарда. Картинки, например, или статистика по различным серверам/сервисам. Юзера, как основаная сущность приложения, должны физически лежать в одной базе. И даже теоретически макс возможные 6 млрд пользователей в базе займут пару терабайт, что для мускула не проблема - https://habrahabr.ru/post/64851/
Вопрос: Как найти дубликаты в MySQL?

Лучший ответ:
Дубликаты ищем группируя по значению и фильтруя те, которых меньше двух
ПримерSELECT
    valueField1,
    valueField2,
    count(*)
FROM
    myTable
GROUP BY
    valueField1,
    valueField2
HAVING
    count(*)>1
Не забудьте указать все значимые поля.
Удалять по какому принципу? Все, кроме первого попавшегося?

Худший ответ:
Поиск дубликатов можно реализовать обычным SELECT запросом, а удаление, соответственно, с помощью DELETE.
Вопрос: Редактирование сайта + git. Как правильно выстроить работу?

Лучший ответ:
Подскажите, как вы работаете с проектами?
 нужно поднимать локальный веб серверэто не удобно.
что в этом не удобного? неудобно это заниматься этим:править файлы проекта в Sublime Text и сразу через SFTP менять их на сервере

Худший ответ:
На сервере ничего не правится. Исключением может быть какой-то хот-хот-хот фикс, хотя я не уверен, насколько это правильно - тогда можно сделать git stash (после того, как пофиксили в репо). В остальных же случаях - используете локальный сервер, и тестируете абсолютно все на локалке.
Вопрос: Как передать значение переменной одной функции другой функции?

Лучший ответ:
издеваешься штоле?

Худший ответ:
Определить её в классе ,а не в методе этого класса и тогда она будет видна для всех методов данного класса или объявить в конструкторе self.b=10(кажется так) и вызывать её в методе как self.b
Вопрос: Уникальные поля и валидация?

Лучший ответ:
Берете и проверяете в базе существование такой комбинации, непонятно в чем именно сложность.if(Model::where('field1', $field1)->where('field2', $field2)->exists()) { 
//нельзя так делать 
}

Худший ответ:
$messages = [
    'data.ip.unique' = 'Given ip and hostname are not unique',
];

Validator::make($data, [
    'data.ip' => [
        'required',
        Rule::unique('servers')->where(function ($query) use($ip,$hostname) {
            return $query->where('ip', $ip)
            ->where('hostname', $hostname);
        }),
    ],
],
$messages
);
(c) https://stackoverflow.com/questions/50349775/larav...
Но как по мне - такое себе решение. Лучше уж действительно написать своё правило.
Вопрос: С кем можно обсудить вопросы по управлению проектов?

Лучший ответ:
Ищите соответствующее комьюнити в своем городе, уж в столицах-то это наверняка не проблема.

Худший ответ:
https://psilonsk.livejournal.com/
и vc.ru порой, там недавно что-то разжеваное было, но не это
https://vc.ru/flood/32537-17-resursov-dlya-menedzh...
+ в ФБ полно разной степени испорченности
Вопрос: Как отключить анимацию для пользователей при повторном входе на сайт?

Лучший ответ:
в куки запишите 
анимация = посмотрел

Худший ответ:
Вам нужно где-то записать, что пользователь был на сайте, а потом проверить, что он зашел второй раз...
Однако что вы подразумеваете под пользователем? Регистрацию? Или только по IP?
Если зарегистрированного - то, очевидно, первый раз он посмотрел сайт, перед регистрацией. А значит - после регистрации добавьте опцию "Если зарегистрированный - анимацию не показывать".
Если по IP - откуда вы будет знать, что под этим IP ваш сайт смотрел один и тот же человек? А если анимация - реклама проекта? Тогда ее увидит только первый пользователь, например с корпоративного компьютера.
Вопрос: Как увеличить размер шрифта в Sublime Text 3 в рабочем поле?

Лучший ответ:
CTRL + прокрутка колеса мыши

Худший ответ:
[Ctrl] + [+]
Или же вы о размере шрифта в самой программе (не о размере шрифта кода)?
Вопрос: Что скрывает под специальностью реверс инженера (Reverse engineering)?

Лучший ответ:
Вы слишком романтичны.
Реверсил уже на сто раз в жизни.
Я самый обычный программист и админ. Но иногда очень нужно запустить в работу "черный ящик" или восстановить (что чаще).
Я бы сказал - это рядовая работа.
То, что вы имеете ввиду - это очень малая часть реверс-инжиниринга. Исчезающе малая.
Я так баловался в школе - ставил в играх бесконечные жизни.

Худший ответ:
Сейчас наверное востребованы реверсеры под мобильные платформы... И инструменты типа декомпилеров
Вопрос: Как научиться реверсингу?

Лучший ответ:
Если вам попадает чужой продукт, и в нем нужно что-то исправить - читаете код, разбираетесь в нем и исправляете.
Реверс инженеринг - это тоже самое, только исходников нет, приходится разбираться с готовыми исполняемыми файлами, пользуясь дебаггерами, дизассемблерами, анализаторами.
А следовательно нужно учить как работают операционные системы, стандартные библиотеки, протоколы, глубже ассемблер.
И много опыта разработки - невозможно быть хорошим специалистом по реверс-инженерингу и не уметь просто хорошо программировать - вы же должны представлять, как примерно выглядела программа только по ее откомпилированной и рабочей части.
P.S. Если посмотреть ваши вопросы, то есть сомнения, что С и Ассемблер у вас пройденный этап.

Худший ответ:
Можно начать с различных crackme и освоения отладчиков, дизассемблеров и т.п. Лучший ресурс, наверное, для начала изучения https://exelab.ru/. Там есть и инструменты и статьи по их освоению... Думаю этого хватит для начала...
Вопрос: Как разделить трафик локальной сети и WiFi на Windows?

Лучший ответ:
Простите за беспокойство. Было принято решение не использовать такой сложный путь. Вопрос не актуален.

UPD. По неустановленным причинам заработало при добавлении маршрута и установлении метрики на вай фай.

Худший ответ:
Покажите ваш Route print и Ipconfig /all
Вопрос: Как сделать простую гифку со сменяющимся фоном?

Лучший ответ:
открываете фотошоп, открываете рабочую область с анимацией.
в первом слайде указываете красный фон и время через которое он перейдет ко второму слайду.
во втором слайде тоже самое. дальше ставите "кольцевание" изображения и сохраняете как для Веб в gif формате

Худший ответ:
А без вариантов тут - времени гуглить ни у кого нет: мы все на работе.
Вопрос: Какой фреймворк выбрать для подобного?

Лучший ответ:
Вам любой фреймворк подходит. В laravel очереди из коробки, но в интернете масса пакетов для очередей и добавить их в свой composer.json не будет проблемой. Единственно, судя по описанию, всякие rabbitMQ это оверхед, лучше использовать очередь на основе драйвера с БД или Redis

Худший ответ:
Вам любой фреймворк подходит. В laravel очереди из коробки, но в интернете масса пакетов для очередей и добавить их в свой composer.json не будет проблемой. Единственно, судя по описанию, всякие rabbitMQ это оверхед, лучше использовать очередь на основе драйвера с БД или Redis
Вопрос: Как организовать два независимых DC в одной физической сети?

Лучший ответ:
1. Да. Можно даже на все ПК раздавать настройки по DHCP, только между доменами должно быть доверие. Контроллер первого домена будет переадресовывать запросы ПК к первому контроллеру второго домена на авторизацию.
2. Нет, миграция пользователей (c SID) не возможна.
3. В варианте по умолчанию - создадутся новые профили пользователей. Однако, если использовать программу Profile Wizard, то при переводе ПК из первого домена в второй, можно указать, что такой то профиль пользователя на ПК соответствует такой то учетной записи в новом домене. После этого у пользователя сохранятся все настройки рабочего стола, программ, расположение ярлыков. Все что требует для работы сертификаты (КриптоПРО, клиентбанки) придется переустановить и зарегистрировать заново. Кэшированные пароли в Диспетчере учетных данных лучше вычистить.

Худший ответ:
Половина пользователей в последствии переедет в с первого во второй домен.
Или физически переедут в другое место вместе со вторым DC в другую, не связанную с этой, сеть? 
Если Да, то второй домен не нужен.  Переедут компы и DC физически в другое место со своими СИДами и профилями, проведете захват ролей на уехавшем DC, и всё.
Вопрос: Что должен знать специалист по пентесту и существуют ли такие вакансии и насколько данная профессия актуальна сейчас?

Лучший ответ:
Самое распространённое - уметь использовать несколько наборов тулз, время от времени почитывать "хакер" и красиво делать из мухи слона.

Худший ответ:
рынок есть, почитать требования к вакансии можно на тематических ресурсах, например hh.ru
либо, обратиться напрямую в профильную компанию, их много.
Вопрос: Java почему вылетает java.lang.NullPointerException?

Лучший ответ:
А массив кто создавать будет?
int[] mass; - это ссылка на массив которая равна null, это означает, что любые обращения к ней, типа mass.length или mass[0] будут приводить NullPointerException. Вы пытаетесь узнать длину или получить доступ к нулевому элементу массива которого нет.
this.mass[mass.length+1] = e; - это вы что пытаетесь сделать? Присвоить значение ячейки массива, которая находится за пределами размера массива.... получите еще одно исключение.
Массив - структура фиксированной длины, т.е. уменьшать или увеличивать её размер нельзя, только заново пересоздавать и копировать элементы из старого в новый.
Индекс массива может принимать значение от 0 до length - 1.
В общем внимательно дочитайте всю главу о массивах...

Худший ответ:
В Java массив - тоже класс, а значит по него должна быть выделена память в куче.
Вопрос: Как востановить работоспособность домена AD?

Лучший ответ:
Официально - этот кейс микрософт решает только перевведением машины в домен. К сожалению, это единственный верный способ - все остальные кустарные методы могут сработать, могут нет на случайной машинке (в подавляющем большинстве случаев - нет). Из того, что могло произойти - самое похожее - сбой питания, системная ошибка на контроллере, приведшая к ребуту. При загрузке ОС произошло восстановление автоматом на последнюю имеющуюся точку восстановления, т.к. это идет по дефолту при очередном включении после непредвиженного сбоя. Эта точка скорее всего была довольно давно создана, и ряд компьютеров, обновивших не так давно пароли оказались в восстановленной базе АД со старыми паролями - соответсвенно потеряли доверие контроллера, т.к. суют не те пароли. Это решается только перевводом машины в домен. У вас только один контроллер домена?

Худший ответ:
возможно попробовать пересоздать списки имен ПК в АД!
Вопрос: Какие есть хорошие способы сделать сайт приватным полностью?

Лучший ответ:
добавить basic авторизацию, а клиентам давать ссылки с прописанными логином и паролем вида http://user:password@domain.com/

Худший ответ:
Локальная HTML-страничка с одной кнопкой: "Вход".
Форма отправляет POST-запрос с одним динамическим полем (токеном) на основе паблик ключа, заранее полученного от сервера (hardcoded).
Вопрос: Как сверстать адаптивный интерфес блоков так?

Лучший ответ:
https://jsfiddle.net/webirus/jh3ouyke/
Дальше, думаю, разберетесь, как перестроить на мобильной версии.

Худший ответ:
Отменить свойствоfloat: right;, т.е прописать свойствоfloat: none; и дело в шляпе.
Вопрос: Стоит ли делать супер-навороченный персональный сайт-портфолио?

Лучший ответ:
Вообще сайта нет, без работы не сижу и дня, выбирать приходится. Иногда хочется сделать хотя бы одностраничник - но возникает вопрос "зачем?" на который нет ответа и сайт так и остается в планах. Все закончилось покупкой домена годы назад.
Определитесь с целью сайта. Судя по вашему вопросу - вы сайт для себя больше делаете чем для заказчиков - для себя можно развлекаться как угодно, кто ж вам запретит.
Если цель - больше заказов, то, мое непроверенное на себе имхо - сайт-одностраничник сделанный по делу с парой оригинальных фишек для привлечения внимания оптимален. Это дизайнерам нужен вау-эффект, фронтэндеру нужен эффект "серьезный человек, большой опыт, сделает быстро, четко и качественно".

Худший ответ:
Бесполезно, ни заказчики ни работодатели вообще не заходят на твой сайт, имеет смысл тока список ссылок.
Вопрос: Как отследить нужную комбинацию в массиве?

Лучший ответ:
давайте думать. У нас есть массив с числами. У нас есть еще один массив с числами. Нам нужно проверить находится ли в первом массиве все элементы из второго. То есть что нам нужно, это сделать пересечени массивов (array_intersect) которое выделит "совпадения", убрать возможность повторений (array_unique) и посчитать количество. Если оно равно 5-ти - значит все хорошо.

Худший ответ:
Цикл + in_array, строк 10 где-то кода
Вопрос: Не могу понять для чего нужны Entities в ООП PHP, Yii?

Лучший ответ:
Есть разные подходы к пониманию смысла этих вещей. 
Entities чаще всего используются в контексте DDD-подхода. Там это означает то, что объект может изменять свое состояние (фигура может менять цвет, стакан может заполняться и тд). Супротив Entities выступают т.н. ValueObject, которые используются только для чтения и менять свое состояние не могут.
И те, и другие используются в бизнес-логике приложения и генерируются либо хранилищами (storage), либо сервисам (в зависимости от выбранного подхода).
В контексте же Yii понятие Entity не применяется. ибо там структурной единицей бизнес-логики выступают экземпляры ActiveRecord чаще всего (сам фреймворк к этому располагает), либо, иногда, наследники Model.
Главное - это то, что сущность не обязательна должна сохраняться as is, т.е. иметь четкую проекцию в БД, ибо сущностью может выступать экземпляр паттерна Композит - все зависит от хранилища/сервиса, который это дело будет "CRUD'ить".

Худший ответ:
Сейчас меня закидают тапками.
Но у меня это просто фиктивный класс/**
 * Class Entity_stock
 * @property $id int(11) NOT NULL,
 * @property $distribution_point int(11) NOT NULL COMMENT 'торговая точка',
 * @property $name varchar(255) NOT NULL COMMENT 'наименование',
.....
**/
class Entity_stock{}
Тупо делаю выгрузку из муськи структуры таблицы.
Что это дает - автозавершение кода, не нужно помнить как называется каждое поле
Модель вернула  объектclass Stock_model {
  /**
   * @return Entity_stock
   **/
  public get_by(){
     return обычный вызов класса актив рекорд возвращающий stdClass
  }
}
а ИДЕ теперь знает какие поля в объекте есть.
Реальное преобразование к объекту заданного класса я считаю излишним оверхедом в своих проектах.туда обычно передают уже заранее известные данные что бы создать объект, а потом дергают эти данные, геттерами или меняют их сеттерами.. 
Опять мое мнение об их использование не совпадает с поклонниками. Для веба строя это не нужно. Лишний 
оверхед. Активный сеттер, который проверяет значения на допустимость тут не нужен.  Но в чужой 
монастырь со своим уставом не ходят. Используют доктрину, пишем под нее. У всех гетеры/сетеры  разбираемся
как их правильно использовать. Еще есть понятие Интерфейса
так вот в нем нельзя объявить переменную, только публичный метод.
В таком случае гетеры с сетерами становятся единственным способом .