Обновить
41
0
Андрей Бибичев@bibigone

Пользователь

Отправить сообщение

Каррирование и частичное применение функции

Время на прочтение3 мин
Охват и читатели28K
Когда я впервые услышал термин Каррирование, я сразу же представил себе вкусные тайскую и индийскую кухни.  К моему удивлению, я обнаружил, что разговор шел не о прекрасных специях, а о преобразовании функции, принимающей n аргументов в функцию, которая принимает один аргумент и возвращает каррированую функцию, которая принимает n — 1 аргументов. Где бы это могло быть полезным?
Читать дальше →

Не кроссбраузерный event

Время на прочтение3 мин
Охват и читатели3.4K
Здравстуйте, уважаемое хабрасообщество. Реквестирую консультацию.
Позавчера, во время разработки jQuery.keyboard столкнулся с абсолютной браузерной несовместимостью, ужасно неприятной непоследовательностью и т.д. в возврашении значения event.keyCode в различных браузерах. На удивление, единственный, кто меня порадовал — IE 6 (ies4linux) и больше всех огорчила — опера 10. Хромиум и фокс же ж вернули приблизительно одинаковый результат.
Читать дальше →

Избирательное юнит-тестирование или ещё раз о тонких контроллерах

Время на прочтение6 мин
Охват и читатели3.5K
В дополнение к недавно упомянутой на Хабре статье о том, что полное 100%-е покрытие кода юнит-тестами почти всегда не является экономически выгодным, поскольку просто лень писать всю эту.… это требует неоправданных затрат рабочего времени и увеличивает расходы на поддержку кода, сегодня хотелось бы представить на суд общественности размышления по этому поводу Стива Сандерсона (Steve Sanderson), автора книг Pro ASP.NET MVC и Pro ASP.NET MVC V2.
Читать дальше →

Стиль кода

Время на прочтение1 мин
Охват и читатели13K
По просьбам хабраюзеров я сделал перевод текста, составленного abchernin на основе PEP 8 — «Styleguide for Python Code» (см. топик).

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

Надеюсь, вам будет полезна моя работа: pdf, 200кб
Читать дальше →

jQuery.keyboard v0.1.0

Время на прочтение2 мин
Охват и читатели5.7K

У меня есть на примете как минимум два проекта, в которых понадобится активное управление с помощью клавиатуры. Поэтому, я сел и написал удобный и красивый плагин для jQuery, который выкладываю во всеобщий доступ под свободной лицензией LGPL.
Читать дальше →

Javascript — персональное безумие

Время на прочтение3 мин
Охват и читатели1.8K

Есть случайное такое хобби — программирование на JavaScript.

Недавно возник у меня глобальный вопрос:
Как часто JS программисты задумываются над [function statement]?



Читать дальше →

Отладка Javascript

Время на прочтение5 мин
Охват и читатели146K
Debug Logo

Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».

Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.

(Примечание: наверное эта статья больше для новичков. Так что не судите строго)

Читать дальше →

Что такое Pimpl по версии Qt, и с чем его едят!

Время на прочтение12 мин
Охват и читатели41K

Вступление.



Часто в документации от Qt встречается термин Pimpl. Кроме того, те кто хоть немного копался в исходном коде Qt часто видел такие макросы как: Q_DECLARE_PRIVATE, Q_D. А также встречал так называемые приватные заголовочные файлы, название которых заканчивается на "_p.h".
В этой статье я попробую приоткрыть ширму за всей это структурой.

Pimpl, что это?


Pimpl — Pointer to private implementation. Это одно из названий паттерна программирования. Еще его называют чеширским котом — «Cheshire Cat» (это название мне больше нравится). В чем суть этого паттерна? Основная идея этого паттерна — это вынести все приватные члены класса и, в не которых случаях, функционала в приватный класс.
Отсюда название «чеширский кот» — видно только улыбку, а все остальное остается невидимым, но оно несомненно есть :-) Кто не помнит этого замечательного кота, может обратится к первоисточнику, к книге Льюиса Кэрролла «Алиса в стране чудес». Очень интересная книга, особенно если читать в оригинале.
Что это дает?
Читать дальше →

Text Template Transformation Toolkit (T4): генератор кода в Visual Studio

Время на прочтение8 мин
Охват и читатели30K
Приветствую, Хабр!

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

А что это такое?

Программирование по контракту в .NET Framework 4

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

К тому времени были прочитаны книги Фаулера о рефакторинге и книга GoF. Эти книги многое мне дали и были очень полезными, но хотелось чего-то более основополагающего об ООП. Поискав по форумам, я нашел несколько книг, которые меня заинтересовали:
Бертран Мейер «Объектно-ориентированное конструирование программных систем»
Гради Буч, Объектно-ориентированный анализ и проектирование
Барбара Лисков. Использование абстракций и спецификаций при разработке программ

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

Читать дальше →

