한 웹 사이트에서 여러 사람이 어떻게 작업 할 수 있습니까?


11

최근에 소셜 네트워크를 보았는데 어리석은 질문 일 수 있지만 여러 사람이 한 웹 사이트에서 작업 할 수있는 방법은 무엇입니까? 그들이 같은 페이지에서 작업하고 있다면 어떻게 가능합니까? 또한 파일을 온라인 상태로 만들지 않고도 온라인 호스트에 파일을 업로드 할 수 있습니까?


12
소스 컨트롤. 각 개발자는 파일을 로컬로 작업 한 다음 파일을 체크 아웃해야 파일을 체크인 할 때까지 다른 개발자가 파일 내에서 내용을 교체 할 수 없습니다. en.wikipedia.org/wiki/List_of_revision_control_software

3
이진 파일이 아닌 이상 파일에 버전 제어 잠금 기능을 사용하지 마십시오.
Colin Goudie

@ gommo : '이진'은 무엇을 의미합니까? 당신은 그것을 확장 할 수 있습니까?
Cam

1
@Cam :이 문맥에서 "이진"= "텍스트 파일이 아닌 것"
Konrad Rudolph

답변:


27

일반적으로 여러 사람이 동일한 파일을 변경해야하는 경우 어떤 종류의 버전 제어 시스템을 사용하여 누가 어떤 변경을 수행했는지 추적합니다. 또한 사람들이 변경 한 내용을 병합 및 동기화 할 수 있습니다.


1
단순하면서도 우아합니다.
Ryan Hayes

14

하나의 "페이지"로 구성된 웹 사이트는 거의 없으며 여러 사람이 같은 페이지에서 작업하는 경우 대부분의 개정 제어 시스템에는 변경 사항을 통합 파일로 병합하기위한 메커니즘이 내장되어 있습니다.


모든 페이지가 가상이고 데이터베이스에만 존재하는 CMS 기반 시스템이 아닌 한 까다 롭습니다.
Darknight

6

동일한 파일에서 여러 사람이 작업 : 소스 제어

실제 웹 사이트와 동일한 브랜치가 아닌 개발 서버 및 데이터베이스.


3

그들은 일종의 관리자가 필요합니다.

일반적으로 팀은 서로 방해하지 않아야하는 세그먼트 (유명한 마지막 단어)로 분류됩니다. 예를 들어, foo API가 C로 코딩하는 사람들의 도우미에 의존하는 경우 파손은 발생하지 않아야하지만, 그렇지 않은 경우 도우미 앱이 전달하는 내용을 이해하지 못하기 때문에 발생합니다.

그것은 왼손이 무엇을하는지 모르는 오른손의 전형적인 경우입니다.

먼저 병합을 당기고 해결하지 않고 코드를 푸시하면 ( 다른 사람이 작성하지 않은 것을 제거하여 다른 개발자가 수행 한 작업을 중단하는 동안) 동일한 것을 편집하는 다른 사람들과 의사 소통 하기 전에 고전압을 사용하게됩니다. 그 후, 나는 당신을 저녁 식사 (1.21 기가 와트를 수정하기 위해)로 데려 가서 당신이 미친 음식, 역겨운 음식, 이국적인 음식을 섭취하도록 할 것입니다. 생각 ... 클링 온 .

그런 다음 그 점에 대해 감사하고 다시는하지 마십시오.

물론 여기에서 일종의 정상적인 '말하기'를 대신 할 수 있지만 그게 무슨 재미입니까?


1

개발자가 다른 페이지에서 작업하고 있음을 알게 될 것입니다. 템플릿 또는 사이트 마스터는 일반적으로 각 페이지의 모양과 느낌이 동일하도록 만들어집니다. 예를 들어, 회사에서 Team Foundation Server와 같은 소스 제어를 사용하는 경우 각 개발자는 소스 코드를 체크인하여 다른 개발자가 최신 변경 사항을 얻을 수 있습니다.


2
TFS가 소스 제어 관리 시스템의 예에서 제시 할 수있는 최선입니까? 어서
매트 필립스

1

그들은 다음 중 하나 일 수 있습니다.

  • SSH 세션 (예 : vi, vim, nano, emacs)을 통해 편집기에서 프로그래밍하십시오.
  • IDE (예 : emacs, notespad ++)로 FTP를 통해 편집하십시오.
  • 버전 관리 시스템을 사용합니다.

마지막으로 사람들은 이제 CVS 및 서브 버전과 같은 중앙 집중식 버전 제어 대신 mercurial , gitbazar 와 같은 분산 버전 제어를 사용 합니다. mercurial의 경우 bitbucket.orgGoogle 코드 프로젝트 호스팅을 확인하고 git의 경우 github을 확인하십시오. github 은 서버를 설정하지 않고도 공동으로 공유 할 수있는 코드를 호스팅하는 사이트입니다.

또한:


1

구성 요소 VS 페이지를 전체적으로 사용하여 페이지 개발

나는 많은 대규모 웹 사이트에서 작업했으며 여러 사람이 같은 페이지에서 작업하는 방식은 대부분의 웹 사이트가 포털 입니다. 일반적으로 페이스 북과 같은 많은 사이트에는 여러 사람이 작업 할 사진, 광고, 작은 흐림 영역 등과 같은 많은 컨트롤이 있습니다. 또한 머리글과 바닥 글은 일반적으로 재사용 가능한 포함 파일로 나뉩니다. 이를 통해 사이트를 개별적으로 작업 할 수있을뿐만 아니라 여러 사이트와 영역에서 재사용 할 수있는 구성 요소로 나눕니다.


웹 포털이 무엇인지 아십니까? (힌트, 매쉬업이 아닙니다. 야후를 생각하면 옛날 것입니다)
Javier

예, 한 가지 기술이 페이지를 구성 요소로 나누는 것을 보여주는 예제를 사용하려고했습니다. 구성 요소를 사용하여 페이지를 빌드하는 것은 개발자 측에서만 할 수있는 반면 사용자는 포털 위젯을 드롭 인 / 아웃 할 수 있다는 점을 제외하면 포털이 좋은 예입니다. 포털은 좋은 시각적 예입니다.
Ryan Hayes

0

OneNote에서 사용하는 것과 같은 일종의 라이브 동기화 시스템을 사용할 수 있습니다. 또한 호스트에 파일을 업로드 할 수 있지만 기본 도메인 링크는 만들 수 없습니다.


0

일부 사이트에서 콘텐츠를 제공하는 데 사용하는 콘텐츠 관리 시스템이있을 수 있으므로 웹 페이지라고 생각할 수 있지만 실제로는 이러한 혼합 요소입니다.

많은 컨텐츠 관리 시스템에는 컨텐츠를 공개적으로 액세스하기 전에 작성자가 컨텐츠를 볼 수있는 미리보기 기능이 있습니다.


0

언급 된 이러한 도구는 모두 도움이되지만 OP는 사람들이 다른 사람들의 길을 막는 방법을 묻는 것처럼 보입니다.

이러한 충돌을 해결하기 위해 도구를 사용하는 것 외에도 일반적으로 처음에는 충돌을 피하기 위해 스택 또는 계층으로 나뉩니다.

스택 방식을 사용하면 각 사람이 관련이없는 기능을 수행하게됩니다 (한 사람이 계정을 등록하고 다른 사람이 콘텐츠를 제출하고있을 수 있음). 둘이 교차 할 수있는 충돌이있을 수 있으며 (이 예제의 사용자 레코드) 다음 빌드와의 병합의 일부로 처리됩니다.

계층 접근 방식을 사용하면 누군가가 가장 안쪽에있는 모든 비트를 작성하고 있습니다. 한 부분을 완성하면 다른 사람이 그 위에 앉아있는 비트 등을 씁니다. 여기서 발생하는 충돌은 일반적으로 위의 다음 계층에 영향을 줄 수있는 다음 수정을 위해 하위 계층에서 무언가를 반환해야 할 때 발생하며 다음 빌드 전에 유사한 방식으로 처리됩니다.

승격되었지만 실용이 아닌 파일에 대한 부분에는 다양한 답변 / 구현이 있지만, 미리 볼 별도의 서버, 특정 미리보기 모드 또는 일반 사용자가 안정적인 버전을 사용하는 동안 최첨단 버전을 가져 오는 사용자 클래스 또는 권한이 있습니다. 내가 가장 자주 보는 경향이있는 것들.


0

두 번째 부분에 먼저 대답하기 위해 파일을 게시하지 않고 업로드하는 한 가지 방법은 연결되지 않는 이름을 지정하는 것입니다. 예를 들어, 새 버전의 index.html페이지 를 만들 려면 이름 을 사용하여 페이지를 업로드 index2.html한 다음 방문 하여 페이지 http://yoursite.com/index2.html가 제대로 작동하는지 확인하십시오. 만족하면 이름을로 바꿉니다 index.html. 이것은 매우 작은 사이트 정말, 당신은 이미지, CSS 나 자바 스크립트 파일과 같은 페이지 외부에 무언가를 변경하려는 경우 당신이해야하기 때문에, 약간의 혼란을 가져 image2.png, 그 다음 index2.html그의 유일한 차이는 그것이 가리키는 것입니다 새로운 이미지.

전문 프로그래머는 항상 테스트 시스템을 사용하여 변경 사항에 만족하면 "온라인 호스트"에 업로드합니다. 컴퓨터에서 로컬 네트워크 내부의 페이지 만 제공하는 웹 서버를 설정할 수 있습니다. 물론 별도의 컴퓨터 또는 주 컴퓨터에서 실행되는 가상 컴퓨터를 사용할 수도 있습니다.

여러 개발자가 함께 작업 할 때 각각은 자체 테스트 시스템으로 작업 한 다음 변경 사항을 모든 다른 사람의 모든 변경 사항을 추적하는 버전 관리 시스템에 업로드합니다. 이것이 작동하는 방법 은 자식 비유 를 참조하십시오 .

버전 관리 시스템을 통해 누가 무엇을 왜 변경했는지 쉽게 확인할 수 있습니다. 담당자를 통해이를 확인한 다음이를 마스터에 병합 한 후 테스트 / QA 부서로 전달할 수 있습니다. 새로운 기능을 완전히 테스트 한 후에는 라이브 사이트에 업로드 할 수 있도록 승인합니다.


0

가장 먼저 설정해야하는 것은 많은 사이트가 한 명 이상의 사람들이 작업하는 정적 페이지 모음이 아니라는 것입니다.

방문자로 표시되는 페이지는 웹 사이트에 존재하지 않으므로 웹 사이트에 존재하지 않는 콘텐츠를 사용하여 콘텐츠 관리 시스템 (호스팅 서버에서 실행되는 소프트웨어)에 의해 자동으로 변경되는 사이트와 같이 변경합니다. 소유자가 제작했습니다. CMS는 템플릿 파일 (CSS 및 CMS 자체 구성 파일)을 사용하여 배치 된 컨텐츠에서 페이지를 구성하고 결과 페이지는 브라우저에 제공됩니다.

사이트 소유자는 정적 페이지가 아닌 컨텐츠 및 레이아웃 템플릿을 변경합니다. 당신의 대답 은 변화 의 유형 과 그것을하는 사람 의 역할 에 달려 있습니다.

  1. 블로그 또는 의견을 게시 하는 사이트 공개 사용자
  2. 사이트의 콘텐츠를 변경하는 경우 (콘텐츠 제작자 역할, 예를 들어 웹 사이트 소유자를 위해 일하는 기자) 또는
  3. 사이트의 기능 추가 및 변경 (사이트 소유자를 위해 작업하는 사이트 개발자).

Drupal은 콘텐츠 업데이트를 처리하기 위해 다중 사용자 관리를 제공하는 자유롭고 강력한 콘텐츠 관리 시스템으로, 페이지의 방문자가 보는 내용에 영향을줍니다. Drupal은 또한 페이지의 작동 방식을 변경하는 수단을 제공합니다 (예 : 페이지 레이아웃 방식 또는 기사에 대한 의견을 게시 할 수있는 경우). Drupal에서 변경을 수행하면 SQL 데이터베이스에 저장됩니다. Drupal은 일부 버전 관리 / 컨텐츠 제어 기능을 제공합니다.

더 많은 기능을 도입하거나, Drupal에서 업데이트를 받거나, 추가 된 자체 코드에서 버그를 수정하는 것과 같이 사이트 관련 변경 사항이 포함 된 전체 버전 제어 시스템이 필요합니다. GIT, Subversion 또는 Mercurial과 같은 버전 관리 시스템 (모두 무료 )은 사이트의 여러 개발자 가 변경 한 내용을 관리하는 데 사용됩니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.