Почему? Там же там есть модули и структуры. В 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. Как хотите.
А они там не обычные, стоят магнитные датчки Холла. Можно настроить момент срабатывания. У меня реагирует почти сразу, как на кнопку нажал. Правда, я почему-то не ощущаю разницы между двумя профилями с низким и высоким порогом срабатывания. Может баг, а может не разобрался еще с настройками.
Ага. Напишут они о причинах. Как же. По хорошему, этим самым "независящим от нас причинам" нужно иск выкатывать за нарушение работы. Но этого они тоже не сделают.
Таким образом, определение границ допустимого ограничения основных прав и свобод в силу содержащейся в Конституции отсылки к федеральному закону относится к полномочиям федерального законодателя, однако он не свободен в своих решениях. Соответствие этих границ установленным Конституцией критериям может быть предметом судебной проверки, имея при этом в виду, что такие ограничения должны быть соразмерны конституционным целям ограничений и соответствовать характеру и природе отношений государства и гражданина.
- ограничения прав и свобод возможны только федеральным законом, причем на федеральном законодателе лежит обязанность обеспечивать соразмерность ограничения прав и свобод конституционно закрепленным целям...
- цели ограничения прав и свобод должны быть не только юридически, но и социально оправданы, а сами ограничения - им адекватны. При этом такие ограничения должны отвечать требованиям справедливости*(706); - ограничения прав, даже если они осуществляются в определенных Конституцией целях, не могут толковаться расширительно и не должны приводить к умалению других гражданских, политических и иных прав, гарантированных Конституцией и законами РФ;
В противном случае организации, которые размещают свои ресурсы на мощностях зарубежных провайдеров хостинга, могут столкнуться с рядом серьёзных угроз, пояснили в РКН.
Главная угроза - это действия РКН. В ноябре сайты на hetzner уже отваливались. Тот же archlinux.org не работал.
В 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 еще поискать надо.
Вряд ли. Например, планшет TCL NXTPAPER 11 - это обычный ips с матовым покрытием и черно-белым режимом. Никакого eink\epaper там нет. Еще и через полгода после покупки стали посылать пуши с рекламой. Через стандартный UI не отключить, с adb нужно возиться.
Подтверждаю. У меня в хроме был почему-то выключен quic (chrome://flags/#enable-quic). Включил и даже 1440p стал шустро работать. Без quic с недавнего времени и 1080р тормозил.
Вкладки легко делаются постоянными с помощью великолепного расширения SessionBudy. Удобнее чем закладки. Я теперь не представляю использование хрома без него.
Почему? Там же там есть модули и структуры. В elixir точно были. Те же модули могут иметь приватные методы.
Суть инкапсуляции, в моем понимании, это отделить поведение (контракт) от его реализации. В разных языках это может делаться по разному. Так-то как в python можно договориться и решить, что методы c _ являются приватными и не вызывать их извне. Но лучше, конечно, когда язык имеет необходимые конструкции и механизмы.
Да, как я и написал во втором варианте, температура просто представляет физическое понятие, а логика конвертации уезжает в шкалы.
Я так понимаю, вы в последней строке имеете ввиду dispatcher, а не sensor?
Собственно, да. Кто-то же должен организовать работу. В нем и делать опрос датчика и конвертацию температуры. Конвертацию можно впихнуть прямо туда, но лучше делегировать это шкалам.
И конечно. На каком-то уровне надо работать с примитивами. От этого никуда не денешься. Компьютеры - это всё ещё числодробилки.
Так не надо. Не надо давать температуре ответственность считывать датчик. Это не выглядит логичным.
Что касается Kelvin и Celsius - если не подходит такой простенький вариант температуры, то нужно ввести понятие TemperatureScale, которое будет знать о правилах конвертации температур в разных шкалах. Можно захардкодить в один класс, можно делать отдельные KelvinScale, CelsiusScale.
В Temperature будет метод from(value, scale). И все занимаются тем, чем должны - температура представляет физическое понятие, шкала делает конвертацию.
А откуда вы взяли этот классический пример? Зачем температура сделана мутабельной? Получается, что например 1°C как сущность может стать внезапно 2°C. Это физически не имеет смысла.
Вроде бы во многих статьях об ООП не раз говорилось, что добавление геттеров\сеттеров не приводит к инкапсуляции автоматически. Пример выше ничем не отличается от класса с публичным полем celsius.
Логичнее сделать так:
Здесь сокрыт способ хранения температуры. Можно хранить в кельвинах. Можно не double, а string. Как хотите.
А они там не обычные, стоят магнитные датчки Холла. Можно настроить момент срабатывания. У меня реагирует почти сразу, как на кнопку нажал. Правда, я почему-то не ощущаю разницы между двумя профилями с низким и высоким порогом срабатывания. Может баг, а может не разобрался еще с настройками.
Исходя из требований, автору бы подошла Keychron Q3 HE (TKL) + набор низкопрофильных кейкапов. Только дорого.
Ага. Напишут они о причинах. Как же. По хорошему, этим самым "независящим от нас причинам" нужно иск выкатывать за нарушение работы. Но этого они тоже не сделают.
Да, но нужно читать полностью с комментариями, чтобы не забыть про соразмерность ограничений.
Главная угроза - это действия РКН. В ноябре сайты на 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. Удобнее чем закладки. Я теперь не представляю использование хрома без него.