놀람이 적다는 원칙

Principle of least astonishment

최소 놀라움의 원칙(POLA)[1][2]사용자 인터페이스와 소프트웨어 설계[3]적용됩니다.이는 시스템의 구성요소가 대부분의 사용자가 예상하는 방식으로 동작해야 한다고 제안합니다.이 동작으로 인해 사용자가 놀라거나 놀라지 않도록 해야 합니다.다음은 이 원칙에 대한 공식 진술입니다. "필요한 기능이 높은 놀라운 요소를 가지고 있다면,[4] 기능을 재설계할 필요가 있을 수 있습니다."

이 용어는 적어도 1970년대부터 [5]컴퓨터 사용과 관련하여 사용되어 왔다.컴퓨터 기술 분야에서 처음 공식화되었지만, 이 원리는 다른 분야에서도 폭넓게 적용될 수 있습니다.예를 들어, 글쓰기에서, 작품의 다른 부분이나 하이퍼링크로의 상호 참조는 독자에게 무엇을 예상해야 하는지를 정확하게 알려주는 방식으로 표현되어야 한다.배스 낚시에 관한 책에서 어획 방법에 관한 레시피는 제4장을 참조해 주십시오.라고 하면, 다양한 장소에서의 배스 낚시의 계절에 관한 장으로 이어지지 않습니다.

공식화

교과서 공식은 다음과 같습니다. "사람들은 시스템의 일부입니다.디자인은 사용자의 경험, 기대 및 정신 [6]모델에 부합해야 합니다."

이 원칙은 사용자의 기존 지식을 활용하여 학습 곡선을 최소화하는 것을 목적으로 하며, 예를 들어 "사용자가 친숙할 가능성이 높은 기능적으로 유사하거나 유사한 프로그램"[1]에서 크게 차용한 인터페이스를 설계합니다.이 점에서 사용자의 기대는 특정 컴퓨팅 플랫폼 또는 전통과 밀접하게 관련되어 있을 수 있습니다.예를 들어 Unix 명령줄 프로그램은 스위치[1]관한 특정 규칙을 따르고 Microsoft Windows 프로그램의 위젯은 키보드 [7]단축키에 관한 특정 규칙을 따를 것으로 예상됩니다.API와 같은 보다 추상적인 설정에서는 함수 또는 메서드 이름이 직관적으로 동작과 일치할 으로 기대하는 것도 하나의 [8]예입니다.이 관행에는 합리적[4]디폴트 적용도 포함됩니다.

인터페이스의 두 요소가 충돌하거나 애매한 경우, 그 동작은 사용자를 가장 놀라게 하지 않는 것이어야 합니다.특히 프로그래머는 프로그램의 [4]내부 동작을 아는 것으로부터 자연스러운 행동보다는 프로그램을 사용하는 사람을 가장 놀라게 하지 않는 행동을 생각하도록 노력해야 합니다.

"가장 놀라운" 동작은 예상 대상자(최종 사용자, 프로그래머, 시스템 관리자 [1]등)에 따라 선택할 수 있습니다.

키보드 단축키를 제공하는 웹 사이트에서는 키를 누를 수 있는 경우가 많습니다.? 사용 가능한 단축키를 표시합니다.예를 들어 Gmail[10]Jira가 있습니다[9].

Windows operating system 및 Linux 의 일부의 데스크탑 환경에서는, 통상은, 기능 키에 의해서 애플리케이션헬프 프로그램이 열립니다.MacOS의 키보드 단축키는 ++⇧ Shift/입니다.사용자가 일반적인 도움말 바로 가기 키를 누르면 도움말 창 또는 컨텍스트 메뉴가 나타납니다.대신 이 바로 가기를 다른 기능에 사용하는 소프트웨어는 도움말이 표시되지 않으면 깜짝 [11]놀랄 수 있습니다.

프로그래밍 언어의 표준 라이브러리는 보통 의사 코드와 유사한 함수를 제공합니다. ParseInteger(string, radix)이 명령어는 사람이 입력한 숫자의 문자열에서 기계로 변환된 정수를 만듭니다.일반적으로 기수는 10으로 설정되어 있습니다.즉, 문자열은 10진수(기본값 10)로 해석됩니다.이 함수는 일반적으로 이진수(기본값 2) 및 8진수(기본값 8)와 같은 다른 기본값을 지원하지만 명시적으로 지정된 경우에만 지원합니다. 규칙에서 벗어나 자바스크립트는 원래 "0"으로 시작하는 문자열에 대해 기본 8을 사용하므로 개발자의 혼란과 소프트웨어 [12]버그가 발생합니다.이는 ECMAScript 3에서는 권장되지 않았으며 ECMAScript [13]5에서는 폐기되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c d Raymond, Eric Steven (2003). "Applying the Rule of Least Surprise". The Art of Unix Programming. faqs.org. p. 20. ISBN 978-0-13-142901-7. Retrieved 2020-08-23.
  2. ^ James, Geoffrey (1987). Law of Least Astonishment. The Tao of Programming. 4.1. ISBN 0-931137-07-1. Retrieved 2014-02-05.
  3. ^ Seebach, Peter (2001-08-01). "The Principle of Least Astonishment". The cranky user. IBM DeveloperWorks. Retrieved 2014-01-23.
  4. ^ a b c Cowlishaw, M. F. (1984). "The design of the REXX language" (PDF). IBM Systems Journal. 23 (4): 333. doi:10.1147/sj.234.0326. Retrieved 2014-01-23. Could there be a high astonishment factor associated with the new feature? If a feature is accidentally misapplied by the user and causes what appears to him to be an unpredictable result, that feature has a high astonishment factor and is therefore undesirable. If a necessary feature has a high astonishment factor, it may be necessary to redesign the feature.
  5. ^ "Default Batch Priority - User Survey". Computing Center Newsletter. Michigan: University of Michigan. 1978-04-05. Retrieved 2020-08-25.
  6. ^ Saltzer, J. H.; Kaashoek, Frans (2009). Principles of computer system design: an introduction. Morgan Kaufmann. p. 85. ISBN 978-0-12-374957-4.
  7. ^ Petroutsos, Evangelos (2010). Mastering Microsoft Visual Basic 2010. Wiley. p. 133. ISBN 978-0-470-53287-4.
  8. ^ Bloch, Joshua (2006). "How to design a good API and why it matters". Proceeding OOPSLA '06 Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. Association for Computing Machinery. pp. 506–7. doi:10.1145/1176617.1176622. ISBN 1-59593-491-X. S2CID 27230400.
  9. ^ Vivian (2013-06-21). "Keyboard shortcuts for Gmail". Google Inc. Retrieved 2013-07-27.
  10. ^ "Using Keyboard Shortcuts". Atlassian. Retrieved 2013-07-27.
  11. ^ Keizer, G. (1 March 2010). "Microsoft: Don't press F1 key in Windows XP". Computerworld. Retrieved 10 Nov 2019.
  12. ^ "Why does the radix for JavaScript's parseInt default to 8?". Stack Overflow. 8 April 2011.
  13. ^ "parseInt()", Mozilla Developer Network (MDN), If the input string begins with "0" (a zero), radix is assumed to be 8 (octal) or 10 (decimal). Exactly which radix is chosen is implementation-dependent. ECMAScript 5 clarifies that 10 (decimal) should be used, but not all browsers support this yet.

외부 링크