Бесплатно

Полезные конспекты книг и авторские заметки по информационным технологиям. Без формул

Текст
0
Отзывы
iOSAndroidWindows Phone
Куда отправить ссылку на приложение?
Не закрывайте это окно, пока не введёте код в мобильном устройстве
ПовторитьСсылка отправлена
Отметить прочитанной
Шрифт:Меньше АаБольше Аа

Полезные высказывания из книги «Факты и заблуждения профессионального программирования» Гласса

В разделе приведены цитаты из [8].

Хороший менеджмент важнее хорошей технологии.

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

Люди важнее, чем средства, методы и процесс.

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

Лучшие программисты до 28 раз превосходят слабейших, но оплата их труда не бывает соразмерной, поэтому лучший программист – самое выгодное приобретение в индустрии ПО.

Корреляция между результатами тестов и показателями на рабочем месте равна нулю.

Корреляция между оценками по информатике и производительностью труда тоже ужасна.

Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.

Разработка ПО – это интенсивная умственная деятельность, и среда, в которой она проходит, должна способствовать мышлению.

То, что можно надежно измерить («твердое»), обладает свойствами перетягивать внимание от того, что нельзя точно измерить (от «мягкого»).

Рекламный звон вокруг инструментов и методов («дешевле, лучше быстрее», «новое лучше старого») – это чума индустрии ПО, а реальное увеличение производительности и качества – от 5% до 35%.

Изучение нового метода или средства сначала понижает производительность программистов и качество продукта (см. кривую обучения – learning curve).

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

«Оптимистичная оценка» является главной причиной нарушения сроков выполнения в 51% проектов.

Сначала требования, потом – оценка.

Можно ли оценить время и затраты на решение задачи, не имея о ней представления?

70% оценок делаются кем-то, кто связан с отделом по работе с пользователями, а 4% приходятся на проектную команду.

Оценки в проектах ПО желательно корректировать впоследствии.

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

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

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

Универсальные решения требуют в разы больше времени.

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

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

Если код ПО предстоит модифицировать на 20—25% или больше, то проще и дешевле начать все заново и создать новый продукт.

Разработка ПО – это деятельность на 80% интеллектуальная и на 20% техническая.

Требования должны меняться в процессе.

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

Нужно применять анализаторы тестового покрытия.

За час можно сделать ревью примерно 100 строк кода.

Инспекции могут приводить к спорам, ухудшающим моральный дух команды.

Стоимость сопровождения в среднем 60% стоимости ПО, из них 60% – на модернизацию.

Сопровождение более трудоемко, чем разработка.

Жизненный цикл разработки: 20% – требования, 20% – проектирование, 20% – кодирование, 40% – устранение ошибок.

Улучшение качества разработки ПО приводит к тому, что сопровождения становится больше из-за облегчения внесения большого количества изменений в связи с применением обновленного инструментария и подходов.

Качество ПО есть совокупность свойств:

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

2. Надежность – это свойство программного продукта надлежащим образом выполнять свои функции.

3. Под эффективностью программного продукта понимают экономное расходование им времени и занимаемого места.

4. Принятие в расчет человеческого фактора (что называют также словом «юзабилити») подразумевает, что с программным продуктом легко и удобно работать.

5. Тестируемость ПО есть свойство, характеризующее легкость его тестирования.

6. Понятность ПО – это свойство, характеризующее, насколько легко (или трудно) специалисту, сопровождающему программный продукт, понять его работу;

7. Модифицируемым называют ПО, изменение которого не вызывает трудностей.

Удовлетворение пользователя = выполнение требований + своевременная поставка + приемлемая стоимость + качественный продукт.

Эффективность кода на ЯВУ, скомпилированного с оптимизацией, может достигать более 90% аналогичного ассемблерного кода (спор решен в 70-х).

Невозможно управлять тем, что невозможно измерить, – заблуждение.

В обучении программированию важно учить сначала читать код.

Полезные высказывания из книги «Путь программиста» Сонмеза

