Re: Изменение плеера vk.com
Добавлено: 11 ноя 2012, 21:36
О, нас становится больше =)
Да, книжные. В вашем случае использование глобалсов не катастрофическое, там по сути очень просится простенький registry. Есть по коду еще несколько мест, где этот же реестр будет полезен. Код сложнее не станет, ни медленнее, ни быстрее не стенет, но зато будет читабельнее, чуток быстрее можно будет искать что к чему, и добавится удобный инструмент, когда понадобится еще что-нибудь вынести в "глобал". Вот явный индикатор того, что вам нужен реестр:
Собственно, по поводу "излишней книжности". Книжки они пишутся на опыте, и брать из них нужно именно опыт, а не догмы, мол, так делать нельзя, а нужно только вот так. К примеру, те же паттерны проектирования -- это, так сказать, best practices решения тех или иных архитектурных задач. Это не означает, что они должны быть абсолютно везде, это означает, что не нужно изобретать велосипед для решения типичных кейсов. Ну как вот здесь с глобалами и registry, например. Возможно, вам с коллегой по TVonTop стоило терпимее относиться к позициям друг друга, тогда польза была бы для обоих.
Кстати, ультимативная форма общения не подойдет. Мне нет необходимости вам либо еще кому-то что-то доказывать, а значит и принимать условия ультиматума =)
По поводу парсинга. Я уже говорил, что у нас только один пользователь. Вопрос производительности в таком случае у нас возникает, когда тормоза в том или ином случае видны на глаз. Если бы у нас было хотя бы 20-30 тысяч пользователей онлайн на одном и том же апп-кластере, то чистка html-а регекспами и прочий закат солнца вручную в ParserTools вылез бы сильно боком. Допускаю, конечно, что php на плеерах сильно ограничен и различается в разных моделях, но не настолько же.
Кстати о ParserTools. Он у вас встречается довольно часто. Это хороший кандидат на то, чтобы убрать его явные статические вызовы и заменить его получение через тот же реестр. Это нужно затем, чтобы обеспечить слабое связывание (low coupling). Высокое связываение сильно усложняет жизнь, например, при написании тестов к коду или при попытках повторно использовать код. А тесты бы пригодились для выявления вот таких ошибок, как в у вас в классе ConfigFile:
Здесь обычная опечатка, переменная $contents не определена в контексте ConfigFile::writeFile(), там определена переменная $content. Как результат, содержание не криптуется даже если задан пароль.
Тесты вообще хороши как для самого кода, так, в случае ГлавТВ для проверки всех сервисов на предмет того, не изменилось ли у них чего в выдаче и не нужно ли подстроить парсинг.
Лапша в темплейтах. Есть же хорошие удобные средства работы с xml. Почему бы не использовать? А то логику вычитывать из этого спагетти -- это без поллитра никак. И сорвались с ОО стиля на процедурный в rss-funcs и rss-design. Или осталось как легаси?
Думаю, пока достаточно.
Да, книжные. В вашем случае использование глобалсов не катастрофическое, там по сути очень просится простенький registry. Есть по коду еще несколько мест, где этот же реестр будет полезен. Код сложнее не станет, ни медленнее, ни быстрее не стенет, но зато будет читабельнее, чуток быстрее можно будет искать что к чему, и добавится удобный инструмент, когда понадобится еще что-нибудь вынести в "глобал". Вот явный индикатор того, что вам нужен реестр:
Код: Выделить всё
global $cfg, $lang, $srv, $req, $keys;
Кстати, ультимативная форма общения не подойдет. Мне нет необходимости вам либо еще кому-то что-то доказывать, а значит и принимать условия ультиматума =)
По поводу парсинга. Я уже говорил, что у нас только один пользователь. Вопрос производительности в таком случае у нас возникает, когда тормоза в том или ином случае видны на глаз. Если бы у нас было хотя бы 20-30 тысяч пользователей онлайн на одном и том же апп-кластере, то чистка html-а регекспами и прочий закат солнца вручную в ParserTools вылез бы сильно боком. Допускаю, конечно, что php на плеерах сильно ограничен и различается в разных моделях, но не настолько же.
Кстати о ParserTools. Он у вас встречается довольно часто. Это хороший кандидат на то, чтобы убрать его явные статические вызовы и заменить его получение через тот же реестр. Это нужно затем, чтобы обеспечить слабое связывание (low coupling). Высокое связываение сильно усложняет жизнь, например, при написании тестов к коду или при попытках повторно использовать код. А тесты бы пригодились для выявления вот таких ошибок, как в у вас в классе ConfigFile:
Код: Выделить всё
if (! empty($this->password)) {
$contents = ParserTools::encrypt($contents, $this->password);
}
Тесты вообще хороши как для самого кода, так, в случае ГлавТВ для проверки всех сервисов на предмет того, не изменилось ли у них чего в выдаче и не нужно ли подстроить парсинг.
Лапша в темплейтах. Есть же хорошие удобные средства работы с xml. Почему бы не использовать? А то логику вычитывать из этого спагетти -- это без поллитра никак. И сорвались с ОО стиля на процедурный в rss-funcs и rss-design. Или осталось как легаси?
Думаю, пока достаточно.