การสร้างทีมพัฒนาแพลตฟอร์มที่ไม่เชื่อเรื่องพระเจ้า


9

ฉันทำงานที่ บริษัท ที่เรามีชุดทักษะต่าง ๆ มากมายในทีมพัฒนา

เราทำสิ่งต่าง ๆ ต่อไปนี้ (โดยทั่วไปมุ่งสู่เว็บ):

  • .NET (MVC, Umbraco, ASP.NET, Surface)
  • Java (Spring, Hibernate, Android)
  • PHP (Zend, ตัวจุดไฟรหัส)
  • Actionscript 3
  • AIR
  • Objective-C
  • Html / Javascript (ชัด)

เรากำลังพยายามปรับปรุงกระบวนการพัฒนาของเรา

ขณะนี้เรามีเซิร์ฟเวอร์ TeamCity ที่สร้างและปรับใช้โครงการ. NET ด้วย msbuild / msdeploy / nant

สิ่งที่ฉันต้องการคืออะไรเช่น maven ที่จะให้โครงสร้างเทมเพลตโครงการมาตรฐานที่ทำงานกับโครงการส่วนใหญ่เพื่อให้ผู้คนจากทีมต่าง ๆ สามารถย้ายระหว่างโครงการได้อย่างง่ายดาย

ขณะนี้สามารถใช้งานได้บนแพลตฟอร์มเดียวเพราะเรามักจะทำสิ่งต่าง ๆ ในแบบมาตรฐานสำหรับแพลตฟอร์มนั้น (ตราบเท่าที่บางคนมีส่วนเกี่ยวข้อง) แต่ฉันต้องการใช้สิ่งที่เหมือน Maven เพื่อสร้างมาตรฐานในการวางโครงการและสร้างโครงการ

มีใครเคยลองทำอะไรแบบนี้มาก่อนหรือไม่? ประสบการณ์? หนังสือ?


แล้วมันจะทำงานอย่างไร หากมีคนต้องการสร้างเว็บแอปพลิเคชันพวกเขาจะต้องระบุภาษาหรือคุณต้องการบังคับให้ทุกภาษาใช้โครงสร้างเดียวกันแม้ว่าจะไม่เหมาะกับภาษานั้นก็ตาม ตัวอย่างเช่นการสร้างไฟล์จาวาสคริปต์ของฉันในขณะที่ฉันใช้ Java หรือ C # อาจเป็นปัญหา
James Black

คำตอบ:


3

สำหรับ. NET มีสามโครงการที่จะทำพอร์ต Maven ดูคำตอบนี้ใน stackoverflow.com นอกจากนี้ยังมีบทความวิกิพีเดียนี้อาจจะเป็นประโยชน์

สำหรับภาษาอื่น ๆ ฉันขอแนะนำให้ใช้โครงสร้างเดียวกับที่ Maven รองรับ (ทุกแหล่งที่มาด้านล่างsrc/language/mainฯลฯ ) จากนั้นจึงเขียนปลั๊กอิน Maven เพื่อสร้างหรืออย่างน้อยก็เขียนเทมเพลต "Makefile" ทั่วไปที่รองรับโครงสร้างนี้นอกกรอบ


2

ขณะนี้เรามีหลายภาษาในโครงการของเรา: C ++, Java, Ruby, Perl, OCaml, Shell, PHP และ JavaScript และเราไม่มีปัญหาใด ๆ ที่จะรับมือกับพวกเขาทั้งหมด เพราะแต่ละองค์ประกอบมีโครงสร้างของตัวเองและรูปแบบไดเรกทอรี งานสร้างติดกาวพร้อมกับ Makefiles แบบเรียกซ้ำที่ประมวลผลโดย GNU make บางครั้งพวกเขาเรียกระบบการสร้างอื่น ๆ หากจำเป็น (ตัวอย่างเช่นพวกเขาเรียกใช้ Ant ของ Java เพื่อสร้างรหัส Java) หากระบบบิลด์เหล่านี้เชื่อมโยงกับเลย์เอาต์ที่เฉพาะเจาะจงก็ไม่มีปัญหาเพราะแต่ละองค์ประกอบมีของตัวเองและมันสามารถปรับได้เพื่อตอบสนองความต้องการของระบบบิลด์

แนวคิดหลักคือการแยกส่วนประกอบทุกส่วนออกจากส่วนประกอบอื่น ๆ ภายในไดเรกทอรีเราเพิ่งเก็บไฟล์ตามที่เราคิดว่ามันจะมีประโยชน์สำหรับส่วนประกอบนี้โดยเฉพาะ เราไม่มี blobs ขนาดใหญ่เช่นsrc/ไดเรกทอรีที่มีตัวอย่างเช่นรหัสทั้งหมดสำหรับหนึ่งภาษา วิธีนี้เราไม่พบปัญหาใด ๆ กับการแก้ไขรหัสในส่วนประกอบต่าง ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.