Информация об изменениях

Сообщение Re[2]: Когда же винда научится извлекать устройства? от 10.01.2024 14:50

Изменено 10.01.2024 14:54 Alekzander

Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Антон, ты меня удивил. Не ждал от тебя такого...

S>>Посмотри, @!#$@#, кто этот "кто-то". И найди способ с ним договориться, чтобы он отдал хэндл по-хорошему, или пристрели его по-плохому.
PD>Нельзя с ним договориться. Ну не хочет он закрыть хендл. А попросить его нет возможности.
PD>Вот, к примеру, сделаю я программу, которая делает fopen, а потом этот хендл не закрывает. Сидит в памяти, чем-то занимается, процессор загружает в среднем на 0%, а хендл не закрывает.
PD>Как ее попросить ? Никак.

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

Первое. Винда — цельный продукт. По крайней мере, она так позиционируется. Уж поверь, если бы я мог поставить винды без Битлокера или без Edge', я бы так и поступил. И без ихней телеметрии я тоже как-нибудь проживу. Но Майкрософт не даёт вариантов. Или бери всё, или ничего. А раз так, то и тестировать взаимодействие своих компонентов должна она, и должна делать это хорошо. Такой косяк не прошёл бы ни через одного хорошего начальника QA, с которыми я работал. Один бы взвился как ракета, пообещал, что научит сраных кодерков выпускать качественные продукты, открыл кучу тикетов, наговорил бы много обидных слов, переоткрывал тикет каждый раз заново, даже если бы он воспроизвёлся один раз из тысячи, с едкими комментариями. И добился своего. Другой бы (он раньше работал в полиции) говорил бы исключительно вежливо, а сам за спиной провёл бы скрытное расследование, и выяснил, кто в чём виноват и почему. И добился своего. Говорят, в Майкрософте вместо таких сейчас юнит-тесты друг друга тестируют. А скоро будут чат-боты тестировать юнит-тесты, а юнит-тесты — чат-ботов. Или уже. Вот и результат.

Второе. Если есть протокол (а сценарии работы с флешкой — это протокол в широком смысле), и он приводит к проблемам, значит он плохо спроектирован точка Я приводил недавно в пример, как Андроид принудительно разрегистрирует колбэки, которые юзер ставил в настройках, если колбэк не отвечает по истечении таймаута. Так вот, в самом частом юз-кейсе (точно не меньше половины случаев, а может и девять из десяти) там вообще колбеки не нужны. Андроид мог бы просто пассивно ждать запросов от программ. (В этом случае проблема с таймаутом просто не возникает). Следовательно, надо было оформить два сценария, с колбэками и без. Но нет! Какой-то гуглогений проектирования решил, что статика — частный случай динамики, и теперь каждый раз при запуске тяжёлой отладочной сессии или просто ресурсоёмкого приложения у меня принудительно слетают все настройки. Я не знаю, где именно Майкрософт напорол с флешками, но там явно надо искать примерно такую ошибку проектирования.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Антон, ты меня удивил. Не ждал от тебя такого...

S>>Посмотри, @!#$@#, кто этот "кто-то". И найди способ с ним договориться, чтобы он отдал хэндл по-хорошему, или пристрели его по-плохому.
PD>Нельзя с ним договориться. Ну не хочет он закрыть хендл. А попросить его нет возможности.
PD>Вот, к примеру, сделаю я программу, которая делает fopen, а потом этот хендл не закрывает. Сидит в памяти, чем-то занимается, процессор загружает в среднем на 0%, а хендл не закрывает.
PD>Как ее попросить ? Никак.

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

Первое. Винда — цельный продукт. По крайней мере, она так позиционируется. Уж поверь, если бы я мог поставить винды без Битлокера или без Edge', я бы так и поступил. И без ихней телеметрии я тоже как-нибудь проживу. Но Майкрософт не даёт вариантов. Или бери всё, или ничего. А раз так, то и тестировать взаимодействие своих компонентов должна она, и должна делать это хорошо. Такой косяк не прошёл бы ни через одного хорошего начальника QA, с которыми я работал. Один бы взвился как ракета, пообещал, что научит сраных кодерков выпускать качественные продукты, открыл кучу тикетов, наговорил бы много обидных слов, переоткрывал тикет каждый раз заново, даже если бы он воспроизвёлся один раз из тысячи, с едкими комментариями. И добился своего. Другой бы (он раньше работал в полиции) говорил бы исключительно вежливо, а сам за спиной провёл бы скрытное расследование, и выяснил, кто в чём виноват и почему. И добился своего. Говорят, в Майкрософте вместо таких сейчас юнит-тесты друг друга тестируют. А скоро будут чат-боты тестировать юнит-тесты, а юнит-тесты — чат-ботов. Или уже. Вот и результат.

Второе. Если есть протокол (а сценарии работы с флешкой — это протокол в широком смысле), и он приводит к проблемам, значит он плохо спроектирован точка Я приводил недавно в пример, как Андроид принудительно разрегистрирует колбэки, которые юзер ставил в настройках, если колбэк не отвечает по истечении таймаута. Так вот, в самом частом юз-кейсе (точно не меньше половины случаев, а может и девять из десяти) там вообще колбеки не нужны. Андроид мог бы просто пассивно ждать запросов от программ. (В этом случае проблема с таймаутом просто не возникает). Следовательно, надо было оформить два сценария, с колбэками и без. Но нет! Какой-то гуглогений проектирования решил, что статика — частный случай динамики, и теперь каждый раз при запуске тяжёлой отладочной сессии или просто ресурсоёмкого приложения у меня принудительно слетают все настройки. Я не знаю, где именно Майкрософт напорол с флешками, но там явно надо искать примерно такую ошибку проектирования.

P.S. Кстати, помимо флешек есть сходная проблема. При перезагрузке винда постоянно жалуется на мешающий ей перезагрузиться Explorer. У меня, правда, стоит Черепаха, и я не знаю, влияет ли это на результат. Если нет, Майкрософт виновен по первому пункту, если да — по второму