Может луче было бы Yii детерминировать и очистить?

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
pr_o
Сообщения: 65
Зарегистрирован: 2010.01.19, 02:20

Может луче было бы Yii детерминировать и очистить?

Сообщение pr_o »

Во воремя прочтения поста на хабре http://habrahabr.ru/post/149086/ мне пришла мысль в голову о том, что бы методы классов были чистыми и детерминированными, и не зависели от внешних входных данных. Может быть производительность еще повысилась бы...? Кто что думает по этому поводу? Или Yii уже максимально чист?

Извините за бредовый вопрос, но я не смог удержаться... :)
Чистота функций важна по многим причинам, но в первую очередь, потому что она позволяет нам легче рассуждать о поведении функции. Если функция чистая и не имеет побочных эффектов, то мы можем с большей уверенностью рассуждать о производительности этой функции, поскольку нам нужно будет рассматривать меньше переменных.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение samdark »

Есть конкрентные предложения?
Аватара пользователя
pr_o
Сообщения: 65
Зарегистрирован: 2010.01.19, 02:20

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение pr_o »

Sam Dark писал(а):Есть конкрентные предложения?
Не то, что бы предложения.. А вот, например метод:

Код: Выделить всё

$post=Post::model()->findByPk($postID,$condition,$params);
В нем есть необязательные аргументы $condition, $params. Но ведь эта функция судя по названию предназначена чисто для поиска записи по первичному ключу.. :) Не на 100% конкретная функция..

п.с. смутные мысли терзают меня, мб истина где-то рядом... :D
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение samdark »

byPk != byPk only.
Аватара пользователя
pr_o
Сообщения: 65
Зарегистрирован: 2010.01.19, 02:20

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение pr_o »

Sam Dark писал(а):byPk != byPk only.
Ну дак а почему так задумано? Хорошо, что документация есть, а сходу не понять.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение samdark »

Ради гибкости и лаконичности. Как бы вы искали, например, отмеченную флажком запись по PK? Да и так как вы понимаете сходу метод тоже работает.
Аватара пользователя
pr_o
Сообщения: 65
Зарегистрирован: 2010.01.19, 02:20

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение pr_o »

Sam Dark писал(а):Ради гибкости и лаконичности. Как бы вы искали, например, отмеченную флажком запись по PK? Да и так как вы понимаете сходу метод тоже работает.
Нашел запись по ПК и проверил, есть ли на ней флажок или нет (уже вне БД).
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение samdark »

То есть тащили бы данные вместо того, чтобы добавить условие в SQL?
Аватара пользователя
pr_o
Сообщения: 65
Зарегистрирован: 2010.01.19, 02:20

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение pr_o »

Sam Dark писал(а):То есть тащили бы данные вместо того, чтобы добавить условие в SQL?
Ну это да, не правильно. А если с условием, то:

Код: Выделить всё

$post=Post::model()->findByPkAndCondition($postID,$condition,$params);
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение samdark »

А если условия три? findByPkAndThreeConditions($postID, $condition1, $condition2, $condition3,$params)? :)

Ради чего именно переименовывать метод?
Аватара пользователя
pr_o
Сообщения: 65
Зарегистрирован: 2010.01.19, 02:20

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение pr_o »

Sam Dark писал(а):А если условия три? findByPkAndThreeConditions($postID, $condition1, $condition2, $condition3,$params)? :)

Ради чего именно переименовывать метод?
Что бы код был более понятным, будучи новичком в Yii / меньше читать API. =)
А если условия три?

Код: Выделить всё

findByPkAndConditions($postID, array($condition1, $condition2, $condition3), $params) 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение samdark »

И чем это понятней? :) По-моему ничего особо не поменялось.
gwer
Сообщения: 80
Зарегистрирован: 2012.07.25, 02:49

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение gwer »

Так ведь второй и третий параметр заданы по умолчанию пустыми. Не читаем API, думаем, что нужен только первичный ключ, пользуемся так, как если бы функция была реализована согласно внесенному предложению. А тем, кто читает документацию, полагаются бонусы в виде дополнительных возможностей.
Сразу двух зайцев: простота для ленивых, возможности для тех, кому они нужны. А производительности, допустим, в данном примере не добавилось бы.
ostin
Сообщения: 83
Зарегистрирован: 2009.10.10, 15:55
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение ostin »

Новичкам все же следует в обязательном порядке читать API. И, скорее, нужно делать шаги в эту сторону :)
alexZT
Сообщения: 362
Зарегистрирован: 2012.03.06, 11:33
Откуда: Украина/Житомир
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение alexZT »

я вот новичек в Yii, стаж 4 месяца, проектами не хвастаюсь ибо нечем, просто совершенствую рабочие CRM и тем самым упрощаю себе жизнь, читаю всё что можно, но без фанатизма, если мне вопрос непонятен по причине - не сталкивался вживую - бегло просматриваю, пытаюсь за инфу зацепиться, чтобы в будущем если возникнет необходимость я знал, что где-то инфу видел. Насчет мануалов всяких - сырость конечно присутствует, из форума черпнул куда больше, но без статических страниц всё же никак, книги - минус, что обе на инглише (одна Макарова, вторая Jeffrey Winesett имеется ввиду) - читабельно, однако с первой попытки как-то не пошло, скоро буду делать еще заход - второй раз садиться читать, потому что уже есть минимальный опыт и багаж знаний, так что недостаток английского будет компенсирован интуитивным пониманием.

Новичку, как мне кажется вопросы оптимизации и произодительности фреймворка - это как интегралы в младших классах, когда ты с ними еще долго не столкнёшься, но слово-то крутое и его нужно обязательно куда-то вставить. Где-то на форуме были советы новичкам и от них сам не отступаю и другим советую - практика, практика и еще раз практика, на одном проекте понять всю прелесть Yii врятли получится и ИМХО нужно доверять разработчикам фреймворка хотя бы потому, что у них опыта куда побольше и создавая фреймворк они руководствовались не созданием крутой фишки и привлечением аудитории, а решением определённых задач, а аудитория судя по всему сама набирается и причем довольно неплохо.

итого:
русской документации новичку не хватает, однако никто и не предлагает её улучшить, так что тут уж имеем, что имеем
сообщество - не зенд конечно, симфони - не берусь сравнивать. Есть вопросы которые решаются быстро (для новичков думаю на 90% точно) так что вцелом - норма, кто не согласен - попробуйте Ruby on Rails - там дела куда хуже
и на затравку - "Терпенье и труд - всё перетрут"
я человек и мне свойственно ошибаться
yii@conference.jabber.ru
Аватара пользователя
mihnayan
Сообщения: 43
Зарегистрирован: 2012.03.15, 22:51
Контактная информация:

Re: Может луче было бы Yii детерминировать и очистить?

Сообщение mihnayan »

Нормально Yii сделан, очень гибок! Не путайте сферический вакуум и землю. Абстрагируясь до бесконечности можно и к Ассемблеру вернуться :-)
Любая техническая система должна быть идиотоустойчивой (с) один из университетских преподов
Ответить