Одесса: 5°С (вода 9°С)
Киев: 4°С
Львов: 5°С

Тема: Экология Программирования

Ответить в теме
Показано с 1 по 5 из 5
  1. Вверх #1
    Частый гость Аватар для AmonRa
    Пол
    Мужской
    Адрес
    ...есть город, который я вижу во сне...
    Сообщений
    701
    Репутация
    26

    По умолчанию Экология Программирования

    Экология Программирования
    Борьба с исчерпанием глобальных ресурсов


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

    Я терпеливо следил за дискуссиями на эту тему, пока один ужасающий факт не привлек мое внимание.

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

    Но, как я недавно понял, существует один важный ресурс, который, во-первых, является глобальным, а во-вторых, совершенно невосполнимым!

    Я говорю о глобально уникальных идентификаторах, или UUID (также известных как GUID, CLSID, IID и др.). Как следует из документации, каждое обращение к функции WinAPI UuidCreate возвращает уникальный идентификатор! Более того, этот способ настоятельно рекомендуется к применению всякий раз, как в приложении нужно что-либо уникальное. Но ведь очевидно, что все эти идентификаторы берутся из конечного набора! И каждый вызов UuidCreate уменьшает, таким образом, количество идентификаторов, доступных всем приложениям! Стоит также заметить, что не существует никакого способа сдать использованный идентификатор обратно, когда он больше не нужен.

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

    Я не против использования этой технологии вообще. Но многие программисты игнорируют те строки документации по функции CoCreateGuid, в которых рекомендуется использовать ее для получения постоянных идентификаторов в распределенной вычислительной среде:

    Use the CoCreateGuid function when you need an absolutely unique number that you will use as a persistent identifier in a distributed environment.

    Я вижу несколько решений данной проблемы. Скорее всего, идеально было бы сделать функцию UuidCreate платной. Даже цены в 1 доллар за 1000 GUID было бы достаточно для того, чтобы разработчики задумались о количестве идентификаторов, потребляемых их приложениями. Но пока этот сервис остается бесплатным, я призываю программистов всего мира прекратить безответственную практику использования глобально уникальных идентификаторов для короткоживущих объектов, а также для настольных приложений, в которых можно использовать альтернативные методики получения уникальных идентификаторов (например, последовательности целых чисел).

    Я также собираюсь обратиться к компании Microsoft c требованием реализовать функцию UuidDestroy, которая позволит возвращать обратно ставшие ненужными уникальные идентификаторы (я даже боюсь представить это бесчисленное множество уже безвозвратно утерянных GUID!).

    Если вы поддерживаете эту акцию, то напишите, пожалуйста, письмо в штаб-квартиру Microsoft в Редмонде по следующему адресу:

    Microsoft Corporation
    One Microsoft Way
    Redmond, WA 98052-6399
    USA

    (c) http://www.rsdn.ru/article/mag/200301/GUIDEcology.xml
    Wild White Water


  2. Вверх #2
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    1,029
    Репутация
    249
    бред полнейший

  3. Вверх #3
    Частый гость Аватар для AmonRa
    Пол
    Мужской
    Адрес
    ...есть город, который я вижу во сне...
    Сообщений
    701
    Репутация
    26
    Еще бы не бред
    Но ты первый кто это сказал вслух
    Wild White Water

  4. Вверх #4
    Дык... Недаром оно на RSDN в юморе лежит)))
    Не будите во мне Зверя, он и так не высыпается

  5. Вверх #5
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    1,029
    Репутация
    249
    предупреждать нада )


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения