Гибкость Javascript позволяет создавать объекты множеством способов. Но как это нередко случается, разнообразие таит в себе множество подводных камней. Из этой статьи Вы узнаете о том, как разглядеть и обогнуть эти опасные рифы.
Денис Инешин @IonDen
Senior Front End Engineer at Booking.com
Что почитать на выходных? Рекомендуем, выпуск №10
2 min
1.3KЭто подборка статей на тему веб-разработки на платформе .NET (и не только). За день перед выходными я предлагаю набор интересных ссылок, которые стоит посетить в свободные минуты на выходных, чтобы узнать что-то новое и интересное.
Вы можете следить за циклом этих советов по следующей ссылке.
Тема номера:
Вы можете следить за циклом этих советов по следующей ссылке.
Тема номера:
- Доступен онлайн новый выпуск журнала MSDN Magazine за май 2011 (link);
- Описание использования CSS Sprites и библиотеки ASP.NET Sprite and Image Optimization Library (link);
- Важные счетчики производительности для мониторинга производительности ASP.NET (link);
- Кэширование данных в приложениях ASP.NET (link);
- Изменение размеров изображений без потерь в ASP.NET (link);
- Восстановление пароля администратора в Orchard CMS (link);
- Создание вебсервиса с помощью WebMatrix и его использование в приложении Windows Phone 7 (link);
- Доклад Скотта Хансельмана про инструменты ASP.NET MVC 3 (link);
- Использование WebMatrix Helpers в ASP.NET MVC 3 (link);
- Руководство по Orchard, часть 2 (link);
- Project Silk jQuery UI Widget QuickStart (link);
- Использование REST-сервиса в ASP.NET Razor (link);
- MvcScaffolding Nuget Package and EF Code First — Code Generation (link);
+11
+80
100-500-ый Хостинг Картинок. Зачем? Для души
1 min
1.2KДоброго времени суток, Хабравчане. Хочу представить Вашему вниманию Хостинг Картинок.
Началось всё полтора года назад с симпатичного домена HostingKartinok.com приобретённого для личного использования (дабы мои скриншоты жили ровно столько, сколько мне они нужны и не были окружены«блекджеком и шл…ами» назойливой рекламой).
Дальше появился спортивный интерес, и мысль – «чем я хуже конкурентов?». Ведь уникальность стартапа часто заключается не в уникальности идей, а в уникальном подходе к ее реализации.
Пробежавшись по десятку других хранилищ для картинок – я понял, что уже сейчас смело, могу с ними конкурировать, благо технические ресурсы позволяют.
Предыстория
Началось всё полтора года назад с симпатичного домена HostingKartinok.com приобретённого для личного использования (дабы мои скриншоты жили ровно столько, сколько мне они нужны и не были окружены
Если двое делают одно и то же, это не одно и то же
Дальше появился спортивный интерес, и мысль – «чем я хуже конкурентов?». Ведь уникальность стартапа часто заключается не в уникальности идей, а в уникальном подходе к ее реализации.
Пробежавшись по десятку других хранилищ для картинок – я понял, что уже сейчас смело, могу с ними конкурировать, благо технические ресурсы позволяют.
+48
Нововведения в jQuery 1.6
4 min
7.2KСовсем недавно (3 мая) был зарелизен jQuery 1.6 и вот что нового появилось в этой js-библиотеке давайте и посмотрим.
Самое «веселое» то, что в новом релизе есть важные изменения, которые несовместимы с предыдущими версиями jQuery. И в результате при переходе на новую версию, вполне возможно, что придётся просматривать и изменять уже существующий код.
+155
Некролог погибших девайсов
3 min
1.7KКаждую неделю мы слышим об очередном устройстве, снятом с производства из-за «коммерческой непривлекательности». Компания-производитель вложила миллионы долларов в разработку, но пришёл момент, когда старый продукт уже не даёт прибыль — и объект стирают из реальности, хотя он ещё мог бы принести пользу человечеству.
Редактор журнала Make: Online Филипп Торроун (Phillip Torrone) обратился к коммерческим компаниям с призывом отдавать старые и ненужные проекты в open source.
Редактор журнала Make: Online Филипп Торроун (Phillip Torrone) обратился к коммерческим компаниям с призывом отдавать старые и ненужные проекты в open source.
+79
Оптимизация показателей конверсии
9 min
2.6KВашему вниманию предлагается перевод статьи Франка Пашера. Перевод одобрен для публикации для уважаемых читателей Хабрахабра.
Юзабилити имеет серьезное значение для показателей конверсии в электронной коммерции. Однако юзабилити означает не только улучшенное визуальное руководство или улучшенную иерархию сайта. Это также означает и больший контакт с потенциальным покупателем посредством профессионально сделанного серьезного дизайна, преподнесения верной информации тогда, когда она нужна. Это общение с пользователями вместо того, чтобы забрасывать их рекламными лозунгами.
Юзабилити имеет серьезное значение для показателей конверсии в электронной коммерции. Однако юзабилити означает не только улучшенное визуальное руководство или улучшенную иерархию сайта. Это также означает и больший контакт с потенциальным покупателем посредством профессионально сделанного серьезного дизайна, преподнесения верной информации тогда, когда она нужна. Это общение с пользователями вместо того, чтобы забрасывать их рекламными лозунгами.
+52
Принципы дизайна страниц оплаты для интернет-магазинов
14 min
22KTutorial
Translation
Представляю вашему вниманию перевод статьи под названием "Fundamental Guidelines Of E-Commerce Checkout Design" от Christian Holst. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.
Грустная статистика систем электронной коммерции — согласно последним исследованиям, по крайней мере 59,8% потенциальных покупателей покидают сайт на этапе оформления заказа и его оплаты (у разных исследований разные показатели — от 59,8% у MarketingSherpa до 83% у SeeWhy).
Основной вопрос заключается в том, почему пользователи так часто и массово покидают свою корзину, не закончив оформление заказа? Причина заключена в какой-то фундаментальной ошибке дизайнеров, создающих интернет-магазины? А быть может есть какие-то формальные правила, которые усложняют жизнь простым пользователям и мешают им покупать продукты? Существует ли какая-то возможность улучшить ситуацию и повысить конверсию электронных магазинов?
+162
Магия JavaScript: arguments
3 min
68Karguments
— очень специфическая штука, о которой новички и даже любители знают только то, что это «вроде массив, но какой-то неправильный». На самом деле, у него есть ряд интересных особенностей. Предлагаю в топике пофантазировать на тему TypeHinting, аргументов по-умолчанию и всякого другого.(function (foo, bar) {
console.log(typeof arguments); // ?
arguments[0] = 42;
console.log(foo); // ?
})(10, 20);
А также покажу интересную идею-библиотеку
function test (foo, bar) {
Args(arguments).defaults(100, 100);
return [foo, bar];
};
test( ); // 100, 100
test(15 ); // 15, 100
test(21, 42); // 21, 42
+87
Вы наверное шутите, мистер Дал, или почему Node.js — это венец эволюции веб-серверов
8 min
29KNode.js — вещь, вокруг которой сейчас много шума, восторженных отзывов и гневливых выкриков. При этом, по моим наблюдениям, в умах людей закрепилось следующее представление о том что же такое Node.js: «это штука, позволяющая писать на JavaScript на серверной стороне и использующая JavaScript-движок от Google Chrome». Поклонники языка восторженно вздохнули: «Ах! Сбылось!», противники же процедили сквозь зубы: «Ну вот только еще этой ерунды с прототипами и динамической типизацией нам на серверах не хватало!». И дружно побежали ломать копья в блоги и форумы.
При этом многие представители обоих лагерей придерживаются мнения, что Node.js — это эзотерическая игрушка, веселая задумка для переноса языка браузерных сценариев на «новые колеса». Дабы быть до конца честным, признаюсь, что я так же придерживался подобной точки зрения. В один прекрасный момент, я набрался духу и решил «копнуть поглубже». Выяснилось, что создатель Node.js Райан Дал далеко не фанатик, а человек, пытающийся решить реальную проблему. А его творение — не игрушка, а применимое на практике решение.
+227
НАЧИНАЙ с технологиями Google
1 min
518Вы когда-нибудь мечтали о создании собственного бизнеса? Если нет, то спокойно пропустите этот пост. Если же подобные мысли нередко вас посещают, советую обратить внимание на ближайшую рабочую сессию Nachinai.com, которая пройдет с 19 по 21 ноября в Москве.
Есть желание работать на себя — самое время Начать! Кстати, формат вашего будущего проекта ограничен только полетом фантазии, а при необходимости массу времени и сил можно будет сэкономить, используя технологии Google, который является партнером встречи.
Итак, что нужно сделать?
Есть желание работать на себя — самое время Начать! Кстати, формат вашего будущего проекта ограничен только полетом фантазии, а при необходимости массу времени и сил можно будет сэкономить, используя технологии Google, который является партнером встречи.
Итак, что нужно сделать?
+44
Objective-C с нуля
23 min
439KУ любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
+147
XPath наглядно
1 min
60K XPath является одним из ключевых моментов на дороге к пониманию XSLT. И на первых порах хочется получить какой-нибудь простой способ поэкспериментировать с ним, чтобы в деталях разобраться, как он работает. Способа такого, впрочем, не наблюдается. Приходится или качать совсем не бесплатные XML/XSLT редакторы, или довольствоваться статичными картинками с zvon.org. Может быть, я плохо искал. Но с моей колокольни все обстоит именно так. И когда передо мной в очередной раз встала задача «Объяснить XSLT», в голове и родилась идея крохотного сервиса. После того, как все заработало, было решено выкатить его для всеобщего пользования: наверняка не я один сталкивался с похожими проблемами.
+86
C# for beginners. Лекция 2. Hello, World! и знакомство с Visual C# Express 2010
1 min
5.7KПрежде всего, хотелось бы поблагодарить arinoki за публикацию первой лекции видеокурса, который вызвал большой интерес среди хабрапользователей. Благодаря вашим голосам, я могу выкладывать новые лекции от своего имени, а, прочитав комментарии я понял, что тема программирования на С# очень актуальна, а значит я буду и дальше стараться для вас и публиковать новые лекции.
Вышла вторая лекция видеокурса для начинающих программировать на C#. Вы познакомитесь со средой разработки приложений Visual C# Express, а также напишете свое первое
Разбор синтаксиса языка C# начнется уже в следующей лекции!
А теперь — по теме:
Вышла вторая лекция видеокурса для начинающих программировать на C#. Вы познакомитесь со средой разработки приложений Visual C# Express, а также напишете свое первое
"Hello, World!"
приложение. Также для студентов прилагается еще некоторая полезная информация. Приятного просмотра!Разбор синтаксиса языка C# начнется уже в следующей лекции!
-1
C# для начинающих. Лекция 1 — Введение
1 min
85KТопик опубликован по просьбе itdevelop, так что он будет отвечать на все ваши вопросы, а также плюсы кидать на его аккаунт. Спасибо за понимание.
Это первая лекция большого видео-курса для тех, кто хочет научиться программировать на языке С#. Поскольку это — вводная лекция, то хочу сразу предупредить, что сам процесс программирования начнется только со второй лекции. Здесь же я хочу вас познакомить с .NET Framework, чем удобна эта платформа, и как происходит перевод написанного вами кода на C# в код, понятный операционной системе.
Это первая лекция большого видео-курса для тех, кто хочет научиться программировать на языке С#. Поскольку это — вводная лекция, то хочу сразу предупредить, что сам процесс программирования начнется только со второй лекции. Здесь же я хочу вас познакомить с .NET Framework, чем удобна эта платформа, и как происходит перевод написанного вами кода на C# в код, понятный операционной системе.
+30
Программист, который отвлекается
5 min
13KTranslation
Автор статьи — программист с шестнадцатилетним стажем работы — был поставлен перед невозможностью подолгу сидеть за компьютером (как поступают многие из нас). В этой статье он рассказывает о том, как организовать свою рабочий процесс так, чтобы частые перерывы не вредили возможности сосредоточиться на работе и эффективности труда. В принципе достаточно известные вещи, но лично для меня стали новостью инвертирование приоритетов и сам факт того, что можно работать отвлекаясь и при этом не терять ход мысли.
Я не могу безболезненно сидеть за столом дольше часа подряд, и я не могу работать больше, чем стандартный восьмичасовой день. Проблема в том, что последние 15 лет моя стратегия работы заключалась в том, чтобы поймать «поток» и после этого кодить очень долго без перерывов. Эта стратегия очень популярна у кодеров, любящих запираться на сутки, надевать наушники и отключаться от внешнего мира — и именно поэтому они так болезненно реагируют, когда их отвлекают. Программирование требует концентрации, а концентрация работает по принципу клапанного механизма — на разогрев и запуск требуется время, поэтому уже запущенный механизм лучше не останавливать.
Я не думал, что существуют другие способы программирования, и уже начал было смиряться с тем, что обречен на низкую производительность. Но за последние 6 месяцев я обнаружил, что «медленный разогрев и долгая работа без перерывов» — поведение приобретенное, а не врожденное, и вполне возможно переучиться на другие ритмы активности. Это похоже на многофазный сон — как только вы привыкли делать вещи определенным образом, любые изменения очень трудоемки, но возможны — при наличии достаточной мотивации и времени на привыкание.
Я не могу безболезненно сидеть за столом дольше часа подряд, и я не могу работать больше, чем стандартный восьмичасовой день. Проблема в том, что последние 15 лет моя стратегия работы заключалась в том, чтобы поймать «поток» и после этого кодить очень долго без перерывов. Эта стратегия очень популярна у кодеров, любящих запираться на сутки, надевать наушники и отключаться от внешнего мира — и именно поэтому они так болезненно реагируют, когда их отвлекают. Программирование требует концентрации, а концентрация работает по принципу клапанного механизма — на разогрев и запуск требуется время, поэтому уже запущенный механизм лучше не останавливать.
Я не думал, что существуют другие способы программирования, и уже начал было смиряться с тем, что обречен на низкую производительность. Но за последние 6 месяцев я обнаружил, что «медленный разогрев и долгая работа без перерывов» — поведение приобретенное, а не врожденное, и вполне возможно переучиться на другие ритмы активности. Это похоже на многофазный сон — как только вы привыкли делать вещи определенным образом, любые изменения очень трудоемки, но возможны — при наличии достаточной мотивации и времени на привыкание.
+136
Грабли при верстке HTML писем
3 min
104KДовольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.
Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
+264
extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
4 min
21KХочу Вам рассказать о штуке, которую я изобрел сегодня, чтобы ускорить процесс загрузки сайтов. Все вы знаете, что
Не правда ли было бы круто, если бы можно было сказать
Все бы хорошо, но есть
Результат? Супер-быстрая загрузка страниц, даже если там море всяких внешних скриптов.
Использование:
Заменяем
Итого получается:
<script src="..."></script>
задерживает отрисовку страницы, пока не загрузится этот скрипт. Если их десятки — это может сереьезно замедлить работу сайта — в результате пользователь 20 секунд пялится на пустую (или недорисованную) страницу из-за какого-нибудь тупящего социального виджета (умножить на десяток этих виджетов). Не правда ли было бы круто, если бы можно было сказать
<script extsrc="..."></script>
("extsrc" = "грузи потом"
), чтобы скрипты загружались после того как страница отрисована? Все бы хорошо, но есть
document.write
… Сегодня я наконец решил его проблему — представляю extsrc.js — скрипт, который запустит все скрипты после отрисовки страницы (даже если они содержат document.write
— и правильно отрисуется все).Результат? Супер-быстрая загрузка страниц, даже если там море всяких внешних скриптов.
Использование:
Заменяем
<script src="...">
на <script extsrc="...">
.Итого получается:
<script src="http://whiteposts.com/extsrc_js/extsrc.js"></script>
<script extsrc="..."></script>
+143
JSNAV
3 min
2.9KНавигация по странице
Всё чаще и чаще в web появляются сайты, использующие навигацию, написанную на JavaScript. Типичный случай использования javascript для навигации: страница с меню и блоком контента, куда через AJAX подгружается содержимое:
Пользователь кликает по пункту, JavaScript грузит из сети содержимое, вставляет в блок контента, пользователь доволен: страница без перезагрузки показывает требуемое и траффика потребовалось меньше за счёт того, что не потребовалось грузить все эти HEAD, BODY, STYLE и прочие элементы.
Но вот проблема: URL страницы. Если на old scool сайтах на каждый пункт меню показывается новая HTML страница, и у пользователя есть вменяемый URI, который он может скопировать из адресной строки бразуера, послать другу или положить в закладки, то в случае AJAX интерфейсов в URI странице зачастую нет никаких ссылок на текущий контент документа.
Пересылая ссылку из адресной строки браузера другу, пользователь не может быть уверен, откроется ли документ с тем содержимым, что он просматривает сейчас, или откроется документ с начальным содержимым страницы.
Не с секрет, что для решения этой проблемы многие программисты кодируют ссылку на текущее просматриваемое содержимое в якорь (anchor) URI документа. К примеру, на сайте jqapi.com (скриншот которого приведён вначале топика) при выборе того или иного пункта меню якорь страницы меняется на #p={contentId}.
+54
Еще несколько полезных плагинов
2 min
1.8KЗа последний месяц, я написал уже два поста с обзорами плагинов jQuery (1 и 2). Надо сказать, что подобные статьи на английском языке появляются все чаще и чаще. Однако их содержание довольно быстро приедается. Галереи картинок, слайдеры, опять галереи картинок, многочисленные динамические меню и опять слайдеры. Мне не хочется описывать очередную порцию подобных плагинов. Поэтому сегодня я расскажу не о двадцати-тридцати как обычно, а только о семи важных на мой взгляд плагинах, о которых очень хотелось рассказать. Лучше меньше, да лучше.
+74
Information
- Rating
- Does not participate
- Location
- Amsterdam, Noord-Holland, Нидерланды
- Date of birth
- Registered
- Activity