Обновить
2
0

Пользователь

Отправить сообщение

Почему? Там же там есть модули и структуры. В elixir точно были. Те же модули могут иметь приватные методы.


Суть инкапсуляции, в моем понимании, это отделить поведение (контракт) от его реализации. В разных языках это может делаться по разному. Так-то как в python можно договориться и решить, что методы c _ являются приватными и не вызывать их извне. Но лучше, конечно, когда язык имеет необходимые конструкции и механизмы.

Это мог бы делать объект типа DispatcherTemperature, а Temperature лучше иметь простым "плоским" обьектом.

Да, как я и написал во втором варианте, температура просто представляет физическое понятие, а логика конвертации уезжает в шкалы.

Я так понимаю, вы в последней строке имеете ввиду dispatcher, а не sensor?

Temperature t = dispatcher.getTemperature();

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

И конечно. На каком-то уровне надо работать с примитивами. От этого никуда не денешься. Компьютеры - это всё ещё числодробилки.

Так не надо. Не надо давать температуре ответственность считывать датчик. Это не выглядит логичным.

Что касается Kelvin и Celsius - если не подходит такой простенький вариант температуры, то нужно ввести понятие TemperatureScale, которое будет знать о правилах конвертации температур в разных шкалах. Можно захардкодить в один класс, можно делать отдельные KelvinScale, CelsiusScale.

В Temperature будет метод from(value, scale). И все занимаются тем, чем должны - температура представляет физическое понятие, шкала делает конвертацию.

Инкапсуляция должна бы запретить любое изменение внутреннего состояния сущности (объекта) извне любым способом, кроме специально разрешенных автором. Вот классический вариант:

public class Temperature {
    Double celcius;

    public Double getCelsius() {
        return celsius;
    }
    
    public void setCelsius(Double value) {
        celsius = value;
    }
}

А откуда вы взяли этот классический пример? Зачем температура сделана мутабельной? Получается, что например 1°C как сущность может стать внезапно 2°C. Это физически не имеет смысла.

Вроде бы во многих статьях об ООП не раз говорилось, что добавление геттеров\сеттеров не приводит к инкапсуляции автоматически. Пример выше ничем не отличается от класса с публичным полем celsius.

Логичнее сделать так:

public class Temperature {
    double celsius;

    public double getCelsius() {
        return celsius;
    }

    public double getKelvin() {
        return celsius + 273.15;
    }

    public static fromCelsius(double value) Temperature {
        if (value < −273.15) {
            throw new InvalidTemperature()
        }
        return new Temperature(value)
    }

    private Temperature(double celsius) {
        this.celsius = celsius
    } 
}

double value = getTempFromSensor(); // from outside

try {
    Temperature t = Temperature.fromCelsius(value)
    System.out.println(t.getCelsius())
} catch(InvalidTemperature e) {
    System.out.println("Sensor is broken! Call a technician.");
}

Здесь сокрыт способ хранения температуры. Можно хранить в кельвинах. Можно не double, а string. Как хотите.

А они там не обычные, стоят магнитные датчки Холла. Можно настроить момент срабатывания. У меня реагирует почти сразу, как на кнопку нажал. Правда, я почему-то не ощущаю разницы между двумя профилями с низким и высоким порогом срабатывания. Может баг, а может не разобрался еще с настройками.

Исходя из требований, автору бы подошла Keychron Q3 HE (TKL) + набор низкопрофильных кейкапов. Только дорого.

Ага. Напишут они о причинах. Как же. По хорошему, этим самым "независящим от нас причинам" нужно иск выкатывать за нарушение работы. Но этого они тоже не сделают.

Да, но нужно читать полностью с комментариями, чтобы не забыть про соразмерность ограничений.

Таким образом, определение границ допустимого ограничения основных прав и свобод в силу содержащейся в Конституции отсылки к федеральному закону относится к полномочиям федерального законодателя, однако он не свободен в своих решениях. Соответствие этих границ установленным Конституцией критериям может быть предметом судебной проверки, имея при этом в виду, что такие ограничения должны быть соразмерны конституционным целям ограничений и соответствовать характеру и природе отношений государства и гражданина.

Источник: https://constrf.ru/razdel-1/glava-2/st-55-krf

- ограничения прав и свобод возможны только федеральным законом, причем на федеральном законодателе лежит обязанность обеспечивать соразмерность ограничения прав и свобод конституционно закрепленным целям...

- цели ограничения прав и свобод должны быть не только юридически, но и социально оправданы, а сами ограничения - им адекватны. При этом такие ограничения должны отвечать требованиям справедливости*(706); - ограничения прав, даже если они осуществляются в определенных Конституцией целях, не могут толковаться расширительно и не должны приводить к умалению других гражданских, политических и иных прав, гарантированных Конституцией и законами РФ;

Источник: https://constrf.ru/razdel-1/glava-2/st-55-krf

В противном случае организации, которые размещают свои ресурсы на мощностях зарубежных провайдеров хостинга, могут столкнуться с рядом серьёзных угроз, пояснили в РКН.

Главная угроза - это действия РКН. В ноябре сайты на hetzner уже отваливались. Тот же archlinux.org не работал.

На Озоне есть официальные магазины и кнопка - Хочу скидку. Я на Oppo попросил 30%, мне дали 5%. Но в ДНС все-равно дешевле было.

В android все это есть. И ключевые слова для СМС. Берете какой-нибудь SpamBlocker и отключаете для него уведомления. У вас чистая история звонков и никакого беспокойства.

В целом радует, что современные ОС стараются создавать безопасную среду для пользователя.

Ага, если бы они еще API нормальный делали. В google похоже считают, что кроме видосиков, фоток и музыки других файлов нет. Например, через Storage Access Framework нельзя открыть файл sqlite. Точнее на чтение еще как-то вроде можно, но на запись уже не выходит.

Как самому сформировать путь к файлам внутри директории открытой с помощью ACTION_OPEN_DOCUMENT_TREE тоже неясно. Приходиться делать что-то вроде Uri.parse(pickedDir.uri + "/nested_dir/filename".replace("/", "%2F")). И не факт что-это будет везде раотать. Можно что-то c findFile сделать, но это же так здорово и быстро, перебирать все файлы в поисках нужного /сарказм.

В общем, я очень далеко не эксперт в android разработке, но на мой взгляд, такие кривые API еще поискать надо.

На 4pda есть рабочие варианты отключения.

Вряд ли. Например, планшет TCL NXTPAPER 11 - это обычный ips с матовым покрытием и черно-белым режимом. Никакого eink\epaper там нет. Еще и через полгода после покупки стали посылать пуши с рекламой. Через стандартный UI не отключить, с adb нужно возиться.

У них уже есть вечная мышка - BT58. Все никак не сломается.

Подтверждаю. У меня в хроме был почему-то выключен quic (chrome://flags/#enable-quic). Включил и даже 1440p стал шустро работать. Без quic с недавнего времени и 1080р тормозил.

А нативную сборку клиента под Apple Silicon планируете сделать?

Я так понимаю это старый плагин, а это новый, который нужно вручную ставить? По сравнению со старым в работе хуже не стало?

Попробуйте Processing. Возможно, он подойдет под ваши задачи.

Вкладки легко делаются постоянными с помощью великолепного расширения SessionBudy. Удобнее чем закладки. Я теперь не представляю использование хрома без него.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность