Pull to refresh
19
0
Send message

Красивый URL, как лучше?

Reading time 1 min
Views 489
Давно мучает вопрос как лучше называть каталоги:
site/users/ или site/user/?
Потому как с одной стороны список все пользователей, фотографий, файлов и т.п это /users/, а с другой если открывать дальше конкретный объект, то /users/vasya/ уже не так красиво как /user/vasya/

То же для /photo(s)/, /group(s)/, /file(s)/
Total votes 21: ↑15 and ↓6 +9
Comments 23

Построить карту сайта в Visio

Reading time 1 min
Views 2.3K
image Кто-нибудь будет спорить с тем, что мы как правило недоиспользуем софт, который уже стоит у нас на компьютере? У меня на компьютере стоял Visio — а карту сайта я раньше делала руками.

Итак, чтобы сделать карту сайта нужно найти в Визио шаблон Карта Сайта и пройти по достаточно интуитивному Визарду.

Внешний вид, глубину просмотра и много всего прочего можно подстраивать под свои нужды. Можно эту функцию вообще использовать для проверки broken links на сайте, или, например, для получения списка pdf-докуменов, опубликованных на сайте.

Пользуйтесь.
Total votes 28: ↑24.5 and ↓3.5 +21
Comments 4

21 способов склонить клиента сделать заказ по телефону

Reading time 2 min
Views 30K
Как разговаривать с клиентами по телефону в интернет-магазине
После списка будут даны объяснения по каждому пункту.

  1. Разговор с клиентом должен начинаться с «Здравствуйте, *название магазина*» (или что-то похожее). Никаких «алло», «да» и тд.
  2. Искореняйте из разговоров менеджеров «слова паразиты». Речь должна быть чистой.
  3. Ответы менеджера всегда должны быть уверенные и утвердительные. Особенно касается это вопросов с подковыркой со стороны клиента.
  4. «Улыбайтесь» в трубку. Голос менеджера должен звучать бодро и весело. В аське сдержанно используйте смайлики типа «)», если клиент сам вставляет графические смайлы, можно использовать и их.
  5. Повышайте компетентность менеджеров. Чем выше квалификация специалиста, тем качественные ответы для клиента, тем выше доверие клиента к вашей компании.
  6. Никогда не перебивайте клиента. Дослушайте до конца, даже если вы уже знаете концовку вопроса.
  7. Постарайтесь узнать, какие цели преследует клиент, покупая этот товар. Возможно, его выбор не соответствует поставленным целям, задача менеджера объяснить неверный выбор и дать компетентную консультацию.
  8. Не позволяйте менеджеру долго расспрашивать клиента о контактной информации, рассказывать по телефону об акциях и скидках и остальную несущественную информацию.
  9. Если необходимого товара нет, всегда предлагайте клиенту другие варианты.
  10. Работайте в режиме «менеджер-клиент», а не «клиент-менеджер».
  11. Если разговор зашел о том, что магазин будет связываться с клиентом через определенное время, четко определите это время.
  12. Всегда перезванивайте клиенту, если произошли какие-либо существенные отклонения от договоренностей с клиентом.
  13. Если у вас, что продается «мелкое» к товарам, стоящее небольшие деньги, проходит какая-то промо-акция с пробниками или каталогами, предложите клиенту купить «мелочь» или участие в промо-акции.
  14. В конце разговора подталкивайте клиента к заказу фразами «на какое число оформлять доставку?», «Какой товар будете заказывать?»
  15. Если запрашиваемый товар проходит по акции или имеет скидку — обязательно сообщать об этом.
  16. Нельзя впихивать клиенту залежалый товар. Обман всегда становиться явным. Предлагайте клиенту товар, который бы посоветовали сами себе.
  17. Сообщайте по телефону клиентам вместе с суммой заказа их скидку.
  18. Нельзя использовать фразу: «это последние на складе» как прием для убеждения сделать покупку.
  19. Если решили через менеджера узнавать, откуда пришел клиент, не будьте настойчивы. Максимум 2 вопроса.
  20. Всегда благодарите клиента за оказанное вам доверие: «спасибо за заказ» или «спасибо за покупку».
  21. В аське всегда в одном сообщении с информацией товара указывайте его цену.

Комментарии к 21 способу
Total votes 31: ↑24 and ↓7 +17
Comments 22

Домены, как бизнес (что, где и как)

Reading time 6 min
Views 3.9K
Cтатья будет полезна тем, кто уже начал(или планирует) работать в этой перспективной отрасли. Темы:
  • Где лучше регистрировать домены
  • Каких ошибок нужно стараться избежать в начале
  • Где парковать домены, виды трафика (domain parking)

