- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
просто классы следует воспринимать как дополнительный, удобный, мощный инструмент программирования.
Удобно при дальнейшем развитии и наращении функциональности без опасения сломать уже работающее.
вот именно - удобство
когда встанут задачи, которые требуют использования ООП - тогда все и прояснится
А по поводу нагрузки на сервер:
выбирайте - мозги грузить или процессор
гугли по запросу ООП
А для общих настроек существует паттерн Registry, :D
Каких общих настроек, не об общих настройках была речь, а об общих принципах работы. Что нет зачастую необходимости создавать отдельный класс и, тем более, описывать в нем все настройки.
дабы не хранить конфиги в глобальных массивах
Для этого существует паттерн Registry?
ЗЫ. Но ведь можно сделать похитрее - в реестре хранятся общие (дефолтные) настройки, а в каждом классе можно прописать свои, более приоритетные ;)
Зачем делать хитрее там, где можно сделать проще. Считать все настройки в глобальную переменную (двухмерный массив $SETTINGS[тип настроек][переменная]) одним запросом из базы. Можно закешировать полученные данные в файл. И чем плохи глобальные переменные не пойму.
Devider, сейчас вас проклянут .... тему так то развивают злостные ООПшники :))))))
имхо не стоит уж настройки то точно выносить в ООП. согглушусь что класс для работы сс бд, шаблонами, рсс и тп удобно, а настройки .... смутное удобство.
Свои пять копеек.
Самое главное, имхо, что забыли - это и есть "зачем" создавали. Понятно, что удобнее и проще, но это ведь не самоцель, да? =)
ООП позволяет представить любой объект системы как тип данных. Собственно, и представляет... А так же описать действия над ним. Давайте на примере:
- есть тип данных Int. У него есть характеристики: максимальная длина, положительное/отрицательное. И есть операции над Int: сложить, вычитать, умножать, делить (тут сложнее, но условно оставим).
То же самое - в реальном приложении. Есть у нас объект "Пользователь". С полной уверенностью можно сказать, что это - тип данных, поскольку у него есть и характеристики (атрибуты/поля) и методы (регистрировать, удалять, банить и т.д.).
Типов пользователей может быть много: девочки, мальчики, старухи, извращенцы и т.д. Но, несомненно, для внешней системы они одинаковы: их по-прежнему можно банить и удалять, регистрировать и восстанавливать им доступ. Строго говоря - это и есть соответствие интерфейса (имплементация) базовому типу. Попробуй-те как запомните, что для извращенца надо использовать функцию ban_mule, а не ban_user, что нужно использовать ban_girl, а не ban_boy... Попробовали?
Что же дает ооп? Наследование, как таковое, гарантирует минимальный ГАРАНТИРОВАННЫЙ набор методов у объекта, имплементация - соответствие одного типа другому, инкапсуляция - изолирование данных от остальных объектов (пример про извращенца актуален. Для того, чтобы его забанить - мне не нужно помнить, что у него бан проходит с сообщением "Ах ты ****** сын", вместо "Вы были забанены"), что банить его нужно на весь период и т.д.
Вообще, тема холливарная изначально: странно еще, как это народ не набежал =)
ЗЫ: про быстродействие. Плюшки все. Обращение ко внешним источникам данных проходит в сотни раз дольше, чем работа логики. Ну с некоторыми допусками, конечно ;)
bearman, можно с Вами не согласиться? Если используется синглтон, или (что лучше) - черный ящик, то очень хорошо конфиги ложатся в концепцию ООП. Все те же методы (получить, сохранить, закешировать), все те же данные... И в наследование замечательно ложатся и в композицию: вам ли не пофиг должно быть - откуда вы берете настройки: из файловой системы, бд или memcache? Вполне себе оправданно ;)
asserte, имхо, синглтон - это не тру ооп
И чем плохи глобальные переменные не пойму.
Работают над проектом несколько человек (да и в случае одиночной разработки забыть можно что угодно) и они понятия не имеют кто какие глобальные переменные заюзал и могут их использовать многократно. Представляете какая путаница начнётся?
asserte, имхо, синглтон - это не тру ооп
Что значит "тру"? ООП - он или есть, или его нет. Если нужно гарантировать один экземпляр класса - чем не путь? Земеттье, я употребляю исконно "ООП-термины". А как насчет геттеров/сеттеров? Они не нарушают Ъ концепции? Ведь данные в итоге оказываются "вне объекта". Тоже не Ъ? Другое дело - использование мощи ООП или пародия "для удобства".
Если уж на то пошло - ткну в противоречие между наследованием и инкапсуляцией. Слышали о таком? =)
UPD: что-то на ум упало... А ведь 99% разрабов начинают использовать классы и объекты как "контейнеры" для функций. Чтобы с именованием не путаться... Надо опрос устроить - сколько человек так начало свой путь к ООП ;)
Совсем же не обращаться не получится. А сколько считывать, пару килобайтами больше, меньше - большой роли не играет.
U3RlcA==, горькая правда для кодера заключается в том, что ему лично на начальном этапе развития они нафиг не нужны. Но они могут понадобится его работодателю, чтобы эффективно использовать (инкапсулировать и наследовать ) его труд. Все ООП лишь попытка рассадить кодеров по клеткам.
Так что читайте концепции и примеряйте ошейник.
ржунимагу...
да весь ООП придумали коварные узурпаторы :)