Может войдёшь?
Черновики Написать статью Профиль

Комментарии Proger_XP

Действительно, это основы Linux...

~ это домашняя папка (/root, /home/user), а .file — скрытая папка/файл, показывается не через shls, а через shls -a («all»).

p.s: «папка» короче, чем «директория».

  1. Решается это очень просто — мета тегом canonical. Это единственный правильный путь решения данного вопроса.

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

  1. чтобы не «насиловать» сервер в случае DDOS

О, ну это просто отговорка — в любом веб-приложении тонна мест, где можно получить DDoS: та же авторизация по определению требует тяжёлых вычислений хэша, или фильтр каких-нибудь товаров, который не может покрыть все поля индексами. А некоторые типы атаки (на канал) вообще не требуют никаких действий от сервера, ими можно завалить даже отдачу статики, безо всяких PHP. Конечно, специально создавать бутылочные горлышки не нужно, но именно защищаться от DDoS нужно на другом уровне (сетевом).

  1. PS: лучше код гляньте, скажите — правильная ли реализация или я что-то не учел или мог бы сделать лучше?

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

PHP
if (count($this->query) > 0) {

Это может вызывать повторный запрос, т.е. внутри paginator будет делаться два запроса (нужно проверить).

Lord_Alfred

Спасибо за замечания)

  1. но есть два момента, из-за которых вы делаете два запроса вместо одного

и

  1. Нет смысла дополнительно вначале проверять общее число записей в таблице, это можно определить из второго запроса.

Тут тоже на самом деле не всё так просто. Возможно, что у человека, кто потом заберет этот код себе — не будут созданы индексы по фильтрации, которая у меня заложена в методе PHPfiltered(), поэтому sqlSELECT может оказаться в разы медленнее, чем sqlCOUNT. Но это спорно, конечно.

  1. PHPif (count($this->query) > 0) {
  2. Это может вызывать повторный запрос, т.е.

Это из оригинального кода пагинатора) И это не sql query, это get query parameters

  1. внутри paginator будет делаться два запроса (нужно проверить).

Смотрел через debugbar — делается всего 1 count-запрос, не 2.

  1. Здесь вы вначале делаете запрос с COUNT, дальше без, но с LIMIT. А зачем первый запрос вообще нужен?

Первый запрос для того, чтобы выдать 404 ошибку. Как уже выше писал — это из-за скорости (в любом случае COUNT будет быстрее SELECT), поэтому для проверки несуществующих страниц, имхо, лучше использовать его — чтобы не «насиловать» сервер в случае DDOS. Но если переписать код, используя вашу мысль — можно в перспективе сделать кеширование гораздо красивее, чем ещё более сильнее обезопасится от тупого DDOS.

ИМХО, это не может быть так — «зеркала» можно создать на любом сайте вообще без усилий, добавив любой параметр к URL (...?foo=bar); с «пустышками» сложнее, но тоже реально. Если такие проблемы и были, то когда-то давно, в то же время, когда URL были «обязаны» с точки зрения SEO иметь расширение .html, а JS-страницы не индексировались вообще.

Lord_Alfred

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

PS: лучше код гляньте, скажите — правильная ли реализация или я что-то не учел или мог бы сделать лучше?

  1. К слову, эти же огрехи применимы и к текущей версии Habravel:

Потому что Habravel (внезапно) написан на Laravel, а автор описывает общую «проблему» Laravel. Не знаю, насколько это именно проблема в SEO, ИМХО, поведение логичное и поисковики его должны учитывать.

Lord_Alfred

Да, я в курсе, что он на Laravel, поэтому и добавил этот комментарий.

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

Документацию уже частично обновили до 5.3, до 5.4 обновим в течении месяца-двух.

На этом сайте можно публиковать статьи после регистрации, так что хотите помочь — переводите и публикуйте, никто не мешает.

  1. Я «за», чтобы автор перевода ввёл развёрнутые пояснения для новичков в некоторых моментах.

Это перевод официальных английских доков с laravel.com, так что претензии надо направлять к ним.

  1. жутко много шума

В смысле прыжков по фасадам, которые передают вызовы в другие классы? С этим ничего не сделать, это идеология ядра Laravel. Лично мне это тоже крайне мешает отлаживать проекты отладчиком.

Шестой пункт (про наставника) выглядит притянутым за уши — есть люди, которым наставник противопоказан и они гораздо лучше во всём разбираются сами. Я сам такой. А остальные пункты дельные и, на мой взгляд, подходят для каждого.

Cheshirrski

Присоединяюсь.
И от себя:

Залезайте под «капот». Да, там черт ногу сломит, но документация как по мне описывает процентов 70 возможностей фреймворка.

Изучайте сопутствующие технологии, хотя бы на базовом уровне. Жизнь потом все равно заставит).

Если позволяет время — набейте своих шишек. И я не про траву). Пример — можно поставить openserver, lamp, wamp etc, и можно поднять на виртуалке линукс с nginx, php-fpm и что там вам еще нужно руками — идем по более трудному пути, но получая больше опыта.

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

Да, вот это определённо зря, первая статья действительно была многим очень полезна. В твоей статье ничего обидного нет, наоборот, всё объяснено и затрагивает частую проблему.

Назад | ДальшеДвижется на Habravel