Saya memulai pekerjaan sebagai programmer junior beberapa bulan yang lalu. Sistem yang kami kerjakan telah berproduksi selama ~ 2 tahun. Saya tidak terlibat dalam mengemis sistem dan desain.
Satu hal yang saya perhatikan adalah bahwa versi sistem utama sudah 11.YZ Membentuk pengalaman saya bekerja dengan sistem dan perpustakaan lain, saya tidak ingat melihat produk menabrak versi utama yang cepat. Ada produk yang telah bertahun-tahun di 1.XY, dan masih menerima fitur dan perbaikan bug.
Dengan asumsi bahwa versi semantik digunakan dengan benar, apakah ini menunjukkan bahwa sistem ini dirancang dengan buruk karena membuat perubahan besar hampir setiap empat bulan?
versioning
semantic-versioning
pengguna367035
sumber
sumber
Jawaban:
Belum tentu.
Anda menyebutkan dalam komentar bahwa ini adalah API internal. Merusak API itu buruk, karena Anda merusak kode semua orang. Tetapi untuk API internal "semua orang" hanyalah "Anda", dan Anda sepenuhnya mampu mengoordinasikan perubahan API semacam itu dengan diri Anda sendiri, sehingga rasa sakit yang biasanya terkait dengan perubahan API jauh lebih buruk.
Juga, rata-rata bisa menyesatkan secara besar-besaran: mungkin mereka memiliki 11 perubahan API melanggar selama beberapa hari pertama pengembangan awal dan telah stabil selama 4 tahun sejak itu? SemVer memungkinkan Anda untuk melakukan perubahan tanpa menambah angka utama jika angka utama adalah 0, tetapi itu tidak memaksa Anda untuk melakukannya. Mungkin mereka mulai menggunakan SemVer dari hari 0, bahkan selama fase prototyping / eksplorasi?
sumber
Jawaban singkat
Tidak
Jawaban panjang
"Terkadang angka hanya angka"
Lupakan "versi semantik", "rasionalitas", "logika" di dunia gila saat ini
Mengapa Chrome melahap nomor versi dengan begitu cepat?
sumber
Saat menggunakan versi semantik, masih ada keputusan yang harus dibuat, perubahan mana yang dianggap "utama", dan mana yang "kecil". Ada berbagai alasan untuk menabrak nomor versi - atau tidak menabraknya.
Sistem dengan janji kompatibilitas mundur mungkin berakhir dengan menabrak nomor versi utama dengan sebagian besar pembaruan, hanya karena ada jeda kompatibilitas mundur dalam beberapa kasus sudut esoteris. Sistem yang sama mungkin tetap berpegang pada 1.xy hampir tanpa batas, karena banyak upaya dimasukkan ke dalam kompatibilitas ke belakang, berusaha untuk tidak pernah merusak sistem ketergantungan apa pun. Kedua pendekatan untuk penomoran versi dapat dianggap "konservatif", tetapi keduanya juga bisa menjadi tanda masalah mendasar yang mendasar.
Di lain waktu, Anda benar-benar memiliki jadwal rilis (bayangkan CD pembaruan triwulanan dikirim ke pelanggan) di mana masuk akal untuk mengubah nomor versi utama, sehingga alih-alih "Versi 3.4 / 16 Oktober" itu hanya mengatakan "Versi 11.0". Saat ini, semakin banyak perangkat lunak dirilis dalam interval pendek, membuat jadwal rilis semakin sedikit alasan untuk tetap berpegang pada skema versi tertentu. Saya telah melihat ini dalam sistem gudang besar yang memungkinkan TI internal hanya satu hari downtime seperempat (biasanya hari Minggu). Hari ini adalah hari penerapan dan ditandai dengan versi utama baru setiap saat.
Beberapa program memiliki ketergantungan eksternal yang paling penting, karena pengguna harus memperbarui keduanya secara bersamaan. Jika Anda memiliki Word-addon yang hanya berfungsi dengan Word 2010 dan yang lain untuk Word 2013, Anda mungkin ingin menyinkronkan nomor versi utama Anda dengan MS-Word. Di sini, angka-angka utama sangat penting, karena beberapa pengguna Anda akan "berada di belakang" jadwal pembaruan normal Anda, karena mereka belum memperbarui ke versi Word terbaru (atau apa pun yang Anda andalkan: SAP, Dynamics, dll).
Kadang-kadang, faktor eksternal lainnya menentukan nomor versi. Jika Anda memiliki perangkat lunak fiskal, mungkin ada pembaruan tahunan yang sesuai dengan undang-undang perpajakan (yang cenderung berlaku pada 1 Januari). Sistem seperti itu akan memiliki versi utama yang berubah tepat setahun sekali - bukan karena itu adalah jadwal pembaruan, tetapi karena itu adalah hal lain yang penting bagi pelanggan: Jika Anda melakukan pajak tahun 2016, Anda lebih baik memiliki program yang diperbarui ke undang-undang pajak 2016.
Pada akhirnya, nomor versi bergantung pada begitu banyak faktor - seringkali khusus untuk satu domain - sehingga jumlahnya sendiri tidak memberi tahu Anda apa - apa tentang status basis kode Anda. Ini adalah pendekatan yang jauh lebih baik untuk melihat kapan, mengapa dan bagaimana penyebaran terjadi - dan bagaimana kelancarannya. Jika Anda dapat meluncurkan pembaruan besar ke 10.000 pelanggan dan melakukan beberapa panggilan telepon - Anda mungkin baik-baik saja. Jika Anda meluncurkan patch kecil untuk 10 pelanggan dan harus bekerja lembur karena itu, ada sesuatu yang mungkin salah.
sumber
Konsensus tentang arti nomor versi memang mayor.minor.revision.buildnumber
Jika besar naik dengan cepat itu bisa jadi pengembang memiliki semua ide-ide baru ini dan bekerja sangat keras.
Namun di dunia bisnis mungkin ada alasan lain untuk menambah nomor versi utama. Suka
Penjualan menurun, klien / pengguna menunggu rilis besar besar berikutnya sebelum meningkatkan.
Kontrak mengatakan klien berhak atas pembaruan kecil. Vendor tidak dapat membebankan biaya untuk mereka sehingga beberapa perbaikan kecil dijual sebagai peningkatan produk utama.
Pesaing X telah berada dalam permainan sedikit lebih lama sehingga nomor versi utama mereka kebetulan lebih tinggi daripada Anda. Ini membuatnya terlihat seperti Anda tertinggal, Anda harus "mengejar ketinggalan".
sumber