Pull to refresh
98
Karma
0
Rating
  • Followers 31
  • Following 21

Портрет Нуба

Website development *
Translation
Чем старше я становлюсь, тем менее важной становится запятая. Пусть читатель сам решает, где ему ставить паузы. — Elizabeth Clarkson Zwart


Примерно так я комментировал свой код двадцать лет назад (внимание, чуток драмы):

/*
 * Когда мы дойдем сюда, наша структура уже будет готова. 
 * К тому же, мы создали достаточно большой буфер, в который 
 * можно засунуть все входные данные, плюс есть немного места
 * про запас. Я не уверен, понадобится ли оно, но хуже не будет. 
 * Теперь нам надо обновить счетчик, предполагая, что клиент 
 * уже прочитал значение, но еще не использовал его. Сначала 
 * я хотел переложить обязанность инкремента на плечи вызывающего
 * кода. С другой стороны, это означает, что инкремент нужно делать всем, 
 * поэтому я решил, что будет лучше перенести его сюда. Но мы можем 
 * пересмотреть это решение позже, если вдруг кому-то из внешних функций 
 * захочется делать инкремент самому.
*/
counter++; // инкрементировать счетчик для потребляемого значения

/*
 * Теперь нужно просмотреть весь буфер с данными. Для этой 
 * операции нам понадобится еще один индекс, иначе перед 
 * выходом из функции мы потеряем начальное значение. 
 * Я хотел назвать эту переменную ‘ref’, потому что в некотором
 * смысле мы будем обращаться с ней как со ссылкой на данные. 
 * В конце концов я пришел к выводу, что самым лучшим  
 * названием для нее будет ‘pos’. Если что, я не против обсудить
 * это решение.
*/
char* pos = buffer; // начинаем наш обход данных

/*
Теперь, мы...
*/


Ну что, узнаете? А должны! Если быть предельно невежливым, весь код выше написал нуб. (Между прочим, если вы не знаете, кто такой нуб, значит вы — нуб).

Читать далее
Total votes 235: ↑163 and ↓72 +91
Views 6K
Comments 171

MS SQL 2008: Табличный тип с колонками вида sql_variant (пока?) несовместим с ADO.NET

.NET *
sql_variant — Тип данных, хранящий значения различных типов данных, поддерживаемых SQL Server.

Может быть полезен в каких-то обобщающих аспектах разрабатываемой БД. Например, в таблице настроек приложения или при ведении динамических свойств объекта.

Что касается ADO.NET, то здесь возможное удобство в том, что sql_variant можно передать из управляемого кода в хранимую процедуру, которая является обобщенной для передаваемого значения. Если требуется разветвлять логику согласно передаваемому значению, то фактический тип можно узнать через функцию SQL_VARIANT_PROPERTY.

На самом деле, проблем с единичным параметром нет. Проблемы возникают тогда, когда нужно передавать список параметров.

Как же без облома?
Total votes 4: ↑2 and ↓2 0
Views 4.5K
Comments 0

Подход к Online Analysis Processing

Programming *
По следам этого поста.

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

Постановка задачи и решение
Total votes 2: ↑2 and ↓0 +2
Views 3.1K
Comments 0

Тесты методов передачи списковых переменных в хранимую процедуру MS SQL 2008

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

Внутри описание (плюсы\минусы) методов передачи, таблица и график сравнения. Рассматриваются следующие методы передачи параметра:
  • Xml (Openxml)
  • Xml (Xquery)
  • Строка
  • Блоб
  • Промежуточная таблица
  • Табличный тип

Что же круче?
Total votes 52: ↑35 and ↓17 +18
Views 21K
Comments 17

Коварный вопрос по Event \ Delegate

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

Вопрос на засыпку
Total votes 48: ↑33 and ↓15 +18
Views 58K
Comments 91

Layers + Unity Container

Programming *
Всем привет! Хочу привести пример layers-архитектуры и роль контейнера Unity в ней. А то народ про сам контейнер пишет, а как его c с пользой использовать толком написать не могут. Давайте я попробую.

Читать дальше →
Total votes 32: ↑24 and ↓8 +16
Views 2.5K
Comments 17

VSTO и CAB: Интеграция .NET приложения в Microsoft Word

.NET *
VSTO расшифровывается как Visual Studio Tools for Office. Эти средства позволяют довольно легко скрещивать ужа с ежом — писать .NET приложения, исполняемые CLR в среде Microsoft Office. В частности, программисты обладают возможностью создавать подключаемые модули (плагины) и «кастомизированные» шаблоны для документов почти ко всему основному семейству продуктов Microsoft Office.

В статье приведена инфраструктура Windows Forms проекта, в котором Microsoft Word воспринимается приложением в качестве шелла. В статье раскрыты несколько интересных моментов использования Composite UI Application Block, в частности подключение инфраструктуры доменной модели Word в сервисам расширения каркаса, а так же приведены некоторые факты и особенности разработки с использованием средств VSTO.
В общем, кому интересно - милости прошу
Total votes 38: ↑30 and ↓8 +22
Views 11K
Comments 13

Martin Fowler — GUI Architectures. Часть 3

Programming *Smalltalk *
Часть третья. Для минимизации количества отсебятины, текст переводится очень близко по смыслу, вследствие чего перевод приобретает «рубленные» черты. Тем, кто решил прочитать, следует читать осторожно, ибо прочитанное может нанести вред внутреннему чувству эстетики.

Предыдущая часть здесь. Оригинал статьи — здесь.

Шаблон - Модель приложения VisualWorks
Total votes 12: ↑12 and ↓0 +12
Views 8K
Comments 4

Martin Fowler — GUI Architectures. Часть 2

Programming *Smalltalk *
Всем привет еще раз. Это опять я. Внутри хабраката перевод еще одного параграфа статьи Мартина Фаулера.

На этот раз затронута тема MVC. Фаулер весьма популярно про него написал. Я постарался популярно перевести:) Теперь можно понять, почему все носятся с MVC, как с писанной торбой. И, кстати, Фаулер прав — очень много где и много кто воспринимают MVC по-своему. Сам Фаулер пишет про оригинальный MVC, который работал на платформе Smalltalk. Очень познавательно.

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

Следующую часть перевода напишу, когда разозлюсь и возьму себя в руки.
Прочитать про MVC.
Total votes 17: ↑16 and ↓1 +15
Views 27K
Comments 19

Martin Fowler — GUI Architectures. Часть 1

Programming *
Перевод материала Мартина Фаулера. В статье обсуждается общий подход к архитектуре UI и приводятся подробные описания таких шаблонов проектирования, как MVC, MVP, Presentation Model, Forms and Controls, Humble View, Passive View. Статья неплохо прочищает мозг. Для того, чтобы не упустить ни единого нюанса, решил заняться переводом.

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

Я не профессиональный переводчик и мог что-то неправильно понять (и даже кое-где сделал пометки в скобках), но вы в любом случае обладаете возможностью прочитать статью в оригинале. Надеюсь, что перевод такой интересной статьи поможет кому-то улучшить свои навыки и расширит кругозор.
Прочитать про архитектуру UI!
Total votes 44: ↑42 and ↓2 +40
Views 22K
Comments 12

Оптимизация процесса создания unit-тестов

Programming *.NET *C *
Всем привет! Хабраюзер shai_xylyd написал статью про аспекты тестирования, где им были рассмотрены некоторые понятия и ценности TDD. В частности, он упомянул очень интересный способ создания первичных юнит-тестов — когда функциональный код пишется совместно с кодом юнит-теста, чем меня очень заинтриговал.

Дело в том, что я (как программист), нахожусь в состоянии переходного процесса между «классической» разработкой и разработкой test-driven, поэтому всякими способами ищу возможности упростить и сделать более естественной последнюю. После пары приседаний, сразу включиться в методику shai_xylyd не сумел. Начал переписку с автором статьи, где он натолкнул меня на мысль подойти к решению с математической точки зрения. Идея в том, чтобы воспользоваться функциональным пространством среды программирования и «разложить» написание юнит-теста на составляющие. После чего сделать выводы.
Немного математики, а потом пример
Total votes 22: ↑18 and ↓4 +14
Views 4.3K
Comments 17

Microsoft Object Builder

Programming *
Всем привет! Это моя первая статья в Хабре. Столкнувшись сегодня в ленте на описание Java-фреймворков Spring и Tapestry, решил просмотреть Хабру и найти ценителей «конкурирующих» фреймворков от Microsoft – в частности Composite UI Application Block (CAB) и Unity. К моему удивлению, ничего не нашел. Увидев в коментах в статье про Java-фреймворки просьбу описать механизм инъекций зависимостей, решил начать свой цикл статей про .Net-фреймворки именно с разъяснения вопросов IoC. Итак, встречайте – краеугольный камень (в прошлом) замечательного движка CAB – Microsoft Object Builder.
Читать далее
Total votes 21: ↑17 and ↓4 +13
Views 1.7K
Comments 15

Information

Rating
Does not participate
Registered
Activity