В разделе приведены цитаты из [9].

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

Надо быть не успешным, а ценным.

Вы получите ровно столько, сколько вкладываете.

Человек, имеющий наибольший интерес, всегда находится в невыгодном положении на переговорах.

Большинство людей думают, что деньги имеют значение только в краткосрочной перспективе.

Большой заработок не делает человека финансово образованным.

Актив приносит больше, чем стоит, пассив – меньше.

Ваши убеждения становятся вашими мыслями.

Ваши мысли становятся вашими словами.

Ваши слова становятся вашими действиями.

Ваши действия становятся вашими привычками.

Ваши привычки становятся вашими ценностями.

Ваши ценности становятся вашей судьбой (Махатма Ганди).

Упади семь раз, встань восемь (японская пословица).

Ни у кого нет монополии на правду.

Написание книги «Путь программиста» заняло 500 часов.

Все должны помогать друг другу.

Полезные высказывания из книги «Рефакторинг. Улучшение существующего кода» Фаулера

В разделе приведены цитаты из [10].

Рефакторинг (refactoring) – изменения во внутренней структуре программного обеспечения, имеющие целью облегчить понимание его работы и упростить модификацию, не затрагивая наблюдаемого поведения.

Производить рефакторинг (refactor) – изменять структуру программного обеспечения, применяя ряд рефакторингов, не затрагивая его поведения.

Рефакторинг предоставляет технологию приведения кода в порядок, осуществляемую в более эффективном и управляемом стиле.

При каждой возможности проводить тестирование.

Цель рефакторинга – упростить понимание и модификацию ПО.

Оптимизация производительности часто затрудняет понимание кода.

Рефакторинг не меняет видимого поведения ПО.

Рефакторинг улучшает композицию ПО.

Изменение размера образа программы в памяти редко имеет значение.

Удаление дублирующегося кода улучшает композицию.

Рефакторинг облегчает понимание ПО.

Рефакторинг делает код легким для чтения.

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

Рефакторинг помогает найти ошибки.

Рефакторинг ускоряет понимание программ.

Рефакторингом следует заниматься постоянно понемногу.

Сначала необходимость рефакторинга будет неприятна.

Чаще всего рефакторинг начинается с необходимости добавления в ПО новой функции.

Рефакторинг – процесс быстрый и ровный.

Получение сообщения об ошибке – причина провести рефакторинг.

Проводить рефакторинг при разборе кода.

Рефакторинг облегчает модификацию.

Рефакторинг способствует получению более конкретных результатов от разбора кода.

Использовать UML и CRC-карты при разборе дизайна кода.

Рефакторинг разделяет большие объекты на несколько меньших.

Благодаря помещению отдельного программного слоя между объектной моделью и моделью базы данных можно отделить модификации двух разных моделей друг от друга.

Если изменяемый интерфейс используется недоступным для изменения кодом, то из старого интерфейса вызывать новый, пометив старый как устаревший.

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

Не публиковать интерфейсы раньше срока.

Определять родительский класс исключения для пакета в целом.

Представлять себе возможный рефакторинг.

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

Рефакторинг должен подразумевать его завершение.

Окончание проекта может быть причиной отложения рефакторинга.

Программа весьма отличается от физического механизма.

Рефакторинг может быть полной заменой предварительному проектированию.

При рефакторинге от предварительного проектирования требуется приемлемое решение, а не единственно правильное.

Гибкие решения сложнее обычных.

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

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

Подходы написания быстрых программ:

– при декомпозиции каждому компоненту выделяется бюджет ресурсов – по времени и памяти; компонент не выходит за рамки бюджета, хотя разрешен обмен ресурсами;

– постоянное внимание и попытки программиста сделать систему производительнее.

 

Если в равной мере оптимизировать весь код, то 90% оптимизации будет произведено впустую.

Большая часть времени расходуется небольшой частью кода.

Запуск в конце разработки профайлера и выявление затратных компонентов.

Рефакторинг выигрывает время для оптимизации.

Рефакториг обеспечивает более высокое разрешение для анализа производительности.

Рефакторинг возник в 80-х.

Одно и то же выражение в двух методах одного класса – необходимо выделение метода.

Одно и то же выражение в подклассах одного уровня – необходимо выделение метода с последующим подъемом поля.

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

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

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

Следует активнее применять декомпозицию методов.

В 99% случаев, чтобы укоротить метод, требуется лишь выделение метода.

Устранить временные переменные метода заменой временной переменной вызовом метода.

Длинные списки параметров метода сокращать введением граничного объекта, сохранением всего объекта.

Если не удалось удалить все лишние временные переменные и параметры, применить замену метода объектом метода.

Даже одну строку имеет смысл выделить в метод, если она нуждается в комментарии.

Для условных выражений делать выделение с помощью декомпозиции условных операторов.

Содержащийся в цикле код – отдельный метод.

При большом числе атрибутов класса применять выделение класса.

Одинаковые префиксы или суффиксы подмножества переменных – необходимость создания компонента.

Для создания компонента как подкласса использовать выделение подкласса.

Если класс не использует постоянно все переменные своего экземпляра – применить выделение класса и выделение подкласса несколько раз.

Для класса с чрезмерным объемом кода применить выделение класса или выделение подкласса, а для дальнейшего разделения – применить выделение интерфейса и выявить еще части.

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

Класс GUI выделить с его данными и поведением в отдельный объект предметной области.

Работая с объектами, следует передавать методу не все, а столько, чтобы он мог добраться до всех необходимых ему данных.

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

Чтобы группу данных, полученных от объекта, заменить самим объектом, применить сохранение всего объекта.

Если есть несколько элементов данных без логического объекта, применить введение граничного объекта.

Если не нужно создавать зависимость между вызываемым и крупным объектом, можно передавать все в параметрах.

Если класс часто модифицируется различными способами по разным причинам, необходимо разбиение на классы.

Определить, что изменяется по одной причине в классе, и применить выделение класса.

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

Чтобы поместить связку методов в один класс, использовать встраивание класса.

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

Если метод использует функции нескольких классов, то разбить его выделением метода.

То, что изменяется одновременно, надо хранить в одном месте (для исключений – паттерны стратегия и посетитель).

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

Элементарные типы убирать применением замены значения данных объектом или замену кода типа классом.

Для условных операторов, зависящих от кода типа, применять замену кода типа подклассами или замену кода типа состоянием, стратегией.

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

Для примитивов в типах параметров применять введение граничного объекта.

Если обнаружена разборка на части массива, применить замену массива объектом.

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

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

Если одним из вариантов является null, применить введение объекта Null.

Чтобы заставить экземпляры одной иерархии ссылаться на экземпляры другой, применить перемещение метода и перемещение поля.

При наличии подклассов с недостаточными функциями применить свертывание иерархии, встраивание класса.

Если есть абстрактные классы, не приносящие большой пользы, применить сворачивание иерархии.

Ненужное делегирование можно устранить с помощью встраивания класса.

К методам с неиспользуемыми параметрами применить удаление параметров.

К методам со странными абстрактными именами применить переименование метода.

Для непонятных переменных применять выделение класса.

Условно выполняемый код удалить, применив введение объекта Null.

Для алгоритма, использующего несколько переменных, применить выделение класса.

Для цепочки сообщений применить сокрытие делегирования (для конечного объекта можно применить выделение метода, перемещение метода и передвинуть использующий его код вниз по цепочке).

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

При наличии нескольких методов, не выполняющих большой работы, применить встраивание метода и поместить в вызывающий метод.

Посредника преобразовать в подкласс реального класса можно заменой делегирования наследованием.

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

При чрезмерном наследовании применить замену наследования делегированием.

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

Если в библиотечный класс нужно включить 1—2 новых метода, то применить введение внешнего метода.

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

К открытым полям классов применить инкапсуляцию поля.

К открытым полям коллекций применить инкапсуляцию коллекций.

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

Методы доступа переместить в класс данных, применив перемещение метода, выделение метода.

К методам получения и установки значений полей применить сокрытие метода.

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

Можно делать все родительские классы абстрактными.

Для разрушения иерархии при неиспользовании интерфейса родительского класса применить замену наследования делегированием.

Чтобы избавиться от комментариев к блоку, использовать выделение метода, переименование метода, введение утверждения.

Перед рефакторингом должны быть созданы тесты.

В каждом классе должен быть свой метод, с помощью которого он может себя протестировать.

Тестовые данные – test fixture.

Проверять, действительно ли тест проверяет то, что требуется.

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

Тестировать те области, возможность ошибок в которых выше.

Проверять, что ожидаемые ошибки происходят в надлежащем порядке.

Проверять тестами границы.

Для представления денежных величин использовать паттерн количество.

Выделение метода и другие рефакторинги – смотреть по шагам в приложении книги.

Полезные высказывания из книги «Видимость в интернете» Тероу

В разделе приведены цитаты из [11].

Трафик (traffic) – количество посетителей, пришедших на веб-сайт за определенный промежуток времени (обычно за сутки).

Результаты поиска – Search engine results page (SERP).

По оценке 2006 года, среднестатистический пользователь за месяц просматривает примерно 93 страницы результатов поиска, в среднем затрачивая на поиск около 27 минут.

Основные задачи поисковых систем:

1. Поисковый робот – «паук» (spider), отыскивает страницы и включает в индекс (этот способ сбора называется сканированием – crawling, spidering).

2. Индексатор найденные роботом на доступных ему страницах слова и словосочетания помещает в индекс на сервере поисковой системы.

3. Процессор запросов, часть поисковой системы, сопоставляет ключевые слова и словосочетания из строки запроса с веб-страницами из индекса и отбирает страницы, наиболее близко соответствующие запросу пользователя.

Алгоритмы поисковых систем хранятся в строгом секрете и ежедневно изменяются.

Все, что мешает этому процессу, негативно скажется на позиции сайта в поисковых системах. Поисковые роботы:

1. Переходят по ссылке на веб-адрес (URL).

2. Запрашивают URL у вашего веб-сервера, ваш веб-сервер передает веб-страницу поисковой системе.

3. Составляют список слов и словосочетаний, найденных на странице с данным URL.

4. Определяют «вес», или релевантность, данных слов и словосочетаний на странице. Передают информацию в индекс поисковой системы.

5. Когда пользователи обращаются к поисковой службе, та выполняет поиск по индексу (обычно индекс обновляется каждые 2 недели).

Что делают эксперты по поисковой оптимизации:

1. Убеждаются, что ключевые слова и словосочетания занимают на ваших страницах стратегически важные места, вне зависимости от текущих алгоритмов поисковых систем.

2. Обеспечивают роботам свободный доступ к вашим страницам.

Фактически 95% добавлений, произведенных с помощью Add URL, являются спамом.

Наиболее приемлемый для большинства веб-страниц вариант уведомления о существовании сайта – обнаружение страницы поисковым роботом при штатном сканировании сети.

Поисковая система, применяющая модель оплаты за включение (pay-for-inclusion model), включает страницы веб-сайта в свой индекс за определенную плату.

Реклама в поисковых системах включает в себя спонсорство и плату за размещение (PFP – pay for placement).

Основные факторы успеха рекламной кампании в поисковых системах:

– выбор ключевых слов;

– ценовая политика;

– содержание рекламы;

– расположение рекламы;

– популярность страниц, размещающих объявление.

Интернет-каталоги (web directories) управляются редакторами и часто называются ручными («человеческими») поисковыми системами.

Результаты в каталогах дополняются «приходящими» (fall-through) от партнерской поисковой системы.

Участие сайта в серьезных специализированных каталогах обеспечит лидирующие позиции в автоматических поисковых системах.

Специализированные поисковые системы: локальные, новостные, поиска товаров и услуг.

