[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос про ООП
Страницы: 1, 2, 3, 4
twin
Ты путаешь понятия. Демон, ты сам заметил,
Цитата
это программа, которая работает в автоматическом режиме, без участия человека

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

Есть индивиды, которые пытаются действительно написать демон на PHP, используя бесконечные циклы к примеру.

Только причем тут ООП я тк и не понял.

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

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

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

user posted image
sergeiss
Я ничего не путаю smile.gif Я говорил про 2 вида скриптов, отвечающих у меня за загрузку данных:
1. Запускаются по крону и по FTP грузят файлы на сервер. Запустился - загрузил - отключился.
2. Демон, который работает длительное время и следит: как только появились файлы для загрузки, то он тут же их обрабатывает и грузит данные в БД.

И демоном я называю именно 2-й тип скриптов, из описанных тут.

PS. Я сначала пробовал сразу же после загрузки файлов на сервер, тем же скриптом, грузить их в БД. Но иногда получалось, что несколько потоков начинали одновременно грузить данные. А их много в каждом файле. Мои размышления о том, как четко разделить процессы загрузки, чтобы в любой момент времени было не более одного процесса, грузящего эти данные в БД, привели к тому, что мне нужен именно демон.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Путаешь, путаешь)))

Почитай внимательно свою же ссылку на википедию.
Цитата
В техническом смысле демоном считается процесс, который не имеет управляющего терминала. Чаще всего (но не обязательно) предком демона является init — корневой процесс UNIX.


Твоя программа имеет управляющий терминал и уж точно не является службой. Служба, это в винде, демон, это в UNIX. Никаких PHP там близко нет. Твой скрипт запускается демоном. А по сути остается скриптом, который можно легко запустить и из браузера.

Что ты назывешь демоном, дело десятое, есть четкое ему определение.

Демон, это процесс, который запускется единожды при старте системы. Твой скрипт запускается по расписанию. Так что путаешь, и еще как.



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

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

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

user posted image
twin
А если у тебя действительно подобие демона на PHP, то есть скрипт, который запускается один раз и работает вечно, то это и есть извращение. Так как работать будет до первого ребута. Кроме того, он может наплодить процессов и вообще порушить логику обработки.

Так что выбирай. Либо ты занимаешься извращениями, либо это не демон.

Однако ООП тут совершенно не при делах.

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

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

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

user posted image
sergeiss
Цитата (twin @ 23.06.2013 - 12:29)
Твоя программа имеет управляющий терминал...

С чего ты это решил?

Цитата (twin @ 23.06.2013 - 12:29)
...и уж точно не является службой

Да, с точки зрения ОС это не служба.

Цитата (twin @ 23.06.2013 - 12:29)
Демон, это процесс, который запускется единожды при старте системы. Твой скрипт запускается по расписанию.

Николай, ты человек умный, безусловно smile.gif Поэтому еще раз прочитай, что я написал: то, что я называю демоном, запускается именно единожды и работает в автоматическом режиме smile.gif А те скрипты, что запускается периодически, я демоном не называю.

Опять же, у меня есть система контроля работы этого демона, как и у любой нормальной службы в ОС. То есть, если демон вдруг упадёт, то он будет запущен заново через достаточно короткое время. И - в автоматическом режиме.

Цитата (twin @ 23.06.2013 - 12:29)
Твой скрипт запускается демоном.

С чего ты это решил так?

Цитата (twin @ 23.06.2013 - 12:29)
Что ты назывешь демоном, дело десятое, есть четкое ему определение.

Ну так я и привел это определение... И мой демон ему соответствует полностью smile.gif


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sergeiss
PS. А ООП имеет сюда то отношение, что я раньше уже сказал. Ты сам же утверждал, что не имеет смысла использовать ООП для скрипта, работающего доли секунды. С этим я согласен, да и то частично smile.gif
Но далее я написал, что на ПХП можно сделать демона, "долгоиграющий скрипт", который работает уже далеко не доли секунды. И для него (в т.ч. и по сути его работы, а не только по времени) использование ООП имеет смысл.
И вот дальше пошел спор "демон/не демон".

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

PPS.
Цитата (twin @ 23.06.2013 - 12:32)
Так как работать будет до первого ребута.

Ну так любой сервис работает "до первого ребута". А потом грузится заново при загрузке системы. Так что "мой" демон ничуть не лучше и не хуже других и в этом смысле smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата (sergeiss @ 23.06.2013 - 08:40)
Цитата (twin @ 23.06.2013 - 12:29)
Твоя программа имеет управляющий терминал...

С чего ты это решил?

Да потому что иное невозможно. Ты должен запустить сценарий. Обязан. Как. это вопрос второй: средствами сервера, из командной строки, кроном в конце концов. Ты сам говоришь, если он
Цитата
вдруг упадёт, то он будет запущен заново через достаточно короткое время.
Раз имеется возможность его запустить в отрыве от операционной системы, значит он по определению имеет управляющий интерфейс. Он не запустится сам в момент запуска ОС.

Ты просто пытаешься объединить в одну кучу демон (крон в данном случае) и управляемый демоном скрипт. Отключи крон, ребутни сервер и от твоего "демона" останется мокрое место. Сам твой скрипт никогда не запустится.

И я вообще не понимаю, зачем вешать надолго процесс PHP, если можно просто запускать его с нужной периодичностью тем же кроном. Раз в минуту допустим.

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

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

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

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

user posted image
sergeiss
Цитата (twin @ 23.06.2013 - 15:58)
Ты просто пытаешься объединить в одну кучу демон (крон в данном случае) и управляемый демоном скрипт. Отключи крон, ребутни сервер и от твоего "демона" останется мокрое место. Сам твой скрипт никогда не запустится.

Извини... Но тут ТЫ путаешь что-то. Покажи мне хотя бы одну (одну-единственную!!!) службу, которая может сама себя запустить? Будь то Апач, MySQL или любая другая служба - они не сами себя запускают, а кто-то их запускает. Специальная программа в ОС, которая отвечает за службы.

Тот факт, что мой демон (службу) запускает не эта специальная прога, не делает его, т.е. демон, не-демоном smile.gif

Цитата (twin @ 23.06.2013 - 15:58)
И я вообще не понимаю, зачем вешать надолго процесс PHP, если можно просто запускать его с нужной периодичностью тем же кроном. Раз в минуту допустим.

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

Как я уже говорил в этой теме, всяко пробовал. То, что сделал - вариант с демоном - это наилучший вариант. Из практики.

Цитата (twin @ 23.06.2013 - 15:58)
Причем тут ООП? Если ты выполнил свой обработчик в виде класса, это еще не значит, что это объектно ориентированное программирование.

Ну да, я давно знаю, что ты считаешь всех программеров не понимающими, что такое ООП... Знаю smile.gif
Но я также знаю и то, что я хорошо понимаю, что такое ООП, то же, что и для многих других людей.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата (sergeiss @ 23.06.2013 - 12:07)
Извини... Но тут ТЫ путаешь что-то. Покажи мне хотя бы одну (одну-единственную!!!) службу, которая может сама себя запустить? Будь то Апач, MySQL или любая другая служба - они не сами себя запускают, а кто-то их запускает. Специальная программа в ОС, которая отвечает за службы.

Тот факт, что мой демон (службу) запускает не эта специальная прога, не делает его, т.е. демон, не-демоном smile.gif


А вот и делает. Демон должен запускаться вместе с запуском ОС. На то он и демон. Все остальное запускается через управляющий интерфейс. И если твой скрипт запускается демоном, его самого это демоном не делает.

Цитата
Потому что "нужной" периодичности тут нет. В какой-то момент времени (если раз в минуту запускать) может не быть файлов для загрузки. В другой момент их столько, что за минуту они не успеют загрузиться в БД.
У меня была похожая задча. Мне присылают статистику. Запросами на мой API. Запросы идут пачками с совершенно несистематизированной периодичностью. Если я буду обрабатывать их в режиме рельного времени, образуется очередь, так как обработка достаточно сложная и затратная по времени. Ну и что... Я собираю данные в базу (эдакий буфер), потом раз в несколько минут кроном запускаю обработчик, который считывает данные и спокойно обрабатывает статистику. Обработанные данные убираются из буфера, а на момент обработки лочатся. Если не хватает времени, крон запускает второй процесс. Если хватает - отработал и умер. Зачем постоянно крутить его в памяти?
Цитата
Как я уже говорил в этой теме, всяко пробовал. То, что сделал - вариант с демоном - это наилучший вариант. Из практики.

Я тоже всяко пробовал, и демон в твоем понимании оказался на последнем месте.

Ну да не суть. Суть в другом.
Цитата
Ну да, я давно знаю, что ты считаешь всех программеров не понимающими, что такое ООП... Знаю smile.gif
Но я также знаю и то, что я хорошо понимаю, что такое ООП, то же, что и для многих других людей.
Даже самые прожженые апологеты объектной парадигмы всегда говорят - ООП, это не программирование классами. Это образ мышления.

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

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

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

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

user posted image
sergeiss
Цитата (twin @ 23.06.2013 - 16:33)
Какая разница, будет висеть в оперативке экземпляр или просто класс, если и тот и другой используется единожды? Ну или процедурка, как у тебя. Где смысл использовать ООП тут? Тем более тут, где ты сам хочешь использовать один и только один процесс?

Ну да... И зачем это Си++ использует ООП? Всё равно же висит в оперативке один процесс... wink.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Не путай кислое с холодным.

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

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

В третьих, я в самом начале написал, что есть языки, где это устаканено и красиво. И имеет смысл. Сишка как раз один из них. Чего никак нельзя сказать о PHP.

Так что твой "демон" только подтверждает правило. smile.gif

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

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

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

user posted image
sergeiss
Мой демон что-то там подтверждает? Какое именно правило? Ты уж озвучь его, плз smile.gif Потому что я не понял, что именно он подтверждает. Он, демон этот, на самом деле создавался не для подтверждения чего-то-там, а для выполнения определенной работы. Которую он делает "на 5 с плюсом".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Он подтверждает то, что нет в PHP здач, которые бы требовали ООП парадигмы. Даже если его заставлять делать несвойственные вещи (читай - извращаться), такие как демоны или десктопные приложения, все равно от ООП в нем нет никакого профита.

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

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

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

user posted image
sergeiss
Цитата (twin @ 23.06.2013 - 20:24)
Он подтверждает то, что...

В ответ могу только процитировать самого себя:
Цитата (sergeiss @ 23.06.2013 - 20:09)
Он, демон этот, на самом деле создавался не для подтверждения чего-то-там, а для выполнения определенной работы.


Коль... Это всё твоё мнение (насчет ненужности ООП в ПХП), которое ты хочешь навязать всем. Зачем, я только не пойму? Ну не нравится тебе лично ООП, так и не используй его.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата (sergeiss @ 23.06.2013 - 16:31)
Коль... Это всё твоё мнение (насчет ненужности ООП в ПХП), которое ты хочешь навязать всем. Зачем, я только не пойму? Ну не нравится тебе лично ООП, так и не используй его.

А я и не использую. Да и не навязываю собственно никому. Просто люди должны иметь выбор, а его практически не остается, ибо власть узурпировали апологеты. smile.gif

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

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

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

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

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

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

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