Обновить
2
2.5

Java программист

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

почему существуют на ТЭЦ конденсационные башни, где распыляется вода для сброса в атмосферу тепла, а не стоят стирлинги, которые часть этого бы тепла переводили всё в то же электричество

Потому что это будет препятствовать задаче этих башен - собственно, охлаждению.
Так то можно задать вопрос, почему холодильник у Стирлинга просто так тепло рассеивает. Давайте еще один поставим, что на разности температур (она же есть) будет полезную работу совершать.

Компилятор не даст.

Это зависит от понимания 'не даст'. Потому что в пределе - выкидывается исходный текст оригинала, вставляется текст мока и компилируется.

Это работает далеко не во всех ЯП.

Механизм поиска библитек/имен в любом языке есть. Есть список каталогов и прочих мест, который просматривается для поиска библиотек.

В этом случае можно tooling делать так, чтобы первое объявление находило тестовую либу somelib с SomeName раньше, чем основную.

Но да, если можно писать (условно):

'from somelib use SomeName'
и оно в тестовой среде превращалось (явно или неявно) в

'from somelib.mock use SomeName'

то это заметно удобнее.

я потрачу 15 сек на выделение интерфейса сразу, буду мокать интерфейс в тестах

Для мока технически не надо интерфейса. Можно тестовый класс называть так же как оригинал и тестовой среде выполнения говорить 'Во время тестов используй то определение имени а не это'.
Что, собственно, и делается (но в другом виде), когда подстановка интерфейса происходит.

Но tooling пошел другим путем.

 Отсюда один шаг до оправдания атомных бомбардировок. Вот это и будет искажение психики через машинный язык.

Только если забывать, что оно всегда "полезно для..." (даже если для чего именно прямо в предложении не озвучивается).

Причем очень субъективная. Зачем её добавлять, если речь идет просто про «груз» или «багаж»?

Я так понимаю, потому что там еще прочая нагрузка есть, которая не багаж и не 'полезная'. Но которая все равно место/ресурсы (от багажа) отнимает.

Условно "Общая нагрузка такая-то, из нее полезной столько-то".

Особенно если взять ту же научную фантастику, которая иногда неплохо прогнозирует.

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

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

А прогнозирование - это добро пожаловать в разную публицистику с нормальными цепочками рассуждений.

Да хотя бы потому, что в оригинальном слове payload нет ничего "полезного". 

Устоявшийся же перевод, а не только у ИБ? Так что почему бы и нет?

printf из условной динамической libc.2.4.5 и libc2.4.10 влинковываются в приложение именно как разные имплементации одного и того же имени. Какая стоит в системе (и printf называется) - ту и используем.
А printf_v_2.4.5 implements printf, printf_v_2.4.10 implements printf - об этом пользователю либы думать не надо. Он только про printf в общем случае знает. Да и в коде библиотеки этих двух имплементаций, вроде, нет. Есть одна printf, которая меняются только вместе со сменой версии кода.

Можно, конечно, сказать что та printf, что в stdlib.h -- это и есть интерфейс, но весь этот механизм Dependency Inversion почему-то не называют и в пример не приводят. Хотя стоило бы.

Но да, тут - интерфейсы полезны. А если такой динамической (пере)конфигурации, прямо в рантайме - нет, можно и без них.

надо было ещё пару нерелевантных методов сделать public, и наплодить переменных со словом public, чтобы имитировать реальную ситуацию

А это пример, где отдельный интерфейс скорее вреден. Потому что провоцирует вот такое, когда думаешь 'а public в имплементации - это контракт или нет? В смысле - использовать можно или как?'

сколько времени вам нужно чтобы понять контракт сервиса?

Ctrl-F 'public'

public function processData(array $data): array

public function summarizeData(array $data): string

Если бы код был в IDE - вообще специально искать бы не пришлось.

а можно просто ввести чертов интерфейс за десяток секунд.

А можно не вводить, а просто написать 'public' в имплементации, а файлик с интефейсом сам сделается и поправится.

вы явно не сторонник поиска легких путей

Мой тезис в том, что если инструменты есть (а они есть) - то аргументы что той стороны, что той - слабоваты. Сейчас оно традиция практически в чистом виде.

я буквально выше вам 3 пункта выписал что там интересного

Это объяснение, зачем нужен интерфейс как таковой. Может быть полезен, да.

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

 интерфейс

Зачем на него смотреть, именно в виде файла? Шмяк хоткей - и тебе методы показывают. Ну или в документацию отправил (она же есть, правда?) Чего именно в интерфейсе, без реализации, интересного?

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

любопытно, что

Оба аргумента применимы только к случаю, когда без IDE пишешь.

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

Вы как вообще книги для чтения выбираете?

Смотрю на рекомендации. За долгий срок.

А кто будет успевать их читать, если книги будут генерироваться с пулемётной скоростью?

Никто. И не надо. Выбираем из того, что 'кто-то' уже прочитал. Если не гнаться за новинками - работает.

 найти приличную книгу гораздо трудней.

Я вас умоляю. Художественных книг уже столько, что даже если перестать читать все новое - до конца жизни хватит. Если избавится от подхода 'хочу самое лучшее', а начать 'Берем первое попавшееся по рекомендациям, Начинаем читать. Не понравилось - в корзину ее' - проблема выбора резко проподает.

Повреждение психики. Машинные форматы очень сильно влияют на человеческий язык.

...

 а завтра окажется, что ты говоришь точно так же

И пусть. Я, например, был бы вполне доволен, если бы 'LLM'-ый машинный формат статей с большим преобладанием списков стал более популярен. Ибо незачем совершенно лишней воды наливать. Скажи сразу, чего ты там хочешь передать, а не разбавляй текст шутками да прибаутками.

"вредоносная полезная нагрузка" - и они искренне не понимают, почему я ржу

Почему, кстати, идиотское? Ясно же, что "вредоносная" - это с точки зрения одного, а "полезная" - это с точки зрения другого. Смысл согласовывается с разными субъектами.

А Dependency inversion? Без интерфейса получается зависимость от конкретной реализации.

От имени. В случае необходимости бывшая конкретная имплементация делается интерфесом, а новая уже его реализует. Или сразу другая реализация вставляется под старым именем.
Но в рантайме замена уже не сработает, это да, надо будет перекомпилировать.


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

Гораздо хуже тем, кто пытается выявить использование LLM в художественной литературе. Там подобные косяки всегда могут списать на "авторский стиль" или просто сказать "это же фантастика".

Если можно списать и оно все равно - то зачем выявлять? Ну пишет книги не живой человек, а киборг - и черт с ним, если читают. А если не читают - то от того, что он целиком живой, лучше никому не станет.

Да там элементарно

Если верить более новым новостям - я оказался прав. Непредвиденные последствия изменений и непонимание, что именно произошло. Разобрались только когда уже все весьма сильно упало.

Определяется-то просто: на устройстве сохранён токен для входа, вход по паре токен-пин.

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

 городе такое транспортное средство вполне может двигаться по дорогам общего пользования

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

Ну и, собственно - по какой полосе им ездить-то на дорогах? По той, где постоянно все машинами заставлено?

Просто городской СИМ должен выглядеть не как велосипед, скутер или самокат. Это должен быть стул на колесах. Автономный. В который садишься и едешь. А он (уже на вполне приличной скорости) двигается по строго определенным маршрутам, за исключением увиливания от случайных препятствий. Ты подруливаешь только на медленной скорости только в некоторых местах.
На таком поставить тент от дождя, ветра и слишком сильного мороза - вполне можно.


И вот для такого, для средства движения быстрее пешехода и медленней машины - отдельные выделенные дороги/полосы нужны. Потому что ни с пешеходами ни с машинами оно делить пространство не может по соображениям безопасности.

Информация

В рейтинге
1 344-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность