Làm thế nào để số phiên bản đầu làm việc cho các sản phẩm mới?


11

Tôi hiện đang viết một ứng dụng máy tính để bàn nhỏ cho một người bạn, nhưng tôi đang làm nó chủ yếu như một trải nghiệm học tập cho bản thân mình. Với tinh thần được giáo dục và thực hiện mọi thứ theo cách đúng đắn, tôi muốn có số phiên bản cho ứng dụng này.

Nghiên cứu của tôi đã đưa ra những kết quả liên quan

nhưng không ai trong số họ đánh số thứ tự của bảng chữ cái, betas, phát hành ứng cử viên, & c. Các quy ước cho số phiên bản dưới 1.0 là gì? Tôi biết họ có thể tiếp tục một thời gian; ví dụ, PuTTY đã tồn tại ít nhất một thập kỷ và vẫn chỉ ở phiên bản beta 0.60.

Câu trả lời:


30

Nó thực sự phụ thuộc vào dự án; một số dự án thậm chí không phát hành phiên bản 1.0.

Các nhà phát triển của MAME không có ý định phát hành phiên bản 1.0 của chương trình giả lập của họ. Lập luận là nó sẽ không bao giờ thực sự "kết thúc" bởi vì sẽ luôn có nhiều game arcade hơn. Phiên bản 0.99 được theo sau đơn giản là phiên bản 0.100 (phiên bản nhỏ 100> 99). Theo cách tương tự, Xfire 1.99 được theo sau bởi 1.100. Sau 6 năm phát triển, eMule thậm chí chưa đạt đến phiên bản 0.5. Phiên bản phần mềm tại Wikipedia

Một phương pháp đánh số phiên bản phổ biến (mà tôi đã bắt đầu sử dụng) là Phiên bản ngữ nghĩa .

Theo sơ đồ này, số phiên bản và cách chúng thay đổi truyền đạt ý nghĩa về mã cơ bản và những gì đã được sửa đổi từ phiên bản này sang phiên bản tiếp theo.

Một số trích dẫn để cung cấp cho bạn thêm ý tưởng về cách thức hoạt động và / hoặc trả lời một số câu hỏi của bạn:

Làm cách nào để biết khi nào phát hành 1.0.0?

Nếu phần mềm của bạn đang được sử dụng trong sản xuất, có lẽ nó đã là 1.0.0. Nếu bạn có API ổn định mà người dùng đã phụ thuộc, bạn nên là 1.0.0. Nếu bạn lo lắng rất nhiều về khả năng tương thích ngược, có lẽ bạn đã là 1.0.0.

Điều này không ngăn cản sự phát triển nhanh chóng và lặp lại nhanh chóng?

Phiên bản chính số 0 là tất cả về sự phát triển nhanh chóng. Nếu bạn thay đổi API mỗi ngày, bạn vẫn nên ở phiên bản 0.xx hoặc trên một nhánh phát triển riêng làm việc trên phiên bản chính tiếp theo.

Nếu ngay cả những thay đổi ngược tương thích nhỏ nhất đối với API công khai yêu cầu một phiên bản chính, tôi sẽ không nhanh chóng kết thúc phiên bản 42.0.0 chứ?

Đây là một câu hỏi về phát triển có trách nhiệm và tầm nhìn xa. Những thay đổi không tương thích không nên được đưa vào phần mềm có nhiều mã phụ thuộc. Chi phí phải chịu để nâng cấp có thể là đáng kể. Phải vượt qua các phiên bản chính để phát hành các thay đổi không tương thích có nghĩa là bạn sẽ suy nghĩ về tác động của các thay đổi của mình và đánh giá tỷ lệ chi phí / lợi ích liên quan.

Ngoài ra còn có các quy tắc về cách chỉ định các bản phát hành "alpha," "beta", v.v. Kiểm tra các chi tiết tại http://semver.org/ .

