[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Организация простенького ядра сайта.
twin
Вот написал, как можно просто и непринужденно сделать красивую структуру, что бы отправлять туда любителей поповских курсов. smile.gif
Обсудим?



Спустя 6 минут, 15 секунд (3.07.2009 - 18:34) glock18 написал(а):
Сейчас допереведу и погляжу smile.gif

Спустя 3 часа, 33 минуты, 28 секунд (3.07.2009 - 22:07) glock18 написал(а):
Посмотрел. Сюда надо гнать всех новичков! smile.gif Конечно, не совсем я согласен, но это дело вкуса. Плюс вполне доходчиво для умеренно сообразительного человека. Сколько не разжевывай - все равно без мануала делать нечего. А так - все по полочкам, главное, чтобы правильные выводы сделали люди.

PS: про ООП ты там правда перегнул smile.gif

PPS: и MVC немного напутал (контроллер/модель) smile.gif

В любом случае, поповцам сюда самое самолет.

Спустя 8 минут, 20 секунд (3.07.2009 - 22:16) twin написал(а):
Цитата
PS: про ООП ты там правда перегнул

Это потому что уж очень его новички боятся. Надо постепенно приучать biggrin.gif

Спустя 6 минут, 3 секунды (3.07.2009 - 22:22) glock18 написал(а):
Цитата (twin @ 3.07.2009 - 19:16)
Это потому что уж очень его новички боятся. Надо постепенно приучать


это очень из далека, по-моему. хотя конечно факт - боятся. думаю, им стоит нормальных статей по ООП почитать и по MVC. вот тогда, если осилят их, тогда и будут в ООП писать. а иначе и толку нет - только обманывать их, доверчивых, говоря, что это ООП smile.gif

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

Спустя 8 минут, 44 секунды (3.07.2009 - 22:31) kirik написал(а):
twin
Отлично! Все очень понятно!
В последнем листнинге вместо /* Текущая дата */ echo $who наверное должно быть /* Текущая дата */ echo $date.

Спустя 7 минут (3.07.2009 - 22:38) twin написал(а):
Цитата
только обманывать их, доверчивых, говоря, что это ООП

Ну тут уже ты загнул. Никого я не обманывал.
Общий принцип, если шире взглянуть, очень похож. Путем подключения нужных файлов формируется один большой скрипт с общей областью видимости, который загружается в оперативку. Чем тебе не класс? Имени нет - ну и ладно, зачем оно тут.
Формируем другую страницу - подключаем другие файлы (методы считай). Тут тебе и наследование пожалуйста, очень похоже.
Ведь по идее что такое класс, если опустить терминологию. Это программа, загружаемая в отдельный участок памяти, которая может быть вызвана по мере надобности. Вот мы и вызываем. Только не из памяти, куда предварительно загрузили, а сразу, в момент формирования. Если грамотно все построить, то работает только то, что нужно в данный момент. А вот класс будет загружен полностью, потребуются все его методы, либо только один. Так что тут еще посмотреть надо.
Какой же это обман... sad.gif

kirik
Спасибо, щас поправлю.

Спустя 16 минут, 41 секунда (3.07.2009 - 22:54) glock18 написал(а):
Цитата (twin @ 3.07.2009 - 19:38)
Какой же это обман...

да ладно... я не в упрек! ну просто, по-моему, это все равно очень примерно описание ООП. как раз, чтобы дать представление подойдет идеально.

Но уж прости,twin, меня, человека помешанного на классах и ООП *черт, никак не найду смайл, который от смущения краснеет*.

Спустя 15 минут, 3 секунды (3.07.2009 - 23:09) twin написал(а):
Цитата
Но уж прости,twin, меня, человека помешанного на классах и ООП
biggrin.gif biggrin.gif biggrin.gif
Да я же в шутку.
Просто мне действительно не нравится, когда весь сайт состоит из двух-трех огромных классов. Очень сложно понять, где что формируется и откуда вызывается. А если длинная веревка из наследников, то вообще труба. Мне просто кажется что переусердствовали уже. Возможности у ООП огромны, но в результате получается что сами себя запутали и забыли, что не обязательно приходя домой вызывать МЧС, что бы те залезли через окно и открыли дверь изнутри. Достаточно вынуть из кармана ключ...

Спустя 5 минут, 33 секунды (3.07.2009 - 23:15) glock18 написал(а):
Цитата (twin @ 3.07.2009 - 20:09)
А если длинная веревка из наследников, то вообще труба

а я люблю такое)))

Цитата (twin @ 3.07.2009 - 20:09)
состоит из двух-трех огромных классов

вот это жесть

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

Спустя 8 минут, 46 секунд (3.07.2009 - 23:24) twin написал(а):
Ты наверно редко ковыряешь чужие скрипты просто biggrin.gif
У меня изжога уже от этого.

Спустя 8 часов, 25 минут, 47 секунд (4.07.2009 - 07:49) glock18 написал(а):
ну так, вообще то ковыряю. Обычно мне не приходится переписывать их - вот это да. Зато меня последнее время на работе просят проверить код других, и там я нахожу очень много интересного и увлекательного smile.gif

Понятно, что если мозг не работает по-ООПэшному, то лучше вообще не трогать его и писать процедурами.

Спустя 57 минут, 12 секунд (4.07.2009 - 08:47) PandoraBox2007 написал(а):

Спустя 2 часа, 41 минута, 52 секунды (4.07.2009 - 11:29) Winston написал(а):
twin большое спасибо за сайт smile.gif для новичков это очень классный ресурс, я его нашел в вашем профиле после регистрации на этом форуме, и сейчас много чего нового и полезного для себя там нашел.

Спустя 2 минуты, 2 секунды (4.07.2009 - 11:31) twin написал(а):
glock18
Цитата
Понятно, что если мозг не работает по-ООПэшному, то лучше вообще не трогать его и писать процедурами

Меня всегда веселят такие заявления biggrin.gif
Ты рассуждаешь примерно так.
Была у меня легковая машина. Понадобилось мне привезти пианино, купил я газель. Круто. Потом понадобилось привезти шлакоблок на дачу, тут камаз в самую пору. Теперь я на легковой ездить уже не могу, мыслю категорией С. В булочную тоже на камазе езжу. А недавно сдал на Е и купил длинномер. Вообще жесть. Теперь без него никуда, и в гости и на дачу и на межгород - везде на шаланде. Если мозг не работает категорией Е, то на длинномер лучше вообще не садиться. И ездить в гости на легковой машине.

Ты пойми, есть понятие программирование, и есть понятие Объектно Ориентированное Программирование. То есть это часть программирования в целом, а вовсе не альтернатива ни какая. Вообще это слово само по себе ущербно (ООП), потому что подменяет понятия. Не должно быть такого программирования, должно быть просто применение классов.
Это если по моей аналогии:
Есть автотранспорт и есть грузовой автотранспорт. Не приходит же в голову противопоставлять одно другому...

Спустя 5 часов, 32 минуты, 11 секунд (4.07.2009 - 17:03) glock18 написал(а):
Ха)) Классный пример) Похож в целом. В чем-то ты и прав, но использование классов уже часть ООП.

Да, я не разделяю эти понятия, естественно ООП - часть программирования. Процедурный подход тоже свое название имеет. И мне он не особо нравится. Не знаю, twin. Возможно, ты и поработал с большим количеством кривых скриптов, но с хорошонаписанными я поработал нормально. и вот там действительно использование классов встает в требование. Есть то, что никогда не сделать просто процедурами (я в плане гибкости больше). Примеров приводить сейчас не буду - если только продолжать дискуссию будем.

Тема вообще мне не особо нравится, потому что я уважаю тебя, а развязка подразумевает, что дурак, либо ты, либо я. Контекст, по крайней мере такой получается. И меня ты не переубедил.

PS: чтобы так быть помешанным на ООП, наверно, так же как я надо не любить рутину. Мне если приходится писать что-то одно в двух местах, то это очень злит. И лень, поэтому я так обычно извернусь, чтобы че хошь можно было поменять за полдвижения. Надо фильтр добавить ко всем запросам? Пожалуйста... в одном месте написалама, все заработало с фильтром.

Вот я такой ленивый, и поэтому люблю ООП. И вряд ли меня переубедить.

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

Спустя 55 минут, 37 секунд (4.07.2009 - 17:58) twin написал(а):
Цитата
подразумевает, что дурак, либо ты, либо я.

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

В принципе я никого никогда не пытался переубедить. Даже наоборот очень часто меня обвиняют в отсталости и непрозорливости. Мол ООП это круто, за ним будущее, ты бы еще на бейсике писал... На самом деле я просто применяю это там, где необходимо, а не везде подряд.

Вот гостевуху и мысли бы не возникло писать на классах целиком. smile.gif Я ограничился бы постраничкой, а остальное там легко решается функциями.


Спустя 10 минут, 43 секунды (4.07.2009 - 18:09) glock18 написал(а):
Цитата (twin @ 4.07.2009 - 14:58)
Вот гостевуху и мысли бы не возникло писать на классах целиком. smile.gif Я ограничился бы постраничкой, а остальное там легко решается функциями.


дк гостевуха получилась малююсенькая - 5 классов всего)))

Спустя 43 минуты, 8 секунд (4.07.2009 - 18:52) waldicom написал(а):
"Если близко воробей, мы готовим пушку..."

Спустя 1 месяц, 21 день, 3 часа, 42 минуты, 45 секунд (25.08.2009 - 22:35) web-dev написал(а):
А зачем в шаблонах размещать php код, в чём тогда шаблонизация? Написали бы лучше {time}, а в файле обработчике str_replace()

