Default

[info]heeepi


КомуНиКликабельность

Еще один блог еще одного ненормального программиста


SOLID демотивация
Default
[info]heeepi

Нашел классные демотиваторы SOLID принципов.

Image001

Принцип единственности ответственности - На каждый объект должна быть возложена одна единственная ответственность.

Image002

Принцип открытости\закрытости - Программные сущности должны быть открыты для расширения, но закрыты для изменения.

Image003

Принцип подстановки Лисков - Объекты в программе могут быть заменены их наследниками без изменения свойств программы

Image004

Принцип изоляции интерфейса - Много специализированных интерфейсов лучше, чем один универсальный.

Image005

Принцип инверсии зависимостей - Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Image006

Posted via email from Комуникликабельность

  • Оставить комментарий
  • В избранное

Роман об управлении проектами.
Default
[info]heeepi

На одном дыхании прочитал «Deadline. Роман об управлении проектами» Тома ДеМарко. Читается легко и непринужденно. Полезно разнообразить техническую литературу и блоги такими книгами. По ходу чтения ловил себя на мысли что некоторые моменты уже подмечал в текущей работе. Другие были достаточно новы. В общем, чтение зря явно не прошло.

Posted via email from Комуникликабельность

  • Оставить комментарий
  • В избранное

Игрушка с генетическим алгоритмом
Default
[info]heeepi

Весь вечер играюсь в игрульку для гиков и видимо сумасшедших который я удачно подглядел на хабре. Суть в построении машины с помощью гинетического алгоритма. Прикольно смотреть и предсказывать в самом начале сколько примерно проедет тот или иной вариант мутаций и скрещивания.

Для 34 поколения большинство вариантов уже вполне приличненько ездят. Проблема пока только в том, чтобы взбираться в большие крутые горки. Видимо разработчик не предусмотрел что есть вообще вариант забраться так далеко.

До правдоподобности игрушке конечно далековато, но все равно прикольно и симпотично.

Posted via email from Комуникликабельность

  • Оставить комментарий
  • В избранное

Сводки с полей...
Default
[info]heeepi

Несколько забил на блог, пора исправляться. За последнее время у меня произошло несколько достаточно крупных событий которыми хотелось бы поделиться.

Номер раз. Съездил в столицу нашей славной родины на одно из самых значимых событий в области ИТ - Платформу  2011. Ощущения на «горячую голову» высказывать не стал, а теперь уже достаточно поздно о них говорить. Может еще выложу материал, только скорей свое видение, а не отчет о конференции.

Номер два. Сдал на этой же самой платформе экзамен на статус MCTS по WCF 4. Тут интересней, поскольку к экзамену практически не готовился и сдавал его по принципу «авось пронесет». Чувствую что повезло только раз, так что к следующим буду готовиться основательно.

Номер три. Читаю «Чистый код» Роберта Мартина (спасибо коллеге за бумажный вариант). Постигаю умные мысли, ругаюсь, протестую, в общем пропускаю текст сквозь призму собственного сознания.

Posted via email from Комуникликабельность

Метки:
  • Оставить комментарий
  • В избранное

Гимн офисного работника
Default
[info]heeepi

Comedy Club, Выпуск №264


Расширения для chrome
Default
[info]heeepi

Когда Chrome только появился, и поразил меня своей скоростью, я как то не задумывался о том, нужны ли мне расширения. Браузер меня полностью устраивал (ну за исключением того, что я не мог его поставить через проксю). Со временем ситуация не изменилась, браузер меня полностью устраивает. Поэтому собственно я не понимаю как меня занесло на страничку с расширениями. Последний раз  заходил туда наверное с год назад. Даже устанавливать тогда расширения было достаточно непросто.

Сейчас, зайдя в галерею, удивился обилию расширений. Сразу же поставил себе несколько (не буду говорить какие, дабы лишний раз не рекламировать, если хотите знать – спрашивайте лично). Что меня поразило, что chrome стал очень хорошо поддерживать расширения. Это касается и их установки и их работы. В принципе, я покрыл несколько своих потребностей, которые были у меня на работе, например, уведомлялку о почте на Gmail или отображение RSS лент. Помимо этого, нашел плагин, который хотел было уже писать сам – iReader (черт, все таки получилась реклама), который для некоторых статей, блогов и прочего может отображать основную статью крупно, без всякой рекламы и т.д. (привет версиям для печати) читать такую статью становится невероятно приятно.

Posted via email from Комуникликабельность

  • Оставить комментарий
  • В избранное

Примеры использования технологий MS
Default
[info]heeepi

В блоге J.D. Meier's Blog появились коллекции примеров кода  а также сценариев применения для различных технологий MS: ADO.NET, ASP.NET, Silverlight, WCF, Windows Azure, Windows Phone. Примеры кода ссылаются на MSDN. Очень удобная штука, если нужно быстро применить какой то типовой сценарий использования технологии, да и выбрать технологию по области ее применения, а не как обычно «да в принципе подойдет».