Читать дальше →
Total votes 24: ↑15 and ↓9 +6
Comments 28

StateController. Событийная модель в разработке интерфейсов. Часть 1

Reading time 5 min
Views 15K

Введение


Сейчас все больше и больше появляется JavaScript-фреймворков, которые несколько отличаются от нынче модного jQuery. Одни стараются реализовать MVC, другие предоставляют сильносвязанную архитектуру, третьи направлены на асинхронность, и так далее. Каждый разработчик выбирает то, что ему ближе всего, и что наиболее эффективно решает поставленную задачу. Поэтому я не буду обсуждать достоинства или недостатки фреймворков, а расскажу, к чему пришли мы в наших продуктах, какие концепции разрабатывались и какие проблемы решались.

Начну, пожалуй, с задачи. Мы строили SaaS, информационно-аналитическую систему, которая оперировала существенными объемами данных. Пользователь мог получать довольно большое количество информации за один запрос, но при этом мог некоторые блоки информации уточнять, переходя на еще больший уровень детализации. Построй мы классическую схему многостраничного приложения, мы бы получили грустную скорость выборки данных из базы, большое количество передаваемого трафика, но самое главное — не удовлетворяли бы потребность рынка, который требовал как можно меньшего времени ожидания ответа на запросы. Поэтому мы выбрали модель построения одностраничного приложения, когда данные догружаются по требованию и только те кусочки, которые нужны пользователю в данный момент времени. Убили трех зайцев одновременно.
Читать дальше →
Total votes 20: ↑13 and ↓7 +6
Comments 45

О модульности, хорошей архитектуре, внедрении зависимостей в С/C++ и разноцветных кружочках

Reading time 18 min
Views 41K
Не в совокупности ищи единства, но более – в единообразии разделения.
Козьма Прутков


Немного воды вначале


Нельзя не заметить, что аспектно-ориентированное программирование с каждым годом берет новые рубежи популярности. На хабре было уже несколько статей посвященных этому вопросу, от Java до PHP. Пришло время обратить свой взор на С/C++. Теперь я в первом же абзаце признаюсь, что речь пойдет не об «настоящих аспектах», но о чем-то, близко с ними связанном. Также рассуждение будет вестись в контексте embedded-проектов, хотя описываемые методы могут применяться где угодно, но именно embedded, это та область, где эффект будет максимально ощутимым. Еще я буду использовать слова «хидер» и «дефайн» для обозначения, соответственно, «заголовочного файла» и «макроопределения». Сухой и академичный язык это хорошо, но в данном случае, мне кажется, все будет проще понять, если пользоваться устоявшимися англицизмами.
Читать дальше →
Total votes 46: ↑44 and ↓2 +42
Comments 35

Самые простые техники адаптивной верстки

Reading time 2 min
Views 460K
Сайтов с адаптивной разметкой с каждым месяцем становится все больше, заказчики кроме кроссбраузерности все чаще требуют адаптивность, но многие разработчики не спешат обучаться новым техникам. Но адаптивный дизайн — это просто! В этой статье представлено 5 примеров адаптивной разметки различных элементов веб-страниц.


Читать дальше →
Total votes 168: ↑152 and ↓16 +136
Comments 51

10 полезных выводов и принципов юзабилити

Reading time 8 min
Views 23K
Каждый согласится, что юзабилити является важным аспектом веб-дизайна. Несмотря на то, работаете ли вы над дизайном сайта портфолио, над он-лайн магазином или веб-приложением, важно сделать страницы удобными и простыми для пользователей. В протяжении последних лет было сделано много исследований о разных аспектах веб-дизайна и дизайна интерфейсов. Результаты этих исследований весьма значимы и помогают нам улучшить качество наших работ. Данная статья содержит 10 полезных выводов и принципов юзабилити, которые помогут вам улучшить впечатления пользователей от ваших сайтов.
Идем дальше...
Total votes 140: ↑125 and ↓15 +110
Comments 69

Покажи мне свои настройки, и я скажу, кто ты

Reading time 5 min
Views 3.5K
Добрый день, уважаемые хабравчане! Продолжаю радовать вас уникальными статьями по пользовательским интерфейсам с живыми примерами на русском языке. Сегодня мы будем обсуждать серебряную пулю разработки программного обеспечения — настройки приложений.

Что такое настройки, все себе более или менее представляют. Любой пользователь компьютера рано или поздно с ними сталкивается. Только не всегда победителем из этого столкновения выходит пользователь. Основных проблем, с которыми приходится иметь дело, три: нужную настройку трудно найти, нужной настройки нет, и не понятно, что делает та или иная настройка.

