понедельник, 29 декабря 2014 г.

[prog.c++] Хороший доклад "Writing robust code"

Доклад "Writing robust code" от David Stone с "Meeting C++ 2014":

Что особенно здорово, так это хороший и неторопливый английский, так что даже я на слух почти все из доклада воспринимал (а вот с секцией вопросов уже было сложнее).

Значительная часть из того, что было рассказано в докладе было усвоено и неоднократно испробовано на практике еще много лет назад. В связи с этим вспоминается такая немного грустная история. В 2003-м нужно было реализовать библиотеку для сериализации и десериализации данных в одном самодельном протоколе передачи данных. Причем использовать ее должны были и мы на своей стороне, и заказчик на своей. Написал я эту библиотеку в соответствии со многими озвученными в докладе принципами (в частности, со строгой типизацией параметров путем введения новых типов данных), снабдил примерами, документаций и отослал заказчику. Заказчик поднял волну, мол что вы для такой простой операции, как парсинг и формирование маленьких PDU на ровном месте целую кучу классов и типов нагородили, да еще и с использованием STL-я в полный рост. Пришлось разработчика заказчика учить использованию библиотеки, а потом еще и на целую кучу тупых вопросов отвечать. Однако, за последующие 6 или 7 лет ее использования у заказчика не было ни одного бага, который бы породила данная библиотека. Зато там, где разработчики заказчика сами работали с сырыми данными, проблем хватало. А так как обычная их практика была свалить всю вину на нас, то разбираться с этими ошибками сначала приходилось нам. Иногда довольно в экстремальных условиях.

Так что в докладе очень правильные и работающие вещи рассказаны. Только вот культура многих разработчиков не позволяет им подняться выше голых указателей и strcpy(). Это неприятие нужно преодолевать, пусть даже это дорого обходится, на уровне разборок между менеджерами, включая топовых. Потом все окупается.

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