| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > УП: Инструменты > Как обезопасить проект "изнутри" при командной |
| Автор: nucer 9.7.2011, 13:56 |
| Привет всем! Чем более интересных и сложных проектов идеи возникают в голове, тем актуальнее становится вопрос: как обезопаситься от сливания всего исходного кода куда то "на сторону" кем-либо из команды разработчиков... Грубо говоря инвестор вкладывает кучу денег в разработку программного продукта, группа программистов над ним полгода трудится, и вдруг, некий программист Василий все сорсы из репозитория берёт и использует в личных целях (продаёт или "кидает" команду каким-либо другим образом). Я рад за тех, с кем такое не случалось и, надеюсь, что и мне не придётся сталкиваться, но известны случаи, когда так сливались проекты масштаба 10^6$. Поэтому есть такая идея - разделить доступ к сорсам... В общем постановка задачи... Есть классы (сорсы) A, B, C, D, E Есть программисты Петя, Саша, Маша Петя работает над классом A, для разработки ему необходим доступ к классам B и C Саша работает над классом C, для разработки ему необходим доступ к классам B, D и E Маша работает над классами D и E Соотв. нужно так организовать репозиторий, чтобы: Петя имел доступ к A, B, C Саша имел доступ к B, C, D, E Маша имела доступ к D, E при этом, ни один из разработчиков не имел бы доступ ко всем сорсам в целом. Вопрос такой... Как это всё организовать?? Пока что моё знакомство со средствами и методами командной разработки только началось - имею тормозящий svn-репозиторий на гугл код и svn-плагин subclipse для эклипсы, там всё как то запутано и клинит временами и ничего похожего на то, что мне надо)) Вообще небольшой оффтопик - поделитесь пожалуйста, если есть у кого-нибудь ссылки на хорошие статьи (желательно на русском, но можно и на англ, если там хорошо описано)), чтоб разобраться во всех штуках этого SVN - merge, branch, tag, patch... Тут же встаёт вопрос о тестировании... Дома обычно так - скомпилил, протестил, работает - хорошо, не работает - ищешь баг, поправил, скомпилил, протестил.... Здесь вижу некий компилятор на стороне сервера (реализуемо для Java, PHP, Flex, думаю что для С++ тоже и много чего ещё)) Теперь ещё больший оффтопик - как организовывать непосредственно тестирование... Хорошо, если баг сходу проявляется одним нажатием мышки на кнопку...) А если это некий многопользовательский замут, и баг не так то просто воспроизвести... Ну к примеру запишем мы дебаг инфу - на какой строчке в каком файле... Программист начнёт там править, но ведь не все такие папки/профи, чтобы исправлять баги с первого раза, мне, например, иногда нужно несколько раз внести правки и протестить, а иногда и полдня чтобы найти и исправить ошибку в логике.... В общем подскажите кто знает, в какую сторону копать... Столько названий и технологий, что сходу и не понять с чего начинать..) Ну и хотелось бы статей, где люди описывают решения...) |
| Автор: nucer 9.7.2011, 14:19 |
| Что есть tags прочитал где то в соседней ветке... Что есть merge всё равно раздуплить не удалось - там какие то странные схемки...)) |
| Автор: nucer 13.7.2011, 08:11 | ||||||||||
Речь идёт изначально о распределённой разработке т.е. когда все програмеры сидят в разных местах. Кроме того, как ты себе представляешь рабочее место программиста без доступа к инету?.. Безусловно, сейчас речь идёт не о миллионных проектах, но, тем не менее, достаточно важных с точки зрения людей, вкладывающихся в них...)
Полный бред - это не читая отвечать. Я писал в 1м сообщение, что в этом случае, ясен пень, надо предусматривать компиляцию проекта на стороне сервера. Т.е. каждый разработчик будет иметь доступ к скомпиленной программе, но не к её коду.
В общем то, в демагогию насчёт того, что бред, а что не бред вдаваться не хочу... И в абстрактные рассуждения насчёт того, как устранять потом последствия. Правильнее, вернее и надежнее - изначально разграничить права доступа. Если не понял зачем это нужно - пройди мимо..) Теперь вопрос совсем конкретный... Народ, кто знает, подскажите плиз серверную софтину SVN/CVS или любую другую, где можно было бы разграничить права доступа? Насчёт того, как компилить, думаю что можно сделать просто отдельный скрипт, запускающий команду из шела) |
| Автор: Torn@do 14.7.2011, 11:37 | ||
Зачем какая-то софтина, если на самом сервере SVN можно указать права, вплоть до последнего файла в дереве проекта? |
| Автор: bilbobagginz 16.7.2011, 20:28 | ||||||||
nucer,
это делают недоплаченные.
это делают недоплатившие. а доплатившие еще и адвокатам платят. (кстати, в России уже были прецеденты осуждения за кражу интеллектуальной собственности)
с т.з. управления, вы не указали модель управления. сам факт удаленности разработчиков не указывает о http://en.wikipedia.org/wiki/Distributed_management. Кстати, если мне не изменяет логика, даже в фирмах с офисами все программеры не могут сидеть в одной точке в пространстве, т.к. у них есть объем (а у многих даже масса). далее, общий ответ на эту волнующую тему: "технически вопрос безопасности (чего-либо) решить нельзя". нужно решать системно. но это решать абстрактно, без вдавания в подробности, низзя: существует принципиальный конфликт: на одной чаше весов: удобство, гибкость процесса работы (открытость, диссеминация знаний и информации) на другой: безопасность Если вы вложите слишком много веса в безопасность, то такие организационные болезни как:
удачи. Добавлено через 3 минуты
кстати тут самый опасный - Саша, a потом нужно как-то подкатить к Пете с просьбой о помощи с A. |