Наконец-то я могу поделиться тем, чему уже давно радуюсь сам: Google
открывает исходники Protocol Buffers! Что это и почему надо радоваться? Это
простой и удобный способ обмена данными. Можно сказать, альтернатива XML, но
гораздо менее амбициозная и (поэтому) более быстрая и компактная. Далее -
перевод отрывка
анонса в блоге Open Source at Google и пример использования.
Protocol Buffers позволяют описывать простые структуры данных на специальном
языке, который затем компилируется в классы, представляющие эти структуры.
Вместе с классами идёт оптимизированный код их сериализации в компактный формат
представления. А лучше всего то, что доступ к данным максимально упрощён: для
доступа к каждому полю у класса имеются соответствующие методы "get" и "set", а
для сериализации объекта в массив байтов или поток ввода/вывода нужно сделать
всего один вызов.
Определение простого объекта:
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
Пример C++ кода:
Person person;
person.set_name("John Doe");
person.set_id(1234);
person.set_email("jdoe @example.com");
fstream output("myfile", ios::out | ios::binary);
person.SerializeToOstream(&output);
И примерно то же самое на Python:
import addressbook_pb2
person = addressbook_pb2.Person()
person.id = 1234
person.name = "John Doe"
person.email = "jdoe @example.com"
proto_string = person.SerializeToString()
Итак, встречаем Protocol Buffers
(документация).
Автор:
http://rojer.habrahabr.ru/
Тестирование параллельного программного обеспечения представляет собой более
сложную задачу по сравнению с тестированием последовательной программы. Программист
должен знать о подводных камнях при тестировании параллельного кода, имеющихся
методологиях и инструментарии.
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее
реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности,
достоинства и недостатки.