Когда я впервые услышал термин Каррирование, я сразу же представил себе вкусные тайскую и индийскую кухни. К моему удивлению, я обнаружил, что разговор шел не о прекрасных специях, а о преобразовании функции, принимающей n аргументов в функцию, которая принимает один аргумент и возвращает каррированую функцию, которая принимает n — 1 аргументов. Где бы это могло быть полезным?
Андрей Бибичев @bibigone
User
Не кроссбраузерный event
3 min
3.4KЗдравстуйте, уважаемое хабрасообщество. Реквестирую консультацию.
Позавчера, во время разработки jQuery.keyboard столкнулся с абсолютной браузерной несовместимостью, ужасно неприятной непоследовательностью и т.д. в возврашении значения event.keyCode в различных браузерах. На удивление, единственный, кто меня порадовал — IE 6 (ies4linux) и больше всех огорчила — опера 10. Хромиум и фокс же ж вернули приблизительно одинаковый результат.
Позавчера, во время разработки jQuery.keyboard столкнулся с абсолютной браузерной несовместимостью, ужасно неприятной непоследовательностью и т.д. в возврашении значения event.keyCode в различных браузерах. На удивление, единственный, кто меня порадовал — IE 6 (ies4linux) и больше всех огорчила — опера 10. Хромиум и фокс же ж вернули приблизительно одинаковый результат.
+18
Избирательное юнит-тестирование или ещё раз о тонких контроллерах
6 min
3.4KTranslation
В дополнение к недавно упомянутой на Хабре статье о том, что полное 100%-е покрытие кода юнит-тестами почти всегда не является экономически выгодным, поскольку просто лень писать всю эту.… это требует неоправданных затрат рабочего времени и увеличивает расходы на поддержку кода, сегодня хотелось бы представить на суд общественности размышления по этому поводу Стива Сандерсона (Steve Sanderson), автора книг Pro ASP.NET MVC и Pro ASP.NET MVC V2.
+12
Стиль кода
1 min
13KTranslation
По просьбам хабраюзеров я сделал перевод текста, составленного abchernin на основе PEP 8 — «Styleguide for Python Code» (см. топик).
Некоторые фразы я переводить не стал, потому что они к сути дела не относятся, но содержат в себе забавную игру слов.
Надеюсь, вам будет полезна моя работа: pdf, 200кб
Некоторые фразы я переводить не стал, потому что они к сути дела не относятся, но содержат в себе забавную игру слов.
Надеюсь, вам будет полезна моя работа: pdf, 200кб
+44
jQuery.keyboard v0.1.0
2 min
5.6K
У меня есть на примете как минимум два проекта, в которых понадобится активное управление с помощью клавиатуры. Поэтому, я сел и написал удобный и красивый плагин для jQuery, который выкладываю во всеобщий доступ под свободной лицензией LGPL.
+130
Javascript — персональное безумие
3 min
1.8KЕсть случайное такое хобби — программирование на JavaScript.
Недавно возник у меня глобальный вопрос:
Как часто JS программисты задумываются над [function statement]?
+38
Отладка Javascript
5 min
146K
Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».
Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.
(Примечание: наверное эта статья больше для новичков. Так что не судите строго)
+165
Что такое Pimpl по версии Qt, и с чем его едят!
12 min
40KВступление.
Часто в документации от Qt встречается термин Pimpl. Кроме того, те кто хоть немного копался в исходном коде Qt часто видел такие макросы как: Q_DECLARE_PRIVATE, Q_D. А также встречал так называемые приватные заголовочные файлы, название которых заканчивается на "_p.h".
В этой статье я попробую приоткрыть ширму за всей это структурой.
Pimpl, что это?
Pimpl — Pointer to private implementation. Это одно из названий паттерна программирования. Еще его называют чеширским котом — «Cheshire Cat» (это название мне больше нравится). В чем суть этого паттерна? Основная идея этого паттерна — это вынести все приватные члены класса и, в не которых случаях, функционала в приватный класс.
Отсюда название «чеширский кот» — видно только улыбку, а все остальное остается невидимым, но оно несомненно есть :-) Кто не помнит этого замечательного кота, может обратится к первоисточнику, к книге Льюиса Кэрролла «Алиса в стране чудес». Очень интересная книга, особенно если читать в оригинале.
Что это дает?
+44
Text Template Transformation Toolkit (T4): генератор кода в Visual Studio
8 min
29K Приветствую, Хабр!
Сегодня мы поговорим о рутине. Время от времени каждому программисту приходится совершать много нудной, объемной и шаблонной работы, которую постоянно так и хочется автоматизировать, да руки не доходят. Вот об одном малоизвестном способе упростить себе жизнь с помощью кодогенерации я и хочу сегодня рассказать сообществу дотнетчиков. Способ известен как Text Template Transformation Toolkit или попросту T4.
Сегодня мы поговорим о рутине. Время от времени каждому программисту приходится совершать много нудной, объемной и шаблонной работы, которую постоянно так и хочется автоматизировать, да руки не доходят. Вот об одном малоизвестном способе упростить себе жизнь с помощью кодогенерации я и хочу сегодня рассказать сообществу дотнетчиков. Способ известен как Text Template Transformation Toolkit или попросту T4.
+26
Программирование по контракту в .NET Framework 4
9 min
9.4KСтолкнувшись с проблемой смены работы и желания работать разработчиком в хорошей конторе, понял, что мне не хватает знаний в области архитектуры, проектирования, ООП и прочих, не специфичных для платформы или языка вещах. Источники получения информации, кроме личного опыта, стандартные – книги и Интернет.
К тому времени были прочитаны книги Фаулера о рефакторинге и книга GoF. Эти книги многое мне дали и были очень полезными, но хотелось чего-то более основополагающего об ООП. Поискав по форумам, я нашел несколько книг, которые меня заинтересовали:
Бертран Мейер «Объектно-ориентированное конструирование программных систем»
Гради Буч, Объектно-ориентированный анализ и проектирование
Барбара Лисков. Использование абстракций и спецификаций при разработке программ
К сожаление последней не нашел в электронном виде, а в бумажном не знаю даже где искать. Из наличия в магазине на тот момент была только книга Мейера, ее я и взял.
К тому времени были прочитаны книги Фаулера о рефакторинге и книга GoF. Эти книги многое мне дали и были очень полезными, но хотелось чего-то более основополагающего об ООП. Поискав по форумам, я нашел несколько книг, которые меня заинтересовали:
Бертран Мейер «Объектно-ориентированное конструирование программных систем»
Гради Буч, Объектно-ориентированный анализ и проектирование
Барбара Лисков. Использование абстракций и спецификаций при разработке программ
К сожаление последней не нашел в электронном виде, а в бумажном не знаю даже где искать. Из наличия в магазине на тот момент была только книга Мейера, ее я и взял.
+11
Sandcastle Help File Builder – генерируем документацию для .Net
6 min
9.4KSandcastle Help File Builder – это графическая оболочка над генератором документации Sandcastle. В свою очередь, Sandcastle – это гибкий и многофункциональный генератор документации для .Net с использованием XML комментариев из исходного кода. Воспользуемся этим и в несколько шагов создадим документацию нашего проекта.
Основные возможности Sandcastle
- Включение в документацию XML комментариев из исходного кода.
- Автоматическое получение информации об элементах .Net, таких как классы, методы, свойства, перечисления с помощью reflection.
- Возможность интегрировать свои дополнительные HTML страницы в документацию.
- Генерация документации в нескольких форматах: Microsoft Compiled HTML Help (CHM), MS Microsoft Help 2 (MSDN), веб-сайт — статический и динамический с поиском (ASP.NET).
+25
(Зло)употребление C# 4.0 Dynamic – Бестиповое Лямбда-Исчисление, Нумералы Чёрча, и все-все-все… (ч.1)
8 min
5.4KTranslation
Введение
Воскресное утро, время для еще одного эпизода в серии Безумные Воскресения. Еще раз в одной категории с риском разрыва мозгов, но ведь это как раз то, что нам нравится, не так ли? На этот раз мы рассмотрим бестиповое лямбда-исчисление в C#. Но погодите, разве C# не типизированный язык? Действительно. Но значит ли это, что все, что вы делаете на C# должно быть статически типизировано? Не обязательно: типизация присутствует в языке как инструмент, который вы можете либо не трогать, либо применить. В этом топике мы рассмотрим как новое ключевое слово dynamic из C# 4.0 под несколько странным углом…
+25
URL маршрутизация в ASP.NET 4 Web Forms
3 min
10KTranslation

URL маршрутизацию мы впервые представили в ASP.NET 3.5 SP1, которая сейчас используется в ASP.NET MVC приложениях для предоставления чистых, SEO-дружелюбных, «веб 2.0» URL адресов. URL маршрутизация позволяет настраивать приложение на прием запрашиваемых адресов, которые не соответствуют физическим файлам. Вы можете использовать маршрутизацию для объявления URL адресов, которые семантически содержательны для пользователей, и которые могут помочь оптимизации для поисковых систем (SEO).
+9
12 лучших практик ASP.NET MVC
3 min
13KTranslation

+9
Sandcastle: генерация документации с диаграммами классов
5 min
5.4K
+8
Расширяем ReSharper — Context Actions
8 min
1.8K+13
Плагин helpInput (мой велосипед)
2 min
3.1K
UPD: В ходе обсуждений было предложено пару дельных идей, которые я и реализовал:
1. Обрабатывается не только Tab, но и Shift+Tab
2. Плагин научился работать с автозаполнением (если надо отключить эту возможность — при инициализации установите в значение false ключ autoComplete)
3. Изменились имена ключей(приобрели смысловую нагрузку понятную не только мне)
+37
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity