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

Одна из самых показательных ситуаций для оценки взаимодействия заказчик-исполнитель — ремонт в квартире. Отличие от услуг, скажем, парикмахера — в отношении к большим суммам денег, а это очень заметно сказывается на остроте восприятия.

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

Прочитать остальное »

Comments View Comments

Материалы можно скачать здесь. Там есть и слайды и исходники демо-примеров.

Что показано в примерах:
1. Использование Shared Views для генерации типовых интерфейсов на основе метаданных моделей
2. ControllerFactory, который умеет запускать generic-контроллеры
3. Расширение ViewEngine, которое позволяет создавать и переопределять виртуальные View-parts


Список интересных мест в исходниках, с которых стоит начать их изучение:

SharedViews-and-TemplateHelpers

Контроллеры:
\Controllers\DictionaryColorsController.cs, DictionaryDepartmentsController.cs

Сами shared views:
\Views\Shared\ListSelect.cshtml, Update.cshtml

Template Helper для таблиц:
\Views\Shared\DisplayTemplates\Table.cshtml

Метаданные для объектов:
\Models\Color.cs, Department.cs



GenericControllers

Сам generic-контроллер:
\Controllers\DictionaryController.cs

Регистрация generic-контроллера и маппинг моделей:
\Global.asax.cs, строки 28-30

Фабрика generic-контроллеров:
\GenericControllerUtil\GenericControllerFactory.cs

Регистрация фабрики для поддержки generic-контроллеров:
\Global.asax.cs, строка 39

Расширение ViewEngine для работы виртуальных View:
\GenericControllerUtil\CustomViewLocationsViewEngine.cs

Сами виртуальные View:
\Views\DictionaryController`1\Color\Footer.cshtml

Регистрация расширения ViewEngine для поддержки виртуальных функций:
\Global.asax.cs, строка 41

Comments View Comments

25 марта 2011 года в Челябинске пройдет конференция .NET разработчиков.

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

Вход свободный. После регистрации.

Сайт: http://www.dotnetconf.ru/
Доклады: http://www.dotnetconf.ru/Discussion
Регистрация: http://www.dotnetconf.ru/Registration

Для тех, кто сомневается, стоит ли выступать на конференциях: http://blog.byndyu.ru/2011/02/blog-post.html

Tags: , ,

Comments View Comments

В мире программистов существует множество разных холиваров: «open source или закрытый код?», «гибкость (agile) или дисциплина?», «метрики или интуиция?», «процесс или продукт?», «творчество или формализм?», и т.д. Сторонники всех этих теорий всегда находят примеры того, что их сторона лучше, чем другая. Из этого следует, что все они правы, но по-своему, и в реальной жизни нужен компромисс и умение совмещать на первый взгляд противоположные подходы, в зависимости от ситуации — условий проекта, характера и опыта программистов, и т.д. Именно эта идея, высказанная в предисловии Томом ДеМарко и убедила меня купить эту книгу и дочитать ее до конца.

Но, видимо, после такого предисловия я ожидал, что в книге сразу будут даваться конкретные решения, а при чтении первой части у меня очень часто возникал вопрос «и это все?», после которого хотелось закрыть книгу. Пожалуй, до раздела с анализом и выводами я дочитал только лишь потому, что автор подготовил меня к такому развитию событий во введении, и пообещал все-таки сделать свой анализ.

Кроме освящения и анализа различных холиваров, в этой книге упоминается еще одна правильная мысль: проблемы, стоящие перед программистами, по своей сути — не новы, и, как следствие, те или иные споры и решения можно найти и в других областях, решающих задачи. Эта же идея, кстати, есть и у М. и Т. Поппендик в их «Бережливом производстве ПО».

Креативное программирование 2.0 на озоне.

Tags: ,

Comments View Comments

Опубликовал один музыкальный черновик http://vk.cc/7c0XM — буду рад услышать первые мысли, пришедшие после прослушивания.

Tags:

Comments View Comments

В продолжение предыдущей теоретический темы про ActionScheme-driven Development — пример реализации такого подхода к разработке. Вообще, сам подход не зависит от языка программирования или фреймворка, но здесь я буду приводить примеры с использованием ASP.NET MVC.

Для реализации такого подхода, когда есть отдельное описание схемы взаимодействия с пользователем и отдельное описание модели данных, можно вместо привычных контроллеров создавать их generic-версии. В паттерне MVC контроллеры (как и вьюшки) зависят от модели, и каждая связка Controller+View работает со своей моделью данных, в то время как их generic-версии будут зависеть от класса однотипных моделей.

Comments View Comments

Изначально это была обычная акустика, в которую я потом установил звукосниматель и выход на джек.

Прочитать остальное »

Tags:

Comments View Comments

Выделил в блоге отдельную категорию — разработка, и вынес ее в отдельный rss-фид: http://aivolkov.ru/feed/developers/

Тем, кому не интересно следить за всеми записями в блоге — могут переключиться на него.

Иконка в разделе контактов также предлагает на выбор один из двух фидов.

Если кому-то нужен фид для других категорий — предлагайте :)

Comments View Comments

Есть такой класс задач разработки ПО, главная цель которых — предоставить пользователю средство управления данными. Это различные корпоративные информационные системы (КИС, ERP) и прочие ИС (CRM, и т.п.). Именно о них я буду говорить далее. Назовем их, для краткости, ИС (информационные системы).

При разработке ИС все обязательно проходят через три этапа: разработка модели данных, разработка бизнес-логики, управляющей этими данными, и разработка интерфейса пользователя. Есть интересный процесс — Model-Driven Development (MDD), в котором утверждается, что определив модель данных все остальные этапы можно выполнить автоматически. Не все с этим соглашаются, так как это утверждение редко дополняется другим немаловажным моментом: это действительно так, но только в некоторых случаях, которые нужно еще уметь отличать от всех остальных случаев. Кроме того, фраза «выполнены автоматически» еще не означает, что больше не нужны программисты интерфейсов и бизнес логики — просто их задача немного видоизменяется, и цель этого изменения — скорость и цена разработки. И если к этому подойти с умом — можно это сделать даже не в ущерб качеству, как можно было бы предположить, зная истину «speed/quality/cost: choose two».

Обычно все примеры, связанные с MDD, содержат достаточно простые схемы, и может показаться, что это применимо только для простых админских страничек, как многие и воспринимают, например, ASP.NET Dynamic Data. Вот что, на мой взгляд, очень важно при разработке реальных приложений: возможность задавать схемы действий пользователя. Именно это позволит перейти от простых админских приложений, которые только и могут, что редактировать таблицы базы данных, к более серьезным проектам.

Comments View Comments

В очередной раз посмотрев фильм с так сильно мешающими мне низкочастотными искажениями звука (тут или тут — на 1, 17 и 23 секундах русской дорожки есть, на английской — нет), хочу написать подробно, что я об этом думаю. Если в результате хотя бы один будущий «релизер» задумается перед тем как портить звуковую дорожку, и сделает «релиз» не испортив ее (звуковую дорожку), — значит я достигну своей цели.

Начну с видео-части, потом перейду к проблеме звука.

Прочитать остальное »

Tags: , , , ,

Comments View Comments

Noncommercial Attribution license