ทำงานเป็นทีม Python Development Project กับ ArcGIS หรือไม่?


14

เรามีโครงการพัฒนาใน Python (ArcGIS 10) โครงการนี้เกี่ยวข้องกับการผสมผสานของกล่องเครื่องมือแม่แบบแผนที่ไฟล์เลเยอร์แม่แบบฐานข้อมูลไฟล์ (ทำหน้าที่เป็นแม่แบบที่นำเข้าสู่แผนที่โดยสคริปต์) และสิ่งอื่น ๆ

เราใช้ Eclipse เป็น source editor และ SVN ของเราเป็น Source Code Repository

แม้ว่าเราจะมีปัญหาในการเก็บไฟล์ทั้งหมด (ไม่ใช่ไฟล์ py) ในโครงการที่ทุกคนทำข้อมูลให้ตรงกัน กล่องเครื่องมือได้รับความสับสนเป็นประจำโดยหลาย ๆ คนที่แก้ไขกล่องเครื่องมือจากนั้นไฟล์เทมเพลตจะได้รับการปรับและไม่ได้รับการอัปเดตสำหรับผู้อื่นเนื่องจากพวกเขาไม่ได้เช็คอิน

ผู้คนในองค์กรที่มีนักพัฒนาหลามมากกว่าหนึ่งคนในโครงการกล่องเครื่องมือของ บริษัท ทำอย่างไรจึงมั่นใจได้ว่าโครงการและไฟล์ต่าง ๆ ทั้งหมดได้รับการกำหนดเวอร์ชันและจัดการอย่างถูกต้อง หรือเป็นกรณีผ่านทุกอย่างไปสู่ ​​Eclipse (รวมถึงแม่แบบเลเยอร์และ GDB ที่ใช้โดยสคริปต์) ในโครงการและหวังว่าผู้คนจะตรวจสอบไฟล์อย่างถูกต้อง?


คุณมีทุกอย่างในปัจจุบันใน SVN (แม่แบบไฟล์เลเยอร์ซอร์สโค้ดกล่องเครื่องมือ) หรือไม่ เป็นปัญหาที่บางคนไม่ได้เช็คอินอย่างถูกต้องหรือไม่?
Chad Cooper

ยกเว้นชั้นไฟล์และชุดข้อมูลเทมเพลต ใช่พวกเขาไม่ได้เช็คอินเมื่อเสร็จแล้วและใน Eclipse คุณต้องอัปเดตเป็นเวอร์ชั่นล่าสุดด้วยตนเอง (เท่าที่ฉันรู้) เพื่อรับไฟล์เวอร์ชันล่าสุด (เช่น tbx) ฉันแค่สงสัยว่าคนอื่นได้มีวิธีที่ชาญฉลาดของการทำเช่นนี้แล้วเรากำลังพยายามในขณะนี้
ร็อบ

คำตอบ:


5

ถ้าฉันรู้ว่าฉันกำลังจะไปทำงานร่วมกับนักพัฒนาอื่น ๆ ซึ่งเป็นหนึ่งในสิ่งแรกที่ฉันทำในปัจจุบันคือการติดตั้งอย่างต่อเนื่องการรวมเซิร์ฟเวอร์เช่นเจนกินส์

ความคิดคือการเรียกชุดทดสอบของคุณทุกครั้งหลังจากเช็คอินและคุณจะได้รับอีเมลอัตโนมัติทันทีหากล้มเหลว ในกรณีของคุณมันอาจจะง่ายสคริปต์ซีลีเนียม ที่คลิกไปรอบ ๆ เบราว์เซอร์หรือสคริปต์ ArcObjects ที่ทำงานอัตโนมัติ ArcMap มีการนำเสนอหลายออกมีเกี่ยวกับซีลีเนียม

สิ่งดีๆเกี่ยวกับเจนกินส์ก็คือว่ามีหลายปลั๊กอินที่ช่วยให้คุณสามารถบูรณาการ / การใช้ประโยชน์จากเทคโนโลยีอื่น ๆ (ระบบสร้างผ้าสำลี ฯลฯ ) คุณสามารถรับรายงานที่ยอดเยี่ยมเกี่ยวกับการทดสอบโค้ดของคุณ พวกเขาเป็นเรื่องง่ายที่จะติดตั้ง

โดยส่วนตัวแทนที่จะเป็น SVN ฉันชอบที่จะรวมกับ Git และ GitHub ... มีข้อดีหลายประการในการทำเช่นนี้อาศัย GitHub สำหรับการตรวจสอบ

แต่แน่นอนว่าขั้นตอนแรกคือการทำให้เจนกินส์วิ่ง หากคุณไม่เคยทำมาก่อนจองหนึ่งวันและหายใจบ่อย ๆ เพราะมันอาจจะแปลกมาก ... แต่เมื่อคุณใช้มันแล้วมันยอดเยี่ยมจริงๆ


7

หากฉันเข้าใจดีปัญหาอย่างหนึ่งของคุณคือผู้พัฒนาใช้ SVN ไม่ถูกต้องและนี่ทำให้เนื้อหาในที่เก็บ SVN ไม่เสถียร

ดังนั้นบางทีคุณอาจลองทำสองสิ่ง:

ตั้งค่านโยบายการใช้พื้นที่เก็บข้อมูลที่ชัดเจน

ทำให้ชัดเจนกับนักพัฒนาทั้งหมดวิธีการใช้ที่เก็บและเมื่อใดและอะไรที่จะกระทำ ดังนั้นที่เก็บจะมีสำเนาการทำงานของโครงการอยู่เสมอ

ใช้ระบบควบคุมแบบกระจาย

