Làm thế nào nhiều người có thể làm việc trên một trang web?


11

Gần đây tôi đã xem Mạng xã hội và đây có thể là một câu hỏi ngu ngốc, nhưng làm thế nào nhiều người có thể làm việc trên một trang web? Ý tôi là, nếu họ đang làm việc trên cùng một trang, làm sao có thể như vậy? Ngoài ra, có thể tải tệp lên máy chủ trực tuyến mà không khiến chúng tồn tại không?


12
Kiểm soát nguồn. Mỗi nhà phát triển hoạt động trên các tập tin địa phương, sau đó phải kiểm tra các tập tin trong đó cấm các nhà phát triển khác từ thay thế nội dung bên trong file cho đến khi nó được kiểm tra trong. En.wikipedia.org/wiki/List_of_revision_control_software

3
Không bao giờ sử dụng chức năng khóa của kiểm soát phiên bản trên các tệp trừ khi chúng là nhị phân.
Colin Goudie

@gommo: Ý nghĩa của 'nhị phân' là gì? Bạn có thể mở rộng về điều đó?
Cam

1
@Cam: trong ngữ cảnh này, nhị phân, mật mã, bất cứ thứ gì không phải là tệp văn bản,
Konrad Rudolph,

Câu trả lời:


27

Thông thường khi nhiều người cần thực hiện thay đổi cho cùng một tệp, họ sử dụng một số loại hệ thống kiểm soát phiên bản để theo dõi xem ai đã thực hiện thay đổi. Nó cũng cho phép họ hợp nhất và đồng bộ hóa những thay đổi mà mọi người thực hiện.


1
Đơn giản, nhưng thanh lịch.
Ryan Hayes

14

Rất ít trang web chỉ bao gồm một "trang" và, trong trường hợp nhiều người sẽ làm việc trên cùng một trang, hầu hết các hệ thống kiểm soát sửa đổi đều có các cơ chế được tích hợp để hợp nhất các thay đổi lại với nhau thành một tệp thống nhất.


Chỉ cần kén chọn :) trừ khi nó là một hệ thống dựa trên CMS, trong đó tất cả các trang là ảo và chỉ tồn tại trong cơ sở dữ liệu.
Tối

6

Nhiều người làm việc trong cùng một tệp: Kiểm soát nguồn

Không làm cho chúng sống: Các máy chủ và cơ sở dữ liệu phát triển, không cùng chi nhánh với trang web thực.


3

Họ cần một số loại người quản lý.

Thông thường, các đội được chia thành các phân đoạn không bao giờ nên can thiệp lẫn nhau (những từ nổi tiếng cuối cùng). Chẳng hạn, nếu API foo phụ thuộc vào người trợ giúp từ những người viết mã trong C, thì việc phá vỡ sẽ (không bao giờ xảy ra), nhưng nếu có, điều đó xảy ra vì ứng dụng trợ giúp không hiểu bạn đang chuyển gì cho nó.

Đó là một trường hợp kinh điển của bàn tay phải không biết tay trái đang làm gì, điều này minh họa rõ ràng lỗi, có lẽ là của tôi.

Nếu bạn đẩy mã mà không kéo và giải quyết hợp nhất trước tiên (trong khi phá vỡ những gì nhà phát triển khác đã làm bằng cách xóa bất cứ điều gì bạn không viết), trước khi liên lạc với những người khác chỉnh sửa tương tự, tôi sẽ định liều cho bạn bằng điện áp cao. Sau đó, tôi sẽ đưa bạn đi ăn tối (để chế tạo đạn cho 1,21 gigawatt) và đảm bảo rằng bạn ăn một loại thực phẩm điên rồ, kinh tởm và khá kỳ lạ. Hãy suy nghĩ ... Klingon .

Sau đó, bạn sẽ cảm ơn tôi vì điều đó, và không bao giờ làm điều đó một lần nữa.

Tất nhiên bạn có thể thay thế một số loại 'nói chuyện' bình thường ở đây, nhưng có gì vui?


1

Bạn có thể sẽ thấy rằng họ có các nhà phát triển làm việc trên các trang khác nhau. Một mẫu hoặc chủ trang web thường được tạo để mỗi trang có giao diện giống nhau. Ví dụ: nếu công ty đang sử dụng Kiểm soát nguồn như Team Foundation Server, mỗi nhà phát triển sẽ kiểm tra mã nguồn của họ và điều này sẽ cho phép các nhà phát triển khác nhận được các thay đổi mới nhất của họ.


2
TFS là thứ tốt nhất bạn có thể đưa ra để lấy ví dụ về hệ thống Quản lý kiểm soát nguồn? Hãy đến ngay bây giờ.
Matt Phillips

1

