Làm cách nào để thêm kiểm soát phiên bản vào quy trình làm việc của tôi?


11

Tôi phát triển các chủ đề, rất nhiều trong số họ. Tôi được cấp PSD, mã hóa HTML / CSS, đưa mã vào Wordpress và sửa lỗi khi họ nhận được QC'd. Khi trực tiếp, khách hàng có thể chỉnh sửa các bài đăng trên blog như bình thường hoặc tải lên ảnh bằng cách sử dụng plugin tùy chỉnh.

Đôi khi tôi phải thay đổi chủ đề hoặc nội dung trang / bài đăng, điều đó có nghĩa là tôi làm cho chúng tồn tại hoặc phải tải xuống và thiết lập trang web đến môi trường phát triển để được khách hàng chấp thuận. Tôi không có bản sao lưu, tôi không có kiểm soát phiên bản và tôi nhận ra điều này cần thay đổi.

Git và Mercurial đã được đề xuất, và tôi muốn tận dụng những công cụ này, nhưng tôi bối rối về cách làm cho chúng phù hợp với quy trình làm việc.

Tôi có yêu cầu tất cả các thay đổi đối với một trang web trên máy chủ phát triển và sau đó đẩy chúng trực tiếp khi được phê duyệt không? Viết bài đăng trên blog thì sao? Có vẻ như quá mức cần thiết để viết bài đăng trên dev và đẩy các thay đổi trực tiếp, nhưng sau đó làm cách nào để đồng bộ hóa cơ sở dữ liệu nếu chúng được chỉnh sửa trên trang web trực tiếp? Tôi đã lùng sục trên mạng. Một số hướng dẫn sẽ được đánh giá cao.


Tôi nghĩ rằng điều này đủ điều kiện như là một câu hỏi hệ sinh thái ngoài phạm vi. Xem ở đây để thảo luận liên tục .
Chip Bennett

4
@ChipBennett Tôi không đồng ý. Sự phụ thuộc cụ thể của WordPress giữa các chủ đề, plugin và cơ sở dữ liệu và cách chúng ảnh hưởng đến thực tiễn nhà phát triển nói chung đều được chào đón.
fuxia

@toscho Tôi chắc chắn có thể bị thuyết phục về điều đó; đó là lý do tại sao tôi chỉ vào cuộc thảo luận Meta. :)
Chip Bennett

Câu trả lời:


9

Trước hết, bạn cần nhận ra rằng có hai quy trình công việc ở đây: của bạn và khách hàng của bạn.

Quy trình làm việc của bạn

  • Nhận PSD
  • Mã HTML / CSS
  • Mã mẫu WordPress
  • Triển khai chủ đề cho trang web WordPress trực tiếp

Quy trình làm việc của họ

  • Đưa ra các thay đổi cần thiết và gửi email cho bạn
  • Viết bài
  • Tải ảnh lên

Vấn đề

Việc thực hiện kiểm soát phiên bản ở đây hoàn toàn không liên quan gì đến quy trình làm việc của khách hàng của bạn. Đó là tất cả về việc theo dõi bạn sử dụng cho chủ đề WordPress. Tất cả các tệp chủ đề, plugin tùy chỉnh, v.v. của bạn phải nằm trong hệ thống kiểm soát phiên bản (Git, Mercurial, Subversion hoặc bất cứ thứ gì bạn chọn sử dụng).

Quy trình làm việc của bạn sau đó trở thành:

  • Viết mã
  • Cam kết thay đổi hệ thống kiểm soát phiên bản
  • Đẩy các thay đổi đến nơi sản xuất
  • Nhận ý kiến ​​phản hồi từ khách hàng
  • Viết mã
  • Cam kết thay đổi
  • Viết mã
  • Cam kết thay đổi
  • Đẩy các thay đổi đến nơi sản xuất

Hãy nhớ rằng, đây là về việc duy trì lịch sử kiểm soát phiên bản cho của bạn . Mã là thứ mà khách hàng của bạn không nên thay đổi - và bạn không bao giờ nên thay đổi mã trên trang web sản xuất trong khi nó đang được sản xuất.

Nhưng những thay đổi về nội dung (bài đăng, ảnh, v.v.) nằm ngoài phạm vi của hệ thống kiểm soát phiên bản của bạn. Nói cách khác, bạn không thực hiện thay đổi trong quá trình phát triển và sau đó đẩy cơ sở dữ liệu ra sản xuất. Đó là một thực tiễn phát triển kém. Nếu bạn cần cơ sở dữ liệu dev và prod không đồng bộ, thì bạn nên thường xuyên lấy một bản sao lưu từ hộp sản xuất và khôi phục phiên bản cục bộ của bạn từ bản sao lưu đó.

Mã thay đổi dòng chảy từ phát triển để sản xuất.
Cơ sở dữ liệu thay đổi dòng chảy từ sản xuất để phát triển.


Bạn thực sự không thể đồng bộ hóa cơ sở dữ liệu một cách dễ dàng trừ khi bạn có một tập lệnh đặc biệt quản lý cách dữ liệu nội dung được lưu trữ trong cơ sở dữ liệu. Đó là lý do tại sao bạn tách mã khỏi nội dung trong quy trình làm việc của mình, cách khác là sử dụng máy chủ dàn hoặc thử và sử dụng một trong các tập lệnh đồng bộ hóa db hoặc viết riêng cho bạn.
Wyck

@EAMann Phản hồi tuyệt vời, cảm ơn bạn! Điều duy nhất tôi sẽ thêm vào quy trình công việc mà bạn mô tả là viết mã, cam kết thay đổi, đẩy đến trang phát triển, nhận ý kiến ​​từ khách hàng, ... Tôi đã không xem xét hai quy trình công việc riêng vì thường xuyên chúng tôi sẽ phải thay đổi nội dung bản thân cho khách hàng. Đôi khi, chúng tôi sẽ phải đưa HTML vào nội dung để đáp ứng các yêu cầu đặc biệt trong nội dung (kiểu đặc biệt, v.v.). Đôi khi, họ yêu cầu sự chấp thuận của khách hàng trước khi đi vào hoạt động, đó là lý do tại sao cơ sở dữ liệu sẽ cần phải đồng bộ hóa. Có thực hành tốt nhất cho loại thiết lập này?
cfree

@Wyck Thay vì bỏ nội dung bên cạnh chủ đề, việc phân tách hai quy trình là điều hợp lý. Tôi thích ý tưởng về một khu vực dành cho chủ đề và khu vực tổ chức cho nội dung độc lập với nhau. Vấn đề duy nhất tôi thấy là khách hàng muốn xem cả chủ đề và nội dung (toàn bộ trang web; các trang tĩnh) trước khi khởi chạy trực tiếp.
cfree

Nó thường không phải là vấn đề đồng bộ hóa thay đổi cơ sở dữ liệu. Điều tôi muốn nói là bạn lấy một cơ sở dữ liệu sản xuất của bạn và thay thế cơ sở dữ liệu phát triển cục bộ của bạn bằng nó. Đúng, bạn có thể tự động hóa nó bằng một tập lệnh ... nhưng bạn có thể sẽ không làm việc đó thường xuyên.
EAMann

3
Vẫn chưa có, nó thực sự là một cái gai trong khía cạnh của WordPress nhưng không phải là vấn đề của WordPress vì nhiều CMS có vấn đề này, bạn có thể đọc về nó ở đây wordpress.stackexchange.com/questions/119/ sâu hơn, một số các kịch bản tồn tại ngoài đó nhưng hầu hết chúng ở trong nhà vì chúng dành riêng cho một môi trường nhất định.
Wyck

1

Bạn có thể sử dụng phần mềm đồng bộ hóa cơ sở dữ liệu. Nhưng cũng có tùy chọn phiên bản dữ liệu với một cái gì đó như http://chronicdb.com


Điều này có vẻ thú vị; có thể giải quyết khá nhiều vấn đề Tôi sẽ kiểm tra điều này, cảm ơn.
cfree

1

Tôi chỉ viết lên một câu trả lời thấu đáo cho câu hỏi này. Cá nhân tôi sử dụng git và nó thật tuyệt vời. Về việc bắt đầu với nó, tôi khuyên bạn nên kiểm tra http://gitref.org/http://help.github.com/mac-set-up-git/ . Nếu bạn là loại sách, tôi đã đọc cuốn sách này và nó chắc chắn đáng giá $ 22 ebook. Làm cho mình làm điều đó, bạn sẽ không hối tiếc quyết định đó.


Cảm ơn, tôi sẽ phải tham khảo lại. Thiết lập cơ sở dữ liệu chủ / nô lệ nghe có vẻ thú vị. Cảm ơn đã hướng dẫn
cfree
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.