Là phiên bản lớn nhanh chóng va chạm một bằng chứng của thiết kế kém?


16

Tôi đã bắt đầu một công việc như một lập trình viên cơ sở một vài tháng trước. Hệ thống chúng tôi đang làm việc đã được sản xuất trong 2 năm. Tôi đã không tham gia vào việc cầu xin hệ thống và thiết kế.

Một điều tôi nhận thấy là phiên bản chính của hệ thống đã là 11.YZ Hình thành kinh nghiệm của tôi khi làm việc với các hệ thống và thư viện khác, tôi không nhớ là đã thấy một sản phẩm bán phiên bản chính nhanh như vậy. Có những sản phẩm đã được nhiều năm trong 1.XY, và vẫn nhận được các tính năng và sửa lỗi.

Giả sử rằng phiên bản ngữ nghĩa được sử dụng đúng cách, điều này cho thấy hệ thống được thiết kế kém vì nó tạo ra những thay đổi lớn trong gần bốn tháng một lần?


2
Câu hỏi đó sẽ phụ thuộc vào việc những thay đổi lớn đó có mang lại đủ lợi ích (và lợi nhuận) để chứng minh tỷ lệ thay đổi cao hay không.
rwong

3
Nếu số phiên bản đó sử dụng Semver và nếu hệ thống có thư viện hoặc API khác mà các nhóm hoặc tổ chức khác phụ thuộc, thì số lượng lớn này có nghĩa là đã có vấn đề để cam kết thiết kế API mở rộng, ổn định. Điều đó cũng có nghĩa là sự không tương thích trong giao tiếp rõ ràng được đánh giá cao là một điều tốt. Đối với bất cứ điều gì khác (như tên tiếp thị, chương trình ứng dụng, số không phải là Semver, số) thì con số này là vô nghĩa và phần lớn nên không được quan tâm. Chỉ cần hỏi đồng nghiệp của bạn về điều này, là một phần của bạn để hiểu rõ hơn về dự án.
amon

3
@amon Hệ thống được sử dụng nội bộ với các máy khách di động công cộng giao tiếp với hệ thống thông qua API giống như REST. Phiên bản là Semver như tôi đã đề cập và không phải là phiên bản tiếp thị.
dùng367035

Số không thành vấn đề, nhưng tôi sẽ nghi ngờ nếu số nhận dạng phiên bản bao gồm một số từ viết tắt dễ thương, như Windows NT hoặc Windows ME hoặc XP hoặc Windows thực sự.
John Wu

1
@ John John: câu hỏi cụ thể là về con số, vì vậy, vâng, con số không thành vấn đề. Chính xác hơn, đó là về con số trong ngữ cảnh của SemVer, nơi con số không chỉ quan trọng, mà còn có ý nghĩa được chỉ định chính xác.
Jörg W Mittag

Câu trả lời:


14

Giả sử rằng phiên bản ngữ nghĩa được sử dụng đúng cách, điều này cho thấy hệ thống được thiết kế kém vì nó tạo ra những thay đổi lớn trong gần bốn tháng một lần?

Không cần thiết.

Bạn đã đề cập trong các ý kiến ​​rằng đây là một API nội bộ. Phá vỡ một API là xấu, bởi vì bạn phá vỡ mã của mọi người. Nhưng đối với API nội bộ, "mọi người" chỉ là "bạn" và bạn hoàn toàn có khả năng tự mình điều phối các thay đổi API đó, do đó, nỗi đau thường liên quan đến thay đổi API sẽ tồi tệ hơn nhiều.

Ngoài ra, mức trung bình có thể gây hiểu nhầm ồ ạt: có thể họ đã phá vỡ 11 thay đổi API trong vài ngày đầu tiên phát triển sớm và đã ổn định trong 4 năm kể từ đó? SemVer cho phép bạn thực hiện các thay đổi đột phá mà không tăng số chính nếu số chính là 0, nhưng nó không bắt buộc bạn phải làm. Có lẽ họ bắt đầu sử dụng SemVer từ ngày 0, ngay cả trong các giai đoạn tạo mẫu / thăm dò?


5
Câu trả lời này dường như trực tiếp giải quyết câu hỏi. Một số câu trả lời khác sẽ có giá trị nếu không phải là giả định của OP về phiên bản ngữ nghĩa.
joshp

Cũng đáng chú ý là việc phá vỡ những thay đổi không phải lúc nào cũng quan trọng. Đôi khi chúng thực sự khá nhỏ (nhưng quan trọng). Vì vậy, họ có thể cần rất ít thay đổi cho người dùng. Ngoài ra, có thể có một mức độ thay đổi khá lớn tùy thuộc vào cách sử dụng API. Đôi khi, một sự thay đổi đột phá sẽ không ảnh hưởng đến tất cả người dùng. Ngoài ra, sửa lỗi có thể giới thiệu các thay đổi vi phạm, nhưng thật lý tưởng để sửa những lỗi này sớm hơn là muộn hơn. Và nếu API là nội bộ, thì việc xử lý những thay đổi nhỏ này sẽ dễ dàng hơn rất nhiều.
Kat

1

Câu trả lời ngắn

Không

Câu trả lời dài

"Đôi khi một số chỉ là một số"

Hãy quên đi "phiên bản ngữ nghĩa", "tính hợp lý", "logic" trong thế giới điên rồ hiện tại

Tại sao Chrome lại ngấu nghiến số phiên bản nhanh như vậy?

các số "phiên bản" được sử dụng làm Cột mốc cho các điểm nhánh, chứ không phải các Bản phát hành chính để gây ấn tượng mạnh với công chúng theo cách các nhà phát triển khác sử dụng chúng. Và đó là một dòng phát triển đang diễn ra, với các tính năng sẵn sàng hoặc chưa sẵn sàng, thay vì một sự kiện thường xuyên tập hợp nhiều tính năng mới để tạo nên một sự kiện lớn


7
OP đã nói rằng họ đang sử dụng phiên bản ngữ nghĩa; Tại sao sau đó bạn bỏ qua nó?
Jörg W Mittag

-3

Khi sử dụng phiên bản ngữ nghĩa, vẫn có quyết định đưa ra những thay đổi được coi là "chính" và "thay đổi" là "chính". Có nhiều lý do khác nhau để tăng số phiên bản - hoặc không tăng số.

Các hệ thống có khả năng tương thích ngược có thể sẽ tăng số phiên bản chính với hầu hết các bản cập nhật, chỉ vì có sự phá vỡ khả năng tương thích ngược trong một số trường hợp góc bí mật ít nhiều. Các hệ thống tương tự có thể dính vào 1.xy gần như không xác định, bởi vì rất nhiều nỗ lực được đưa vào khả năng tương thích ngược, cố gắng không bao giờ phá vỡ bất kỳ hệ thống phụ thuộc nào. Cả hai cách tiếp cận để đánh số phiên bản có thể được coi là "bảo thủ", nhưng cả hai cũng có thể là một dấu hiệu của một vấn đề sâu xa.

Những lần khác, bạn thực sự có một lịch phát hành (nghĩ về các CD cập nhật hàng quý được gửi cho khách hàng) trong đó việc thay đổi số phiên bản chính, thay vì "Phiên bản 3.4 / 16/10", nó chỉ ghi "Phiên bản 11.0". Ngày nay, ngày càng có nhiều phần mềm được phát hành trong các khoảng thời gian ngắn, khiến lịch trình phát hành ít lý do hơn để bám vào một sơ đồ phiên bản cụ thể. Tôi đã thấy điều này trong các hệ thống kho lớn cho phép CNTT nội bộ chỉ một ngày ngừng hoạt động một phần tư (thường là chủ nhật). Ngày này là ngày triển khai và được đánh dấu bằng một phiên bản chính mới mỗi lần.

