суббота, 24 октября 2015 г.

[prog.idiotic] Незамутненные потоки чистого разума

Две строки такого мощного в своей альтернативной одаренности потока сознания, что не утащить к себе для увековечивания просто нельзя:

Программирование заключается в порождении абстракций. Использование готовых абстракций, скажем, абстракций предоставляемых языком программирования, это не программирование. В этом смысле, секретарша, форматирующая текст в M$word — тоже программистка, только специфика другая.

Upd. Сообщение с LOR-а выпилили, но оно было фееричным.

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

[prog.c++11] SObjectizer 5.5.9-rc1

Просто в качестве небольшого статус репорта: первый релиз-кандидат новой версии SObjectizer-а зафиксирован в виде тега. Список изменений описан в Wiki. Осталось подготовить пару-тройку презентаций и можно будет делать релиз. Надеюсь, к 29-му октября получится.

В версии 5.5.9 будет несколько "вкусных" вещей, вроде возможности использовать произвольные типы в качестве типов сообщений. Плюс к тому, благодаря стараниям Алексея Сырникова SObjectizer теперь собирается и проходит тесты на MacOS, т.е. сейчас список поддерживаемых платформ выглядит как Windows, Linux, FreeBSD и MacOS. Что не может не радовать :)

четверг, 22 октября 2015 г.

[prog.c++11] Опыт добавления трассировки в SO-5.5.9. Часть II. Variadic templates для упрощения рутины и уменьшения дублирования

Еще один очень простой пример использования возможностей современного C++ для сокращения объема "тупого" кода. На этот раз variadic templates были задействованы для того, чтобы упростить формирование похожих друг на друга строчек для последующего логирования.

среда, 21 октября 2015 г.

[prog.c++11] Опыт добавления трассировки в SO-5.5.9. Часть I. Шаблоны и наследование вместо дублирования

Добавил трассировку механизма доставки сообщений до агентов в версию 5.5.9. По ходу дела пришлось решить одну задачку, которая может быть интересна сама по себе, безотносительно SObjectizer. А именно: как создать две слегка отличающися версии одного кода, но без его дублирования и без потери его эффективности.

вторник, 20 октября 2015 г.

[prog.c++] Велосипедостроение: способ разделить интерфейс класса на публичную и приватную части

При написании библиотек иногда сталкиваешься с такой ситуацией: есть некий публичный класс X с набором публичных методов (т.е. этот класс видит и использует пользователь библиотеки). Есть набор других классов в этой библиотеке, не важно публичных или нет, которые так или иначе используют класс X. Пока они работают только с публичными методами класса X, то все хорошо. Но что делать, если им требуется получить доступ к закрытой части X?