Sandcastle Help File Builder – генерируем документацию для .Net

Время на прочтение6 мин
Охват и читатели10K
Sandcastle Help File Builder Logo
Sandcastle Help File Builder – это графическая оболочка над генератором документации Sandcastle. В свою очередь, Sandcastle – это гибкий и многофункциональный генератор документации для .Net с использованием XML комментариев из исходного кода. Воспользуемся этим и в несколько шагов создадим документацию нашего проекта.

Основные возможности Sandcastle

  • Включение в документацию XML комментариев из исходного кода.
  • Автоматическое получение информации об элементах .Net, таких как классы, методы, свойства, перечисления с помощью reflection.
  • Возможность интегрировать свои дополнительные HTML страницы в документацию.
  • Генерация документации в нескольких форматах: Microsoft Compiled HTML Help (CHM), MS Microsoft Help 2 (MSDN), веб-сайт — статический и динамический с поиском (ASP.NET).
Sandcastle активно использует в своей работе XML и преобразования с помощью XSLT. Все реализовано очень гибко, легко настраиваемо и доступно в виде исходных кодов.
Читать дальше →

(Зло)употребление C# 4.0 Dynamic – Бестиповое Лямбда-Исчисление, Нумералы Чёрча, и все-все-все… (ч.1)

Время на прочтение8 мин
Охват и читатели5.5K

Введение


Воскресное утро, время для еще одного эпизода в серии Безумные Воскресения. Еще раз в одной категории с риском разрыва мозгов, но ведь это как раз то, что нам нравится, не так ли? На этот раз мы рассмотрим бестиповое лямбда-исчисление в C#. Но погодите, разве C# не типизированный язык? Действительно. Но значит ли это, что все, что вы делаете на C# должно быть статически типизировано? Не обязательно: типизация присутствует в языке как инструмент, который вы можете либо не трогать, либо применить. В этом топике мы рассмотрим как новое ключевое слово dynamic из C# 4.0 под несколько странным углом…
Читать дальше →

URL маршрутизация в ASP.NET 4 Web Forms

Время на прочтение3 мин
Охват и читатели10K
imageЧто такое URL маршрутизация?

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

12 лучших практик ASP.NET MVC

Время на прочтение3 мин
Охват и читатели13K
imageОт переводчика: здесь приведены 12 неплохих практик, которые автор рекомендует использовать при разработке приложений ASP.NET MVC. Я решил перевести этот короткий список для тех, кто только присматривается к ASP.NET MVC и делает в этом фреймворке первые шаги. Надеюсь, данные советы помогут получше понять архитектуру ASP.NET MVC и принять правильные решения при разработке проектов. Некоторые советы спорны, но не забывайте, что автор выражает свое мнение, которое может не совпадать с вашим.
Читать дальше →

Sandcastle: генерация документации с диаграммами классов

Время на прочтение5 мин
Охват и читатели5.6K
В продолжение статьи про автогенерацию документации по XML комментариям .NET кода с помощью Sandcastle я решил немного рассказать про компонент Drawbridge. Он позволяет встраивать в документацию кликабельные диаграммы классов экспортируемые из Visual Studio. Можно жмакнуть по классу и сразу перейти к его описанию. Мелочь, а приятно…
Читать дальше →

Расширяем ReSharper — Context Actions

Время на прочтение8 мин
Охват и читатели1.8K
В комментариях к одному из предыдущих постов я обещал рассказать про то, как писать расширения к Решарперу. Рассказать хочу потому, что сам периодически пишу расширения которые упрощают работу в моей конкретной области. Тут же я покажу вкратце мой подход к написанию расширений типа context action.

Если интересно...

Плагин helpInput (мой велосипед)

Время на прочтение2 мин
Охват и читатели3.2K
imageЗдравствуйте. На днях возникла задача оформить на одном проекте мини-подсказки в полях input(подобно тому, как оформлено поле «поиск по сайту», которое вы можете увидеть в правом верхнем углу Хабры). Проект, на котором надо было оформить поля, написан с использованием jQuery, поэтому решил воспользоваться плагином для этой библиотеки. Пробежался по уже готовым решениям и не нашёл полностью устраивающее меня. Решил мастерить свой велосипед. На мой взгляд, получилось неплохо, хотя в процессе разработки не раз натыкался на подводные камни. Из-за скудного выбора плагинов, решающих эту задачу, я и решил выложить своё «творение» на Хабру. Необходимость в оформлении полей подобным образом встречается часто, авось кому-нибудь и пригодится.

UPD: В ходе обсуждений было предложено пару дельных идей, которые я и реализовал:
1. Обрабатывается не только Tab, но и Shift+Tab
2. Плагин научился работать с автозаполнением (если надо отключить эту возможность — при инициализации установите в значение false ключ autoComplete)
3. Изменились имена ключей(приобрели смысловую нагрузку понятную не только мне)

Читать дальше →
12 ...
12

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность