07.01.2014
|
|
|
Приятная новость: в Clang сделали полную поддержку C++1Y. Вообще, в компиляторе довольно много интересных изменений, начиная с поддержки дополнительных диагностических сообщений, заканчивая режимом совместимости с компилятором из Visual Studio. Подробности тут.
|
05.01.2014
|
|
|
Т.к. считается, что принцип открытости-закрытости был введен Бертраном Мейером, а позже несколько перефразирован и конкретизирован Бобом Мартином, то для лучшего понимания принципа стоит рассмотреть, как он описывался в обоих источниках: у Мейера и у Мартина.
Начнем с рассмотрения принципа в книге Мейера "Объектно-ориентированное конструирование программных систем": [q]Открыт-Закрыт Любой метод модульной декомпозиции должен удовлетворять принципу семафора: Открыт-Закрыт: Принцип Открыт-Закрыт Модули должны иметь возможность быть как открытыми, так и закрытыми. Противоречие является лишь кажущимся, поскольку термины соответствуют разным целевым установкам: [list] Модуль называют открытым, если он еще доступен для расширения. Например, имеется возможность расширить множество операций в нем или добавить поля к его структурам данных. Модуль называют закрытым, если он доступен для использования другими модулями. Это означает... |
08.12.2013
|
|
|
http://adamralph.com/2013/12/06/ndc-diary-day-3/
Имхо, какой то хоть и полезный но хлам. |
01.01.2014
|
|
|
Здравствуйте, Аноним, Вы писали:
А>Nunit А>Есть вот такой метод для теста А>Как лучше, оставить как есть или сделать через параметры и указывать все значения init1, do1, 0, 1 — через аттрибуты А>Насколько это удобно будет отлаживать во 2м случае ? Конечно здесь явно напрашиваются параметризованные тесты, ведь по сути, здесь не один тест, а два.
Основной плюс параметризованных тестов в том, что это четко показывает, что у нас не один тест, а два. Ведь существуют правила написания юнит-тестов... |
29.12.2013
|
|
|
Здравствуйте, IncremenTop, Вы писали:
ST>> здравый смысл говорит, что чистая функция будет проще с точки зрения всех сложностей, поскольку все, что идет на вход и является результатом является очевидным! IT>С точки зрения сложности, то функция в которой или для которой создается объект и работающая с ним без интерфейса — это ад и израиль. Это не гибко, не читаемо, трудно поддерживается. Хм... Я понимаю, что мы здесь теряем контекст рассуждения, но все небезызвестные ОО товарищи (Мейер, Фаулер, Эванс, Сииман) считают, что вводить интерфейсы и полиморфное поведение нужно лишь тогда, когда это требуется. К тому же, "гибко" и "трудно поддерживается" всегда идут рука об руку; за гибкость всегда нужно платить сложностью, без этого ни как (см. Who Needs an Architect Файлера в качестве примера рассуждения на эту тему). Очень интересно, что отсутствие побочных эффектов рьяно популяризируется сторонниками ФП мира... |
13.12.2013
|
|
|
Здравствуйте, Dair, Вы писали:
D>Для меня загадка — современные алгоритмы шифрования (криптографии). Мат.аппарата не хватает ![]() D>На практическом уровне — public key/private key понятно, но чо там внутри — чисто магия. Да ладно, если говорить о принципах, то там же всё вообще тривиально. Вот смотри, предположим у нас есть функция y=exp(x); и соответственно обратная ей x=ln(y); Причём (и это ключевой момент) ln вычисляется намного дольше, чем exp. Кстати, это и для обычных exp и ln справедливо, а в асимметричной криптографии используется спец. вариант, в котором ln вычисляется годами... Теперь, при наличие пары таких функций, мы можем тривиально наладить защищённый канал. Вот предположим у нас есть два человека (1 и 2) с каждый стороны и ещё третий, прослушивающий канал. 1 и 2 генерируют по одному случайному числу k1 и k2. Затем считают от них p1=exp(k1) и p2=exp(k2). И отсылают друг другу. В итоге у первого есть k1 и p2, у второго k2 и p1, а у прослушивающего p1 и p2. |
28.11.2013
|
|
|
Сегодня Владимир Кочетков опубликовал на рсдн сообщение о смерти Макса Шеманарёва, ака McSeem2 http://www.rsdn.ru/forum/life/5377045.
|
09.04.2013
|
|
|
В выходные мы успешно мигрировали RSDN@Home с BLToolkit на linq2db. Было поправлено несколько не очень серьезных, но неприятных ошибок. В итоге полет нормальный, так что всем рекомендую как минимум новые проекты начинать на linq2db, и, по возможности мигрировать старые.
Основные исправления заключаются в смене неймспейсов и переименовании части атрибутов для разметки маппинга. Изменений в запросах не понадобилось. На очереди rsdn.ru ![]() |
14.09.2012
|
|
|
Описание первого взгляда на Windows 8
|
17.09.2012
|
|
|
http://msdn.microsoft.com/en-US/roslyn
New C# Language Features Implemented Since June 2012 CTP: Collection initializers Extern aliases Expression trees Multi-dimensional arrays Nullable types Object initializers Type forwarders Unsafe code (except fixed-size buffers) New VB Language Features Implemented Since June 2012 CTP: Array literals Collection initializers External method declarations (Declare) Handles clauses Late-binding Nullable types Object initializers Operator overloading ParamArray parameters Partial methods Shared constructors User-defined conversions With statements XML literals |