По каким параметрам Вы оцениваете сложность алгоритма а) в случае большого дерева if- и б) в случае применения шаблона? В статье говорится о уменьшении цикломатической сложности и сложности изменения и добавления новой логики.
Конечно, данный шаблон — это ведь не жесткая схема и он может быть модифицирован в зависимости от задачи и логики, нет универсальных рекомендаций. Например, В интерфейс IRule может быть добавлен метод IsMatch(), который проверяет правила на соответствия каким-либо условиям. Пример того, когда важен порядок выполнения правил — выпадает три шестерки — очки обнуляются. В этом случае, если после этого правила посчитаются еще и очки за единички, то результат будет ошибочным, поэтому изменения коснутся логики выбора лучшего правила. И мы должны убедиться в том, что после выполнения правила обнуления никакие другие не выполняются. Другой пример того, когда существуют зависимости между правилами — например, выпала единичка, то мы не можем засчитать две пары, а если выпала тройка, то можем. Ну и так далее, в зависимости от задачи.
А не интереснее ли поиграть в космическую mmorpg EVE-Online? Там вроде экономика самая настоящая. Огромные цепочки от сырья до конечного товара, торговля, движение ресурсов и товаров, альянсы, рынки, биржа, непредсказуемость, индивидуальность игроков. Было бы желание да время, к сожалению (а может быть и к счастью), меня не хватило на игру подобной сложности в свое время. На мой взгляд, в голосовании не хватает пункта «данная идея уже реализована/не нужна/итд».
Как жаль, что этого не было, когда я учился в Бауманке… А сейчас, работая, время можно выделить на самообразование только частично. Вот, кстати, очень нравится формат видеолекций-видеопрезентаций, как на tutsplus или pluralsight, да и других сайтах тоже, но очень здорово, когда материалы бесплатны и находятся в открытом доступе (по примеру ocw.mit.edu). Буду ждать с нетерпением материалов по highload.
Хороших статей очень мало, а они нужны как воздух, спасибо Вам за эту статью, будет здорово, если поделитесь опытом сокет-серверов. Может быть, Вы даже можете подсказать, что делать с такой проблемой — когда есть множество сокет-клиентов, которые должны непрерывно читать данные, а также всегда пересоединяться при обрыве соединения, и этих сокетов может быть очень много. И тут, с одной стороны, не хочется плодить потоки, а с другой — объединять обработку всех сокетов в один поток. Как найти золотую середину?
А есть ли ссылка на наукообразный двухколоночный pdf Вашей работы на Springerlink или еще где-нибудь? Охота почитать поподробнее, а то в свое время в универе был курс по динамическому программированию, но задачу коммивояжера, кроме как методом ветвей и границ, не упрощали.
А Вы бы ничего и не говорили, а попробовали, поработали на 1, 2, 3 курсе Бауманки, а потом уже писали, редкость или нет. Я не к тому, что это невозможно, но просто 95% на 1 и 2 курсе просто не имеют на это времени. Кто пробовал работать — обычно вылетали из вуза.
Как бывший студент МГТУ Баумана могу сказать, что закончил вуз и работаю за 45-50к в месяц, только в Питере (личные обстоятельства вынудили к переезду). Почему так мало, спросите вы? Просто сейчас на первом месте стоит опыт. Завершив один довольно ответственный проект в одиночку (от проектирования до внедрения на объекте) и находясь в начале создания основы для безкостыльной работы отдела (написание библиотек, отлаженная работа с системой контроля версий, тестирование и прочее — а ведь будучи студентом я практически этого не знал и не умел), могу сказать, что то, как мы себя оцениваем в начале пути, не всегда соотвестствует тому, что есть на самом деле. И реальная работа часто расходится с ожиданиями. Но это все прописные истины — для того, чтобы получать 150 и выше, надо приложить много труда и знаний. И постоянно учиться, учиться и учиться.
Я ведь прав, что при частом использовании структур, как в совете 16, с передачей их по ссылке, затраты на boxing-unboxing могут перекрыть многие микрооптимизации?
Dig that hole, forget the sun
And when at last the work is done
Don't sit down, it's time to dig another one
For long you live and high you fly
But only if you ride the tide
And balanced on the biggest wave
You race towards an early grave
(Пинк Флойд, «Breathe»)
1) Создает ли продукт условия для развития и личных достижений пользователя?
...»
Хабр хуже фейсбука? Не верю.
Но все равно с value типами надо быть внимательным.