Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Организация разработки крупного проекта через API


Автор: testergame 9.10.2012, 06:54
Доброго времени суток.
Есть проект браузерная онлайн игра которая разрабатывается уже какое-то время, только мной. То есть я единственный у кого есть доступ к php скриптам.

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

У меня возникла такая идея, не давать новому программисту доступ к самому проекту, а дать доступ к API проекта, что-то на подобие API ВКонтакте.

Например в проекте есть следующие модули:
/base
/chat
/shop
/battle

Предположим, что у нас есть три программиста каждый работает только над своим модулем:
/base - Общяя папка для всех программстов
/chat - Программист #1 работает над чатом
/shop - Программист #2 работает над магазином
/battle - Программист #3 работает над боем

Соответственно программист #1 имеет доступ только к папкам /base и /chat
Соответственно программист #2 имеет доступ только к папкам /base и /shop
ну и т.д.


Но вот, что если программисту #3 нужна функция для работы с чатом, например:
Программист #3 написал функцию задача которой по завершению боя написать в чате сколько пользователь получил опыта.

Для подобной реализации программсту #3 нужен класс для отправки сообщений в чат. Но к этому классу у него нет доступа. А как я уже сказал дать такой доступ я не могу.

Какую я предлагаю реализацию.
Для получения подобного метода(отправки сообщений в чат) программист #3 просит меня или напрямую обращается к программисту #1 с просьбой сделать данный метод доступным через chat.api, а дальше один в один как API ВКонтакте. Программисту #3 для отправки сообщений в чат достаточно будет выполнить что-то вроде такого:
file_get_contents('http://chat.api.game.ru/?method=setMessage&msg=Бой закончен, Вы получили 5 опыта.');


Идея вроде очень хорошая, она полностью решает проблему с тем, что твой проект кто-то украдет так как у каждого программиста будет только та часть кода над которой он действительно работает.

Но здесь есть один минус, это медленный http протокол с которым теперь будет взаимодействовать api.

Какие еще существуют подобные способы организации api кроме http протокола?

Какие вообще варианты разработок крупных проектов существуют?

Например, как устроена организация разработки того же контакта или фейсбука?

Автор: Guedda 9.10.2012, 07:11
Можно сказать только, что если захотят украсть исходные коды, то их все равно украдут. Проще всего защитить свой код можно на законодательном уровне, зарегистрировав его ядро.

Автор: Sanchezzz 9.10.2012, 08:44
file_get_contents это очень медленная штука если стоит и для посещаемого сайта будет очень сказывается особенно если там еще и апач стоит))

Цитата

Например, как устроена организация разработки того же контакта или фейсбука? 

Кто его знает как Дуров или Цукер это делает наверное как обычный ТД. Работник подписывает договор о не разглашение и распространении.  smile 
А загнать работника в рамки маразма это не выход  . Желающих работать в таких рамках много не будет.

Как подсказали вам выше, защитите проект как интеллектуальную собственность.

Автор: mark2009 9.10.2012, 11:34
Код

Соответственно программист #1 имеет доступ только к папкам /base и /chat
Соответственно программист #2 имеет доступ только к папкам /base и /shop


А программист №2 дал программисту №1 данные для входа в /shop ))

Автор: Sanchezzz 9.10.2012, 13:20
Цитата

А программист №2 дал программисту №1 данные для входа в /shop ))  

проще было каждому программисту в папку /base положить исходники  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)