My bad. Наивно предположил, что в RegisterItem происходит подписка на события объекта, и потом эти события передаются дальше с помощью ServiceStateChanged.
Как вы понимаете, это — не мой паттерн.
Кхм, и как ObservableCollection поможет отслеживать изменения объектов которые в ней содержатся? Она ведь сигнализирует только при изменении списка, но не его элементов.
При вычислении хэша необходимо, чтоб распределение было как можно более равномерным, и чтоб хеширующая функция учитывала максимальное кол-во информации из хешируемого значения. Допустим делитель будет не простым числом, а степенью двойки 2^p, тогда остатком от деления на такое число любого другого (L) будет p нижних битов L, что само по себе нехорошо, потому что верхние биты не принимают «участие» в результирующем хеше.
По этому поводу есть глава в «Introduction To Algorithms» Кормена.
Это уже б-м понятно, что код — отстой, а PVS Studio — клевый продукт. ;) Но было бы интересно прочесть статью/цикл статей о том, как запилить свой анализатор кода на коленке. Понятное дело, что никто не требует раскрывать свои ноухау, но хоть примерные наброски было бы намного интересней читать, чем статьи — от которых пахнет маркетингом за версту — с перечислением ошибок в продуктах.
Когда-то я говорил: «Саша, как там задачи?»,- пока ты педалил кандидатскую на работе. Потом ты уволился, a я неделю переписывал код из тучи if-ов и какой-то призрачной логики.
Отличная статья, спасибо.
Еще, мне кажется, стоит написать про нормальную форму Хомского, и приведение к ней грамматик из ненормальной формы. То есть, когда у нас есть NT -> NT1 NT2 NT3 — ненормальная, а нам надо NT -> NT1* NT2*
по поводу обновления с версии до версии, такой вариант — с поочередным накатываение всех патчей — адекватно оптимален с точки зрения разработки vs удобства применения. Да, в лоб, но зато меньше вероятности где-нибудь накосячить, плюс нет необходимости хранить (n * n -1)/2 патчей.
Как вы понимаете, это — не мой паттерн.
По этому поводу есть глава в «Introduction To Algorithms» Кормена.
Еще, мне кажется, стоит написать про нормальную форму Хомского, и приведение к ней грамматик из ненормальной формы. То есть, когда у нас есть NT -> NT1 NT2 NT3 — ненормальная, а нам надо NT -> NT1* NT2*
msdn.microsoft.com/en-us/library/aa286536.aspx
Но, «какбы», далековато от Эверста.
ru.wikipedia.org/wiki/Маттерхорн
Ну и сразу все стало на свои места.
Иначе не работает из за пути в виде file:///…