[Chỉnh sửa] Một lược đồ đánh số phiên bản thú vị khác là một lược đồ MongoDB sử dụng :

MongoDB sử dụng các phiên bản số lẻ để phát hành phát triển.

Có 3 số trong phiên bản MongoDB: ABC

  • A là phiên bản chính. Điều này sẽ hiếm khi thay đổi và biểu thị những thay đổi rất lớn
  • B là số phát hành. Điều này sẽ bao gồm nhiều thay đổi bao gồm các tính năng và những thứ có thể phá vỡ khả năng tương thích ngược. Ngay cả Bs sẽ là các nhánh ổn định, và Bs lẻ ​​sẽ được phát triển.
  • C là số sửa đổi và sẽ được sử dụng cho các lỗi và vấn đề bảo mật.

Ví dụ:

  • 1.0.0: Bản phát hành GA đầu tiên
  • 1.0.x: sửa lỗi thành 1.0.x - rất khuyến khích nâng cấp, rất ít rủi ro
  • 1.1.x: phát hành phát triển. điều này sẽ bao gồm các tính năng mới chưa hoàn thành đầy đủ và đang hoạt động. Một số thứ có thể khác 1.0
  • 1.2.x: phát hành GA thứ hai. đây sẽ là đỉnh cao của phiên bản 1.1.x.

Wow, đó là ... một chỉnh sửa. Tôi sẽ nâng bạn lên một lần nữa nếu tôi có thể.
Pops

2
Cảm ơn! ^ _ ^ Tôi đoán đây là bản chỉnh sửa đẩy tôi lên 1.0.0? :)
Michelle Tilley


@RossPatterson Upvotes và chấp nhận là khác nhau về mặt ngữ nghĩa; Câu trả lời này có chứa rất nhiều thông tin tốt, nhưng tôi không nghĩ rằng đó là " những câu trả lời", vì vậy sự chấp nhận không cảm thấy đúng.
Pops

1

Tôi không nghĩ có một "tiêu chuẩn" như vậy.

Có một quy ước dành cho Ứng viên phát hành thường là "[phiên bản] RC 1", v.v. tùy thuộc vào số lượng phiên bản bạn nghĩ bạn có thể phát hành.

Nếu bạn đang phát hành phiên bản đầu tiên của sản phẩm - một phiên bản chưa hoàn thiện - thì bạn có thể muốn sử dụng phiên bản "0". Bằng cách đó, bạn có thể tăng phiên bản theo thời gian khi bạn điền vào bộ tính năng của mình.

Tôi sẽ sử dụng "Alpha" và "Beta" như Ứng viên phát hành - trong các phiên bản giới hạn thời gian để cho biết rằng bạn nghĩ rằng bạn sắp phát hành phiên bản đầy đủ.


Tôi đã nghĩ về điều này, nhưng tôi hoàn toàn không thể nghĩ về phiên bản 0 đại diện. Sự khác biệt giữa 0,1 và 0,2 và giữa 0,3.2 và 0,3.3 đồng thời làm và không có ý nghĩa với tôi theo mô hình "bản phát hành nhỏ" / "bản vá lỗi".
Pops

@ Lord - phải thừa nhận rằng đó là nơi nó rơi xuống ...
ChrisF

1

Có một trang Wikipedia về Phiên bản phần mềm . Để chia sẻ các phiên bản trước 1.0, quy ước được Apple và các công ty khác sử dụng hoạt động tốt: Major.minor.maintSrev trong đó S là chỉ số giai đoạn cho các phiên bản phát hành trước: d = phát triển, a = alpha, b = beta, rc = ứng cử viên phát hành. Vì vậy, phiên bản nội bộ đầu tiên của bạn có thể là 1.0.0d1.

Đối với sửa đổi hoàn toàn nội bộ, dấu thời gian là đủ.


0

