Cách mô tả quá trình hay hơn của Id Id Proof Proof là một phần mềm [đã đóng]


13

Đối với tôi, Idiot Proofing chỉ có nghĩa là đảm bảo người dùng không thể phá vỡ một phần mềm ngay cả khi anh ta đã thử. Chẳng hạn, nếu một giá trị được đọc từ hộp văn bản và được chuyển đổi thành gấp đôi, nếu phần mềm cơ bản là bằng chứng ngốc, nó sẽ không bị hỏng nếu người dùng nhập vào giá trị không gấp đôi.

Gần đây tôi đã viết lên một lịch trình phát triển và một trong những mục được đặt tên là "UI chứng minh ngốc". Những người tôi đang xây dựng phần mềm này đã đùa cợt phạm tội với thuật ngữ này, nhưng tôi có thể thấy thuật ngữ này thực sự sẽ khiến mọi người khó chịu.

Cách nào tốt hơn để nói điều này?


23
Gọi nó, Chứng minh ID-10T
Jarrod Nettles

2
Lol, tôi nhận ra 1337 khi tôi googled ID-10T. tôi thất bại ...
tăng vọt

13
Câu hỏi này làm tôi nhớ đến một trong những câu nói yêu thích của tôi: "Lập trình ngày nay là cuộc đua giữa các kỹ sư phần mềm cố gắng xây dựng các chương trình chứng minh ngu ngốc lớn hơn và tốt hơn, và Vũ trụ đang cố gắng tạo ra những kẻ ngốc lớn hơn và tốt hơn. Cho đến nay, Vũ trụ đang chiến thắng. " ~ Rich Cook
KallDrexx

3
hows về kỹ thuật cơ bản?
jk.

4
"Không có gì có thể làm cho ngu ngốc, bởi vì những kẻ ngốc rất tài tình."
M.Sameer

Câu trả lời:


27

Nếu bạn đang đưa "UI chứng minh ngốc" làm mục lịch biểu thì bạn chỉ đang cố gắng thêm chất lượng sau đó vào phần mềm của mình. Bất kỳ hệ thống được thiết kế tốt nào cũng sẽ xác nhận các đầu vào của nó và đưa ra hướng dẫn rõ ràng cho người dùng như một vấn đề tất nhiên, đó không phải là thứ được đưa vào lịch trình dưới dạng một mục riêng biệt (sau đó có thể bị loại bỏ khi va chạm không thể tránh khỏi).

Ngoài ra, nếu nó phải là một mục riêng biệt (tôi biết một số tổ chức nghĩ về việc lên lịch như thế nào), "UI chứng minh ngốc" nên được đổi thành "Thư viện xác thực đầu vào" và chuyển đến phía trước lịch trình.


2
+1. Nếu bạn đang cố gắng thêm bất kỳ loại xác thực đầu vào nào sau khi thực tế, bạn đã mất khá nhiều. Tốt hơn là có một điểm đứng trong thông số kỹ thuật, "phần mềm phải duyên dáng xử lý các đầu vào không hợp lệ ở bất cứ đâu". Chính xác làm thế nào để "duyên dáng" xử lý đầu vào không hợp lệ phụ thuộc rất nhiều vào những gì phần mềm đang làm tại thời điểm cụ thể đó. Đối với các UI rất đơn giản (có lẽ là ATM), thậm chí có thể làm cho các đầu vào không hợp lệ là không thể .
CVn

14
+1. Chống ngớ ngẩn không phải là một nhiệm vụ. Ngốc chứng là một hệ quả của thiết kế tốt.
S.Lott

4
Chống ngớ ngẩn là một quá trình đang diễn ra - bởi vì vũ trụ tiếp tục sản xuất những kẻ ngốc ngày càng tài tình
Steven A. Lowe

Mặc dù nghe có vẻ sai và thừa, hãy tính đến việc cả người thiết kế giao diện và người thử nghiệm beta đều biết bản thiết kế và thiết kế chung của phần mềm, và có thể không nhận ra (bỏ qua) rằng thực tế có một điều gì đó hoàn toàn rõ ràng đối với họ hoàn toàn gây trở ngại cho một người dùng thông thường. "Thử nghiệm và gỡ lỗi các quyết định thiết kế UI" là những gì nó có thể được gọi. Xác thực đầu vào là một điều, để người dùng hiểu những gì nên được nhập vào nơi khác.
SF.

