В комментарии необязательно должна быть какая-то уникальная информация. На пачке соли написано "Соль", чтобы не нужно было открывать и пробовать, чтобы узнать, что же там такое. Когда комментарий соответствует коду, это подтверждает, что код написан правильно, так как было задумано.
Чтобы сделать то, что вы написали, интерфейс менять не следует.
Если контрибьютор все же тронет интерфейс, то ему придется поменять все имеющиеся реализации этого интерфейса, а их там из коробки уже 2. И когда он полезет менять реализацию одного из них, который Default, то увидит, что особая обработка групп там уже предусмотрена. Так что этот вариант даже рассматривать не стоит.
Так посмотрите, какое там соотношение кода и комментариев. Подозреваю, что патч без комментов или ломающий соответствие комментов коду просто не заапрувят.
Если найдется настолько смелый разработчик, кто готов проигнорировать мои комментарии, то у него все равно ничего не получится. Любой другой разработчик предпочтет придерживаться правил, описанных в моих комментариях к интерфейсу, чем читать чей-то ровнокод в каждой его реализации. Ему просто выставят дефект, что код поломал контракт абстракции, и заставят переделывать.
Мои комментарии
/// <summary>
/// IPreferencesProvider предоставляет доступ к настройкам.
/// <para />
/// Настройки объединены в группы. У каждой группы свое уникальное имя. У каждой настройки свое уникальное имя в пределах группы.
/// <para />
/// Реализации данного интерфейса сделаны на основе следующих принципов:<para />
/// 1. Количество настроек и размер значений позволяют загрузить в память одновременно все настройки.<para />
/// 2. У каждой настройки имеется разумное значение по умолчанию.<para />
/// 3. Поведение приложения зависит только от значения настройки, а не от наличия или отсутствия значения в системе хранения.<para />
/// 4. Получение значения настройки реализовано быстро и эффективно, что позволяет вызывать его повсеместно.<para />
/// 5. Значения настроек меняются редко, на несколько порядков реже, чем читаются.<para />
/// 6. Объекты IPreferencesProvider безопасны при параллельном использовании.<para />
/// <para />
/// Если сущности, которые предполагается получать из системы управления настройками, не удовлетворяют указанным принципам, то использовать интерфейсы IPreferencesProvider и IPreferences нельзя, даже если по сигнатуре они подходят. Вместо этого следует воспользоваться другими библиотеками.
/// <para />
/// В модуле Preferences.RI реализованы 2 варианта поставщика настроек: DefaultPreferencesProvider и DebugPreferencesProvider.
/// <para />
/// DefaultPreferencesProvider использует простое кэширование, основанное на том, что настройки занимают мало памяти и редко меняются, и сохраняет в базе данных значение по умолчанию, если его в базе данных не было.
/// <para />
/// DebugPreferencesProvider берет значения из базы, не кэшируя и не сохраняя значений по умолчанию. Данная реализация предназначена для облегчения процесса разработки.
/// <para />
/// Автор интерфейса — Сергей Б. Вносить изменения в данный интерфейс можно только по согласованию с автором.
/// </summary>
public interface IPreferencesProvider
{
/// <summary>
/// Возвращает объект, предоставляющий доступ к настройкам.
/// </summary>
/// <param name="groupName">Имя группы настроек.</param>
/// <exception cref="PreferencesException">Исключение, в случае любых ошибок при получении объекта реализующего <see cref="IPreferences"/> по заданному имени группы настроек.</exception>
/// <returns>Объект доступа к настройкам.</returns>
IPreferences GetPreferences(string groupName);
}
Смотря с чем сравнивать. По сравнению с тем, как начинает тормозить вся JVM, когда не может найти непрерывную область памяти нужного размера, запись на диск просто летает. Потом, можно же эти файлы на каком-нибудь SSD или даже RAM-диске разместить.
Я для таких случаев написал свой ByteStream. Пока размер буфера не превышает определенного порога, все пишется в byte[]. Как только данные выходят за эти пределы, то они сбрасываются во временный файл. Соответственно, метод getInputStream() в 1-м случае вернет ByteArrayInputStream, во 2-м — FileInputStream, обернутый в BufferedInputStream.
Вся эта схема невозможна без обналички. Почти наверняка выследили их как раз при помощи финмониторинга. При этом тема задержания обналичников в тексте не раскрыта. Не исключено, что канал специально сохранили, чтобы в следующий раз не копаться в логах интернет-провайдеров, а спокойно взять очередных «шибко умных» без шума и пыли.
Поправьте, пожалуйста, меня, если я не прав. Предъявлять какие-то претензии можно только к тому, что регулируется законом, или к тому, за что мы платим деньги. За поиск в Яндексе мы денег не платим, закона, описывающего, как должен работать поиск, нет. Какие у нас могут быть к Яндексу претензии?
Гугл нагибали за то, что он делает на телефонах, за которые люди заплатили деньги. Он нарушил права покупателей смартфонов и производителей ПО.
Для пользователей, «разрабатывающих конкурирующие сервисы для поиска новостроек», у Яндекса есть услуга распространения рекламы, заплатив за которую, можно предъявлять обоснованные требования.
Несколько лет назад один человек в Лосином острове заблудился. При себе у него был работающий мобильный телефон и карта местности. На его поиски выслали вертолет и вышли несколько сот человек. Однако мужчина за ночь замерз насмерть, хотя был всего лишь конец сентября.
Это я к тому, что никакие технические средства не спасут потерявшегося человека без активного и грамотного содействия с его стороны. Прежде всего надо научить самих людей тому, как правильно вести себя в таких условиях. Надо обеспечить, чтобы каждый человек был хотя бы поверхностно ознакомлен с тактикой спасения в подобных ситуациях. С теми, кто находится в группе риска (например, с детьми, проживающими рядом с лесными массивами) надо проводить учения, чтобы в нужный момент потерявшийся не превратился в растерявшегося.
Хочу по полемизировать с вашим комментарием, несмотря на то, что прошло уже 3 года.
Привычку запихивать в имена файлов и каталогов спецсимволы и ненужную информацию культивировал сам Микрософт. Для этого у него есть как минимум 2 папки с названиями Program Files и Program Files (x86), куда по умолчанию устанавливаются все программы.
Манштейн в своих мемуарах наглядно описал, что в итоге получается у таких "полководцев":
Утерянные победы
1 танковая армия, планируя боевые действия своих сил..., установила на основании данных разведки, что продвижение ее танковых соединений в районе западнее Кривой Торец для проведения операции по охвату противника невозможно. Местность, перерезанная глубокими оврагами, была покрыта таким глубоким снегом, что использование наших танковых сил было исключено..., а противник со своей стороны в ночь на 11 февраля прорвался крупными танковыми силами через якобы непроходимую местность западнее Кривого Торца до Гришино. Этот эпизод еще раз показал, что западные понятия о непроходимости местности для русских имеют лишь очень ограниченное значение.
В вашей подборке не хватает новости об убийстве в СИЗО одного из арестованных топ-менеджеров Роскосмоса. Она многое говорит о ситуации в этой организации.
В комментарии необязательно должна быть какая-то уникальная информация. На пачке соли написано "Соль", чтобы не нужно было открывать и пробовать, чтобы узнать, что же там такое. Когда комментарий соответствует коду, это подтверждает, что код написан правильно, так как было задумано.
Чтобы сделать то, что вы написали, интерфейс менять не следует.
Если контрибьютор все же тронет интерфейс, то ему придется поменять все имеющиеся реализации этого интерфейса, а их там из коробки уже 2. И когда он полезет менять реализацию одного из них, который Default, то увидит, что особая обработка групп там уже предусмотрена. Так что этот вариант даже рассматривать не стоит.
Так посмотрите, какое там соотношение кода и комментариев. Подозреваю, что патч без комментов или ломающий соответствие комментов коду просто не заапрувят.
https://chromium.googlesource.com/chromium/src.git/+/refs/tags/77.0.3846.1/chrome/common/channel_info.h
Сейчас вам посоветуют всю эту информацию запихнуть в названия функций и переменных.
Все найдут, когда на продакшене один из 100 тысяч клиентов чужие счета увидит в личном кабинете.
Если найдется настолько смелый разработчик, кто готов проигнорировать мои комментарии, то у него все равно ничего не получится. Любой другой разработчик предпочтет придерживаться правил, описанных в моих комментариях к интерфейсу, чем читать чей-то ровнокод в каждой его реализации. Ему просто выставят дефект, что код поломал контракт абстракции, и заставят переделывать.
Плюс еще про многопоточность, предполагается ли использование экземпляра данного класса в разных потоках.
Я говорю «мой» не только о коде, который я написал, но и о коде, который прошел мое ревью.
Код, где в комментариях не описано, что он делает и по каким контрактам, или описание не соответствует содержанию, мое ревью не пройдет.
Если мой комментарий не соответствует коду, то это не комментарий устарел, а код неправильный.
Обращаю внимание на слово "мой" желающим со мной поспорить.
Не пробовал. Надо будет посмотреть на досуге, что это вообще за штука. До сих пор как-то не приходилось использовать.
Смотря с чем сравнивать. По сравнению с тем, как начинает тормозить вся JVM, когда не может найти непрерывную область памяти нужного размера, запись на диск просто летает. Потом, можно же эти файлы на каком-нибудь SSD или даже RAM-диске разместить.
Я для таких случаев написал свой ByteStream. Пока размер буфера не превышает определенного порога, все пишется в byte[]. Как только данные выходят за эти пределы, то они сбрасываются во временный файл. Соответственно, метод getInputStream() в 1-м случае вернет ByteArrayInputStream, во 2-м — FileInputStream, обернутый в BufferedInputStream.
Вся эта схема невозможна без обналички. Почти наверняка выследили их как раз при помощи финмониторинга. При этом тема задержания обналичников в тексте не раскрыта. Не исключено, что канал специально сохранили, чтобы в следующий раз не копаться в логах интернет-провайдеров, а спокойно взять очередных «шибко умных» без шума и пыли.
Поправьте, пожалуйста, меня, если я не прав. Предъявлять какие-то претензии можно только к тому, что регулируется законом, или к тому, за что мы платим деньги. За поиск в Яндексе мы денег не платим, закона, описывающего, как должен работать поиск, нет. Какие у нас могут быть к Яндексу претензии?
Гугл нагибали за то, что он делает на телефонах, за которые люди заплатили деньги. Он нарушил права покупателей смартфонов и производителей ПО.
Для пользователей, «разрабатывающих конкурирующие сервисы для поиска новостроек», у Яндекса есть услуга распространения рекламы, заплатив за которую, можно предъявлять обоснованные требования.
Несколько лет назад один человек в Лосином острове заблудился. При себе у него был работающий мобильный телефон и карта местности. На его поиски выслали вертолет и вышли несколько сот человек. Однако мужчина за ночь замерз насмерть, хотя был всего лишь конец сентября.
Это я к тому, что никакие технические средства не спасут потерявшегося человека без активного и грамотного содействия с его стороны. Прежде всего надо научить самих людей тому, как правильно вести себя в таких условиях. Надо обеспечить, чтобы каждый человек был хотя бы поверхностно ознакомлен с тактикой спасения в подобных ситуациях. С теми, кто находится в группе риска (например, с детьми, проживающими рядом с лесными массивами) надо проводить учения, чтобы в нужный момент потерявшийся не превратился в растерявшегося.
Хочу по полемизировать с вашим комментарием, несмотря на то, что прошло уже 3 года.
Привычку запихивать в имена файлов и каталогов спецсимволы и ненужную информацию культивировал сам Микрософт. Для этого у него есть как минимум 2 папки с названиями Program Files и Program Files (x86), куда по умолчанию устанавливаются все программы.
Смотрите, похоже, с годами тоже аналогичная проблема проявляется
Что неужели до сих пор так? Я тоже делал свою реализацию, только лет 10 назад.
Манштейн в своих мемуарах наглядно описал, что в итоге получается у таких "полководцев":
В вашей подборке не хватает новости об убийстве в СИЗО одного из арестованных топ-менеджеров Роскосмоса. Она многое говорит о ситуации в этой организации.