- 1
ORM::factory('comment')->values($_POST,array('folder_id','code','comment','post_id'))->set('post_id',$post_id)->set('user_id',Auth::instance()->get_user()->id)->set('ip',$_SERVER['REMOTE_ADDR'])->create();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
ORM::factory('comment')->values($_POST,array('folder_id','code','comment','post_id'))->set('post_id',$post_id)->set('user_id',Auth::instance()->get_user()->id)->set('ip',$_SERVER['REMOTE_ADDR'])->create();
istem 23.11.2011 23:05 # +3
Lure Of Chaos 23.11.2011 23:09 # 0
(ц)
kyzi007 23.11.2011 23:10 # 0
greno 23.11.2011 23:26 # +5
Lure Of Chaos 24.11.2011 12:08 # 0
greno 24.11.2011 20:33 # 0
Другое дело практическое применение). Ни htx (да там они скорее внутри), ни yampa лично не применял. И haskell-on-horse сд^Wостался без головы.
(Короче не шибко сложнее монад, но профит/сложность ниже).
roman-kashitsyn 24.11.2011 12:11 # 0
greno 24.11.2011 20:24 # 0
TheHamstertamer 01.07.2012 16:52 # +3
http://www.haskell.org/arrows/
huitka 24.11.2011 00:31 # −3
nobody 24.11.2011 01:05 # 0
eth0 24.11.2011 20:19 # 0
Это неизлечимо.
dev6alexander 25.11.2011 09:12 # −4
$select = $this->_adapter->select()
->from('artists_indexing')
->where('is_indexed=?', ARTIST_STATE_NOT_INDEXED)
->orWhere('is_indexed=?', ARTIST_STATE_FAILED)
->orWhere('is_indexed=?', ARTIST_STATE_PROCESSING)
->limit(1);
Вы конечно можете вызвать все эти методы отдельно и все такое. Но в таком виде это смотриться очень наглядно без мешанины ИМХО
Nemoden 25.11.2011 09:21 # +1
dev6alexander 25.11.2011 09:25 # 0
bugmenot 25.11.2011 12:14 # 0
это даже не сахар, а ацетат свинца
для тех, кто в школе ниасилил переменные в трубо паскакале
eth0 25.11.2011 18:53 # 0
select abc from sch.tbl where id
Не вижу вообще никаких бенефитов у такой схемы.
kyzi007 25.11.2011 18:55 # 0
Огромный плюс:)
roman-kashitsyn 25.11.2011 18:57 # 0
Lure Of Chaos 25.11.2011 19:13 # +1
eth0 25.11.2011 21:57 # +1
> можно нагадить товарищам
Ну, тогда сам чорт велел.
> Меньше шансов ошибиться.
Три года писал запросы. Ошибки были, из-за любви к копипасте. Но даже в запросах с двумя десятками джойнов всё было вполне очевидно.
> Удобно собирать on-the-fly, опять же.
Как я и писал выше, для рантайм сборки потянет, но тоже не панацея.
> не заморачиваемся с SQL и разницей в диалектах
Если мне не отшибает память, всё равно при смене СУБД придётся переписывать запросы. Плюс, SQL-то всё равно знать нужно.
dev6alexander 26.11.2011 07:37 # −1
$realName = new Zend_Form_Element_Text('artist_real_name ');
$realName->setLabel('Реальное имя')
->setValue($data['artist_real_name'])
->setDescription('Если это группа или дуэт не нужно заполнять это поле!')
->addFilter('StripTags')
->addFilter('StringTrim');
eth0 26.11.2011 13:33 # +1
Lure Of Chaos 25.11.2011 19:14 # +1
jabber 27.11.2011 12:12 # −4
lucidfoxGovno 27.11.2011 12:42 # −3
roman-kashitsyn 28.11.2011 00:09 # −2
lucidfoxGovno 28.11.2011 22:02 # −1
Мечтай. Это больше не киллер-фича функциональных языков. Они скоро и до VB дойдут, если ни уже.
guest 29.11.2011 15:41 # −4
dev6alexander 25.11.2011 09:13 # −4
roman-kashitsyn 26.11.2011 11:04 # 0
dev6alexander 26.11.2011 11:14 # −4
http://www.google.kg/search?q=pattern+Fluent+interface&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
roman-kashitsyn 26.11.2011 11:16 # −1
Прочитайте таки эту книжку. Эффорта мало, бенефита много.
dev6alexander 26.11.2011 11:20 # −3
dev6alexander 26.11.2011 11:16 # −2
roman-kashitsyn 26.11.2011 11:27 # +2
> Школота...
no comments.
dev6alexander 26.11.2011 11:28 # 0
dev6alexander 26.11.2011 11:32 # 0
roman-kashitsyn 26.11.2011 11:51 # +1
Не знаю, как вы, а я всё же ощущаю большую идеологическую разницу между fluent interface и, к примеру, AbstractFacotory, Flyweight, Composite, MVC ...
dev6alexander 26.11.2011 12:00 # −1
Не даром ведь шаблоны были разбиты на группы:
1. Порождающие
2. Поведенческие
3. Сруктурные
4. Базовые (общего назначения). К которому и относится наш Fluent!
Какую задачу он решает Вы ответил уже сами...
roman-kashitsyn 26.11.2011 12:10 # +1
Приведите, пожалуйста, ссылку, где FI причисляют к базовым шаблонам.
dev6alexander 26.11.2011 12:52 # −1
2. Вот список наиболее рапространненых патернов (куда входит паттерн о котором мы говорим):
http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1% 80%D0%B8%D1%8F:%D0%A8%D0%B0%D0%B1%D0%BB% D0%BE%D0%BD%D1%8B_%D0%BF%D1%80%D0%BE%D0% B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D 0%B0%D0%BD%D0%B8%D1%8F
3. Мне тяжело вам будет сейчас на скорую руку найти источник откуда я взял что данный
паттерн входит в базовые паттерны общего назначения. Fluent interface из-той же оперы что и эти шаблоны:
Основные
Делегирование
Интерфейс
Неизменяемый объект
т.е отнести их к выше описанным 3 категориям не удасться. Т.е их лучше охарактеризовать как базовые (общие)
roman-kashitsyn 26.11.2011 13:07 # +1
Даже если по списку:
Делегирование - позволяет сделать систему гибче, сделать её более прозрачной для клиента.
Интерфейс - повышает гибкость, позволяет компилировать части приложения раздельно, предоставлять множество реализаций, etc.
Неизменяемый объект - позволяет упростить логику многопоточных программ, повысить надёжность системы в целом за счёт уменьшения возможных источников side-effect'ов.
Fluent Interface же никак не влияет на систему в целом. Сам по себе он делает систему более масшабируемой, не снижает потребление ресурсов. Его цель - удобство использования api. Я не говорю, что это ненужная задача (я сам постоянно использую FI на практике). Просто на design pattern не тянет.
roman-kashitsyn 26.11.2011 13:13 # 0
selffix
dev6alexander 26.11.2011 13:19 # 0
Вам кажется это, что-то более академичным, направлено имено на оптимизацию потребление ресурсов итд.
Для меня же паттерны это - удачные решения тех или инных задач опытными программистами.
Направленными в различные аспекты, как можно догадаться из существующих категоий паттернов.
Некторые из них действительно призваны для эфективной работы с памятью, а некоторые как этот
для удобства заполнения структур итд. Не нужно быть таким категоричным на то они и шаблоны, а не
доктрины
roman-kashitsyn 26.11.2011 13:22 # +1
dev6alexander 26.11.2011 13:29 # −1
bugmenot 26.11.2011 13:55 # +5
где еще пхпешник может выразить себя рассказав всякой школоте про дезайн потерны
Lure Of Chaos 26.11.2011 17:09 # 0
dev6alexander 26.11.2011 12:57 # −2
Снизу можете прочитать категию куда отнесли тему
roman-kashitsyn 26.11.2011 13:20 # +1
warning: self reference.
В этой категории много статей, косвенно относящихся к design patterns. Там есть, к примеру, "Повторное использование кода".
dev6alexander 26.11.2011 13:29 # 0
dev6alexander 26.11.2011 13:01 # −2
http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1% 80%D0%B8%D1%8F:%D0%A8%D0%B0%D0%B1%D0%BB% D0%BE%D0%BD%D1%8B_%D0%BF%D1%80%D0%BE%D0% B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D 0%B0%D0%BD%D0%B8%D1%8F
lucidfoxGovno 26.11.2011 12:21 # −1
Если ощущаешь, то приведи ещё примеры, которые относятся к к тому же классу, что и fluent interface.
Ты сможешь привести несколько примеров только, если ощущаешь.
lucidfoxGovno 26.11.2011 12:27 # −1
roman-kashitsyn 26.11.2011 12:28 # 0
В таком случае каждый метод должен возвращать объект, передающийся на вход другому методу: Вот это примерно из той же оперы: проектирование программных интерфейсов.
lucidfoxGovno 26.11.2011 14:29 # 0
roman-kashitsyn 26.11.2011 14:32 # +1
lucidfoxGovno 26.11.2011 22:34 # −2
bugmenot 27.11.2011 01:05 # +1
Lure Of Chaos 27.11.2011 02:09 # +2
lucidfoxGovno 27.11.2011 07:10 # −6
Nicklasos 30.11.2011 13:27 # 0