Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

Опять про веб. На сей раз заметка про ООП

ООП - объектно-ориентированное программирование. В принципе, в вебе оно не нужно особо. Ну, это если исходить из простой логики. "Объект" в программировании - это кусок кода и кусок данных, который существует, так сказать, сам по себе и сам себя обслуживает. Например, кнопка "Отправить" - это объект. Она сама по себе существует, каши не просит. Нажали не нее, она отработала какие-то свои методы, связанные с нажатием, и опять дальше болтается, ждет, пока на нее нажмут.
В вебе же программирование чисто структурное. По идее. Там нет надобности создать в памяти объект, который будет что-то сам по себе ковырять потихоньку или ждать, пока ему скажут что-то сделать. Код либо выполняется, либо нет, вполне достаточно просто функций. Взял массив POST, поколупался в базе данных, вывалил все в браузер - код либо выполняется, либо нет, каждый кусок в свое строго определенное время, измеряемое микросекундами от начала работы скрипта.
Объекты в вебе нужны, например, для создания всяких ботов или демонов, но тут может подойти любой язык программирования, не только заточенный под вебу.

Но вот буквально минут двадцать назад я подумал (это вместо того, чтоб готовиться к защите, ах, как же это я мог), что, в принципе, объект в вебе нужен. Во-первых, это помогает разгруппировать функции по кучкам согласно их предназначения. То есть просто функция connect() - хз, куда коннектится, а вот $db->connect() уже более понятна и вполне отличима от $smtp->connect(), $sock->connect() и прочего, причем вполне может описываться одинаковыми кусками кода, наследуемыми от родительского объекта.
Во-вторых, это спасает от нечаянного совпадения имен функций. Вот у меня есть дохера разных файлов с функциями, которые инклудятся, из каждого беру по одной-две функции, чтоб отобразить страницу. И для того, чтоб они не перепутывались меж собой по именам, вырастает целая идеология префиксов. photo_db_updatetags() или все-таки db_photo_updatetags()? Надо ее поискать и посмотреть, как правильно. А где искать - в файле photo_db.php или photo/db.php? Ну, само собой, я-то помню, что где писал и как. Но мысли, блуждающие в голове другого программиста, который функции категоризирует по-другому, могут быть не совсем ясны. Короче, чтоб избежать путаницы с именами функций, свалим все в класс photo, который эти все штуки умеет. $photo->updatetags() - хоп! и никаких проблем. И сразу ясно, где искать: classes/photo.php. Насчет выгодны в быстродействии или прочих требуемых ресурсах я не знаю, вполне вероятно, что ООП жрет больше.

А, и еще я придумал, как идеологически корректно избежать избыточности в таблице дерева страниц в Бало, не уменьшая, а даже увеличивая скорость работы движка - надо сделать кэш-таблицу собственноручно! Правда, Мисата сказал, что "мы" уже сделали в Бало2 по-другому. Пожалуйста, пусть эти "мы" делают по-другому, я сделаю свой очередной движок с кэш-таблицей, блэкджеком и прочими атрибутами.

Ну а пока, ах, пойду поучу уроки.
Tags: web
Subscribe

  • Читалово и смотрилово

    Попытки читать дальше «Дракулу» в оригинале я пока оставил. Потому что там я добрался до такого места, где идёт длинный монолог старого моряка. Этот…

  • Засмотрено и зачитано

    Засмотрено. После знакомства с "Первому игроку приготовиться" - я имею в виду не эту гламурно отрендеренную какашечку, а книжку - мы с Ленкой решили…

  • Зачитано и засмотрено

    Прочитал на чешском языке книгу "Демон из Ист-Энда" писательницы Петры Словаковой. Это первая книга из серии "На службе её величества" (название…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 18 comments

  • Читалово и смотрилово

    Попытки читать дальше «Дракулу» в оригинале я пока оставил. Потому что там я добрался до такого места, где идёт длинный монолог старого моряка. Этот…

  • Засмотрено и зачитано

    Засмотрено. После знакомства с "Первому игроку приготовиться" - я имею в виду не эту гламурно отрендеренную какашечку, а книжку - мы с Ленкой решили…

  • Зачитано и засмотрено

    Прочитал на чешском языке книгу "Демон из Ист-Энда" писательницы Петры Словаковой. Это первая книга из серии "На службе её величества" (название…