Họ cũng có thể:

  • Được lập trình trong trình chỉnh sửa thông qua phiên SSH (ví dụ: vi, vim, nano, emacs).
  • Được chỉnh sửa thông qua FTP với IDE của họ (ví dụ: emacs, notepad ++).
  • Sử dụng hệ thống kiểm soát phiên bản.

Đối với cái cuối cùng, giờ đây mọi người sử dụng kiểm soát phiên bản phân tán như mercurial , gitbazar , thay vì kiểm soát phiên bản tập trung như CVS và lật đổ. Để biết rõ, hãy kiểm tra bitbucket.orglưu trữ dự án mã google , để biết git, kiểm tra github , đây là các trang web lưu trữ mã để bạn chia sẻ cộng tác mà không cần bạn phải thiết lập máy chủ.

Cũng thế:


1

Phát triển các trang với các thành phần VS Các trang tổng thể

Tôi đã làm việc trên nhiều trang web quy mô lớn và cách nhiều người làm việc trên cùng một trang là hầu hết các trang web đều là cổng . Nói chung, nhiều trang web như facebook chứa nhiều điều khiển, chẳng hạn như ảnh, quảng cáo, các khu vực nhỏ, v.v., mà nhiều người sẽ làm việc trên đó. Ngoài ra, các tiêu đề và chân trang thường được chia thành tập tin bao gồm có thể tái sử dụng của riêng họ. Điều này phá vỡ trang web thành các thành phần không chỉ có thể được làm việc riêng lẻ mà còn có thể được sử dụng lại trên nhiều trang web và khu vực.


Bạn có biết cổng thông tin web là gì không? (gợi ý, đây không phải là một bản mashup. hãy nghĩ về thời xưa của Yahoo)
Javier

Phải, tôi đã cố gắng sử dụng một ví dụ cho thấy một kỹ thuật là chia các trang thành các thành phần. Một ví dụ điển hình đó là một cổng thông tin, ngoại trừ người dùng có thể thả vào / ra các widget cổng thông tin, trong khi việc xây dựng các trang sử dụng các thành phần chỉ có thể từ phía nhà phát triển. Cổng là một ví dụ trực quan tốt.
Ryan Hayes

0

Bạn có thể sử dụng một số loại hệ thống đồng bộ trực tiếp như OneNote sử dụng .... Hơn nữa, bạn có thể tải tệp lên máy chủ nhưng không tạo liên kết tên miền chính của mình với chúng.


0

Đừng quên rằng cũng có thể có các hệ thống quản lý nội dung mà một số trang web sử dụng để phân phát nội dung để trong khi bạn có thể nghĩ rằng một cái gì đó là một trang web, thì nó thực sự là một thứ hỗn hợp.

Nhiều hệ thống quản lý nội dung sẽ có tính năng xem trước để cho phép các tác giả xem nội dung trước khi làm cho nó có thể truy cập công khai.


0

Tất cả các công cụ được đề cập này đều hữu ích, nhưng đối với tôi nghe có vẻ như OP đang hỏi nhiều hơn về cách mọi người tránh đi vào con đường của người khác.

Ngoài việc sử dụng các công cụ để giải quyết các xung đột đó, thường có một số phân chia thành các ngăn xếp hoặc các bậc để giúp tránh các xung đột ở nơi đầu tiên.

Với phương pháp ngăn xếp, bạn có mỗi người làm việc trên một tính năng không liên quan (một người có thể đang thực hiện đăng ký tài khoản và một người có thể thực hiện gửi nội dung). Sẽ có một số xung đột trong đó hai có thể giao nhau (có thể là hồ sơ người dùng trong ví dụ này) và điều đó được xử lý như là một phần của việc hợp nhất với bản dựng tiếp theo.

Với cách tiếp cận tầng, ai đó đang xây dựng tất cả các bit trong cùng, khi họ hoàn thành một phần, một người khác viết các bit ngồi trên đó và cứ thế. các xung đột được tạo ra ở đây thường là khi một cái gì đó phải được trả lại ở tầng thấp hơn cho một số sửa đổi sau này có thể ảnh hưởng đến tầng tiếp theo ở trên và được xử lý theo cách tương tự trước khi xây dựng tiếp theo.

Phần về các tệp được quảng cáo nhưng không tồn tại có nhiều câu trả lời / triển khai, nhưng một máy chủ riêng để xem trước, chế độ xem trước cụ thể hoặc lớp người dùng hoặc quyền được kéo phiên bản cạnh chảy máu trong khi người dùng thông thường có phiên bản ổn định những cái tôi có xu hướng nhìn thấy thường xuyên nhất.


0

