- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет! Может кто сталкивался с организацией совместной разработки сайта 2-мя и более людьми? Возможно подскажите идеи как правильнее и удобнее сделать что то подобное:
В распоряжении есть:
- 1 сервер (хостинг)
- 2 или более разработчика
Хотелось бы получить:
- Ведение разработки на локальных машинах (каждый свою часть)
- Сведение результатов на сервере в тестовой реализации
- Выведение одобренных результатов на сервер в рабочую версию
- Не трудное подключение дополнительного разработчика к проекту
Я совсем немного сталкивался с работой через Github, да и то настройкой занимался не я.
Ранее для меня такой задачи особо не стояло, так как все было в одних руках.
По идее как я себе это представляю:
- На каждую клиентскую машину ставится программа для работы с репозиториями
- На сервере создается тестовый "сайт" и рабочий "сайт"
- К сайтам на сервере подключается репозиторий, к тестовому Dev, а к рабочему Master (вот тут я не очень понимаю что есть реально и как правильно)
- Все рабочие изменения разработчиков загружаются в Dev ветку, после чего могут быть объединены и загружены в Master
Непонятные моменты:
- Как подключается репозиторий к серверу для обновления кода на сервере.
- Как правильно распределить участки проекта между разработчиками, при условии разработки на основе CMS (то есть основа есть, надо ее грамотно разделить для редактирования разработчиками)
Под разработчиками я понимаю:
- Верстальщика (доступ к стилям шаблона, картинкам)
- Редактора файлов шаблона аля программера (доступ к .tpl файлам шаблона)
- Фронт-пргграммера (доступ к папкам со скриптами)
Я возможно сумбурно описал и некоторые вещи возможно банальны и наивны, но прошу не судить строго и дать пару советов и поделиться опытом по данном вопросу.
Буду рад получить ответы!)
Имхо, достаточно одного репозитория. Во время обновления Dev и Master вы указываете, ревизию или branch/tag откуда брать код.
Точно также как и любой девелопер, принимающий участие в разработке. С помощью клиента или с помощью прямого запроса конкретной ревизии.
Думаю, идеальный ответ на этот вопрос хотел бы получить любой project-manager. У каждого свои подходы, основанные на опыте. И в двух предложениях не расскажешь.
Я вот накануне описывал схему /ru/forum/comment/11568189, не до конца то, что вам нужно, но похоже.
Из того, что не рассмотрено:
- К сайтам на сервере подключается репозиторий, к тестовому Dev, а к рабочему Master (вот тут я не очень понимаю что есть реально и как правильно)
как выше написали - это не разные репозитории - это будут разные ветки.
Или же как таковых веток может и не быть, просто при планировании работы прикидывайте задачи так чтобы к определённому дню все тикеты должны были быть закрыты или же не было так чтобы после незакрытого тикета был закрытый (иначе на продакшен уедет поломанный функционал). Можно разбивать на 2 ветки, но когда она одна, то это ещё хорошо тем, что 10 раз подумаешь стоит ли за какую-то задачу браться на этой неделе :)
Если же разрабатывается какой-то большой модуль, а параллельно есть куча мелкий задач, вот тогда модуль можно и в отдельную ветку.
Днем выкатки может быть пятница, чтобы на выходных меньше пользователей столкнулись с возможными проблемами или же наоборот понедельник - чтобы все кто может поремонтировать были под рукой.
Я сам программер, поэтому в случае чего могу ремонт провести, поэтому накопившиеся изменения заливаются на выходных.
Я совсем немного сталкивался с работой через Github, да и то настройкой занимался не я.
Я работаю с mercurial, как-то так исторически сложилось, он мне более удобен, да и битбакет для маленьких команд (до 5 человек) бесплатен, в отличие от github.
Но суть думаю не сильно меняется.
- Все рабочие изменения разработчиков загружаются в Dev ветку, после чего могут быть объединены и загружены в Master
Если делать так чтобы к определённому моменту все запланированные тикеты были закрыты, то можно просто обновляться из основной ветки.
Программист, который занимается основной разработкой планировал использовать заплатки для того, чтобы не плодить много голов в ветке, когда тикеты возвращаются на доработку, но точно не знаю воплотилась ли идея в жизнь или же он как-то выкрутился.
- Как подключается репозиторий к серверу для обновления кода на сервере.
Коммит на локале, пуш на битбакет от своего пользоваетля. На битбакете создаётся рид-онли пользователь. На тестовом сервере в конфиге указываем адрес репозитория на битбакете, и логин/пароль вышеуказанного рид-онли пользователя.
Также на тестовом сайте создаём скрипт pull.sh
cd /var/www/user/data/www/testsite.ru
/usr/bin/hg pull -u
даем ему права на исполнение.
В крон для пользователя user заносим /var/www/user/data/www/testsite.ru/pull.sh >/dev/null 2>&1
(почти скопировал из ISPManager, может если вручную как-то по-другому будет выглядеть). И даём задание дергать файл каждую минуту.
Теперь крон вызывает баш-скрипт, тот используя логин/пароль из конфига в .hg лезет на битбакете стягивает изменения и обновляет до текущей версии тестовый сайт. Где-то у нас там ещё настроено, что после успешного обновления (когда было что обновлять) на почту приходит уведомление с названием коммита/коммитов и изменениями, которые применены.
Продакшн обновляется вручную, хотя скорее всего и его будем обновлять примерно так же через время.
Сейчас ещё планируем внедрить автоматическое тестирование через Selenium и ttp://codeception.com/, ибо ручное занимает лишнее время, так хоть как-то уменьшим время на тестирование.
p.s. Ну и как в том топике рекомендую методику Канбан через trello.com - этот сервис среди всех пересмотренных мною канбан-сервисов наиболее развитый. Не хватает разве что тайм-треккинга, как в одном другом посмотренном проекте, но все остальное с лихвой перекрывается.