Спустя 8 часов, 31 минута, 56 секунд (26.08.2009 - 07:07) twin написал(а):
"Шаблонизация" это что вообще такое? И зачем она надо?
И чем это
Цитата
Написали бы лучше {time}, а в файле обработчике str_replace()
?
На мой взгляд шаблонизация преследует единственную цель (реальную, а не надуманную) - разделить бизнесс-логику и представление. А вовсе не php и html. Какая принципиальная разница между {time} и
<?php echo $time; ?>? C точки зрения реализации и дальнейшего обслуживания, первый вариант гораздо сложнее. И медленнее.

Спустя 15 минут, 12 секунд (26.08.2009 - 07:22) hara_ написал(а):
Вот ещё цель (которая кстати не отменяет первую):
{time} нужно если верстает один человек, а программирует другой, -
то верстальщику как бы проще понять {time} чем <?php echo $time; ?>

Я тоже за то что шаблонизаторы только добавляют проблем.
Но это вопрос вкуса, кому что нравится.

Ну а про скорость, то если нормальный шаблонизатор, (естественно не str_replace каждый раз)
то не медленнее конечно, а ровно так же быстро как и без него. (так как обычно всё это прогоняется/заменяться на php native и
складывается в файлик, а вот этот файлик уже берётся потом)

Спустя 19 минут, 5 секунд (26.08.2009 - 07:41) glock18 написал(а):
Цитата
Ну а про скорость, то если нормальный шаблонизатор, (естественно не str_replace каждый раз)
то не медленнее конечно, а ровно так же быстро как и без него. (так как обычно всё это прогоняется/заменяться на php native и
складывается в файлик, а вот этот файлик уже берётся потом)


Это верно. Однако все же, генерация кода (считай компиляция) накладывает свои минусы. Сгенерированный код никогда не будет оптимальным.

Да, это вряд ли наложит большой оверхэд.
Лично для меня шаблоны неприемлимы по другой причине - не позволяют использовать статические методы в принципе. Это, конечно, если статических методов немного, решается при помощи 1-2 переменных шаблона/плагинов, но все же smile.gif

Спустя 2 часа, 17 минут, 26 секунд (26.08.2009 - 09:59) twin написал(а):
Цитата
Сгенерированный код никогда не будет оптимальным.

А кто сказал, что нужно каждый раз генерировать? Да пожалуйста, кэшируй точно так же. Суть то одна, синтаксис просто разный.

Спустя 49 минут, 8 секунд (26.08.2009 - 10:48) glock18 написал(а):
Цитата
Сгенерированный код никогда не будет оптимальным.

Цитата
А кто сказал, что нужно каждый раз генерировать?

twin, не вижу никакой связи. Ключевое слово "генерировать", и я вовсе не говорил о том, долго будет код генерироваться или нет.

Пример приведу, может не очень удачный.

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

Спустя 5 минут, 47 секунд (26.08.2009 - 10:54) twin написал(а):
Так, теперь я не вижу связи. Причем тут шаблонизаторы? Чем они то оптимизируют код?

Спустя 14 минут, 18 секунд (26.08.2009 - 11:08) glock18 написал(а):
Цитата
Так, теперь я не вижу связи. Причем тут шаблонизаторы? Чем они то оптимизируют код?


эээээ... я говорил, что наоборот - они делает неоптимальный код laugh.gif

Спустя 38 минут, 36 секунд (26.08.2009 - 11:46) twin написал(а):
biggrin.gif то да.

Спустя 19 минут, 53 секунды (26.08.2009 - 12:06) glock18 написал(а):
Цитата
они делает

капец че-та я по-русски перестал писать нормально. и ведь постоянно вижу такие опечатки... sad.gif

Спустя 1 месяц, 21 день, 10 часов (17.10.2009 - 22:06) Pino написал(а):
Цитата (glock18 @ 3.07.2009 - 19:07)
Посмотрел. Сюда надо гнать всех новичков! smile.gif Конечно, не совсем я согласен, но это дело вкуса. Плюс вполне доходчиво для умеренно сообразительного человека. Сколько не разжевывай - все равно без мануала делать нечего. А так - все по полочкам, главное, чтобы правильные выводы сделали люди.

PS: про ООП ты там правда перегнул smile.gif

PPS: и MVC немного напутал (контроллер/модель) smile.gif

В любом случае, поповцам сюда самое самолет.

По мне так толку от этой структарезации только то что будеш знать что где лежит biggrin.gif а попов вроде структуризацию и не пытался в курсах расказывать, поэтому непонятно зачем на него вы так напираете!!! huh.gif

Спустя 53 минуты, 2 секунды (17.10.2009 - 22:59) WhiteKnight написал(а):
Pino
Про сайто-строение неплохо рассказывается в книге Котерова.
Там 1107 стр. читай.
Да и во многих хороших книгах по PHP, тоже много чего интересного smile.gif

Спустя 5 дней, 14 часов, 12 минут, 24 секунды (23.10.2009 - 13:12) Under Quol написал(а):
хорошая статья =)


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.