Để trả lời phần thứ hai trước tiên, một cách để tải lên các tệp mà không khiến chúng tồn tại là đặt cho chúng một tên không được liên kết. Ví dụ: để tạo một phiên bản mới của một index.htmltrang, tải nó lên với tên của nó index2.html, sau đó truy cập http://yoursite.com/index2.htmlvà kiểm tra xem nó có hoạt động tốt không. Một khi bạn hài lòng, đổi tên nó thành index.html. Điều này thực sự chỉ dành cho các trang web rất nhỏ và sẽ hơi lộn xộn nếu bạn muốn thay đổi một cái gì đó bên ngoài trang, như hình ảnh, tệp CSS hoặc JavaScript, bởi vì bạn phải có image2.png, điểm index2.htmlkhác biệt duy nhất là nó chỉ đến hình ảnh mới.

Một lập trình viên chuyên nghiệp sẽ luôn có một hệ thống kiểm tra để làm việc, sau đó tải lên "máy chủ trực tuyến" của họ một khi họ hài lòng với những thay đổi. Bạn có thể thiết lập một máy chủ web trên máy tính sẽ chỉ phục vụ các trang bên trong mạng cục bộ của bạn. Tất nhiên bạn cũng có thể sử dụng một máy tính riêng hoặc (như tôi làm) một máy ảo chạy trên máy tính chính của bạn.

Khi nhiều nhà phát triển làm việc cùng nhau, mỗi nhà phát triển sẽ có hệ thống thử nghiệm riêng để làm việc, sau đó tải các thay đổi của họ lên hệ thống kiểm soát phiên bản theo dõi tất cả các thay đổi từ tất cả những người khác nhau. Xem dụ ngôn git để biết cách làm việc này.

Hệ thống kiểm soát phiên bản giúp dễ dàng xem ai đã thay đổi cái gì và tại sao. Điều này có thể được kiểm tra bởi bất cứ ai phụ trách và sau đó hợp nhất nó vào tổng thể, và giao nó cho bộ phận kiểm tra / QA. Khi họ đã kiểm tra đầy đủ các tính năng mới, họ sẽ phê duyệt nó để tải lên trang web trực tiếp.


0

Điều đầu tiên cần thiết lập là nhiều trang web không phải là một tập hợp các trang tĩnh được thực hiện bởi một hoặc nhiều người.

Các trang mà bạn xem là khách truy cập không tồn tại trên trang web để thực hiện thay đổi như trong các trang web đó, chúng được tự động lắp ráp nhanh chóng bởi hệ thống quản lý nội dung - phần mềm chạy trên máy chủ lưu trữ, sử dụng nội dung mà trang web cung cấp chủ sở hữu đã sản xuất. CMS tập hợp trang từ nội dung được trình bày bằng các tệp mẫu (tệp cấu hình riêng của CSS và CMS) và trang kết quả được cung cấp cho trình duyệt của bạn.

Chủ sở hữu trang web thực hiện thay đổi nội dung và mẫu bố cục thay vì trang tĩnh. Từ đó, câu trả lời của bạn phụ thuộc vào loại thay đổi và vai trò của người thực hiện:

  1. một người dùng trang web công khai , đăng một blog hoặc bình luận
  2. nếu bạn đang thay đổi nội dung trên trang web (vai trò nhà sản xuất nội dung, ví dụ: nhà báo làm việc cho chủ sở hữu trang web) hoặc
  3. thêm và thay đổi chức năng của trang web (nhà phát triển trang làm việc cho chủ sở hữu trang).

Drupal là một hệ thống quản lý nội dung miễn phí và mạnh mẽ, cung cấp quản lý nhiều người dùng để xử lý các cập nhật nội dung, từ đó ảnh hưởng đến những gì khách truy cập nhìn thấy trên các trang. Drupal cũng sẽ cung cấp các phương tiện để thay đổi hành vi của các trang, ví dụ như cách chúng được trình bày hoặc nếu các cam kết trên một bài viết có thể được đăng, giải quyết các loại thay đổi thứ 1 và thứ 2. Nếu thực hiện các thay đổi trong Drupal, chúng sẽ được lưu trữ trong cơ sở dữ liệu SQL. Drupal cung cấp một số kiểm soát phiên bản / sửa đổi nội dung.

Cần có một hệ thống kiểm soát phiên bản đầy đủ để thay đổi hành vi trang web liên quan nhiều hơn, loại thay đổi thứ 3, ví dụ như giới thiệu nhiều tính năng hơn, nhận cập nhật từ Drupal hoặc sửa lỗi trên mã được thêm vào, sau đó điều này có nghĩa là thay đổi mã và như những người khác đã đăng ở đây. Các hệ thống kiểm soát phiên bản như GIT, Subversion hoặc Mercurial - tất cả đều miễn phí - được sử dụng để quản lý các thay đổi được thực hiện bởi một số nhà phát triển của trang web.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.