Для меня интересной показалась коллекция ссылок на примеры кода по WCF. В принципе есть все что нужно для быстрой разработки «более сложного» функционала сервисов, как то прикручивание безопасности или транзакционности.

Posted via email from Комуникликабельность

Метки: ,
  • Оставить комментарий
  • В избранное

WCF и Streamed
Default
[info]heeepi

Прихожу постепенно к мысли, что WCF просто напросто не предназначен для того, чтобы передавать большие куски данных. А Streamed, который в нем реализован – это просто костыль, который покрывает часть задач, но не ложится в общую идею WCF. Вообще, иногда складывается впечатление, что в WCF все построено по «кусочному принципу». Функционал реализован мелкими кусками, как будто разработчики пытались «растянуть» архитектуру на как можно больший пласт задач, а она (архитектура) в силу технических ограничений никак не позволяла это сделать. Вот пример, того, что WCF не покрывает ряд задач аутентификации при Streamed режиме. Я кстати об этом же писал недавно.

Какие варианты потокового доступа к данным и раздачи контента есть еще?..

Posted via email from Комуникликабельность

  • Оставить комментарий
  • В избранное

Прикольные 404 страницы
Default
[info]heeepi

Сегодня случайно ткнул куда то не туда, и нарвался на вот такую веселую 404 страничку.

Сразу вспомнил 404 страницу с каким то скриптом, который печатал фразы. Создавалось впечатление что веб-сервер разговаривает с тобой. Кто еще помнит прикольные 404 ошибки?

Posted via email from Комуникликабельность

  • Оставить комментарий
  • В избранное

Ищем ошибки WCF сервиса
Default
[info]heeepi

Последнее время стал отслеживать всякие форумы и другие хранилища знаний в области WCF, вроде такой http://www.gotdotnet.ru/forums/19/. Удивился тому, что люди просто напросто не знают как выяснить какая ошибка мешает работе WCF сервиса. Причем проблема скорей не в том, что люди не хотят выяснить ошибку, они просто не знают как это сделать. Поэтому сейчас я буду играть в детектива, говорить «элементарно, Ватсон», пуская круги дыма из трубки … В общем сейчас расскажу простые вещи, которые можно сделать, чтобы выяснить в чем ошибка.

Включаем отображение ошибок для IIS

Для asp.net разработчиков, да и для всех более менее адекватных разработчиков дело привычное и вроде бы понятно что делать – включить отображение ошибок. Значит добавляем в web.config следующие строчки:

<customErrors mode="RemoteOnly" />

Или

<customErrors mode="Off" />

И сразу все становится понятно:

Скажу еще, что отображение ошибок полезно в случае, когда сервис просто не запускается. Возможно из-за ошибок, связанных с компиляцией, правами доступа и еще 1000 ошибок, которые мешают нормальному запуску сервиса.

Включаем трассировку WCF

Подробней о трассировке WCF можете посмотреть тут. Как правило, долго сидеть с конфигураций не хочется. Прописывать здоровый кусок конфига дело неблагодарное. Благо, есть такая интереная утилитка, как WCF Service Configuration Editor. Вызывается она либо из меню Tools студии, либо из контекстного меню Solution Explorer на конфиге. Утилитка работает и вне контекста студии, так что можно использовать и там, где установить студию нельзя. Нас в данной утилите интересует раздел Diagnostics и его подраздел - Tracing.

Нас в большинстве случаев интересует две настройки:

1.       Непосредственно включение Tracing.

2.       Log file – файл, куда будет писаться лог.

Файлик svclog, который будет записан в результате работы сервиса содержит детальную информацию о работе сервиса. При этом, его можно открыть, используя достаточно удобный просмотрщик (регистрируется по умолчанию для расширения svclog).

Для файлов трейса есть интересная особенность, они находятся в монопольном доступе у службы, поэтому прежде, чем их просматривать с помощью утилиты нужно закрыть хост сервиса. В случае с IIS – перезапустить группу приложений, что в некоторых случаях невозможно.

Отладка

Если перечисленные выше простые способы не помогают, приходится использовать тяжелую артиллерию, в данном случае – отладку. Однако и она не всегда помогает. Пример тому – ошибка в недрах WCF, когда просто напросто невозможно подхватить ошибку отладчиком. Такое случается как правило, когда переписываются стандартная инфраструктура WCF, как то свой сериализатор, или система аутентификации. В данных случаях бывает полезным включение трейсов.

В итоге

Приведенные способы выяснения причины неполадки вашего сервиса прекрасно сочетаются друг с другом и могут быть использованы совместено. Все зависит от их разумного использования.

Удачной отладки!!! ;)

Posted via email from Комуникликабельность

  • Оставить комментарий
  • В избранное