Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб [DLE]Easy Minecraft Shop - магазин предметов\вещей для сервера Minecraft

Настало время святой инквизиции, @Cames уже сказал больше 70% моих слов)
Начну пожалуй с самого худшего, а именно неправильное понятие ООП.
Какого фига ты используешь windows 1251?! UTF-8 Unicode!!

1. Говорить что то про гибкость настроек, а использовать вот это
Посмотреть вложение 44413
Если делаешь класс конфигов, используй getter/setter.
2. Ты слышал хоть раз о таком как Autoloader и NameSpace?
3. name.class.php, я что вернулся во времени PHP 4?
4. Использовать костыли по типу SafeMysql, когда в php есть прекрасная библиотека называется PDO!
ЭТО ООП СТИЛЬ?!
Посмотреть вложение 44415
5. Какой же ты молодец c:
Соединятся с базой, даже если она тебе не понадобится...
Полностью выкачивать пользователя с dle_users без кэша...
2 пустых запроса что бы получить только баланс :/
А ты знаешь что такое JOIN-ы?
Посмотреть вложение 44416
6. Что это за синтаксис такой? Ты экономишь на скобках и ещё делаешь вложенность.
А так же "and" или "or", ну ка, попробуй в других языка провернуть это, используй только && и ||
Посмотреть вложение 44417
Вот как это делается! Любой читающий это поймёт.
Посмотреть вложение 44418
7. Почему ты такой жадный? Почему ты хочешь использовать везде SELECT *?
Когда ты добавишь новый колонок в таблицу, а скрипт будет получать все значения поля даже если они не нужны! Вот из того примера выше, ты использовал только price и amount, а зачем ты все колонки получаешь с emcs_items?
8. У тебя мультисерверность достигается за счёт создания emcs_server_[\d], а теперь подумай, нужно удалить сервер то у тебя будут во первых перебои в ID, а так же есть вероятность что что база данных находится на другом сервере.
А использовать паттерн всё в одном это очень плохо! Кластеризация по тебе плачет.
9. Зачем ты используешь двойные кавычки в PHP? PHP сначала попытается найти в строке переменную, а потом уже вернёт строку. Зачем тратить эти милисекунды на это бессмысленное действие?
10. Перестаньте использовать echo в таких количествах!
Посмотреть вложение 44419
10.1 Во первых в echo можно передавать параметры через запятую
10.2 Вызов одного echo тратит больше времени и памяти чем
PHP:
$out = '';

for (...) {...}

echo $out;
11. Каждую итерацию цикла он будет считать количество элементов массива, php в этом плане не оптимизирован и нужно делать кэш такого. А так же в php ++$i отработает быстрее.
Посмотреть вложение 44420
Хотя бы так
PHP:
for($i = 0, $length = count($items); $i < $length; ++$i) {...}
12. Где кэширование?! У тебя столько вызовов к базе почти идентичных и вместо того что бы сделать их кэш, а уже при следующих обращения скажем тянуть из готовой переменной, ты обращаешься к базе.
13. Я поставлю значение cookie и получу свой результат, а так же используй Flash (не от adobe, а реализацию класса). Почитай тут Phalcon Flash
Посмотреть вложение 44421
14. Зачем ты подключаешься для простого пользователя класс Admin?
15. ТЫ 3 ГРЁБАНЫХ РАЗА ДЕЛАЕШЬ ЗАПРОС К БД
Допустим у юзера всё норм, сначала проверит на NotLogin, потом ещё один запрос на NotCorrectUser, а если ошибка ещё раз на MySQL Error
Посмотреть вложение 44422
16. Снова этот синтаксический сахар от php... Используй только else if и не экономь на скобках.
Программы должны писаться для людей, которые будут их читать, а машины, которые будут эти программы исполнять — второстепенны. Harold Abelson
17.
Божественный роутинг! Понять как он работает или лучше забить?
E5bo3Ti.png

18. Ты слышал что такое контроллеры, хоть отдалённо?
2rTof0t.png

19. Один Copy+Paste
20. Остальное просто без комментариев, спасибо за испорченное день говнокодом...
Надеюсь ты уяснил свои ошибки и не повторишь их! Призови в тему когда перепишешь "это".
Пора нам с тобой основывать клан инквизиторов кода :D
Реально больно смотреть на такие проекты. А ведь других у руведра почти нет.
 
Пора нам с тобой основывать клан инквизиторов кода :D
Реально больно смотреть на такие проекты. А ведь других у руведра почти нет.
Ещё сделайте пикчи двух вариантов: "Негозорро одобряет этот скрипт" и "Негозорро не рекомендует использовать этот скрипт"
 
Спасибо за обзорчик, очень ценная информация для меня. Буду стараться :good:
 
@Stairdeck, почитай в свободное время PSR стандарты, шаблоны проектирования и ООП. Возможно, код станет чище.
 
ну что у всех сразу код получался нормальный?) у меня по началу тоже было такое что аж стыдно смотреть щас
мой первый лк ломался за 1-3 минуты
 
ну что у всех сразу код получался нормальный?) у меня по началу тоже было такое что аж стыдно смотреть щас
Мне Negezor помогает с этим очень сильно, советы дает. Так что всё будет хорошо
 
Предлагаю добавить использование "MaterialName" вместо ID'а.
 
Предлагаю добавить использование "MaterialName" вместо ID'а.
Колонка в таблице ShoppingCart varchar, так что можно писать и materialName, а можно и просто ID, предмет всё равно будет выдан
 

Поделиться этой страницей

Назад
Верх