Чтобы разобраться, давайте задумаемся, откуда берутся настройки? Теоретически, настройки — это способ для разработчика приспособить программу под разные сценарии использования. Пользователи разные, одному нужно одно, другому другое, и если различия в сценариях незначительные, выбор между ними отдается на откуп пользователю. Отсюда следует, что чтобы сделать правильный экран настроек, надо знать цели и задачи пользователей. Это в теории. Что же происходит на практике?
Читать дальше →
Total votes 150: ↑131 and ↓19 +112
Comments 119

Недооценённые итераторы

Reading time 5 min
Views 34K
Речь пойдет о стандартной библиотеке шаблонов STL. Будут рассмотрены существующие типы итераторов и их классификация, а также будут предложены несколько новых обёрток над итераторами. Которые позволят в некоторых случаях избежать лямбда-выражений, которых до С++11 как бы и нет.
Читать дальше →
Total votes 51: ↑50 and ↓1 +49
Comments 16

Географическая привязка сайтов: как это делается?

Reading time 6 min
Views 15K
С каждым днем в Интернете скапливается все больше и больше информации. И именно благодаря Интернету каждый человек может получить доступ к данным, необходимым именно ему. С другой стороны, ориентироваться в таком большом массиве без использования специальных инструментов практически невозможно. И таким инструментом конечно же становятся поисковые машины, помогающие человеку ориентироваться во все расширяющемся море информации.



С того момента, как поисковые машины сделали свои первые шаги, разработчики тратят огромное количество усилий на совершенствование организации, навигации и поиска документов. Сегодня, наверное, самая используемая техника — это поиск по ключевым словам, дающий пользователям возможность находить информацию по заданной теме. В тоже время, глобальное расширение Интернета приводит к тому, что количество найденной информации, получаемой человеком при поиске с использованием только ключевых слов, слишком велико. Напечатав в поисковой строке одно и тоже слово, разные люди, возможно, хотят получить различные результаты.
Читать дальше →
Total votes 48: ↑44 and ↓4 +40
Comments 10

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Reading time 17 min
Views 277K
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

В статье изложен механизм работы mod_rewrite. Понимание принципов его работы позволяет четко осознавать действие каждой директивы и ясно представлять себе, что происходит в тот или иной момент внутри mod_rewrite при обработке директив.

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

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

Почему так происходит?
Читать дальше →
Total votes 208: ↑203 and ↓5 +198
Comments 25

Производительный и читабельный XSLT: сборник советов

Reading time 7 min
Views 10K
В моей практике чаще всего в качестве шаблонизатора используется именно XSLT. Я не буду рассуждать о том, почему так происходит — о преимуществах данной технологии написано вполне достаточно. Но ещё больше написано о её недостатках. Считается, что XSLT является слишком многословным и тяжёлым для чтения, а также не самым производительным. В этой статье я постараюсь собрать несколько советов по улучшению качества XSLT-кода с точки зрения читабельности и выразительности. Некоторые из них также позволят XSLT работать несколько быстрее.

Именованные шаблоны

Многие «проблемы» XSLT связаны с тем, что мы слишком часто пытаемся писать на нём в процедурном стиле. Мы постоянно пытаемся сделать из него Smarty, но упираемся в один простой факт — XSLT является декларативным языком, как бы необычно это для нас не выглядело.
Например, мы пытаемся использовать именованные шаблоны, воспринимая их как процедуры, выводящие данные в определённом формате:

<xsl:template name="CreateItemLink">
    <xsl:param name="item"/>
    <a href="/item/?id={$item/id}">
        <xsl:value-of select="$item/name"/>
    </a><br/>
</xsl:template>


* This source code was highlighted with Source Code Highlighter.

Наверное, многие программисты именно так написали свой первый шаблон. И он неплохо решает свою задачу. Декларативный XSLT предлагает немного другой подход:

<xsl:template match="item">
    <a href="/item/?id={id}">
        <xsl:value-of select="name"/>
    </a><br/>
</xsl:template>


* This source code was highlighted with Source Code Highlighter.

Разница совсем не велика. Дело вкуса и стиля программирования. Давайте посмотрим, как шаблон будет использоваться в дальнейшем.

Читать дальше →
Total votes 60: ↑59 and ↓1 +58
Comments 50

Опасность использования «учебных» криптопротоколов

Reading time 5 min
Views 2.5K
Написать данную статью меня побудил не столько сам пост от пользователя EugeneSukhov, сколько первый комментарий от @AstralMan.

