Практика

Практика

Foundation CSS: Как пофиксить нерабочий «скролл» к якорю

Мне нравятся ссылки вида example.com#something, когда на длинной странице мы сразу спускаем пользователя в нужное место. Например, блок добавить комментарий после длинной статьи. Незадача — Foundation (foundation.zurb.com) не любит такие вещи. От слова — совсем. Идет вниз — а потом «магия» и мы опять сверху. Даешь свободу якорям!

<a href="#something">sdfgdfhdfgh</a>
...
<a name="something">asdgsfh</a>

Продолжить чтение…


Практика

Быстрая оптимизация: очевидная, но частая ошибка в движках при поиске

Узкое место при работе сайта, который в принципе не может тормозить — является поиск. Если начать одновременно искать 1000 товаров, даже если их в базе 10 — небольшой сайт успешно валиться. А покупать мегахостинг на 10 товаров… какбы зря.

Пример как можно облегчить жизнь сайту:

SELECT COUNT(products.id) FROM products WHERE products.is_shown=1 
AND ( products.search_title LIKE "морковь%" OR products.search_title LIKE "% морковь%" OR products.friendly LIKE "%морковь%" );
SELECT products.id.... FROM products WHERE products.is_shown=1 
AND ( products.search_title LIKE "морковь%" OR products.search_title LIKE "% морковь%" OR products.friendly LIKE "%морковь%" ) ORDER BY products.title LIMIT 0,12

Очевидно, что морковки у нас не будет много — значит каунт вообще вообще не нужен. Достаточно поставить в условии после выборки результатов проверку на их количество, если меньше 12 — ура, мы все уже нашли!


Практика

CSS: Как загубить сайт лишней нагрузкой

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

css

А все почему — потому что куча bootstrap + flat-ui со всеми модулями + свои стили, и блоки вида

.demo-browser {
  background: #2c3e50 url(../images/demo/browser.png) 0 0 no-repeat;
  background-size: 659px 42px;
  color: #ffffff;
  margin: 0 41px 140px 0;
  padding-top: 42px;
  -webkit-border-radius: 0 0 6px 6px;
  -moz-border-radius: 0 0 6px 6px;
  border-radius: 0 0 6px 6px;
}


Практика

Mysql: Как не надо проверять «жива» ли база

При анализе кода, мною была найдена замечательная штука

// check for db-connection
$db_test = DB::query('SELECT COUNT(*) FROM products');
if (!$db_test) header('Location:' . prepUrl($_SERVER['REQUEST_URI']));

Почему именно каунт одной из больших таблиц для проверки «есть ли база» — это для меня загадка. SELECT id FROM products LIMIT 1 было бы чуть лучше, но даже так — КАЖДЫЙ раз до того как начать работать — а давайте соединимся с базой и проверим, не вылетела ли она от количества соединений. Потом она ВСЕ РАВНО может вылететь на середине выполнения — но мы же молодцы, мы проверили, тим лид может быть доволен. А тим лид потом немного не в себе*(((

Продолжить чтение…


Практика

PHP: Как не нужно наследовать

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

Продолжить чтение…