Saya bekerja di sebuah perusahaan di mana kami memiliki banyak keahlian berbeda di tim pengembangan.
Kami melakukan semua hal berikut (umumnya diarahkan ke web):
- .NET (MVC, Umbraco, ASP.NET, Surface)
- Java (Spring, Hibernate, Android)
- PHP (Zend, Penyala Kode)
- Actionscript 3
- UDARA
- Objektif-C
- Html / Javascript (jelas)
Kami mencoba merampingkan proses pengembangan kami.
Saat ini kami memiliki server TeamCity yang membangun dan menyebarkan proyek .NET dengan msbuild / msdeploy / nant.
Apa yang saya inginkan adalah sesuatu seperti pakar yang akan memberi kita struktur templat proyek standar yang berfungsi untuk sebagian besar proyek agar orang dari tim yang berbeda dapat berpindah antar proyek dengan mudah.
Saat ini ini bekerja pada satu platform karena kita cenderung melakukan hal-hal dengan cara standar untuk platform itu (selama orang-orang tertentu telah terlibat) namun saya ingin menggunakan sesuatu seperti pakar untuk membakukan bagaimana proyek diletakkan dan dibangun.
Adakah yang pernah mencoba yang seperti ini sebelumnya? Pengalaman? Buku?
Jawaban:
Adapun. NET, ada tiga proyek ke port Maven. Lihat jawaban ini di stackoverflow.com. Juga artikel wiki ini mungkin bermanfaat.
Adapun bahasa lain, saya sarankan untuk menerapkan struktur yang sama yang didukung Maven (semua sumber di bawah
src/language/main
, dll) dan kemudian menulis plugin Maven untuk membangunnya atau setidaknya menulis templat "Makefile" generik yang mendukung struktur ini di luar kotak.sumber
Saat ini kami menggunakan beberapa bahasa dalam proyek kami: C ++, Java, Ruby, Perl, OCaml, Shell, PHP dan JavaScript. Dan kami tidak memiliki masalah untuk menerima semuanya. Karena setiap komponen memiliki struktur dan tata letak direktori sendiri . Build direkatkan dengan Makefiles rekursif sederhana yang diproses oleh GNU make. Mereka kadang-kadang memanggil sistem build lain, jika perlu (misalnya, mereka memanggil Java Ant untuk membangun kode Java). Jika sistem build ini terikat dengan tata letak tertentu, itu tidak masalah, karena masing-masing komponen memiliki sendiri, dan bisa disetel untuk memenuhi persyaratan sistem build.
Gagasan utamanya adalah menjaga setiap komponen terpisah dari yang lain. Di dalam direktori, kami hanya menyimpan file karena kami pikir itu akan berguna untuk komponen khusus ini. Kami tidak memiliki gumpalan besar seperti
src/
direktori yang berisi, misalnya, semua kode untuk satu bahasa. Dengan cara ini kami tidak mengalami masalah dengan mengedit kode di berbagai komponen.sumber