Действительно, зачастую увидев описание или даже готовую реализацию (соответствующую описанию) криптографического протокола высокого уровня, некоторые люди пытаются её тут же внедрить в собственный проект и объявить об этом широкой общественности (просьба не воспринимать это как камень в огород AstralMan). А ведь такое решение далеко не самое удачное! Описание криптопротокола, как правило, не содержит различных необходимых проверок на стороне участников и уточнений, имеющих критическую важность при реальном использовании. История знает множество примеров, когда протокол, основанный на стойких и прошедших испытание временем алгоритмах шифрования, хеширования и т.д. оказывался взломанным именно из-за самой логики построения, и из-за таких «мелочей» как проверки и уточнения. Описание криптопротокола, демонстрирующее саму его идею, будем называть учебным.
Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 19

Шаблонная магия, метафункция IsValidExpression

Reading time 7 min
Views 2.4K
Доброго времени суток, уважаемое Хабрасообщество.

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

Пример:
/* Определяем метафункцию HasF, которая позволяет определить наличие функции f() у любого класса. */
DECLARE_IS_VALID_EXPRESSION(
    HasF,
    ( ( U * ) NULL )->f() /* Это выражение компилируемо только если присутствует U::f() */ );
 
struct Foo{ void f(); };    
struct Bar{};
 
BOOST_STATIC_ASSERT( HasF< A >::value );  /* Тут константа HasF< A >::value будет true */
BOOST_STATIC_ASSERT( !HasF< B >::value ); /* Тут константа HasF< A >::value будет false */

Как Вы уже, наверное, догадались мы будем думать как написать макрос DECLARE_IS_VALID_EXPRESSION.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 14

Как на самом деле работает мозг

Reading time 4 min
Views 98K
На хабре довольно популярны статьи о различных техниках повышения работоспособности, улучшения памяти, самомотивации и т.д. и т.п. Увы, зачастую авторы этих статей совершенно не представляют себе, что такое мозг, как он работает и почему всё устроено именно так.

Прежде всего, необходимо понять вот что:

Думать дорого
Total votes 340: ↑286 and ↓54 +232
Comments 465

Регистрация своей фирмы собственными руками, туду-лист

Reading time 12 min
Views 51K
Дисклаймер: описываю только свой личный опыт и мнения автора могут не совпадать с мнением автора. Статья огромная, читать много.

Пишу эту статью, и представляю себе тебя, читателя Хабра, которой в обеденный перерыв залез почитать что-нибудь для развития. А этот читатель, т.е. ты (да, не отворачивай глаза от букв, именно ты) давно наслышан, что своё дело – это круто. И, может быть, как раз не хватало лёгкого пинка, чтобы выйти из зоны будничного комфорта и что-нибудь, да предпринять.

Эта статья адресована тем, кто уже «на грани». Она почти лишена философии и туманных ссылок, просто тупо туду-лист. Бери и делай. Намеренно избавляю тебя от объяснений, зачем молодому проекту нужна госрегистрация, такая ли уж это свобода – быть собственником и от куда взять деньги на госпошлину. Статья адресована московским стартаперам, гео-патчи от других городов приветствуются в комментариях.
Будем считать, что с формой собственности определились — это ООО и упрощенка 6%. Если кому нужно ИП – там проще, справишься и без этой статьи.

Для создания фирмы необходимо:

Минимальный реквизит для создания своей компании
Подробности под кОтом.
Total votes 372: ↑351 and ↓21 +330
Comments 248

Обзор свежих материалов, октябрь 2010

Reading time 5 min
Views 823
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрельмай-июньиюльавгуст, сентябрь.


Читать дальше →
Total votes 97: ↑92 and ↓5 +87
Comments 22

Расширения Firefox — Работа с настройками

Reading time 5 min
Views 4.4K
Сегодня я хотел бы рассказать о том, как можно реализовать систему настроек для своего расширения. Начиная с определения опций и заканчивая добавлением в ваше расширение возможности менять настройки с помощью созданных вами диалоговых окон.

Первую статью, надеюсь из будущего цикла моих статей, можно найти здесь.

Итак, приступим
Total votes 33: ↑29 and ↓4 +25
Comments 22

Управление зависимостями в коде

Reading time 1 min
Views 5.6K
Я рассмотрел, как эволюционировал подход к управлению зависимостями в коде. Какие проблемы возникали на каждом этапе и как эти проблемы решались. Возможно на каком-то этапе вы узнаете свой проект и поймете куда двигаться дальше.

Основные темы:




Исходники проекта
Total votes 50: ↑40 and ↓10 +30
Comments 39
1

Information

Rating
Does not participate
Location
Ярославская обл., Россия
Works in
Date of birth
Registered
Activity