Saya ingin tahu apakah masuk akal untuk membagi proyek yang saya kerjakan dalam dua repositori, bukan satu.
Dari apa yang bisa saya katakan:
- Frontend akan ditulis dalam html + js
- Backend di .net
- Backend tidak bergantung pada frontend dan frontend tidak tergantung pada backend
- Frontend akan menggunakan api yang diimplementasikan di backend.
- Frontend dapat di-host di server http statis.
Sampai sekarang, repositori memiliki struktur ini:
akar:
- paling depan/*
- backend / *
Saya pikir itu kesalahan untuk menjaga kedua proyek dalam repositori yang sama. Karena kedua proyek tidak memiliki ketergantungan antara satu sama lain, mereka harus berada dalam repositori individu dan jika diperlukan repositori induk yang memiliki submodula.
Saya telah diberitahu bahwa itu tidak ada gunanya dan bahwa kita tidak akan mendapat manfaat dari melakukan itu.
Inilah beberapa argumen saya:
- Kami memiliki dua modul yang tidak saling bergantung.
- Memiliki sumber riwayat kedua proyek dalam jangka panjang dapat mempersulit hal-hal (coba cari dalam sejarah untuk sesuatu di frontend sementara Anda memiliki setengah dari komitmen yang sama sekali tidak terkait dengan bug yang Anda cari)
- Konflik dan penggabungan (Ini seharusnya tidak terjadi tetapi memiliki seseorang mendorong ke backend akan memaksa pengembang lain untuk menarik perubahan backend untuk mendorong perubahan frontend.)
- Satu pengembang mungkin hanya bekerja di backend tetapi harus selalu menarik frontend atau sebaliknya.
- Dalam jangka panjang, kapan saatnya untuk menyebarkan. Dalam beberapa cara, frontend dapat digunakan untuk beberapa server statis sambil memiliki satu server backend. Dalam setiap kasus, orang akan dipaksa untuk mengkloning seluruh backend dengan itu atau membuat skrip khusus untuk mendorong ke semua server hanya frontend atau untuk menghapus backend. Lebih mudah untuk hanya mendorong / menarik hanya frontend atau backend daripada keduanya jika hanya satu yang diperlukan.
- Argumen tandingan (Satu orang mungkin mengerjakan kedua proyek), Buat repo ketiga dengan submodule dan kembangkan bersama itu. Riwayat disimpan terpisah dalam modul individual dan Anda selalu dapat membuat tag di mana versi backend / frontend benar-benar bekerja bersama dalam sinkronisasi. Memiliki kedua frontend / backend bersama dalam satu repo tidak berarti bahwa mereka akan bekerja bersama. Itu hanya menggabungkan kedua sejarah menjadi satu repo besar.
- Memiliki frontend / backend sebagai submodul akan membuat segalanya lebih mudah jika Anda ingin menambahkan freelancer ke proyek. Dalam beberapa kasus, Anda tidak benar-benar ingin memberikan akses penuh ke basis kode. Memiliki satu modul besar akan membuat segalanya lebih sulit jika Anda ingin membatasi apa yang dapat dilihat / diedit oleh "orang luar".
- Pengenalan bug dan memperbaiki bug, saya memasukkan bug baru di frontend. Kemudian seseorang memperbaiki bug di backend. Dengan satu repositori, memutar kembali sebelum bug baru juga akan mengembalikan backend yang bisa membuatnya sulit untuk diperbaiki. Saya harus mengkloning backend di folder yang berbeda agar backend bekerja sambil memperbaiki bug di frontend ... kemudian mencoba untuk memperbaiki keadaan ... Memiliki dua repositori akan tidak menyakitkan karena memindahkan HEAD dari satu repo yang dimenangkan dapat mengubah yang lain. Dan pengujian terhadap versi backend yang berbeda akan tidak menyakitkan.
Dapatkah seseorang memberi saya lebih banyak argumen untuk meyakinkan mereka atau setidaknya memberi tahu saya mengapa tidak ada gunanya (lebih rumit) untuk membagi proyek dalam dua submodul. Proyek ini baru dan basis kode sudah beberapa hari sehingga tidak terlalu cepat untuk diperbaiki.