Pull to refresh
44
0
Сергей Кокшаров @devaka

User

Send message

Решение проблемы сортировки деревьев с помощью бинарного Materialized Path

Reading time2 min
Views13K
Столкнулся с проблемой реализации древовидных комментариев на одном проекте, в этой заметке выкладываю своё решение.

Описание задачи


  • Хранение иерархических данных (древовидных комментариев) в реляционной БД MySQL
  • Простое добавление узлов/ветвей
  • Выборка всего дерева одним запросом, с отсортированными в нужном порядке ветвями

В принципе, задача классическая, и сначала я её решил с помощью объединения Adjacency List и Materialized Path. Другими словами, в таблице добавлены колонки

id INT(11)
parentid INT(11)
mpath VARCHAR(255)

В mpath хранился полный путь ветки в дереве, например /1/3/4/5/8/9, где через знак "/" перечислялись ID комментария.

При таком подходе очень легко добавлять новые комментарии практически любого уровня вложенности. Выборка при этом производилась запросом:

SELECT *
FROM messages
WHERE postid=$postid
ORDER BY mpath ASC

Проблема возникла при росте числа комментариев.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments20

Жизнь разработчика (в картинках)

Reading time1 min
Views65K
Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Total votes 884: ↑700 and ↓184+516
Comments132

Будущее CSS разметки

Reading time8 min
Views14K
Питер Гасстон, автор книги по CSS3, опубликовал статью под названием The future of CSS layouts, перевод которой специально для читателей хабра представлен ниже.

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

После нескольких лет обещаний, CSS3 наконец-то преуспел в стилях. Он добавил в наш арсенал целый набор новых инструментов, обеспечив нас закруглёнными углами, градиентами, прозрачностью, преобразованиями элементов, анимацией и многим другим. Что же ещё сможет порадовать наш глаз?

Следующая проблема CSS это разметка. До текущего момента мы делали её, используя плавающие блоки, относительные позиции и трюки с отрицательными отступами, и всё это было сложно реализовать, чтобы результат был похож на стандартную двух- или трехколоночную разметку.

Консорциум W3C и создатели браузеров в курсе этих проблем и работают над рядом решений. Лидером среди них является (как не удивительно) Internet Explorer. Похоже, что IE10 будет предвестником новой эры CSS разметки, которая позволит создавать отличные, динамические и привлекательные сайты, используя недосягаемые ранее возможности.

В данной статье автор рассматривает различные методы разметки, которые хотелось бы использовать на отдельных стадиях разработки, от уже внедренных до чисто теоретических. Возможно, не все из них нам удастся использовать в дальнейшем (по крайней мере не в текущей форме), но стоит взглянуть на эти методы, чтобы понять будущее CSS разметки.
Читать дальше →
Total votes 97: ↑93 and ↓4+89
Comments76

12 советов по оптимизации тега TITLE

Reading time1 min
Views989
Тег title является самой важной частью страницы любого сайта, поэтому стоит уделить большое внимание тому, как вы его составляете. Создание заголовков подобно искусству и не каждый может составить его нужным образом с первого раза, для этого требуется знать некоторые тонкости. Применяя для своих сайтов приведенные 12 советов по использованию и оптимизации тега title, вы избежите множества проблем в будущем.

1. Тайтл должен отражать суть страницы.

2. Включайте ваш бренд в тайтл страниц.

3. Используйте разные тайтлы на разных страницах.

4. Тег title должен содержать в себе ключевые слова.

5. Не включайте в title слишком много ключевых слов.

6. Не используйте стоп-слов в тайтле.

7. Каждое слово не должно повторяться более двух раз.

8. Не используйте слишком длинные заголовки страниц.

9. Делайте длину title не более 8 слов.

10. Ставьте в начале заголовка наиболее значимые ключи.

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

12. Не используйте специальных символов.

Более подробно на блоге devaka.ru: devaka.ru/articles/title-tag-optimization
Total votes 26: ↑7 and ↓19-12
Comments10

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity