Welcome to TechNet Blogs Sign in | Join | Help

"Литературное" Вступление

Первая и единственная "литературная" заметка. Информация по существу начинается с раздела "Для Затравки".

 

О себе

В ответ на вопросы о моей карьере (Как тебя так угораздило? :) я обычно отшучиваюсь:  обмишурился, дескать, в 1978 году, когда, будучи студентом МАИ, написал свою первую программу (на перфокартах, разумеется) и с тех пор "подсел на иглу". Нет большего пространства для творчества, чем цифровой мир. Где все ограничивается только пределами нашей фантазии, полетом мысли. Где не нужно тратить силы и время для добывания холстов и красок, как художник, или бегать по спекулянтам в поисках нужной микросхемы, как радиолюбитель, или разгружать по ночам вагоны, чтобы купить "фирменные" струны для самодельных гитар, как музыкант известного на весь микрорайон вокально-инсрументальный ансамбля (в 70-х так было положено называть свою рок-группу :)

 

Позвольте, странный контекст получается. Среди таких возвышенных понятий как Искусство, Музыка, Полет Мысли, Творчество, слово Ремесленник похоже на оскорбление. За что ж я так себя, любимого?

 

О Промышленном Программировании

  • Вы программист на Майкрософте? Ооо! Стало быть, большой математик! Мехмат? Физтех?
  • Да нет, "от станка" мы, знаете ли. С математикой у нас так себе. То есть какого-нибудь революционного алгоритма видео компрессии от нас не дождутся.
  • Ха, так что же Вы тогда делаете на Майкрософте?
  • Дело в том, что "полет мысли", творчество, и.т.п. (см. первый абзац) занимает в промышленном производстве коммерческих программных продуктов очень небольшое (не по важности конечно, а по объему вложенных средств и времени) место. Все остальное – это технологические процессы, профессиональные навыки, огромное количество мелких деталей. Одним словом, РЕМЕСЛО.

Об этих Заметках

 

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

 

В этих заметках я собираюсь, в абсолютно неструктурированной форме, делиться теми маленькими кусочками знания и 20+ летнего опыта работы в индустрии, которые мне и позволяют делать то, что я умею делать – участвовать в промышленном производстве (Making Stuff That Works). Поэтому я пишу слово Ремесленник с большой буквы.

 

О Читателях этих Заметок

 

Кому это может быть интересно? TechNet.com ориентирован на IT-Pro, в отличии от MSDN.com что для программистов-разработчиков. Но мы-то с Вами знаем, что в России IT специалист, который вообще не умеет программировать, еще долго будет нонсенс. Поэтому есть надежда, что "маленькие хитрости" из различных областей системного программирования могут быть не только интересны, но и практически полезны тем, кто понимает роль маленьких деталей и цену маленьких оплошностей.

 

Как положено, Об Ответственности (Disclaimer)

  • Всё опубликованное в этих заметках является личным мнением автора. Иначе говоря, я не имею права и не говорю от лица Майкрософт.
  • Вся информация в этих заметках предоставляется на правах КАК-ЕСТЬ (AS-IS), то-бишь: хотя я пишу то, что знаю и не пишу того, что "слышал, но забыл где", это не означает, что никогда и нигде не может быть никаких ошибок. Если Вы используете предоставленную информацию, то под свою ответственность.

Предположения и Соглашения

  • Предполагается, что читатели этих заметок уверенно владеют C/C++,  программированием для Microsoft Windows (разумеется), и (конечно же) без ума от C#.
  • Про русско-английскую смесь. Конечно же, я смеюсь вместе со всеми над Задорновским "Вам чиз наслайсать или целым писом", но также хорошо помню свои сложности, когда впервые увидел полностью русифицированный Windows-98. Поэтому многие технические термины будут использоваться в англоязычной транскрипции.
  • О вреде и "пользе" курения. В стародавние времена, в советских НИИ, курилка не только наносила вред здоровью, но и была местом естественного обмена технической информацией: "Ух, я только что чего нарыл..!!" Поэтому вместо распространенной в Америке формы предоставления информации "Did you know that…" (А Вы знали что...) мне больше нравится форма "I didnt know that.." (я не знал, что..)

Для Затравки

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

 

Компилятор C++ из Visual Studio 2005 предоставляет вложенному классу прямой доступ к protected and private members класса объемлющего. Поэтому вложенный класс больше не обязательно объявлять как friend.

class Outer

{

   void   usedByHelperOnly();

   void   onHelperReleased();

 

 public:

   Outer()      { .. }

   ~Outer()     { .. }

 

   class Helper

   {

       Outer&  _rHost;

 

     public:

       Helper(Outer& host) : _rHost(host)            { ; }

       ~Helper()            { _rHost.onHelperReleased(); }

 

       void    DoTheJob()   { _rHost.usedByHelperOnly(); }

   };

 

   friend class Helper;  // Not required in Visual Studio 2005

 

}; // Outer

 

Есть мнение :) что интерфейс IMalloc, полученный из CoGetMalloc(), "тяжелее" чем "чистый" Win32 HeapAlloc. На самом деле реальной разницы в скорости нет.

IMalloc* pMalloc = NULL;

HRESULT  hr      = CoGetMalloc(MEMCTX_TASK, &pMalloc);

 

if( FAILED(hr) ){ .. }

 

После получения интерфейса,

pData = pMalloc->Alloc(123456);

это тоже самое что и

pData = HeapAlloc(GetProcessHeap(), 0, 123456);

 

 

Published Monday, May 15, 2006 9:34 PM by Konstantin Isakov

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Добро пожаловать (новые блоггеры)

Thursday, May 18, 2006 9:07 AM by Microsoft изнутри по-русски
Добрый день!
Спасибо за ванимение к этому ресурсу! Признаюсь честно, что именно ваше внимание и мотивирует...

# re: "Литературное" Вступление

Friday, May 26, 2006 2:19 AM by Yaser
Плохо... Расстраиваете Вы меня, товарищь Ремесленник. Назвался ремесленником - и так всё понятно, но говорить о том, что только софтописание - ремесло не стоит. Поверьте, есть компании в которых софт пишут "с душой".

# re: "Литературное" Вступление

Friday, May 26, 2006 4:48 PM by Konstantin Isakov
Yaser, спасибо за Ваше внимание к этому ресурсу. Но право же, расстраиваться не нужно. По моим субъективным наблюдениям, нужно очень любить "софтописание", чтобы потратить десятилетия на освоение этого нелегкого Ремесла.

# re: "Литературное" Вступление

Sunday, May 28, 2006 5:10 PM by bonza
А мне кажется, что не важна компания, в которой работает человек, а важно то, кто в ней работает. И если мне не дано быть творцом, но я умею работать, то я буду называть себя Ремесленником. Но это не значит, что я не могу вкладывать в свою работу душу.
PS А еще мне кажется, что ремесленники важны и нужны не меньше творцов

# re: "Литературное" Вступление

Tuesday, June 06, 2006 12:49 AM by Alexander Rybin
Думаю, не совсем верно говорить "не дано быть творцом". Не стоит забывать, что и ремесленники создают (творят) новые вещи (являясь в этом смысле творцом), будь то гвозди, подковы или методы от Винды. ;)

Я правильно помню, что и Создатель творил Вселенную размеренно в течение недели, а не в воскресенье вечером?

# re: "Литературное" Вступление

Saturday, December 02, 2006 3:04 AM by Alex Shubert

Да, все верно. В начинающих программерах такой подход часто вызывает бунт души.

Leave a Comment

(required) 
required 
(required) 
 
Page view tracker