Làm việc như một nhóm dự án phát triển Python với ArcGIS?


14

Chúng tôi có một dự án phát triển bằng Python (ArcGIS 10). Dự án này bao gồm một hỗn hợp các hộp công cụ, mẫu bản đồ, tệp lớp, mẫu cơ sở dữ liệu địa lý tệp (đóng vai trò là các mẫu được nhập vào bản đồ theo tập lệnh) và nhiều thứ khác.

Chúng tôi sử dụng Eclipse làm trình soạn thảo nguồn và SVN làm Kho lưu trữ mã nguồn của chúng tôi.

Mặc dù chúng tôi gặp vấn đề với việc giữ tất cả các tệp (không phải tệp py) trong một dự án được đồng bộ hóa bởi mọi người. Hộp công cụ thường xuyên bị làm phiền bởi nhiều người chỉnh sửa hộp công cụ và sau đó các tệp mẫu được điều chỉnh và sau đó không được cập nhật cho người khác khi họ không được kiểm tra lại.

Làm thế nào mọi người trong các tổ chức có nhiều hơn một nhà phát triển python trong dự án hộp công cụ của công ty đảm bảo rằng dự án và tất cả các tệp khác nhau được phiên bản và quản lý chính xác? Hoặc đó là một trường hợp thông qua mọi thứ đi vào Eclipse (bao gồm các lớp khuôn mẫu và GDB được sử dụng bởi các tập lệnh) vào dự án và hy vọng rằng mọi người kiểm tra các tệp chính xác?


Vậy bạn có mọi thứ hiện tại trong SVN (mẫu, tệp lớp, mã nguồn, hộp công cụ)? Có phải vấn đề mà một số người không kiểm tra đúng cách?
Chad Cooper

Ngoại trừ các tập tin lớp và bộ dữ liệu mẫu. Có, họ không kiểm tra khi hoàn tất và trong Eclipse bạn phải (theo như tôi biết) cập nhật thủ công lên phiên bản mới nhất để có phiên bản mới nhất của tệp (ví dụ: tbx). Tôi chỉ tự hỏi nếu những người khác có cách thông minh hơn để làm điều này thì chúng tôi đang cố gắng vào lúc này
Rob

Câu trả lời:


5

Nếu tôi biết rằng tôi sẽ làm việc với các nhà phát triển khác, một trong những điều đầu tiên tôi làm hiện nay là thiết lập máy chủ Continuos Integration như Jenkins .

Ý tưởng là luôn kích hoạt bộ kiểm tra của bạn sau mỗi lần đăng ký và bạn sẽ nhận được e-mail tự động ngay lập tức nếu không thành công. Trong trường hợp của bạn, nó có thể là một tập lệnh Selenium đơn giản . Nhấp chuột xung quanh trình duyệt hoặc một số tập lệnh ArcObjects tự động hóa ArcMap. Có một số bài thuyết trình về Selenium .

Điều thú vị về Jenkins, là có một số plugin cho phép bạn tích hợp / tận dụng các công nghệ khác (xây dựng hệ thống, lint, v.v.) . Bạn có thể nhận được các báo cáo tuyệt vời về số lượng mã của bạn đang được kiểm tra. Họ thực sự dễ dàng để thiết lập .

Cá nhân, thay vì SVN, tôi thích tích hợp với Git và GitHub ... có một số lợi thế của việc này như dựa vào GitHub để xác thực.

Nhưng tất nhiên, bước đầu tiên là để Jenkins chạy. Nếu bạn chưa bao giờ thực hiện nó, hãy đặt trước một ngày và thở thật nhiều vì nó có thể rất kỳ quặc ... nhưng một khi bạn có nó chạy, nó thực sự tuyệt vời.


7

Nếu tôi hiểu rõ, một trong những vấn đề của bạn là các nhà phát triển không sử dụng đúng SVN và điều này, cho phép nội dung trong kho SVN không ổn định.

Vì vậy, có lẽ bạn có thể thử một vài điều:

Đặt chính sách sử dụng kho lưu trữ rõ ràng

Làm rõ cho tất cả các nhà phát triển cách sử dụng kho lưu trữ và khi nào và những gì phải cam kết. Vì vậy, kho lưu trữ luôn có bản sao làm việc của dự án.

Sử dụng hệ thống điều khiển phân tán

Nếu bạn sử dụng hệ thống điều khiển phân tán như Git hoặc Mercurial , mỗi người dùng có thể cam kết với kho lưu trữ của họ và chỉ gửi các phiên bản của họ đến một tập trung khi họ chắc chắn rằng nó sẽ hoạt động, thậm chí bạn có thể đặt các cửa sổ cam kết cho mỗi người dùng để họ không 'T bước vào mã của nhau.

Nói điều này, trong trường hợp của bạn, tôi sẽ dùng Mercurial, vì nó được phát triển bằng Python và bạn có thể tạo các móc nối để điều chỉnh nó theo nhu cầu của bạn. Và bởi vì đường cong học tập từ SVN khá dễ dàng ... một điểm tốt để bắt đầu là hướng dẫn hginit , mà thực sự có một phần gọi là giáo dục lại SVN.


2

Tôi nghĩ bạn cần ai đó phụ trách và có trách nhiệm hơn. Đề nghị của tôi sẽ chỉ định hoặc tuyển dụng quản trị viên cho (các) hộp công cụ. Làm cho hộp công cụ công cộng và mọi thứ trong không gian của nó chỉ đọc ngoại trừ người quản trị. Quản trị viên có thể chịu trách nhiệm đảm bảo mọi thứ được kiểm tra, kiểm tra (hoặc được quản lý - trong trường hợp các mục bên ngoài không gian SVN). Vì quản trị viên sẽ có cơ hội để xem mọi người đang làm gì, anh ấy / cô ấy sẽ biết khi ai đó cần đào tạo, tức là anh ta có thể bắt mọi người làm việc không đúng cách.


2

Đây là một vấn đề con người hơn là một vấn đề công nghệ. Hộp công cụ và các tệp mẫu đang được chỉnh sửa bên ngoài Kiểm soát nguồn, do đó không có quyền kiểm soát nào. Các tệp này phải ở trong kiểm soát phiên bản mặc dù chúng là tệp nhị phân và bạn không thể tìm hoặc so sánh chúng. Theo nguyên tắc chung của Thumb, mọi thứ không được tạo từ mã của bạn và được yêu cầu để chạy hoặc biên dịch mã, phải nằm trong Kiểm soát nguồn.

Bằng cách đó, toàn bộ dự án sẽ nằm dưới sự kiểm soát nguồn và sẽ luôn có một bản sao hoạt động. Các nhà phát triển nên chỉnh sửa hộp công cụ và mẫu trong phiên bản cục bộ của họ sau khi khóa và cam kết trở lại khi bản sao cục bộ của họ đang hoạt động.

Như là

... không được cập nhật cho người khác vì họ không được kiểm tra lại

Đây là vấn đề của mọi người và trừ khi tất cả các nhà phát triển của bạn hiểu tại sao điều này lại quan trọng, không có công nghệ nào có thể giúp được.


2

Hộp công cụ thường xuyên bị làm phiền bởi nhiều người chỉnh sửa hộp công cụ

Đối với vấn đề cụ thể này, chúng tôi đặt hộp công cụ của chúng tôi vào Cơ sở dữ liệu ArcSDE. Tôi chưa thử với loại cơ sở dữ liệu khác! Trừ khi hai người chỉnh sửa cùng một công cụ cùng một lúc, nó hoạt động rất tốt. Thực sự ít vấn đề hơn so với hộp công cụ tệp (.tbx).


Bạn đang nói rằng bạn phiên bản hộp công cụ trong SDE để nhiều người có thể chỉnh sửa các công cụ khác nhau cùng một lúc? Bạn chưa có vấn đề gì với phương pháp này?
Cindy Jayakumar

Không, tôi không nghĩ bạn có thể phiên bản một hộp công cụ. Bạn chỉ cần tạo một hộp công cụ trong SDE. Và nhiều người có thể chỉnh sửa các công cụ khác nhau cùng một lúc. Hai vấn đề, rõ ràng là nếu ai đó chỉnh sửa cùng một công cụ và khi ArcToolbox tải nội dung khi mở hộp công cụ (SDE) và giữ nó trong bộ nhớ, nếu ai đó mở một công cụ đã được chỉnh sửa kể từ khi mở hộp công cụ (SDE) . Cái sau có thể được thu nhỏ như thể nó đã biết, bạn có thể khởi động lại ArcMap hoặc bạn có thể đóng kết nối SDE và mở lại. Hy vọng điều này là rõ ràng.
Jeb
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.