ถ้าคุณใช้ระบบการควบคุมการกระจายเช่นGitหรือMercurial , ผู้ใช้แต่ละคนสามารถที่จะยอมรับพื้นที่เก็บข้อมูลของพวกเขาและมีเพียงส่งรุ่นของพวกเขาไปยังส่วนกลางหนึ่งเมื่อพวกเขาแน่ใจว่ามันจะทำงานคุณสามารถแม้กระทั่งตั้งหน้าต่างกระทำสำหรับผู้ใช้แต่ละคนเพื่อให้พวกเขาสวม ขั้นตอนในโค้ดของกันและกัน

ในกรณีของคุณฉันจะไป Mercurial เพราะมันพัฒนาใน Python และคุณสามารถสร้าง hooks เพื่อปรับแต่งตามความต้องการของคุณ และเนื่องจากเส้นโค้งการเรียนรู้จาก SVN มันค่อนข้างง่าย ... จุดเริ่มต้นที่ดีคือการสอนhginitที่จริงมีส่วนที่เรียกว่า SVN การศึกษาอีกครั้ง


2

ฉันคิดว่าคุณต้องการใครสักคนที่รับผิดชอบและมีความรับผิดชอบมากขึ้น ข้อเสนอแนะของฉันคือการแต่งตั้งหรือรับสมัครผู้ดูแลระบบสำหรับกล่องเครื่องมือ กำหนดให้กล่องเครื่องมือสาธารณะและทุกอย่างอยู่ในที่ว่างยกเว้นสำหรับผู้ดูแลระบบ ผู้ดูแลระบบสามารถรับผิดชอบในการตรวจสอบให้แน่ใจว่าสิ่งต่าง ๆ ได้รับการทดสอบเช็คอิน (หรือจัดการ - ในกรณีของรายการนอกพื้นที่ SVN) เนื่องจากผู้ดูแลระบบจะได้รับโอกาสที่จะเห็นสิ่งที่ผู้คนกำลังทำเขา / เธอจะรู้เมื่อมีคนต้องการการฝึกอบรมเช่นเขาสามารถจับคนทำสิ่งที่ไม่เหมาะสม


2

นี่เป็นปัญหาของคนมากกว่าปัญหาเทคโนโลยี กล่องเครื่องมือและไฟล์เทมเพลตกำลังถูกแก้ไขนอกการควบคุมแหล่งที่มาดังนั้นจึงไม่มีการควบคุม ไฟล์เหล่านี้ควรอยู่ในการควบคุมเวอร์ชันแม้ว่าจะเป็นไฟล์ไบนารีและคุณไม่สามารถแยกหรือเปรียบเทียบได้ ตามกฎทั่วไปของ Thumb สิ่งใดก็ตามที่ไม่ได้สร้างขึ้นจากรหัสของคุณและจำเป็นต้องเรียกใช้หรือรวบรวมรหัสควรอยู่ภายใต้การควบคุมของแหล่งที่มา

วิธีนี้โครงการทั้งหมดจะอยู่ภายใต้การควบคุมของแหล่งที่มาและจะมีสำเนาทำงานอยู่เสมอ นักพัฒนาควรแก้ไขกล่องเครื่องมือและแม่แบบในรุ่นท้องถิ่นหลังจากล็อคและส่งคืนเมื่อสำเนาภายในเครื่องทำงาน

ตามที่

... ไม่ได้อัปเดตสำหรับคนอื่นเนื่องจากพวกเขาไม่ได้เช็คอิน

นี่เป็นปัญหาของคนและหากนักพัฒนาซอฟต์แวร์ของคุณไม่เข้าใจว่าทำไมสิ่งนี้ถึงมีความสำคัญเทคโนโลยีก็จะไม่ช่วย


2

กล่องเครื่องมือเกิดความสับสนโดยหลายคนที่แก้ไขกล่องเครื่องมือ

สำหรับปัญหานี้เราวางกล่องเครื่องมือของเราในฐานข้อมูล ArcSDE ฉันไม่ได้ลองกับฐานข้อมูลประเภทอื่น! นอกจากว่าทั้งสองคนจะแก้ไขเครื่องมือเดียวกันในเวลาเดียวกันมันก็ใช้งานได้ดี มีปัญหาน้อยกว่ากล่องเครื่องมือไฟล์ (.tbx) จริงๆ


คุณกำลังบอกว่าคุณใช้เวอร์ชั่นกล่องเครื่องมือใน SDE เพื่อให้หลายคนสามารถแก้ไขเครื่องมือต่าง ๆ ในเวลาเดียวกันได้หรือไม่? คุณไม่ได้มีปัญหาใด ๆ กับวิธีนี้หรือไม่?
ซินดี้ Jayakumar

ไม่ฉันไม่คิดว่าคุณสามารถสร้างกล่องเครื่องมือได้ คุณเพิ่งสร้างกล่องเครื่องมือใน SDE และหลายคนสามารถแก้ไขเครื่องมือต่าง ๆ ในเวลาเดียวกัน ปัญหาสองประการแน่ชัดถ้ามีคนแก้ไขเครื่องมือเดียวกันและในขณะที่ ArcToolbox โหลดเนื้อหาที่การเปิดกล่องเครื่องมือ (SDE) และเก็บไว้ในหน่วยความจำถ้ามีคนอื่นเปิดเครื่องมือที่ได้รับการแก้ไขตั้งแต่การเปิดกล่องเครื่องมือ (SDE) . สามารถย่อภายหลังได้ราวกับว่าเป็นที่รู้จักกันคุณสามารถเริ่มต้นใหม่ ArcMap หรือคุณสามารถปิดการเชื่อมต่อ SDE และเปิดอีกครั้ง ความหวังนี้ชัดเจน
jeb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.