Исследование скорости загрузки как фактора ранжирования

Скорость загрузки и инструмент PageSpeed Insights от Google уже давно входят в работу SEO специалиста. После того как Google в июле 2018 объявил что скорость загрузки страницы становится фактором ранжирования, улучшением этой самой скорости занялись даже те кто раньше не верил в её значимость и отказывался с этим возиться.

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

Для ответа на эти и некоторые другие вопросы я провел небольшое исследование зависимости показателей скорости загрузки и позиции сайта. Оно охватило многие сайты различных тематик: начиная с туризма и заканчивая беттингом. Для репрезентативности выборки запросы брались с совершенно различными результатами поиска и с большим разбросом частот (от микро низкочастотных до высокочастотных). Исследовались первые 20 результатов поиска Google и Яндекс как для мобильных устройств, так и для компьютеров (на самом деле 21, так как именно за топ-20 видны изменения показателей). В общей сложности оценивалась скорость загрузки более десятка тысяч страниц.

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

(more…)

Continue Reading Исследование скорости загрузки как фактора ранжирования

Как скоро хуки вытеснят классы React?

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

“Мы стремимся к тому, чтобы хуки смогли охватить все существующие случаи применения классов, но при этом продолжим поддерживать компоненты классов на протяжении обозримого будущего. В Facebook у нас есть десятки тысяч компонентов, написанных в классах, и мы не планируем их переписывать. Наоборот, мы начинаем использовать хуки в новом коде наравне с классами”,— документация React.

Вместе с тем отмечу, что React существенно развился с момента выхода его первой публичной версии, равно как и язык, на котором он был написан. Поэтому сам факт имеет место быть, и они однозначно будут адаптироваться к последним трендам, о чём я и собираюсь рассказать в этой статье. На вопрос же будет ли моё итоговое заключение верным, уверенно сможет ответить лишь время. (more…)

Continue Reading Как скоро хуки вытеснят классы React?

Паттерны проектирования в php

Шаблоны проектирования были представлены общественности в книге Design Patterns (Erich Gamma, Richard Helm, Ralph Johnson и John Vlissides (известные как «банда четырёх»)). Основная концепция, представленная во введении, была простой. За годы разработки программного обеспечения Gamma и сотоварищи открыли определённые шаблоны («паттерны») проектирования, как и архитекторы, строящие дома и здания, могут разработать шаблоны расположения уборных или обустройства кухни. Используя эти шаблоны, или паттерны проектирования, можно проектировать качественные здания быстрее. То же применимо и к разработке программного обеспечения.

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

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

Continue Reading Паттерны проектирования в php

Как я клею топовые дроп домены на продвигаемый сайт

Дроп-домен (от английского, drop – брошенный) – домен, который когда-то существовал, но по какой-то причине его забросили (случайно, просто купили новый домен и не перевезли сайт с помощью 301 редиректа. Кто-то просто не видит смысла держать и оплачивать оба домена). Если уметь правильно работать с такими брошенными доменами – можно очень эффективно их использовать для буста своего сайта в поисковых системах (повышение позиций и как следствие – трафика на сайт). (more…)

Continue Reading Как я клею топовые дроп домены на продвигаемый сайт

Обеспечиваем безопасность в гибкой разработке и CI/CD

DevOps появился из-за культурных, функциональных и технических разногласий между командами разработчиков, желающими часто выпускать свой продукт, и командами эксплуатации, желающими сохранить надежность и стабильность. Культура DevOps затрагивает как сотрудничество, принципы мышления, так и методы достижения этих целей, включая методы DevOps — непрерывную интеграцию и доставку (CI/CD), инфраструктуру как код (IaC), AIOps, использующий машинное обучение для мониторинга приложений.

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

(more…)

Continue Reading Обеспечиваем безопасность в гибкой разработке и CI/CD

Метод Любищева и учет времени по мотивам книги Даниила Гранина «Эта странная жизнь»

Каждый из нас хотя бы раз в жизни задумывался о времени, его неумолимости и быстротечности. Вроде бы вчера ты окончил школу и поступил в университет, а уже сегодня тебе 36 лет, ты женат и у тебя двое детей, а по ощущениям та пропасть времени, которая прошла, слилась в один миг. Все очень стремительно…Не так давно, в наше непростое время я был на онлайн-конференции слушателем и один из спикеров, известный предприниматель и основатель крупной ИТ-фирмы с множеством филиалов по всей России, говорил о своем личном и рабочем времени. Все как у всех: времени мало, то, что есть трудно распределить между важным и… важным, плюс семья, одно накладывается на другое и в результате нет ни на что времени. Конференция была онлайн, докладчик был дома, выступая в череде таких же докладчиков, доклады которых слились в одно и слушались мною фоном. Но этот харизматичный человек как-то по-домашнему все рассказывал, даже показал нам свою собаку-пекинеса (чтобы вы понимали про атмосферу доклада). Столь необычная подача материала естественно приковала к себе мое внимание, и я начал внимательно его слушать. Речь была о книге Даниила Гранина “Эта странная жизнь” и методе Любищева, который практиковал автор доклада. Докладчик честно сказал, что эта вторая его попытка использовать этот метод в своей работе и личной жизни. На самом деле не понятно на сколько его хватит (намеренно не рассказываю о сути, т.к. позже постараюсь сделать это сам). А в конце доклада был совет прочесть эту книгу…

В результате всего этого безобразия, я прочел книгу, впечатлился и появился блок учета времени по методу Любищева в мобильном приложении.

(more…)

Continue Reading Метод Любищева и учет времени по мотивам книги Даниила Гранина «Эта странная жизнь»

Best Practices for Modern PHP Development

PHP is a complex language that has suffered years of twists, bends, stretches, and hacks. It’s highly inconsistent and sometimes buggy. Each version has its own unique features, warts, and quirks, and it’s hard to keep track of what version has what problems. It’s easy to see why it gets as much hate as it does sometimes.

Despite that, it’s the most popular language on the web today. Because of its long history, you’ll find lots of tutorials on how to do basic things like password hashing and database access. The problem is that out of five tutorials, you have a good chance of finding five totally different ways of doing something. Which way is the “right” way? Do any of the other ways have subtle bugs or gotchas? It’s really hard to find out, and you’ll be bouncing around the internet trying to pin down the right answer.

That’s also one of the reasons why new PHP programmers are so frequently blamed for ugly, outdated, or insecure code. They can’t help it if the first Google result was a four-year-old article teaching a five-year-old method!

This document tries to address that. It’s an attempt to compile a set of basic instructions for what can be considered best practices for common and confusing issues and tasks in PHP. If a low-level task has multiple and confusing approaches in PHP, it belongs here. (more…)

Continue Reading Best Practices for Modern PHP Development

PSR Стандарты

PSR — Чуть больше, чем стиль оформления кода.

Как показала практика, многие PHP-разработчики знакомы с аббревиатурой PSR. Однако большинство все еще ограничены знанием, что PSR это стандарт оформления кода.

Ребята из PHP-FIG (PHP Framework Interop Group), группа концепций совместимости PHP, которые занимаются развитием PSR (PHP Standards Recommendations) шагнули далеко вперед. Поэтому давайте разберемся, что из себя представляет PSR…

(more…)

Continue Reading PSR Стандарты