Как несколько человек могут работать на одном сайте?


11

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


12
Управления источником. Каждый разработчик работает на файлах локально, то есть , чтобы проверить файл , который запрещает другим разработчикам заменять содержимое в файле , пока не проверяется. En.wikipedia.org/wiki/List_of_revision_control_software

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

@Gommo: Что вы подразумеваете под «двоичным»? Вы можете расширить это?
Cam

1
@Cam: в этом контексте «бинарный» = «все, что не является текстовым файлом»
Конрад Рудольф,

Ответы:


27

Обычно, когда нескольким людям необходимо вносить изменения в один и тот же файл, они используют какую-то систему контроля версий, чтобы отслеживать, кто внес какие изменения. Это также позволяет им объединять и синхронизировать изменения, которые делают разные люди.


1
Простой, но элегантный.
Райан Хейс

14

Очень немногие веб-сайты состоят только из одной «страницы», и для случаев, когда на одной странице работают несколько человек, в большинство систем контроля версий встроены механизмы для объединения изменений обратно в единый файл.


Просто чтобы быть разборчивым :), если это не система на основе CMS, где все страницы являются виртуальными и существуют только в базе данных.
Темная ночь

6

Несколько человек работают в одних и тех же файлах: Контроль версий

Не заставляя их жить: разработка серверов и баз данных, которые не являются той же ветвью, что и реальный веб-сайт.


3

Им нужен какой-то менеджер.

Как правило, команды разбиты на сегменты, которые никогда не должны мешать друг другу (известные последние слова). Например, если API foo зависит от помощников от людей, которые пишут на C, поломка должна (никогда не случаться), но если это происходит, это происходит потому, что вспомогательное приложение не понимает, что вы ему передаете.

Это классический случай, когда правая рука не знает, что делает левая рука, что ясно иллюстрирует ошибку, которая, вероятно, моя.

Если вы отправите код без предварительного извлечения и разрешения слияний (нарушая то, что делал другой разработчик, просто удаляя то, что вы не написали), прежде чем общаться с другими, редактирующими то же самое, я собираюсь подать вам высокое напряжение. После этого я собираюсь пригласить вас на ужин (чтобы заплатить 1,21 гигаватта) и убедиться, что вы принимаете какую-то сумасшедшую, отвратительную и довольно экзотическую еду. Подумай ... клингон .

Тогда ты поблагодаришь меня за это и больше никогда этого не сделаешь.

Конечно, вы могли бы заменить какое-то обычное «общение» здесь, но что это весело?


1

Вы, вероятно, обнаружите, что у них есть разработчики, работающие на разных страницах. Шаблон или мастер сайта обычно создаются таким образом, чтобы каждая страница имела одинаковый внешний вид. Например, если компания использует Source Control, такой как Team Foundation Server, каждый разработчик регистрирует свой исходный код, и это позволяет другим разработчикам получать свои последние изменения.


2
TFS был лучшим, что вы могли придумать для примера системы управления исходным кодом? Давай же.
Мэтт Филлипс

1

Они могут либо:

  • Программируйте в редакторе через сессию SSH (например, vi, vim, nano, emacs).
  • Редактируйте через FTP с их IDE (например, emacs, notepad ++).
  • Использование системы контроля версий.

В последнем случае люди теперь используют распределенный контроль версий, такой как mercurial , git и bazar , вместо централизованного контроля версий, такого как CVS и subversion. Для mercurial, проверьте bitbucket.org и хостинг проекта google code , для git, проверьте github , это сайты, на которых размещен код для совместного использования без необходимости настройки сервера.

Также:


1

Разработка страниц с компонентами VS Pages в целом

Я работал над многими крупномасштабными веб-сайтами, и многие люди работают на одной странице так, что большинство веб-сайтов - это порталы . В целом, многие сайты, такие как Facebook, содержат много элементов управления, таких как фотографии, реклама, небольшие рекламные места и т. Д., Над которыми будут работать несколько человек. Кроме того, верхние и нижние колонтитулы, как правило, разбиваются на их собственные многократно используемые файлы. Это разбивает сайт на компоненты, с которыми можно не только работать индивидуально, но и повторно использовать на нескольких сайтах и ​​в разных областях.


Вы знаете, что такое веб-портал? (подсказка, это не мэшап. Вспомните старые времена Yahoo)
Хавьер

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

0

Вы можете использовать какую-то систему синхронизации в реальном времени, такую ​​как OneNote .... Кроме того, вы можете загружать файлы на хост, но не делать ссылки на них в основном домене.


0

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

Многие системы управления контентом имеют функцию предварительного просмотра, позволяющую авторам просматривать контент, прежде чем сделать его общедоступным.


0

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

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

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

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

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


0

Чтобы ответить на вторую часть в первую очередь, один из способов загрузить файлы, не делая их живыми, - дать им имя, с которым они не будут связаны. Например, чтобы создать новую версию index.htmlстраницы, загрузите ее с именем index2.html, затем перейдите на страницу http://yoursite.com/index2.htmlи убедитесь, что она работает нормально. Как только вы будете удовлетворены, переименуйте его в index.html. Это действительно только для очень маленьких сайтов, и это становится немного грязным, если вы хотите изменить что-то внешнее по отношению к странице, например, изображения, файлы CSS или JavaScript, потому что вы должны иметь image2.png, тоindex2.html единственное отличие заключается в том, что он указывает на новое изображение.

Профессиональный программист всегда будет иметь тестовую систему для работы, а затем загружать на свой «онлайн-хост», как только они будут довольны изменениями. Вы можете настроить веб-сервер на своем компьютере, который будет обслуживать только страницы внутри вашей локальной сети. Конечно, вы также можете использовать отдельный компьютер или (как я) виртуальную машину, работающую на вашем главном компьютере.

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

Система контроля версий позволяет легко увидеть, кто что изменил и почему. Это может проверить любой ответственный сотрудник, а затем объединить его с мастером и передать в отдел тестирования / контроля качества. После того, как они полностью протестируют новые функции, они одобрят его для загрузки на действующий сайт.


0

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

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

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

  1. публичный пользователь сайта , размещающий блог или комментарий
  2. если вы меняете контент на сайте (роль производителя контента, например, журналист, работающий на владельца сайта) или
  3. добавление и изменение функциональности сайта (разработчик сайта работает на владельца сайта).

Drupal - это бесплатная и мощная система управления контентом, которая обеспечивает многопользовательское управление для обработки обновлений контента, что, в свою очередь, влияет на то, что видят посетители на страницах. Drupal также предоставит средства для изменения поведения страниц, например, как они размещены или если могут быть размещены комментарии к статье, обращаясь к 1-му и 2-му типам изменений. При внесении изменений в Drupal они будут сохранены в базе данных SQL. Drupal обеспечивает контроль версий / версий контента.

Полноценная система контроля версий необходима для более активного изменения поведения сайта, 3-го типа изменений, например, введения большего количества функций, получения обновлений от Drupal или исправления ошибок в собственном добавленном коде, тогда это означает изменение кода и, как другие опубликовали здесь. Системы контроля версий, такие как GIT, Subversion или Mercurial - все это бесплатно - используются для управления изменениями, внесенными несколькими разработчиками сайта.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.