Đối với tất cả những người ủng hộ: ... bất cứ điều gì bạn làm, bạn sẽ luôn quên điều gì đó. Phần mềm phức tạp đến mức có một đội làm cho mọi thứ "hoàn hảo" trong lần chụp đầu tiên gần như không thể đạt được. Đó là lý do tại sao kiểm tra là cần thiết. Để phát hiện sai sót và thiếu sót, hoặc thậm chí những điều không ai nghĩ tới. Một "UI chứng minh ngu ngốc" như vậy là chính xác những gì được yêu cầu.
dagnelies

10

Xác thực đầu vào của người dùng mà tôi nghĩ sẽ là một thuật ngữ chuyên nghiệp. Tôi không thấy có gì sai với việc chứng minh tên ngốc nếu được sử dụng trong các tài liệu nội bộ.


3
Bạn đã cho tôi tại "xác thực đầu vào của người dùng." Chứng minh ngu ngốc là một thuật ngữ không chuyên nghiệp bất kể nó được sử dụng ở đâu.
Robert Harvey

2
Dù bạn làm gì, đừng viết nó ra bằng văn bản.
JeffO

6

Làm cứng là một từ tốt. Nếu có ai hỏi, hãy nói cho họ biết phần mềm đầu tiên thường được viết cho các tình huống lý tưởng và cũng giống như các công cụ bằng thép, phần mềm cần được "làm cứng" đối với việc sử dụng hàng ngày của khách hàng thực.

Mạnh mẽ là một từ tốt khác cho điều này - bạn đang làm cho mã trở nên mạnh mẽ đối với các loại thách thức mà khách hàng thực sự sẽ đưa ra.

Cả hai từ nghe có vẻ hay và công nghiệp, đừng đổ lỗi cho người dùng hoặc lập trình viên, và hiểu ý.


BTW, đây là linh vật cũ của Metrowerks, Arnold, người đã từng giúp chúng tôi lập trình viên Mac làm cứng và củng cố mã của chúng tôi bằng lò xử lý nhiệt, lò rèn và búa đe và búa nhỏ:


cứng hóa thường đề cập đến khả năng chịu lỗi của phần cứng cơ bản - hoặc khả năng chống lại tia gamma ;-) sự mạnh mẽ có thể có nghĩa là rất nhiều thứ
Steven A. Lowe

@Steven: Vâng, vâng. Nhưng điều này là để liên lạc với những gì có lẽ là khán giả phi kỹ thuật, và câu hỏi thực sự là làm thế nào để "xoay" nhiệm vụ sao cho nó phù hợp với những người đó.
Bob Murphy

điều đó có ý nghĩa; khán giả phi kỹ thuật có thể đã thấy quảng cáo truyền hình cho máy tính xách tay 'cứng'. Vì vậy, họ sẽ nghĩ việc thả phần mềm của bạn xuống 3 feet vào bê tông là ổn ;-)
Steven A. Lowe

@Steven: Yup, và nếu họ đã xem quảng cáo máy tính xách tay mới nhất của Toshiba, họ cũng sẽ nhận ra rằng nếu họ không cho bạn thời gian và tài nguyên để làm cứng phần mềm, nó sẽ mang đến Ngày tận thế Zombie. B ^)
Bob Murphy

4

Lập trình phòng thủ

Là những gì tôi đã được dạy. Quay lại khi chúng tôi phải tự cắt gỗ ra khỏi gỗ.

Nếu bạn muốn trở thành PC, hãy gọi nó là lập trình "dự đoán".


4

Khi tôi đang học, chúng tôi gọi nó là chống đạn .

Mặc dù vậy, hầu hết các uyển ngữ khác mà tôi đã đọc cũng áp dụng.



3

"Chứng minh ngốc" nên bao gồm cả hai

  • thiết kế giao diện người dùng sao cho thân thiện với người dùng và dẫn người dùng nhập dữ liệu theo cách mà các lập trình viên mong đợi và

  • kiểm tra giao diện người dùng để xác định xem giao diện có thể bị phá vỡ hay không bằng cách nhập các giá trị dữ liệu không mong muốn.

Cả hai bước có thể xuất hiện hợp lý trong lịch trình phát triển trong đó thiết kế được kiểm tra bởi chuyên gia về trải nghiệm người dùng và nơi mã được phân phối được kiểm tra để đảm bảo rằng dữ liệu không hợp lệ được xử lý chính xác (đối với bất kỳ ý nghĩa "chính xác" nào đối với ứng dụng của bạn).


Bạn đã không trả lời câu hỏi đã được hỏi.
Robert Harvey

@Robert - Tôi tin rằng tôi đã làm. Cách tốt hơn để nói "chứng minh kẻ ngốc" là "xem xét thiết kế để cải thiện sự thân thiện với người dùng" hoặc "kiểm tra xem giao diện xử lý dữ liệu không hợp lệ" tùy theo ý nghĩa của "chứng minh kẻ ngốc".
Hang Justin

Được rồi, cái đó có lý.
Robert Harvey

2

Chứng minh ngu ngốc liên quan đến nhiều hơn so với xác nhận đầu vào đơn giản. Tôi thậm chí sẽ không bao gồm một điều như vậy trong định nghĩa của nó.

Xác thực đầu vào là một quá trình trong đó bạn vệ sinh và xác thực dữ liệu người dùng để loại bỏ các giá trị bất hợp pháp / vô nghĩa. Điều này phải luôn luôn được thực hiện với bất kỳ thông tin nào đến từ bên ngoài chương trình của bạn để loại bỏ sự rõ ràng cũng như bảo vệ bản thân khỏi các cuộc tấn công (ví dụ như các cuộc tấn công tiêm sql).

Tôi sẽ coi việc chứng minh kẻ ngốc là một tập hợp logic để giữ cho người dùng không vô tình gây ra thiệt hại lớn cho anh ta thông qua các biện pháp hợp pháp.

Ví dụ, thực hiện rmtừ chối lệnh rm -rf /và các biến thể đóng không liên quan gì đến xác nhận hoặc tính chính xác. Đó là một lệnh hoàn toàn hợp lệ. Thật không may, đó là một lệnh có thể và có thể xóa sạch tất cả dữ liệu của bạn khỏi tất cả các ổ đĩa trong Unix / Linux. Kẻ ngốc chứng minh điều này sẽ từ chối lệnh này và sẽ đề xuất rm -rf --i-really-mean-this /, hoặc nếu ở chế độ tương tác, hãy gõ người dùng vào câu trả lời khẳng định sau một cảnh báo.

Bất cứ điều gì phá hoại hệ thống nên được chứng minh là ngu ngốc. Bất cứ điều gì có thể gây ra sự bối rối tiềm ẩn cũng có thể là một ứng cử viên (ví dụ: "bạn có chắc chắn muốn gửi email này mà không có tệp đính kèm mặc dù bạn đã đề cập đến một trong văn bản của mình không?", Và "bạn có chắc chắn muốn gửi email này đến toàn bộ công ty?")

Chống ngớ ngẩn là sự hợp tác giữa QA (cố gắng trở thành kẻ ngốc tốt nhất) và Phát triển (cố gắng dự đoán tất cả các kịch bản này và thiết kế xung quanh chúng).

Đối với một từ đồng nghĩa thân thiện hơn , tôi có thể đề xuất "phân tích đường dẫn mã phá hủy" hoặc "cho phép phản hồi của người dùng cho các hoạt động quan trọng". Bất cứ điều gì bạn có thể gọi nó, bạn thực sự nên bắt đầu nó càng sớm trong quá trình thiết kế càng tốt.


1

"Kiểm tra vệ sinh" có xu hướng hoạt động khá tốt thường xuyên ...


3
Đối với tôi, "kiểm tra sự tỉnh táo" có nghĩa là về điều tương tự như "khẳng định": đảm bảo rằng trạng thái bên trong là chính xác. Không thực sự giống như xác nhận đầu vào bên ngoài.
Mason Wheeler

@Mason, tôi nghĩ rằng nó là kiểm tra trạng thái của hệ thống, tại tất cả các điểm, cho đầu vào hợp lệ có ý nghĩa. Ví dụ: kiểm tra xem ngày kết thúc là sau ngày bắt đầu, ngoài việc kiểm tra đầu vào rác, v.v. Tôi cũng thấy quan điểm của bạn và đồng ý với bạn.
Marlon


1

"Xử lý lỗi" hoặc "xác thực đầu vào" sẽ là các thuật ngữ khác tôi sử dụng cho những gì bạn mô tả. Bulletproof sẽ là một thuật ngữ khác mà tôi có thể thấy được sử dụng trong một số vòng tròn vì ý tưởng ở đây là làm cho phần mềm đủ mạnh để xử lý hầu hết mọi thứ. Rock solid sẽ là một cụm từ tiếng lóng khác mà tôi có thể tưởng tượng ai đó cũng muốn sử dụng ở đây.


1

"Chứng minh trường hợp xấu nhất". Bởi vì, là nhà phát triển, tất cả chúng ta đều biết rằng nếu nó có thể được thực hiện, thì nó sẽ được thực hiện . Vì vậy, bạn chỉ cần chuẩn bị để xử lý tình huống tình huống xấu nhất đó với phần mềm của bạn.

Các biện pháp bảo mật không chỉ là một cách để bảo vệ người dùng chống lại các cuộc xâm lược trên mạng mà còn chống lại chính họ. Chúng ta sống trong một thế giới không hoàn hảo với những người dùng không hoàn hảo.


1

Mạ vàng là thuật ngữ lịch sự (và âm thanh rất tích cực) tôi sử dụng khi nói về việc cải thiện trải nghiệm giao diện người dùng cuối theo bất kỳ cách nào (GUI hoặc cách khác).

Chứng minh ngu ngốc, như bạn nói, là phần lớn nhất của quy trình đó, cùng với cải tiến thiết kế hoặc quy trình làm việc (nghĩ rằng xác nhận phản hồi của người dùng cuối).

Ý tưởng ở đây là bạn có thể sử dụng thuật ngữ đó một cách tự do trong môi trường làm việc và nó được coi là một quá trình có giá trị (sau khi hoàn thành) bởi cả người quản lý và người dùng, mặc dù có thể mất một thời gian (và do đó thường tốn một số tiền).

nhiều thuật ngữ khác liên quan đến quá trình này (thường là cuối chu kỳ) làm cho nó nghe giống như quá trình này:

  • ngụ ý người dùng (thường quản lý ;-) bị câm
  • khó đạt được
  • có ít giá trị ròng

Bằng cách liên kết vàng với quy trình (kim loại thường tương đương với "giá trị" thay vì "chi phí"), tôi đã thấy quá trình này được thay đổi từ chi phí sang đầu tư vào một số tư duy của nhà quản lý.

Nó giống như công khai tuyên bố rằng cho đến khi điều này được thực hiện, mảnh thép vụng đó vẫn chưa phải là đồ trang sức. Nhưng một khi nó được mạ ... thì nó có giá trị.


Tôi thấy cách thuật ngữ này hoạt động cho khán giả của bạn. Đối với hầu hết các nhà quản lý, mạ vàng sẽ là thứ đầu tiên được cắt ra từ dự án. Nói cách khác, những phần không cần thiết.
Gilbert Le Blanc

Kỳ quặc - Tôi thấy thuật ngữ "mạ vàng" có nghĩa là bạn đang lãng phí thời gian để làm một việc gì đó không cải thiện chức năng . Đảm bảo đầu vào hợp lệ, vv không đề nghị cải thiện chức năng và do đó là (theo định nghĩa của tôi) không mạ vàng.
ChrisF

chi tiết là mạ vàng không cải thiện phần mềm bên trong. nó chỉ cải thiện khía cạnh bên ngoài của nó. Tôi sử dụng nó khi những người không chuyên về công nghệ có liên quan cụ thể vì nó không liên quan đến một phần cụ thể của quá trình kết thúc chu trình. Mọi người hiểu nó như là, một khi mạ vàng được thực hiện, nó đẹp, dễ sử dụng và có giá trị gia tăng. nó không chỉ là một phần mềm xù lông.
moliad

Theo kinh nghiệm của tôi, mạ vàng thường được sử dụng để mô tả các phần mềm với các tính năng không cần thiết , tức là như một từ đồng nghĩa với bloatware .
Đánh dấu gian hàng

yeah, chỉ cần làm một nghiên cứu nhỏ và thấy rằng thuật ngữ này đôi khi được sử dụng theo cách đó trong văn học (cảm ơn vì nhận xét). Điều thú vị là ở nhiều nơi tôi từng làm việc, việc chứng minh kẻ ngốc được coi là mạ vàng theo nghĩa này (Nó thực sự phụ thuộc vào loại công việc bạn đoán).
moliad

1

Thường xuyên sử dụng liên quan đến các quy trình sản xuất nhưng tôi nghĩ rằng một sự phù hợp thực sự tốt là Poka-Yoke :

"[poka yo-ke] là một thuật ngữ tiếng Nhật có nghĩa là" không an toàn "hoặc" chống lỗi "

Ban đầu nó được mô tả là baka-ách, nhưng vì điều này có nghĩa là "chống lừa" (hay "chống ngớ ngẩn"), tên đã được đổi thành poka-ách nhẹ hơn.

Nhìn rộng hơn, thuật ngữ này có thể đề cập đến bất kỳ ràng buộc định hình hành vi nào được thiết kế thành sản phẩm để ngăn người dùng hoạt động không chính xác. "


1

Một thuật ngữ phổ biến trong các cửa hàng lớn hơn cũng là Đảm bảo chất lượng (QA) .

Đây là một thuật ngữ chung, mơ hồ về mục đích mà bạn có thể nhào nặn theo ý nghĩa cụ thể của riêng bạn trong chu kỳ phát hành.


0

Chúng tôi gọi đó là Chứng minh con người. Chúng ta đều là những kẻ ngốc.

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.