проблемы объектного сознания

Статус
В этой теме нельзя размещать новые ответы.

whirlwind

TDD infected, paranoid
Автор оригинала: pilot911
ясно... аргументация достойная, но вызывает вопросы:

2. увидеть бы, как родитель использует исключение вот этого объекта

PHP:
new MPS_Vars($_REQUEST)
при обращении к несуществующему ключу ( не проще ли isset() вызвать ? )
а зачем его использовать? исключение - это все пепец, нимагу работать. Если пользователь ТРЕБУЕТ наличия то это будет исключение, если допускается что значения может и не быть, то пользователь использует hasVar. Как правило, пользователь требует. Теперь посчитай сколько строк у тебя будет в случае моего варианта и в случае с isset. Как минимум c isset в 2 раза больше.

4. что можно изменить в поведении $SERVER или $REQUEST ?
источник

кароче все это вопросы отдельного топега.
 

StUV

Rotaredom
э... народ
т.е. щас вот так на примерах будем рубить правильный ооп ?
к чему это все здесь ? =)))
 

john.brown

просто кулибин
StUV
Наверно, достала некоторая "виртуальность" рассуждений ;) Перешли на конкретику...
 

pilot911

Новичок
Автор оригинала: john.brown
StUV
Наверно, достала некоторая "виртуальность" рассуждений ;) Перешли на конкретику...
верно :)

-~{}~ 17.03.09 21:07:

Автор оригинала: whirlwind
а зачем его использовать? исключение - это все пепец, нимагу работать. Если пользователь ТРЕБУЕТ наличия то это будет исключение, если допускается что значения может и не быть, то пользователь использует hasVar. Как правило, пользователь требует. Теперь посчитай сколько строк у тебя будет в случае моего варианта и в случае с isset. Как минимум c isset в 2 раза больше.
в моем случае будет вызов статической функции сервисного класса типа

PHP:
div::GP('username')
и никаких объектов

источник

кароче все это вопросы отдельного топега.
не отдельно, это как раз попытка ответить на вопрос, когда ооп ради ооп
 

whirlwind

TDD infected, paranoid
Автор оригинала: pilot911
верно :)

-~{}~ 17.03.09 21:07:


в моем случае будет вызов статической функции сервисного класса типа

PHP:
div::GP('username')
и никаких объектов


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

StUV

Rotaredom
в общем, абстрагируясь от споров, то что я для себя увидел по теме + выводы (без шуток... почти)

1. ооп-парадигма - вершина совеременной теории дизайна программных продуктов (иных мнений не было - да будет так)

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

3. тредстартерские "проблемы" возможны только при неправильной организации разработки оо-софта, правильно оод раобтает только в условиях полноценно внедренной хр-практики

--

это все с ремесленно-практической точки зрения
повторяясь про отсутствие иных мнений - продвигаем оод/хр на уровне разработки + жесткий контроль итераций в управлении

--

с квази-научной точки зрения

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

+ четкий контроль на ~rup-управлении

--

вроде бы, для щастья ничего больше и не надо ?..

--

на научные обоснования ссылок никто не кидал - значит для успокоения совести надо искать, найти и успокоиться (или не найти и написать ;))
 

pilot911

Новичок
есть статическая функция


PHP:
	static	function _GP($var)	{
		if(empty($var)) return;
  		return isset($_POST[$var]) ? $_POST[$var] : (isset($_GET[$var]) ? $_GET[$var] : '');
	}
для серверных переменных есть
PHP:
	static	function getIndpEnv($getEnvName)	{
		switch ($getEnvName)	{
			case 'SERVER_NAME':		 
			case 'REQUEST_METHOD':	 
			case 'REQUEST_METHOD':	 
			case 'DOCUMENT_ROOT':		 
			case 'HTTP_HOST':			 
			case 'HTTP_REFERER':		 
			case 'REMOTE_PORT':		 
			case 'SCRIPT_FILENAME':		 
			case 'SERVER_PORT':		 
			case 'SCRIPT_NAME':		 
			case 'REMOTE_HOST':		 
			case 'SERVER_ADMIN':		 
			case 'PATH_TRANSLATED':
			case 'QUERY_STRING':
			case 'REMOTE_ADDR':		 
				return	isset($_SERVER[$getEnvName]) ? $_SERVER[$getEnvName] : '';	
			break;
 
			case 'PATH_URL':			 
				return cmf_div::dirname(
					substr(cmf_div::getIndpEnv('REQUEST_URL'), 
					strlen($GLOBALS['FE_CONFIG']['baseURL'])));
			break;	
  
			case 'SCRIPT_URL':			 
				$parts	=	parse_url(cmf_div::getIndpEnv('REQUEST_URL'));
				return	$parts['scheme'].'://'.$parts['host'].$parts['path'];	
			break;
		
			case 'REQUEST_URI':		 
 				if (isset($_SERVER['REQUEST_URI']))	
					return	
						$_SERVER['REQUEST_URI'];
				else	{
					return	
						cmf_div::getIndpEnv('SCRIPT_NAME').cmf_div::getIndpEnv('QUERY_STRING');
				}
			break;
 
 			case 'REQUEST_DIR':		 
				return cmf_div::getIndpEnv('REQUEST_HOST').
						cmf_div::dirname(cmf_div::getIndpEnv('SCRIPT_NAME')).'/';	
			break;

			case 'SSL':
				return	isset($_SERVER['SSL_SESSION_ID']) 
							|| (isset($_SERVER['HTTPS']) && 
								strtolower($_SERVER['HTTPS']) == 'on') ? true : false;
			break;
 

StUV

Rotaredom
pilot911
да успокойся, все там ок - никакого "ооп ради ооп"
все просто и ясно

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

pilot911

Новичок
Автор оригинала: StUV
pilot911
да успокойся, все там ок - никакого "ооп ради ооп"
все просто и ясно

в тонкостях реализации м.б. "и не согласен я", да ну ладно
после бурных обсуждений различных оо-архитектур с некто Crazy - все остальное мелочи...
да нет, как раз интересно, почему не использовать простую статическую функцию, которая модифицирует переменные окружения, добавляя всякие

REQUEST_DIR, SITE_URL, REQUEST_HOST и тп
 

john.brown

просто кулибин
StUV
В выводах с тобой совершенно согласен. Но, имхо, не надо было городить 10 страниц флейма, чтоб к этому прийти. Это я не о тебе, а вообше о треде :) Хотя тема распологает на крайности и холивар...
 

whirlwind

TDD infected, paranoid
я все еще предлагаю переехать в другой топик.

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

ps. Хотя код этой функции etIndpEnv который даже если рабочий ты тоже будешь менять при каждом случае. Что? Ты не знал что можно модифицировать программы практически не меняя существующего кода? :)
 

Lightning

Трудоголик
О, еще три страницы накатали )))
Вроде ж уже пришли к консенсусу.
В принципе выводы StUV сделал нормальные, только
правильно оод раобтает только в условиях полноценно внедренной хр-практики
утрирование. И без XP-практики можно нормально работать. Но топикстартеру я бы предложил попробовать XP, TDD.
 

fisher

накатила суть
а вышла чудесная иллюстрация названию топика :)

-~{}~ 17.03.09 23:29:

>>Но топикстартеру я бы предложил попробовать XP, TDD
Какие ещё есть волшебные слова в вашей религии? XP в принципе вопрос менеджерский, лежит совершенно в другой плоскости. Как набор "практик" не имеет к ООП никакого отношения - так уж получилось, что продавать его вместе с ООП окзалось легче. Про TDD вообще молчу. Синглтоны неудобно тестировать, поэтому юзать не будем, ага. Ещё одна секта. В-общем, друзья, давайте закончим на этом.
 

Lightning

Трудоголик
fisher
Ты вот этот мой пост читал? http://phpclub.ru/talk/showthread.php?s=&threadid=113494&perpage=20&pagenumber=7

-~{}~ 17.03.09 23:44:

1) Программеры начинают "забавляться" с языком, вместо решения реальных задач.

Может Вам попробовать TDD, XP?
На менеджерскую проблему менеджерский ответ

Все.
 

StUV

Rotaredom
fisher
а вышла чудесная иллюстрация названию топика
по сути сказать пока нечего, ибо
1. "ангелы" об этом еще не рассуждают
2. практика первична
3. думать слишком далеко нет времени ибо п.2 (аргумент из области лепимого кместуинекместу "преждевременная оптимизация - зло", но! снова п.2)

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

john.brown

просто кулибин
fisher
Ну чудно, ты подтвердил свои религиозные убеждения, что ооп от лукавого, и да ну анафеме его, и что дальше? Есть какие то конкретные предложения, акромя причетаний по поводу "запутывать новичков", "порождать слепость", "создавать илюзорный мир"? Поделись с нами, дураками, своей мудростью. А если не можеш, то остается предположить, что просто сам несправился с ооп прожектом, не сумел подобрать те "практики", которые "не имеет к ООП никакого отношения", но тем не менее способствует успешной работе... И с тех пор ведеш "свяшенную войну" с демонами ооп :)

Если не так, то объясни, плз, наконец то, какого хрена завел этот довольно безсмысленный тред, и чего хотел из него поиметь.
 

fisher

накатила суть
>>Ты вот этот мой пост читал
читал, читал. это всё не про то.
>>На менеджерскую проблему менеджерский ответ
ты - менеджер? тока честно

-~{}~ 18.03.09 00:08:

john.brown
>>какого хрена завел этот довольно безсмысленный тред
какой смысл отвечать на вопрос, когда у тебя всё равно уже есть свой ответ?
 

Lightning

Трудоголик
>>Ты вот этот мой пост читал
читал, читал. это всё не про то.
>>На менеджерскую проблему менеджерский ответ
Почему не про то? Ты писал, что хочешь обсудить проблемы. Насколько я понял из твоих постов, проблемы такие:
1) "забавляются языком"
2) снижение производительности.
Первая проблема - менеджерская! Не согласен?! Я предложил: может попробовать XP?
Я не говорю "XP и только XP". Я сам только недавно начал его пробовать.
Тимлид.
А к чему этот вопрос? Или это наезд аля "А ты кто такой?" ?
 

HraKK

Мудак
Команда форума
А к чему этот вопрос? Или это наезд аля "А ты кто такой?" ?
Вот это стандартный наезд "авторитетами" о котором я говорю, и как по мне он намного опаснее мифического "проблемы ооп создания".

fisher
И все же я предлогаю согласится тебе что слив засчитан. И так уже неадекватно ведешь. Тебе же лучше будет если ты честно поймешь что слился.
 

x-yuri

Новичок
x-yuri
> whirlwind вот второй минус: http://www.phppatterns.com/docs/des...rld_in_patterns

Чушь. Ни один вменяемый человек не будет такое писать кроме как для образовательно-развлекательных целей. Почитай первую главу книжки про паттерны - поймёшь почему.
svetasmirnova, а где я указал на вменяемых людей? Религиозное отношение к программированию обязывает к написанию невменяемого кода. В таких случаях не помогают первые главы книжек про паттерны. Конечно, этот код несколько утрирован. Но ведь чтобы что-то понять, надо довести это до предела?

Аналогия - тебе говорят что молотком удобнее забивать гвозди чем камнем, а ты говоришь что молоток не решение всех проблем!
HraKK прикол в том, что ТС фактически сказал: "А давайте обсудим какие есть недостатки у молотка", а ему в ответ: "Чувак, ты гонишь, молотком удонее камни забивать"

Lightning
> Есть ряд областей в которых ООП неприменимо.
> Системное программирование, например.

Почему?
svetasmirnova, предположу, что речь об Linux: C++ In The Kernel?, Why don't we rewrite the Linux kernel in C++?

Я уже писал - ограничивание это хорошо
В большом проекте чаще всего есть программисты вот такие что ты пишешь, лишь бы сделать, так вот еще один плюс ООП это ограничить его тупую фантазию жестким интерфейсом, чтоб максиматьно что он принес в систему негативного это типа того что написал AmdY c коунтом
HraKK, тогда лучше писать на Java, C#? статические языки и все такое...

а вышла чудесная иллюстрация названию топика
+много (тоже об этом думал)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху