?

Log in

На чем они зарабатывают деньги? - php framework [entries|archive|friends|userinfo]
php framework

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

На чем они зарабатывают деньги? [авг. 20, 2007|04:01 pm]
php framework
php_framework
[drkwv]
Я имею в виду - разработчики этих фреймворков. Работа сложная долгая и кропотливая, неужто один энтузиазм? Да еще и open source делать - т.е. не на продажу. Им вообще это доход приносит? Если да - то как.
СсылкаОтветить

Comments:
From: bakti9rov
2007-10-12 05:55 am
Ну почему сразу связывать это с деньгами?

Почитай статьи по open source.
(Ответить) (Thread)
From: drkwv
2007-10-12 06:06 am
Потому что кушать хочется :) статьи почитаю
(Ответить) (Parent) (Thread)
From: ex_digital_4
2007-10-31 02:52 pm
Я на своём фрейме элементарно работаю на заказ.
(Ответить) (Thread)
From: drkwv
2007-10-31 03:01 pm
Я на своем тоже. Но мне это напоминает больше ремесленный труд :) чтобы сделать что-либо действительно масштабное и крепкое нужны деньги.
(Ответить) (Parent) (Thread)
From: ex_digital_4
2007-10-31 05:27 pm
Свободно обхожусь декораторами для использования кучи разных библиотек.
(Ответить) (Parent) (Thread)
From: drkwv
2007-11-01 03:12 am
А CMS какая? Или он способен с несколькими разными работать?
(Ответить) (Parent) (Thread)
From: ex_digital_4
2007-11-01 03:23 am
Он, по идее, для создания CMS сам подходит. Но, поскольку я не очень много работаю с CMS (мне обычно предлагают работу другого плана), то увязывал я его только с Mambo, где скрипты с ним работали как RSS/Atom aggregator. Ну и http://nav.academ.org я на нём делал, кодинг час, кажется, занял.
(Ответить) (Parent) (Thread)
From: drkwv
2007-11-02 05:17 am
В принципе, тоже как вариант. Но будет зависимость от разработчиков этих систем.
(Ответить) (Parent) (Thread)
From: ex_digital_4
2007-11-02 05:50 am
М... Например?..
Не, я не затеваю спор, представляю гипотетически, как такое может быть, но не везде ли такое? Мне просто ближе и родней философия Unix -- не кухонный комбайн а-ля Punto Switcher, The Bat!, WinAmp, каждая из которых помимо своей основной функции (переключать раскладку, доставлять почту, играть музыку) включает ещё кучу левоты, которая мне и даром-то не нужна, не то, что за деньги, -- а взаимодействие кучи небольших программ, каждая из которых делает что-то одно (считает строки или символы, ищет по шаблону, ищет в файловой системе, запускает что-то с нужными параметрами командной строки, по расписанию запускает задачи и т.п.).

Поясните, пожалуйста, что Вы имеете в виду. Мне это будет крайне полезно.

P.S. Кстати, подумалось, что в свете веяний Web 2.0 сотрудничество разработчиков сайтов неизбежно. Даже для SOAP-вызовов удалённой веб-службы необходимо знать её интерфейс, а интерфейс может поменяться.
(Ответить) (Parent) (Thread)
From: drkwv
2007-11-02 06:39 am
Ну, как пример - выходит новая версия сторонней CMS, обновляется, и сайт/админ.часть перестает работать. Придется следить за изменениями в интерфейсах используемых классов, если захочется использовать их новые версии. Причем именно придется, т.к. если обновление отключить/не использовать новые версии, то все имеющиеся в сторонних системах уязвимости будут доступны и после того как производитель их пофиксит.

Еще одно но - мне часто приходилось сталкиваться с глюками в чьих-то системах. Причем когда пишешь что-либо, в первую очередь ищешь ошибку у себя. Исправить же чужой код - сложно. Ждать пока "они исправят" - самоубийство. Меня добило два глюка в PHP, t исправленные до сих пор. И эти два раза я потратил около двух дней чтобы, блин, понять "ошибка-то не моя". Эти дыры до сих пор не закрыты, а phpbug по поводу одной из них и вовсе утверждает что "проблемы нет". Несколько раз утверждает. Они говорят "проблемы нет", через несколько месяцев приходит новый юзер и говорит - "проблема", на что ему снова что-то возражают. Это я сейчас об ошибке в функции array_multisort, когда
$array1=array(...lalala...);
$copyofarray1=$array1;
array_multisort($array1,...);
и оказывается что $copyofarray1 тоже изменилась. Касаемо первой найденной ошибки - я очень смутно себе представляю ее причину, там было что-то связанное со ссылками на строку и их сравнивания, после чего вылетал Apache. Та же история - что-то подобное в phpbug имеется, но когда ждать решения проблемы? Хорошо, что немного извратившись, эти проблемы я смог обойти.
Смысл предыдущего текста был в том, что в своем коде найти глюки гораздо проще, чем в чужом. И мне проще и быстрее повторить какой-либо функционал у себя, чем потом искать ошибку (+догадаться что она не твоя) и затем рыться в чужом коде чтобы ее исправить. Вот в этом зависимость выражается.

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

P.S. Я начал разработку своей системы из-за того что понял, что меня не устраивают имеющиеся CMS - они слишком сложные/неповоротливые/негибкие и т.д. Постепенно с разработки CMS переполз на CMF, т.к. понял что одним CMS тут не обойтись. Поэтому много времени уходит на разработку "своего". Своя CMS, структура данных, идеология системы - на остальное времени уходит немного, т.к. мануалов "как сделать велосипед" великое множество, спасибо их авторам. Возможно, я ошибаюсь и мне не стоит этим заниматься :) но мне это нравится и кажется правильным.
(Ответить) (Parent) (Thread)
From: ex_digital_4
2007-11-02 08:01 am
Давайте конкретно эту часть дискуссии перенесём в instant messenger.

Моя ICQ -- 35248265, jabber -- stanislav.shramko@gmail.com
(Ответить) (Parent) (Thread)
From: drkwv
2007-11-02 06:57 am
Ну, и кроме того, много полезного функционала вообще никем не реализовано или достаточно трудно это найти. Найденный класс будет иметь свои особенности, делать что-то лишнее, не делать что-то нужное, возможно иметь ошибки.

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

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

Проблема над которой я до сих пор думаю - как заставить их работать вне фреймворка, но, наверное, это все же извращение. Слишком много нужных функций которые придется переопределять внутри класса, а некоторые вещи и вообще реализовать вне его не получится.
(Ответить) (Parent) (Thread)
From: ex_digital_4
2007-11-02 07:57 am
Т.е. мне самому пришлось писать функции для определения статического вызова функции класса (плохо читал мануал?)

Отходя от линии дискуссии, прервусь для тупого вопроса. Вот эта ситуация разруливалась?


<?php


class {


    function 
iAnAMethodMyNameIsFunctionThough() {
        
var_dump(isset($this));
    }

}

A::iAnAMethodMyNameIsFunctionThough();

$a = new A();
$a->iAnAMethodMyNameIsFunctionThough();

?>

(Ответить) (Parent) (Thread)
From: drkwv
2007-11-02 08:29 am
<?php

# да, причем:

class First{
  function Method1(){
    var_dump($this);
  }
}

class Second{
  function Method2(){
    First::Method1();
  }
}

$b = new Second();
$b->Method2();

/* напечатает:

object(Second)#1 (0) { }

т.е. я не могу просто спросить isset($this)?true:false; при вызове First::Method1, т.к. $this в этом случае указывает на экземпляр класса Second.
*/
Syhi-подсветка кода
(Ответить) (Parent) (Thread)
From: ex_digital_4
2007-11-05 08:17 pm
И в принципе даже хорошо, что так. Методы, которые заложены в дизайн как статические, должны вызываться только как статические.

(Ответить) (Parent) (Thread)