Mỗi nhà phát triển phần lớn quyết định họ sẽ sử dụng tiêu chuẩn nào. Nói chung, mặc dù các con số ở bên trái của dấu thập phân cho thấy các sửa đổi lớn có thể rất đáng chú ý đối với người dùng trung bình (ví dụ: thay đổi chức năng hoặc giao diện, v.v.). Ở bên phải dấu thập phân, đây sẽ là một thay đổi / sửa đổi / bổ sung không thay đổi nhiều chức năng và thiết kế tổng thể nhưng đã thay đổi một cái gì đó về chính chương trình (nghĩa là tạo ra một chức năng nhanh hơn trong khi vẫn làm điều tương tự hoặc cố định một vấn đề bảo mật). Sau đó, nếu bạn thêm các điểm thập phân bổ sung, các số ở bên phải sẽ chỉ ra các thay đổi ngày càng nhỏ hơn (ví dụ: sửa lỗi nhỏ / các vấn đề bảo mật và như vậy).


Đây sẽ là một câu trả lời tốt cho một số câu hỏi liên quan mà tôi đã liệt kê trong bài đăng của mình - và trên thực tế, khá giống với một số câu trả lời hiện có cho những câu hỏi đó - nhưng không thực sự giải quyết trường hợp "phiên bản không" Tôi đang hỏi về.
Pops

Tại sao không? Mọi thứ bắt đầu với 0 trong khoa học máy tính ...
Kenneth

Thành thật mà nói, người / người duy nhất số phiên bản có ý nghĩa quan trọng là (các) nhà phát triển. Đối với người dùng, nó chỉ có ý nghĩa tương đối. Vì vậy, cuối cùng các nhà phát triển có thể sử dụng các chương trình mà họ cảm thấy như thế nào.
Kenneth

0

Như những người khác đã nói, dường như không có một tiêu chuẩn chính xác. Tổ chức của chúng tôi sử dụng ký hiệu sau:

Phiên bản 1.0 ---> 2.0 (Một tính năng mới / cải tiến chính được thêm vào sản phẩm)

Phiên bản 1.0 ---> 1.1 (Một tính năng mới / cải tiến ở mức trung bình được thêm vào sản phẩm)

Phát hành 1.0 ---> 1.001 (Sửa lỗi)


1
"1.0 ---> 1.001 (Sửa lỗi)" Thật sao? Tại sao không phải là 1.0.1? Điều đó bình thường hơn. Điều gì xảy ra nếu bạn có 100 bản sửa lỗi?
James

@James - Điều đó sẽ KHÔNG BAO GIỜ xảy ra (Những từ nổi tiếng cuối cùng tôi biết lol). Nghiêm túc mà nói, chúng tôi chưa bao giờ đạt tới 100 lỗi một lần và do đó, số phát hành phụ luôn thay đổi trước khi chúng tôi đạt đến giới hạn này (1.1,1.2,1.3, v.v.). Nếu chúng tôi đã đạt đến giới hạn thì chúng tôi có thể phải tăng số lượng phát hành phụ - nó sẽ được tính là một tính năng được cải thiện ở mức trung bình / cấp với nhiều bản sửa lỗi.
Dal

0

Cột mốc "phiên bản 1.0" rất quan trọng đối với người dùng máy tính có kinh nghiệm, vì nó ngụ ý rằng chương trình được thực hiện và hoạt động như mong đợi. Bất cứ điều gì trong phiên bản "0. một cái gì đó" ngụ ý rằng chính các lập trình viên nghĩ rằng chương trình chưa được thực hiện .

Bạn có thể giữ các số phiên bản "0,1", "0,2" ... cho các thành tựu chính của chức năng và sau đó đặt nó với số bản dựng thường là ngày và dấu thời gian đủ chi tiết.


Đối với phát triển thương mại, 1.0 thường xuyên có nghĩa là nó có lỗi, không đầy đủ và sẽ sớm trải qua các thay đổi.
David Thornley
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.