вторник, 23 ноября 2010 г.

Какими API я владею?

Это перевод What APIs do I own? Автор: Майкл Каплан.

Вчера в комментарии к моему посту о SHAnsiToUnicode/SHUnicodeToAnsi Rosyna задала мне интересный вопрос:
Это, вообще-то, поднимает интересный вопрос. Если кто-то работает в одной группе разработчиков в MS и видит проблему в коде другой группы. И эта проблема влияет на их код, то могут ли они исправить код этой другой группы?
Вообще говоря, люди не изменяют напрямую код других групп. Но вы можете поработать с ними вместе, предоставить отзывы, своё мнение и опыт, а также помощь.

Бывают и исключения, но, по большому счёту, вещи работают именно так.

Внутри группы люди, чтобы помочь исправить баг и сбалансировать нагрузку, часто работают с кодом, который принадлежит другому человеку - мы все работаем в довольно кооперативной обстановке :-)
И когда ты работаешь в такой группе в MS, то как много там кода, который является твоей (личной) ответственностью? Одна какая-то DLL? Несколько функций в DLL? Или набор DLL одного "жанра"?
Это зависит от разработчика, группы, сложности кода и опыта. Я могу ответить только за себя, что я и попробую сделать сейчас :-)

Мне принадлежат такие API (и я знаю людей, которые владеют большим объёмом, и людей, которые владеют меньшим):
  • CompareStringW
  • CompareStringA
  • LCMapStringW
  • LCMapStringA
  • GetNLSVersion
  • IsNLSDefinedString
  • FoldStringW <--- ну, скучные 2/5 от её
  • FoldStringA <--- ну, скучные 2/5 от её
  • GetStringTypeA
  • GetStringTypeW
  • GetStringTypeEx
Плюс, некоторые, которыми я формально не владею, но де-факто они мои, потому что являются тонкими обёртками вокруг моих функций, т.е. их функциональность на 100% задаётся мной - это, к примеру, lstrcmpW, CharUpperW, CharNextW и т.д.

Плюс, несколько новых API, о которых я поговорю, когда выйдет бета 2 Longhorn:
  • ************
  • ********************
  • ***************
  • ***************
  • *************
  • ***************
  • ********************
  • ***************
(Я добавил несколько лишних звёздочек, чтобы затруднить угадывание. Извините!)

Плюс утилиты и библиотеки:
  • MSLU (a.k.a. unicows.dll, Microsoft Layer for Unicode для систем Windows 95, 98 и Me)
  • MSKLC (Microsoft Keyboard Layout Creator)
  • *************************
Плюс управляемые эквиваленты:
  • Класс CompareInfo и несколько свойств и методов в нём
  • Класс Sortkey и несколько свойств и методов в нём
  • TextInfo <--- ну, небольшая и наименее интересная его часть!
Плюс несколько кусочков инфраструктуры (т.е. к примеру, я являюсь разработчиком клавиатурных раскладок Windows, хотя фактическим владельцем является поставщик данных; я просто вношу данные в систему и упаковываю их в установщик).

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

И я участвую во всяких Unicode вещах, иногда как альтернативный представитель, а иной раз и как просто технический участник...

Вот такая моя жизнь :-)

This post brought to you by "の" (U+306e, a.k.a. HIRAGANA LETTER NO)

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.