Электронный маркетинг:

– поисковая оптимизация;

– реклама в поисковых системах;

– платное размещение в поисковых системах;

– платное размещение в интернет-каталогах;

– оптимизация под специализированные (вертикальные) поисковые системы;

– оптимизация для мультимедийных поисковых систем.

Компоненты оптимальной и долгосрочной видимости сайта в поисковой системе: ключевые слова, ссылки, популярность. Эти факторы сильнее влияют на видимость в поисковых системах, чем использование ключевых слов в имени домена и/или в именах файлов.

Лучше всего поместить ключевые слова во все возможные HTML-теги, но избегая их переполнения: самые важные места сайта – теги title, тело сайта (видимый текст); текстовые гиперссылки, метатеги, альтернативный текст графических изображений, имена домена и файлов.

 

Проблематичные навигационные решения:

1. Небрежный HTML-код.

2. Графические меню навигации.

3. Ссылки, встроенные в скрипты JavaScript, динамические изображения, массивы, меню навигации со скриптами.

4. Динамические или основанные на базах данных веб-страницы с?, &, $,=, +, % в URL и генерируемые скриптами.

5. Flash.

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

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

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

Поисковая оптимизация и юзабилити веб-сайтов не противоречат друг другу.

Компонент «Популярность»:

– популярность, или индекс цитирования ссылки в поисковых системах (link popularity);

– посещаемость ссылки, то есть частота переходов по щелчку на ссылке (click popularity, click-through popularity).

Качество ссылок с других сайтов на ваш сайт имеет гораздо больший «вес», нежели количество.

Крупнейшие поисковые системы и некоторые интернет-каталоги измеряют частоту нажатий пользователями ссылок на ваш сайт и время пребывания на нем (то есть чтения ваших страниц), а также частоту повторных посещений вашего сайта.

На данный момент уровень посещаемости ссылки не участвует в определении релевантности из-за clickbot programs.

Главная страница сайта обычно считается более важной, чем остальные.

Ссылок на главную страницу должно быть больше всего на других страницах.

Юзабилити влияет на SEO.

Базовые правила веб-дизайна:

– простота чтения;

– простота навигации;

– простота поиска;

– согласованность в макете и дизайне;

– высокая скорость загрузки.

В первую очередь глазом распознается желтый.

Уровень контрастности должен быть 90% и более.

Более всего контрастируют черный и белый.

На графике – шрифты без засечек.

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

У пользователей должна быть возможность запросить поисковые системы и перейти на страницы именно с той информацией, которая им нужна.

Нужно обозначать цветом посещенные ссылки.

Цвета и эффекты гиперссылок должны быть всегда уникальными: другой текст не должен выглядеть так же.

На странице ЧаВо должны быть перечислены все вопросы сверху.

Должен быть беспрепятственный доступ к контактной информации.

Некоторые ключи имеют выраженную сезонность.

Мозговой штурм поможет выявить ключи, интересующие потенциальных клиентов, а не ваше начальство.

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

Не используйте рекламные и маркетинговые ключи.

В списке ключевых слов должно быть максимальное количество всевозможных комбинаций.

Обычно стоит уделить больше внимания длинным ключевым словосочетаниям, чем отдельным словам, поскольку те, кто делает специализированный запрос, являются более заинтересованными потенциальными клиентами.

Слова нужно прорешивать; задайтесь вопросами:

– в какой форме – в единственном или множественном числе – слово вводится чаще всего?

– какие 3—4 слова чаще всего вводят одновременно?

– в каком порядке вводят слова?

Многие поисковые системы или интернет-каталоги предоставляют связанные запросы поиска (related searches), похожие запросы (other searched for), narrow your search (сузить область поиска).

Инструменты: WebTrends, Omniture, ClickTracks, SearchMarketing (Yahoo), AdWords (Google), adCenter (Microsoft).

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

Еще инструменты: Trellian, Wordtracker.

В FAQ – от 200 до 800 слов.

