Цепочки объектов.

StUV

Rotaredom
=)))
не знал, классная идея...

-~{}~ 25.05.07 15:11:

зы
у меня обычно //FIXME + grep
теперь знаю куда рыть ;)
 

Crazy

Developer
FIXME/TODO -- это для сознательных. За ними присмотр не нужен.

Лично мне чаще приходится вычищать за итаксойдет-программерами. Хуже них -- только деятельные программеры-дураки. Но это уже совсем другая история...
 

dark-demon

d(^-^)b
к сожалению, в большом коллективе всегда найдется пара кодеров, не очень хорошо разбирающихся "во всех ньюансах" приведения типов и могут вкоммитить какую-нить хрень, которую потом фик отловишь.... - вот для них как правило такой код и пишут
нет, они как правило такой код и пишут :)
коли уж так хочется возвращать значение именно типа bool, лучше писать так: return (expression)==true;
 

dark-demon

d(^-^)b
нелюблю сишное приведение типов...
скобки предназначены для группировки, а тут получается как-то глупо:
Код:
(bool)($var&&$var2)
ключевое слово группируется само с собой и превращается в префиксный оператор :)

кстати, вызов подпрограмм такой конструкцией:
Код:
function (param1, param2)
на мой взгляд - изобретение диавола :)
я бы предпочёл так:
Код:
function param1 param2
и только при необходимости отделения вызова функции от других составляющих выражения использовать скобки:
Код:
return function (function2 param1) param2
вместо обычного:
Код:
return function (function2(param1), param2)
поэтому - PHP must die! ^_^
 

StUV

Rotaredom
dark-demon
помнится когда-то давно, когда у меня не было ни одной книжки по программированию, а интернета еще не было в природе - первая моя программа представляла собой листинг на 2 тыс. строк, в котором функции и циклы были реализованы с помощью goto

тебе бы понравилось =)))
 

kruglov

Новичок
dark-demon
изобретение диавола
Ну, на погибель человечества можно и что-нибудь более тонкое и более эффективное придумать.

Обозначение f(x) известно науке гораздо больше времени, чем самый древний компьютер и язык программирования на нем. А конда начинается "тут пишем при необходимости, тут не пишем", вот тут уже безобразие.
 

dark-demon

d(^-^)b
дьавол появился задолго до изобретения науки :)

то есть ты за то, чтобы писать:
Код:
echo ($x);
Код:
return ($x);
Код:
continue ();
Код:
$x= ($a+($b+$c));
?
 

kruglov

Новичок
Конечно, если это поможет читаемости. Я не вижу в этом ничего плохого. В отличие от других "диавольских изобретений".

-~{}~ 25.05.07 18:50:

Почему программист должен запоминать, что echo - конструкция языка, а print - функция, что в первой скобки не нужны, а во второй - да. Да пускай всегда пишет, не убудет.
 

dark-demon

d(^-^)b
Почему программист должен запоминать, что echo - конструкция языка, а print - функция, что в первой скобки не нужны, а во второй - да. Да пускай всегда пишет, не убудет.
могу поспорить ты первый взвоешь от такого языка :)
круглые скобки также как и фигурные служат для группировки. когда не нужно ничего группировать зачем их ставить?
вот ещё пара примеров:
Код:
 if ($a) {$a=10;};
Код:
 {$a=10;}
{$b=100;}
Если человек взялся за программирование, пусть соизволит запомнить это.
программисту в процессе своей работы приходится и так помнить множество мелких деталей, а оперативка - вещь далеко не резиновая. поэтому лучше тот язык, который содержит минимум правил, которые в свою очередь максимально просты.
 

whirlwind

TDD infected, paranoid
Если сингельтону добавить метод setInstance(), то его работу можно перекрыть, не изменяя клиентский код. Фича сингельтона не в том что он получается через статический метод или там функцию, а то что его инстансом можно оперировать как обычным объектом. Большинство в доках видят "needs one" но упорно не замечают "instance" и его производные. Выносить конструкцию из класса (е.г. в функцию или другой класс) нельзя, т.к. только сам класс может ограничить колво собственных экземпляров. В противном случае получаем мнимую "единственность".
 

Crazy

Developer
whirlwind, твое мнение неправильное, но спорное. :)

С такой штукой, как пико/нано-контейнеры ты, полагаю, не сталкивался?
 

itprog

Cruftsman
программисту в процессе своей работы приходится и так помнить множество мелких деталей, а оперативка - вещь далеко не резиновая. поэтому лучше тот язык, который содержит минимум правил, которые в свою очередь максимально просты.
чем сложно запомнить десяток конструкций?
 

whirlwind

TDD infected, paranoid
Crazy Покажите мне человека, чье мнение является абсолютной истиной - я на него помолюсь :)