Một số chương trình có các phụ thuộc bên ngoài có tầm quan trọng cao nhất, bởi vì người dùng sẽ phải cập nhật cả hai cùng một lúc. Nếu bạn có một addon Word chỉ hoạt động với Word 2010 và một cái khác cho Word 2013, bạn có thể muốn đồng bộ hóa các số phiên bản chính của mình với MS-Word. Ở đây, những con số chính rất quan trọng, bởi vì một số người dùng của bạn sẽ "đứng sau" lịch cập nhật thông thường của bạn, vì họ chưa cập nhật lên phiên bản Word mới nhất (hoặc bất cứ điều gì khác mà bạn đang dựa vào: SAP, Dynamics, Vân vân).

Đôi khi, các yếu tố bên ngoài khác chỉ ra số phiên bản. Nếu bạn có phần mềm tài chính, có thể có các cập nhật hàng năm tương ứng với luật thuế (có xu hướng có hiệu lực vào ngày 1 tháng 1). Các hệ thống như vậy sẽ có các phiên bản chính thay đổi chính xác mỗi năm một lần - không phải vì đó là lịch cập nhật, mà vì đó là điều quan trọng khác đối với khách hàng: Nếu bạn đóng thuế năm 2016, tốt hơn là bạn nên có chương trình được cập nhật theo luật thuế năm 2016.

Cuối cùng, số phiên bản phụ thuộc vào rất nhiều yếu tố - thường cụ thể cho một tên miền - rằng chỉ riêng số đó không cho bạn biết về trạng thái của cơ sở mã của bạn. Đó là một cách tiếp cận tốt hơn nhiều để xem xét khi nào, tại sao và làm thế nào triển khai xảy ra - và điều đó diễn ra suôn sẻ như thế nào. Nếu bạn có thể tung ra một bản cập nhật lớn cho 10.000 khách hàng và có một vài cuộc gọi điện thoại - có lẽ bạn vẫn ổn. Nếu bạn tung ra một bản vá nhỏ cho 10 khách hàng và phải làm thêm giờ vì điều đó, có lẽ có gì đó không ổn.


3
"Khi sử dụng phiên bản ngữ nghĩa, vẫn có quyết định được đưa ra những thay đổi được coi là" chính "và" thay đổi "là" nhỏ ". - Không, không có; được xác định chính xác trong đặc điểm kỹ thuật. "Có nhiều lý do khác nhau để tăng số phiên bản - hoặc không tăng số đó." - Không, không có; có chính xác một lý do để tăng số lượng chính (câu hỏi này là về) và nó được xác định chính xác trong thông số kỹ thuật.
Jörg W Mittag

1
@ JörgWMittag Hoặc tôi đang đọc sai hoặc thông số cụ thể nói khi bạn PHẢI bấm số phiên bản, nhưng nó không nói gì khi bạn CÓ THỂ.
Hazzit

-4

Sự đồng thuận về ý nghĩa của số phiên bản thực sự là Major.minor.revision.buildnumber

Nếu chính đi lên nhanh chóng, nó có thể chỉ là nhà phát triển có tất cả những ý tưởng mới này và làm việc rất chăm chỉ.

Tuy nhiên, trong thế giới kinh doanh, có thể có những lý do khác để tăng số phiên bản chính. Giống

  • Doanh số giảm, khách hàng / người dùng đang chờ bản phát hành lớn tiếp theo trước khi nâng cấp.

  • Hợp đồng nói rằng khách hàng được quyền cập nhật nhỏ. Nhà cung cấp không thể tính phí cho những người đó vì vậy một số cải tiến nhỏ được bán dưới dạng nâng cấp sản phẩm chính.

  • Đối thủ X đã ở trong trò chơi lâu hơn một chút nên số phiên bản chính của họ chỉ cao hơn bạn. Điều này làm cho nó trông giống như bạn đang bị tụt lại phía sau, bạn phải "bắt kịp".


6
Câu hỏi được gắn thẻ với phiên bản ngữ nghĩa , OP đề cập đến phiên bản ngữ nghĩa trong câu hỏi và đã xác nhận lại trong các nhận xét rằng họ đang sử dụng phiên bản ngữ nghĩa. Đặc tả SemVer nói rất rõ ràng khi các phiên bản chính được tăng lên. Không có "lý do khác" của bạn áp dụng.
Jörg W Mittag
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.