В title – 5—10 слов, или 60—90 знаков (без фильтруемых предлогов, союзов, частиц и так далее).

Ни в коем случае не помещайте бренд (название фирмы) в title (особенно в начало).

Аббревиатуры типа Inc., Ltd., ОАО, ЗАО, ООО никогда не задают в поиск.

Лучший способ придумать заголовок – следовать стратегии суммирования мощности power combo: при любой возможности помещайте на первые три позиции тега title такие слова, которые при вводе в строке поиска в любой комбинации составляют ключевое словосочетание – organic green teas = organic green teas, organic teas, green teas.

Поисковые системы оценивают также степень близости ключевых слов в title и всем первичном тексте сайта.

Пользователи ищут и множественное, и единственное число слов, поэтому в заголовках title можно их совмещать.

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

«Пауки» всегда будут индексировать для определения релевантности как теги title, так и теги body.

Высота расположения ключевых слов на странице называется заметностью ключевых слов.

Один из простых способов разместить ключевые слова в видимой области веб-страниц – включить их в заголовки.

Первый абзац вашей страницы должен точно описывать содержимое всей этой страницы с применением наиболее желательных ключевых слов.

Эффективный способ оптимизации слишком длинных страниц – разместить список всех заголовков, содержащих ключевые слова в верхней части страницы – в видимой области. Другой способ заострить внимание на ключевых словах – писать заключительные абзацы или предложения, размещаемые почти на каждой странице сайта, например, призывы к действию – calls to action.

Многие поисковые системы воспринимают текст гиперссылки и вокруг нее как важный.

Посетители сайта автоматически делают вывод, что синее слово с подчеркиванием (или просто слово с подчеркиванием) направит их прямо к информации, содержащейся в данном слове.

Ключевые слова лучше включать в гиперссылку.

Способ напоминания себе о том, что нужно встраивать в текст больше ключей, – вопросы типа «Какие ____?», «Что ____?», «О чем ____?» и так далее.

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

Используйте в метатегах описания 4—5 наиболее важных ключевых слов на страницу и в общей сложности 200—250 символов.

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

Если в метатегах описания вы используете слова, которые не встречаются на ваших веб-страницах, большинство поисковых систем сочтут их спамом.

Рекомендации для создания метатегов описания:

– не повторяйте в них в точности тот же текст, который использовался в содержимом тегов title. Это будет сигналом для поисковых роботов о возможном применении «набивки» содержимого ключами (keyword stacking);

– помещайте наиболее важное ключевое словосочетание в начало метатега описания;

– для важнейших ключевых слов по возможности используйте и единственное, и множественное число;

– старайтесь не разделять ключевые слова и/или словосочетания;

– по минимуму прибегайте к повторам ключевых слов. Не превышайте 3-4-х повторов;

– знайте, что некоторые поисковые системы воспринимают разные формы слова, например, единственного и множественного числа, как одно и то же слово;

– разделяйте повторяющиеся ключевые слова значимыми эпитетами;

– встраивайте призыв к действию, побуждая целевого пользователя щелкнуть на ссылке, ведущей на ваш сайт, чтобы «узнать подробнее о …", где «…» – ключевые слова;

– перечень ключей, размещенный в метатеге описания, не только не заставит целевого пользователя нажать ссылку на ваш сайт, но также может послужить признаком потенциального спама для поисковых роботов;

– убедитесь, что ваши метатеги в основном содержат связные предложения или словосочетания. Если вы не поместили текст в метатеги описания, то поисковые системы, которые его используют, сами создадут описание на основе содержимого страницы. Такое описание, возможно, отразит ваши страницы не в лучшем свете.

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

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

Купите 3 книги одновременно и выберите четвёртую в подарок!

Чтобы воспользоваться акцией, добавьте нужные книги в корзину. Сделать это можно на странице каждой книги, либо в общем списке:

  1. Нажмите на многоточие
    рядом с книгой
  2. Выберите пункт
    «Добавить в корзину»