Честно - не сталкивался. Мало того, я почему-то уверен что 99.999% посетителей этого форума то же не сталкивались с пико/нано контейнерами. Смысл их упоминания здесь мне, увы, неясен.
 

StUV

Rotaredom
я ж говорю, чел просто создан для асма
спорит он уже из чистого "желания спорить"
кодить он и дальше будет так же - ессно, пока будет кодить мелкие срипты в мелком коллективе
как только попадет в нормальную команду - сразу руки вправят в нужное место, а со временем и самому понравится

зы: я про dark-demon
 

Crazy

Developer
Автор оригинала: whirlwind
Crazy Покажите мне человека, чье мнение является абсолютной истиной - я на него помолюсь :)
Можешь молиться на меня. Кстати, если мою статую поставить на холодильник и мазать по пятницам жертвенной кровью тушканчиков, то это защищает от чесотки, псориаза и утечек памяти в длинных циклах.

Честно - не сталкивался. Мало того, я почему-то уверен что 99.999% посетителей этого форума то же не сталкивались с пико/нано контейнерами. Смысл их упоминания здесь мне, увы, неясен.
Суть, кратко: контейнеру делегируется работа по созданию и конфигуриованию классов. Т.е. вместо "new Foo()" или Foo::getInstance ты вызываешь $container->get('Foo'). При этом:

1. Код, который обратился к контейнеру, не знает и не хочет знать, синглетон это или нет -- это задается в конфиге контейнера.
2. Конкретный используемый класс указывается в конфигурации контейнера и неизвестен, а равно неинтересен, вызывающему коду.
3. Использование паттерна Inversion of Control позволяет очень удобно управлять конфигурацией создаваемого объекта.

Этот подход, в частности, очень удобен при TDD, с которым у "классической" реализации синглетонов через статический getInstance постоянные проблемы.

BTW, важно понимать, что когда мы говорим о синглетоне, мы обсуждаем способ, благодаря которому программист не будет ошибочно порождать лишние экземляры, а не защищать от злонамеренного создания. Ибо это уже совсем другая история.
 

whirlwind

TDD infected, paranoid
Ну и? Это тулкит, фабрика как угодно. Почему Вы выбрали java-вский вариант и считаете его последней инстанцией? При чем здесь классифицированный паттерн? Увы, увы, не убедили. Так что с холодильником и тушканчиками пока придется подождать.

PS. И еще мну гложет мерзкое подозрение что увлечение XML-ем и фсякими рефлексиями до добра не доводят.
 

Crazy

Developer
Автор оригинала: whirlwind
Ну и? Это тулкит, фабрика как угодно.
Именно фабрика. Если я правильно понял, вопрос касался того, что синглетон-объект должен создаваться тем же классом. Я привел пример того, когда это не так. И без извращений, что характерно. Я не помню, чтобы я обещал, что это не будет фабрикой. :)

Почему Вы выбрали java-вский вариант и считаете его последней инстанцией?
Oops. Я где-то сказал слово Java? Или употребил синтаксис Java? Почему мы вдруг заговорили про Java? :)

При чем здесь классифицированный паттерн?
Я не знаю, что такое классифицированные паттерны. Если речь идет о паттерне IoC, то он упомянут исключительно как приятная фича контейнеров. Можешь забыть про это. Или -- на твой выбор -- я могу про это подробнее рассказать.

Увы, увы, не убедили.
Я не ставлю перед собой целью повысить конкуренцию на рынку труда. Не убедил -- и хорошо. Единственное, что меня огорчает:

Так что с холодильником и тушканчиками пока придется подождать.
...но если чесоткой заболеешь -- имей в виду. :)

PS. И еще мну гложет мерзкое подозрение что увлечение XML-ем и фсякими рефлексиями до добра не доводят.
Что характерно, слова XML и "рефлексия" я не произносил. Равно как и слово Java. Что подсказывает мне, что кое-то ходил в гугл и спрашивал про нано/пико-контейнеры. Огорчу: ресурсов про их использование в PHP я не встречал. :) Что, однако, тне оначает, что означенные контейнеры должны быть написана на Java и использовать XML с рефлексией. Я, к примеру, в коммерческом проекте их на Delphi использовал. В PHP это делается еще удобнее.
 

whirlwind

TDD infected, paranoid
Что характерно, слова XML и "рефлексия" я не произносил. Равно как и слово Java. Что подсказывает мне, что кое-то ходил в гугл и спрашивал про нано/пико-контейнеры. Огорчу: ресурсов про их использование в PHP я не встречал...
Про гугл - а разве должно было быть как-то иначе? :) Ну это собсно ответы на вопросы про java и прочие

Что касается сингельтона. Если Вы приведете другую "неклассическую" реализацию, при которой гарантированно существует один и только один экземпляр, тогда я готов согласиться, что не обязательно в классе. К сожалению, я такого варианта не знаю.
 
Сверху