25.01.2014
|
|||||||
Сергей, добрый день.
Что ж, я в принципе разобрался со всеми сложностями и напастями, что мне встречались и теперь могу рассказать, что же у меня получилось. На текущий момент, у меня готов первый вариант, из тех, что я описывал, т.е. практически всю работу на себя берет WCF (правда в .Net 4.5 работа так или иначе идет с использованием WIF, но от вас лично не потребует ни строчки кода для WIF — разве что вы начнете делать какие-то кастомные расширения). Для начала, чтобы у нас было единое понимание того, что происходит, позволю себе небольшое описание процесса (см. картинку): 0. Пользователь вводит свои UserName и Password (U/P) 1. Клиент пытается подключиться к WCF Service используя переданные ему U/P. Однако, инфраструктура WCF, анализирует указанные ей настройки и выясняет, что от нее требуется работать по Federation протоколу, а это значит, что вместо прямого обращения WCF Service... |
|||||||
23.12.2013
|
|||||||
Это загадка, которую я недавно публиковал на Twitter и давал коллегам на работе. Пока что её отгадал только один человек — Mads Torgersen (причём почти сразу).
Напишите валидную C# программу, которая содержит следующую последовательность токенов:
и которая остаётся валидной, если мы уберём токен null из этой последовательности, т.е. оставим
|
|||||||
29.12.2013
|
|||||||
Ссылка |
|||||||
26.12.2013
|
|||||||
Краткое описание ключевых возможностей нового языка программирования Rust. Основной акцент делается на особенностях Rust, которых не хватает многим системным и сетевым разработчикам в других языках программирования.
|
|||||||
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. |
|||||||