Как создаются «костыли», или когда надо «быстро»

И так, была задача «быстро» сделать сообщество закрытым. Дело в том, что я действительно давно хотел сделать это, а тут случай помог. В общем:

костыль — любимый инструмент программистов после велосипеда. Превращает не работающий код в хоть как-то работающий или работающий через ж…

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

В методе getUid есть место, когда участник не авторизирован. Мы добавим туда:

if(Config::get(Config::PARAM_PRIVATE) == 1) { 
   include HLEB_GLOBAL_DIRECTORY . '/app/Optional/login.php';
   hl_preliminary_exit();
}

Где, если в конфиге выставить:

parameters.private = "1" 

То сайт становится приватным, вас кидает на страницу авторизации.

Отлично. Но есть вопросы:

А если я включу еще и инвайт систему, то я попаду в неё?

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

Куда на странице login делась кнопка «запомнить меня»?

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

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

Я не знаю. Точнее… тут могу написать 100 пунктов почему там нет оповещений.

Возможно стоит шаблон для входа разместить в папке с шаблонами, а не по app/Optional?

Не буду далее отвечать сам себе. Цель была, — быстро сделать. И это было сделано. Теперь мы имеем костыль. У меня есть еще некоторые сайты, тот же форум на Discourse. И что теперь, я должен постоянно коситься на него и думать, что там лучше? Что мешает на этом сайте сделать достойно это дело?

Ничего не мешает. Я просто показал, как создаются костыли, — быстро.

Поверьте, я не одинок в этом. Часто вижу «костыли» и у крупных компаний. Десятки миллионов долларов и 10 лет работы, например, было выкинуто (ИМХО) для одного решения в Q&A области. Зачем? Ведь было сразу понятно, что «костыль» будет.

4 Ответа

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

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

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

    1. Возможно, но меня мало интересует «везде», почему тут это надо делать, вот вопрос. Переделать всё, срочно! ) Ладно, а если серьезно, то жду просто SEO отчета от поисковых систем, SEO не завершено, а они застранцы пишут, мол рано ещё. Ждемс.