diff options
-rw-r--r-- | translations/vi.md | 1035 |
1 files changed, 1035 insertions, 0 deletions
diff --git a/translations/vi.md b/translations/vi.md new file mode 100644 index 0000000..b36e604 --- /dev/null +++ b/translations/vi.md @@ -0,0 +1,1035 @@ +# 💻📖 luáºt của hacker + +Laws, Theories, Principles and Patterns that developers will find useful. + +[Translations](#translations): [🇮🇩](./translations/id.md) [🇧🇷](./translations/pt-BR.md) [🇨🇳](https://github.com/nusr/hacker-laws-zh) [🇩🇪](./translations/de.md) [🇫🇷](./translations/fr.md) [🇬🇷](./translations/el.md) [🇮🇹](https://github.com/csparpa/hacker-laws-it) [🇱🇻](./translations/lv.md) [🇰🇷](https://github.com/codeanddonuts/hacker-laws-kr) [🇷🇺](https://github.com/solarrust/hacker-laws) [🇪🇸](./translations/es-ES.md) [🇹🇷](https://github.com/umutphp/hacker-laws-tr) [🇯🇵](./translations/jp.md) [🇺🇦](./translations/uk.md) + +Like this project? Please considering [sponsoring me](https://github.com/sponsors/dwmkerr) and the [translators](#translations). Also check out this podcast on [The Changelog - Laws for Hackers to Live By](https://changelog.com/podcast/403) to learn more about the project! You can also [download the latest PDF eBook](https://github.com/dwmkerr/hacker-laws/releases/latest/download/hacker-laws.pdf). Check the [Contributor Guide](./.github/contributing.md) if you are keen to contribute! + +--- + +<!-- vim-markdown-toc GFM --> + +- [Introduction](#introduction) +- [Laws](#laws) + - [90–9–1 Principle (1% Rule)](#9091-principle-1-rule) + - [Amdahl's Law](#amdahls-law) + - [Lý thuyết cá»a sổ vỡ](#the-broken-windows-theory) + - [Brooks' Law](#brooks-law) + - [CAP Theorem (Brewer's Theorem)](#cap-theorem-brewers-theorem) + - [Äịnh luáºt Conway](#conways-law) + - [Äịnh luáºt Cunningham](#cunninghams-law) + - [Dunbar's Number](#dunbars-number) + - [Hiệu ứng Dunning-Kruger](#the-dunning-kruger-effect) + - [Luáºt Fitts](#fitts-law) + - [Luáºt Gall](#galls-law) + - [Luáºt Goodhart](#goodharts-law) + - [Hanlon Razor](#hanlons-razor) + - [Luáºt Hick (Luáºt Hick-Hyman)](#hicks-law-hick-hyman-law) + - [Äịnh luáºt Hofstadter](#hofstadters-law) + - [Äịnh luáºt Hutber](#hutbers-law) + - [Chu kỳ Hype & Äịnh luáºt Amara](#the-hype-cycle--amaras-law) + - [Luáºt Hyrum (Luáºt của giao diện ngầm)](#hyrums-law-the-law-of-implicit-interfaces) + - [Äịnh luáºt Kernighan](#kernighans-law) + - [Luáºt Linus](#linuss-law) + - [Äịnh luáºt Metcalfe](#metcalfes-law) + - [Äịnh luáºt Moore](#moores-law) + - [Äịnh luáºt Murphy / Äịnh luáºt Sod](#murphys-law--sods-law) + - [Dao cạo của Occam](#occams-razor) + - [Äịnh luáºt Parkinson](#parkinsons-law) + - [Hiệu ứng tối Æ°u sá»›m](#premature-optimization-effect) + - [Äịnh luáºt Putt](#putts-law) + - [Luáºt Reed](#reeds-law) + - [Äịnh luáºt Bảo toà n Äá»™ phức tạp (Äịnh luáºt Tesler)](#the-law-of-conservation-of-complexity-teslers-law) + - [Äịnh luáºt Demeter](#the-law-of-demeter) + - [Luáºt Sá»± rò rỉ của Trừu tượng](#the-law-of-leaky-abstractions) + - [Luáºt tầm thÆ°á»ng](#the-law-of-triviality) + - [Triết lý Unix](#the-unix-philosophy) + - [Mô hình Spotify](#the-spotify-model) + - [Quy tắc hai chiếc bánh pizza](#the-two-pizza-rule) + - [Luáºt Wadler](#wadlers-law) + - [Äịnh luáºt Wheaton](#wheatons-law) +- [Nguyên tắc](#principles) + - [Tất cả các mô hình Ä‘á»u sai (Äịnh luáºt George Box)](#all-models-are-wrong-george-boxs-law) + - [Chesterson's Fence](#chestersons-fence) + - [Hiệu ứng Biển Chết](#the-dead-sea-effect) + - [Nguyên tắc Dilbert](#the-dilbert-principle) + - [Nguyên tắc Pareto (Quy tắc 80/20)](#the-pareto-principle-the-8020-rule) + - [Nguyên tắc Shirky](#the-shirky-principle) + - [Nguyên tắc Peter](#the-peter-principle) + - [Nguyên tắc mạnh mẽ (Äịnh luáºt Postel)](#the-robustness-principle-postels-law) + - [SOLID](#solid) + - [Nguyên tắc Trách Nhiệm Duy Nhất](#the-single-responsibility-principle) + - [Nguyên tắc Mở / Äóng](#the-openclosed-principle) + - [Nguyên tắc thay thế Liskov](#the-liskov-substitution-principle) + - [Nguyên tắc phân tách giao diện](#the-interface-segregation-principle) + - [Nguyên tắc đảo ngược phụ thuá»™c](#the-dependency-inversion-principle) + - [Nguyên tắc DRY](#the-dry-principle) + - [Nguyên tắc KISS](#the-kiss-principle) + - [YAGNI](#yagni) + - [Sá»± sụp đổ của máy tÃnh phân tán](#the-fallacies-of-distributed-computing) +- [Danh sách Ä‘á»c](#reading-list) +- [Những nguồn thông tin trên mạng](#online-resources) +- [Sách Ä‘iện tá» PDF](#pdf-ebook) +- [Tệp âm thanh](#podcast) +- [Bản dịch](#translations) +- [Các dá»± án liên quan](#related-projects) +- [Äóng góp](#contributing) +- [SẼ LÀM](#todo) + +<!-- vim-markdown-toc --> + +## Giá»›i thiệu + +Có rất nhiá»u luáºt mà má»i ngÆ°á»i thảo luáºn khi nói vá» phát triển. Kho lÆ°u trữ nà y là tà i liệu tham khảo và tổng quan vá» má»™t số kho lÆ°u trữ phổ biến nhất. Hãy chia sẻ và gá»i bà i PR! + +â—: Kho lÆ°u trữ nà y chứa giải thÃch vá» má»™t số luáºt, nguyên tắc và khuôn mẫu, nhÆ°ng không *ủng há»™* bất kỳ Ä‘iá»u nà o trong số đó. Liệu chúng có nên được áp dụng hay không sẽ luôn là vấn Ä‘á» tranh luáºn và phụ thuá»™c rất nhiá»u và o những gì bạn Ä‘ang là m. + +## Luáºt + +Và chúng ta bắt đầu! + +### Nguyên tắc 90–9–1 (Quy tắc 1%) + +[Quy tắc 1% trên Wikipedia](https://en.wikipedia.org/wiki/1%25_rule_(Internet_culture)) + +Nguyên tắc 90-9-1 gợi ý rằng trong má»™t cá»™ng đồng internet nhÆ° wiki, 90% ngÆ°á»i tham gia chỉ xem ná»™i dung, 9% chỉnh sá»a hoặc sá»a đổi ná»™i dung và 1% ngÆ°á»i tham gia thêm ná»™i dung. + +Và dụ trong thế giá»›i thá»±c: + +- Má»™t nghiên cứu năm 2014 trên bốn mạng xã há»™i vá» sức khá»e, cho thấy 1% ngÆ°á»i dùng hà ng đầu tạo ra 73% bà i đăng, 9% tiếp theo chiếm trung bình ~ 25% và 90% còn lại chiếm trung bình 2% ( [Tham khảo](https://www.jmir.org/2014/2/e33/) ) + +Xem thêm: + +- [Nguyên tắc Pareto](#the-pareto-principle-the-8020-rule) + +### Äịnh luáºt Amdahl + +[Luáºt Amdahl trên Wikipedia](https://en.wikipedia.org/wiki/Amdahl%27s_law) + +> Äịnh luáºt Amdahl là má»™t công thức cho thấy *tốc Ä‘á»™ tiá»m năng* của má»™t tác vụ tÃnh toán có thể đạt được bằng cách tăng tà i nguyên của má»™t hệ thống. ThÆ°á»ng được ứng dụng trong tÃnh toán song song, nó có thể dá»± Ä‘oán lợi Ãch thá»±c tế của việc tăng số lượng bá»™ xá» lý, Ä‘iá»u nà y bị giá»›i hạn bởi khả năng song song của chÆ°Æ¡ng trình. + +Minh há»a tốt nhất vá»›i má»™t và dụ. Nếu má»™t chÆ°Æ¡ng trình có hai phần: phần A, phần nà y chỉ có thể thá»±c hiện bằng má»™t bá»™ xá» lý Ä‘Æ¡n lẻ và phần B, có thể được thá»±c hiện song song trên nhiá»u bá»™ xá» lý, thì chúng ta thấy rằng việc thêm nhiá»u bá»™ xá» lý và o hệ thống thá»±c thi chÆ°Æ¡ng trình chỉ có thể có má»™t lợi Ãch hạn chế. Nó có khả năng cải thiện đáng kể tốc Ä‘á»™ của phần B - nhÆ°ng tốc Ä‘á»™ của phần A sẽ không thay đổi. + +SÆ¡ đồ dÆ°á»›i đây cho thấy má»™t số và dụ vá» những cải tiến tiá»m năng vá» tốc Ä‘á»™: + +<img width="480px" src="./images/amdahls_law.png" alt="Diagram: Amdahl's Law"> + +*(Image Reference: By Daniels219 at English Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* + +NhÆ° có thể thấy, ngay cả má»™t chÆ°Æ¡ng trình có thể chạy song song 50% sẽ được hưởng lợi rất Ãt khi vượt quá 10 Ä‘Æ¡n vị xá» lý, trong khi má»™t chÆ°Æ¡ng trình có thể song song 95% vẫn có thể đạt được những cải thiện tốc Ä‘á»™ đáng kể vá»›i hÆ¡n má»™t nghìn Ä‘Æ¡n vị xá» lý. + +NhÆ° [Äịnh luáºt Moore](#moores-law) cháºm, và tốc Ä‘á»™ tăng tốc của bá»™ xá» lý Ä‘Æ¡n lẻ cháºm lại, thì song song hóa là chìa khóa để cải thiện hiệu suất. Và dụ nhÆ° láºp trình đồ há»a - vá»›i tÃnh toán dá»±a trên Shader hiện đại, các pixel hoặc mảnh riêng lẻ có thể được hiển thị song song - đây là lý do tại sao các card đồ há»a hiện đại thÆ°á»ng có hà ng nghìn lõi xá» lý (GPU hoặc Shader Units). + +Xem thêm: + +- [Luáºt Brooks](#brooks-law) +- [định luáºt Moore](#moores-law) + +### Lý thuyết cá»a sổ vỡ + +[Lý thuyết cá»a sổ vỡ trên Wikipedia](https://en.wikipedia.org/wiki/Broken_windows_theory) + +Lý thuyết Cá»a Sổ Vỡ nói rằng các dấu hiệu xấu có thể nhìn thấy (cá»a sổ kÃnh bị vỡ) dẫn đến tá»™i phạm ngà y cà ng nghiêm trá»ng hÆ¡n (hoặc là m suy thoái môi trÆ°á»ng hÆ¡n nữa). + +Lý thuyết nà y áp dụng cho phát triển phần má»m, rằng mã chất lượng kém (hoặc [Nợ kỹ thuáºt](#TODO) ) có thể dẫn đến nháºn thức rằng các ná»— lá»±c cải thiện chất lượng có thể bị bá» qua hoặc định giá thấp, do đó dẫn đến mã chất lượng kém hÆ¡n. Hiệu ứng nà y giảm dần dẫn đến chất lượng giảm mạnh theo thá»i gian. + +Xem thêm: + +- [Nợ kỹ thuáºt](#TODO) + +Và dụ: + +- [The Pragmatic Programming: Software Entropy](https://flylib.com/books/en/1.315.1.15/1/) +- [Coding Horror: The Broken Window Theory](https://blog.codinghorror.com/the-broken-window-theory/) +- [OpenSource: Joy of Programming - The Broken Window Theory](https://opensourceforu.com/2011/05/joy-of-programming-broken-window-theory/) + +### Luáºt Brooks + +[Luáºt Brooks trên Wikipedia](https://en.wikipedia.org/wiki/Brooks%27s_law) + +> Thêm ngÆ°á»i và o má»™t dá»± án phát triển phần má»m Ä‘ang bị cháºm tiến Ä‘á»™, sẽ là m nó cháºm hÆ¡n. + +Luáºt nà y nói rằng trong nhiá»u trÆ°á»ng hợp, việc cố gắng đẩy nhanh tiến Ä‘á»™ giao má»™t dá»± án Ä‘ang cháºm, bằng cách bổ sung thêm ngÆ°á»i, sẽ khiến việc giao dá»± án cháºm hÆ¡n. Brooks nói rằng đây là má»™t sá»± Ä‘Æ¡n giản hóa quá mức, tuy nhiên, lý do chung là vá»›i thá»i gian gia tăng của các nguồn tà i nguyên má»›i và tổng chi phà liên lạc, tốc Ä‘á»™ ngắn hạn tức thá»i sẽ giảm xuống. Ngoà i ra, nhiá»u nhiệm vụ có thể không chia nhỠđược hÆ¡n nữa (chia nhá» công việc là phân phối công việc ra các nguồn lá»±c để xá» lý) dẫn đến tốc Ä‘á»™ tăng tiá»m năng cÅ©ng thấp hÆ¡n. + +Nói kiểu quen thuá»™c hÆ¡n là "ChÃn phụ nữ không thể sinh con trong má»™t tháng" liên quan đến Luáºt Brooks, đặc biệt, thá»±c tế là má»™t số loại công việc không thể phân chia hoặc là m song song. + +Äây là chủ Ä‘á» trung tâm của cuốn sách ' [The Mythical Man Month](#reading-list) '. + +Xem thêm: + +- [Death March](#todo) +- [Danh sách Ä‘á»c: The Mythical Man Month](#reading-list) + +### Äịnh lý CAP (Äịnh lý Brewer) + +Äịnh lý CAP (được Eric Brewer định nghÄ©a): đối vá»›i má»™t kho lÆ°u trữ dữ liệu phân tán, chỉ có thể hai trong ba Ä‘iá»u sau được đảm bảo: + +- TÃnh đồng bá»™ (Consistency): khi Ä‘á»c dữ liệu, má»i yêu cầu Ä‘á»u nháºn được *dữ liệu gần đây nhất* hoặc lá»—i được trả vá» +- TÃnh sẫn sà ng (Availability): khi Ä‘á»c dữ liệu, má»i yêu cầu Ä‘á»u nháºn được *phản hồi không lá»—i* , mà không cần đảm bảo rằng đó là dữ liệu *má»›i nhất* +- TÃnh chịu lá»—i (Partition Tolerance): khi má»™t số lượng tùy ý yêu cầu mạng giữa các nút không thà nh công, hệ thống tiếp tục hoạt Ä‘á»™ng nhÆ° thiết kế. + +Cốt lõi của lý do là nhÆ° sau: vá»›i hệ thống phân tán, không thể đảm bảo được việc sai biệt cục bá»™ không xảy ra (xem [Sá»± sụp đổ của Máy tÃnh Phân tán](#the-fallacies-of-distributed-computing) ). Do đó, trong trÆ°á»ng hợp sai biệt cục bá»™, chúng ta có thể hoặc ngÆ°ng công việc, để chỠđồng bá»™ (tăng tÃnh đồng bá»™ và giảm tÃnh sẫn sà ng) hoặc tiếp tục công việc (tăng tÃnh sẫn sà ng nhÆ°ng giảm tÃnh đồng bá»™). + +Tên gá»i xuất phát từ các chữ cái đầu tiên (Consistency, Availability, Partition Tolerance). LÆ°u ý rằng Ä‘iá»u rất quan trá»ng cần lÆ°u ý là điá»u nà y *không* liên quan đến [*ACID*](#TODO) , có định nghÄ©a khác vá» tÃnh đồng bá»™. Gần đây hÆ¡n, [định lý PACELC](#TODO) đã được phát triển để bổ sung các rà ng buá»™c vá» Ä‘á»™ trá»… và tÃnh đồng bá»™ khi mạng *không bị* sai biệt cục bá»™ (tức là khi hệ thống Ä‘ang hoạt Ä‘á»™ng nhÆ° mong đợi). + +Hầu hết các ná»n tảng cÆ¡ sở dữ liệu hiện đại Ä‘á»u thừa nháºn định lý nà y má»™t cách ngầm định bằng cách cung cấp cho ngÆ°á»i dùng cÆ¡ sở dữ liệu tùy chá»n để lá»±a chá»n giữa việc há» muốn má»™t hoạt Ä‘á»™ng có tÃnh khả dụng cao (có thể bao gồm 'Ä‘á»c bẩn') hay má»™t hoạt Ä‘á»™ng nhất quán cao (và dụ: má»™t 'số đại biểu được thừa nháºn ghi '). + +Và dụ trong thế giá»›i thá»±c: + +- [Bên trong Google Cloud Spanner và Äịnh lý CAP](https://cloud.google.com/blog/products/gcp/inside-cloud-spanner-and-the-cap-theorem) - Äi và o chi tiết vá» cách hoạt Ä‘á»™ng của Cloud Spanner, thoạt đầu có vẻ giống nhÆ° má»™t ná»n tảng có *tất cả* các đảm bảo của CAP, nhÆ°ng bên dÆ°á»›i cÆ¡ bản là má»™t hệ thống CP. + +Xem thêm: + +- [ACID](#TODO) +- [The Fallacies of Distributed Computing](#the-fallacies-of-distributed-computing) +- [PACELC](#TODO) + +### Äịnh luáºt Conway + +[Luáºt Conway trên Wikipedia](https://en.wikipedia.org/wiki/Conway%27s_law) + +Luáºt nà y nói rằng các biên giá»›i kỹ thuáºt của má»™t hệ thống sẽ phản ánh cấu trúc của tổ chức. Nó thÆ°á»ng được nhắc đến khi xem xét các cải tiến của tổ chức, Luáºt Conway gợi ý rằng nếu má»™t tổ chức được cấu trúc thà nh nhiá»u Ä‘Æ¡n vị nhá», không kết nối thì phần má»m mà nó tạo ra sẽ là nhÆ° váºy. Nếu má»™t tổ chức được xây dá»±ng nhiá»u hÆ¡n xung quanh 'ngà nh dá»c' được định hÆ°á»›ng xung quanh các tÃnh năng hoặc dịch vụ, hệ thống phần má»m cÅ©ng sẽ phản ánh Ä‘iá»u nà y. + +Xem thêm: + +- [Mô hình Spotify](#the-spotify-model) + +### Äịnh luáºt Cunningham + +[Äịnh luáºt Cunningham trên Wikipedia](https://en.wikipedia.org/wiki/Ward_Cunningham#Cunningham's_Law) + +> Cách tốt nhất để có câu trả lá»i đúng trên Internet không phải là đặt câu há»i, mà là hẫy đăng câu trả lá»i sai. + +Äiá»u nà y Ä‘á» cáºp đến quan sát rằng trên internet "má»i ngÆ°á»i nhanh sá»a má»™t câu trả lá»i sai hÆ¡n là trả lá»i má»™t câu há»i."<br><br>Theo Steven McGeady, Ward Cunningham đã khuyên anh ta và o đầu những năm 1980: "Cách tốt nhất để có câu trả lá»i đúng trên Internet không phải là đặt má»™t câu há»i, mà là đăng câu trả lá»i sai." McGeady gá»i đây là định luáºt Cunningham, mặc dù Cunningham phủ nháºn quyá»n sở hữu gá»i nó là "trÃch dẫn sai". Mặc dù ban đầu Ä‘á» cáºp đến các tÆ°Æ¡ng tác trên Usenet, luáºt đã được sá» dụng để mô tả cách hoạt Ä‘á»™ng của các cá»™ng đồng trá»±c tuyến khác (và dụ: Wikipedia, Reddit, Twitter, Facebook). + +Xem thêm: + +- [XKCD 386: "Duty Calls"](https://xkcd.com/386/) + +### Số Dunbar + +[Số Dunbar trên Wikipedia](https://en.wikipedia.org/wiki/Dunbar%27s_number) + +"Con số của Dunbar là má»™t giá»›i hạn nháºn thức được Ä‘á» xuất cho số ngÆ°á»i mà má»™t ngÆ°á»i có thể duy trì các mối quan hệ xã há»™i ổn định - các mối quan hệ trong đó má»™t cá nhân biết má»—i ngÆ°á»i là ai và mối quan hệ của má»—i ngÆ°á»i vá»›i má»i ngÆ°á»i khác nhÆ° thế nà o." Không có má»™t con số chÃnh xác. "... [Dunbar] Ä‘á» xuất rằng con ngÆ°á»i chỉ có thể thoải mái duy trì 150 mối quan hệ ổn định." Ông đặt con số và o má»™t bối cảnh xã há»™i hÆ¡n, "số lượng ngÆ°á»i mà bạn sẽ không cảm thấy xấu hổ khi tham gia má»™t cuá»™c uống không được má»i nếu bạn tình cá» gặp há» trong má»™t quán bar." Các Æ°á»›c tÃnh cho con số thÆ°á»ng nằm trong khoảng từ 100 đến 250. + +Giống nhÆ° mối quan hệ ổn định giữa các cá nhân, mối quan hệ của nhà phát triển vá»›i cÆ¡ sở mã cần ná»— lá»±c để duy trì. Khi đối mặt vá»›i các dá»± án lá»›n phức tạp, hoặc sở hữu nhiá»u dá»± án, chúng tôi dá»±a trên quy Æ°á»›c, chÃnh sách và quy trình được mô hình hóa để mở rá»™ng quy mô. Con số của Dunbar không chỉ quan trá»ng cần ghi nhá»› khi văn phòng phát triển mà còn khi thiết láºp phạm vi cho các ná»— lá»±c của nhóm hoặc quyết định khi nà o má»™t hệ thống nên đầu tÆ° và o công cụ để há»— trợ mô hình hóa và tá»± Ä‘á»™ng hóa chi phà háºu cần. Äặt con số và o bối cảnh kỹ thuáºt, đó là số lượng dá»± án (hoặc Ä‘á»™ phức tạp được chuẩn hóa của má»™t dá»± án) mà bạn cảm thấy tá»± tin khi tham gia vòng quay theo cuá»™c gá»i để há»— trợ. + +Xem thêm: + +- [Äịnh luáºt Conway](#conways-law) + +### Hiệu ứng Dunning-Kruger + +[Hiệu ứng Dunning-Kruger trên Wikipedia](https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect) + +> Nếu bạn không đủ năng lá»±c, bạn không thể biết mình kém ... Kỹ năng cần để Ä‘Æ°a ra má»™t câu trả lá»i đúng cÅ©ng là kỹ năng để nháºn ra má»™t câu trả lá»i là đúng. +> +> ([David Dunning](https://en.wikipedia.org/wiki/David_Dunning)) + +Hiệu ứng Dunning-Kruger là má»™t khuynh hÆ°á»›ng nháºn thức lý thuyết được David Dunning và Justin Kruger mô tả trong má»™t bà i báo và nghiên cứu tâm lý năm 1999. Nghiên cứu cho thấy rằng những ngÆ°á»i có mức năng lá»±c thấp trong má»™t nhiệm vụ có khả năng đánh giá cao khả năng của há» khi thá»±c hiện nhiệm vụ. Lý do được Ä‘á» xuất cho sá»± thiên vị nà y là má»™t ngÆ°á»i cần có *nháºn thức* đầy đủ vá» mức Ä‘á»™ phức tạp của má»™t vấn Ä‘á» hoặc lÄ©nh vá»±c để có thể Ä‘Æ°a ra ý kiến sáng suốt vá» khả năng là m việc của há» trong lÄ©nh vá»±c đó. + +Hiệu ứng Dunning-Kruger đôi khi được sá» dụng để mô tả má»™t hiệu ứng có gần nó "Má»™t ngÆ°á»i cà ng Ãt hiểu vá» má»™t vấn Ä‘á», há» cà ng tin rằng há» có thể dá»… dà ng giải quyết nó, nhiá»u khả năng nhất là há» thấy nó *Ä‘Æ¡n giản* ". Hiệu ứng tổng quát hÆ¡n nà y rất phù hợp trong công nghệ. Nó sẽ gợi ý rằng những ngÆ°á»i Ãt quen thuá»™c vá»›i má»™t vấn Ä‘á», chẳng hạn nhÆ° thà nh viên nhóm không chuyên vá» kỹ thuáºt hoặc thà nh viên nhóm Ãt kinh nghiệm, có nhiá»u khả năng *đánh giá thấp* ná»— lá»±c cần thiết để giải quyết má»™t vấn Ä‘á». + +Khi má»™t ngÆ°á»i có sá»± hiểu biết và kinh nghiệm trong má»™t lÄ©nh vá»±c tăng lên thì há» cÅ©ng có thể gặp phải má»™t tác Ä‘á»™ng ngược lại, là có xu hÆ°á»›ng *đánh giá quá cao* khả năng của *ngÆ°á»i khác* hoặc *đánh giá thấp* khả năng của chÃnh mình. Trong má»i trÆ°á»ng hợp, những tác Ä‘á»™ng nà y là *thà nh kiến vá» nháºn thức*. Sá»± nháºn thức vá» thà nh kiến sẽ rất hữu Ãch, vì khi có nháºn thức vá» sá»± thà nh kiến, ta có thể tham khảo nhiá»u đầu và o và ý kiến. Má»™t liên quan máºt thiết là sá»± thiên vị vá» [Æ°u thế](https://en.wikipedia.org/wiki/Illusory_superiority) của Huyá»…n Ảnh. + +Và dụ trong thế giá»›i thá»±c: + +- [Apple vs. FBI: Tại sao Diá»u hâu chống khủng bố nà y lại chuyển hÆ°á»›ng](https://fortune.com/2016/03/10/apple-fbi-lindsay-graham/) - Năm 2016, Thượng nghị sÄ© Lindsey Graham đã thay đổi láºp trÆ°á»ng của mình vá» việc Apple tạo ra má»™t 'cá»a sau' trong mã hóa thiết bị của há». Ban đầu, Graham đã chỉ trÃch Apple thách thức yêu cầu tạo má»™t 'cá»a sau', mà ông cho là cần thiết để Ä‘iá»u tra các âm mÆ°u khủng bố tiá»m ẩn. Tuy nhiên, nhá» sá»± thừa nháºn của chÃnh Graham, khi anh ấy hiểu thêm vá» Ä‘á»™ phức tạp kỹ thuáºt của miá»n, anh ấy nháºn ra rằng anh ấy đã cho rằng nó Ä‘Æ¡n giản hÆ¡n nhiá»u so vá»›i những gì anh ấy đã nháºn ra và rằng má»™t cá»a háºu nhÆ° váºy có thể gây ra những háºu quả tiêu cá»±c nghiêm trá»ng. Äây có thể được coi là má»™t và dụ vá» hiệu ứng Dunning-Kruger - má»™t chuyên gia an ninh mạng có thể sẽ hiểu ngay láºp tức vá» cách má»™t cá»a háºu nhÆ° váºy có thể bị khai thác, vì há» có hiểu biết sâu sắc vá» miá»n, má»™t ngÆ°á»i dân có thể cho rằng bảo máºt Ä‘iện thoại tÆ°Æ¡ng tá»± hÆ¡n đối vá»›i *bảo máºt váºt lý* khi có thể thá»±c hiện được 'khóa chÃnh' để thá»±c thi pháp luáºt, nhÆ°ng sá»± tÆ°Æ¡ng tá»± nà y không áp dụng đủ tốt để mô tả mã hóa hiện đại trong an ninh mạng. + +### Luáºt Fitts + +[Luáºt Fitts trên Wikipedia](https://en.wikipedia.org/wiki/Fitts%27s_law) + +Äịnh luáºt Fitts dá»± Ä‘oán rằng thá»i gian cần thiết để di chuyển đến má»™t khu vá»±c mục tiêu là má»™t hà m của khoảng cách đến mục tiêu chia cho chiá»u rá»™ng của mục tiêu. + +<img width="300px" src="./images/Fitts_Law.svg" alt="Diagram: Fitts Law"> + +*(Image Reference: By Foobar628 at English Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Fitts%27s_law#/media/File:Fitts_Law.svg)* + +Hệ quả của luáºt nà y quy định rằng khi thiết kế UI/UX, các phần tá» tÆ°Æ¡ng tác phải cà ng lá»›n cà ng tốt và khoảng cách giữa vùng chú ý của ngÆ°á»i dùng và phần tá» tÆ°Æ¡ng tác phải cà ng nhá» cà ng tốt. Äiá»u nà y có háºu quả vá» thiết kế, chẳng hạn nhÆ° nhóm các nhiệm vụ thÆ°á»ng được sá» dụng vá»›i nhau. + +Nó cÅ©ng chÃnh thức hóa khái niệm 'góc ma thuáºt', các góc của mà n hình mà ngÆ°á»i dùng có thể 'quét' chuá»™t của hỠđể dá»… dà ng nhấn - đó là nÆ¡i có thể đặt các phần tá» giao diện ngÆ°á»i dùng chÃnh. Nút Start của Windows nằm ở má»™t góc kỳ diệu, giúp bạn dá»… dà ng lá»±a chá»n và nhÆ° má»™t sá»± tÆ°Æ¡ng phản thú vị, nút 'đóng cá»a sổ' của MacOS *không* nằm ở má»™t góc ma thuáºt, nên khó có thể nhấn nhầm. + +Xem thêm: + +- [The information capacity of the human motor system in controlling the amplitude of movement.](https://www.semanticscholar.org/paper/The-information-capacity-of-the-human-motor-system-Fitts/634c9fde5f1c411e4487658ac738dcf18d98ea8d) + +### Luáºt Gall + +[Luáºt Gall trên Wikipedia](https://en.wikipedia.org/wiki/John_Gall_(author)#Gall's_law) + +> Má»™t hệ thống phức tạp luôn được phát triển từ má»™t hệ thống Ä‘Æ¡n giản đã hoạt Ä‘á»™ng. Má»™t hệ thống phức tạp được thiết kế từ đầu không bao giá» hoạt Ä‘á»™ng và không thể sá»a chữa để là m cho nó hoạt Ä‘á»™ng. Bạn phải luôn bắt đầu vá»›i má»™t hệ thống Ä‘Æ¡n giản và hoạt Ä‘á»™ng được. +> +> ([John Gall](https://en.wikipedia.org/wiki/John_Gall_(author))) + +Äịnh luáºt Gall ngụ ý rằng những ná»— lá»±c *thiết kế* các hệ thống phức tạp có khả năng thất bại cao. Các hệ thống phức tạp cao hiếm khi được xây dá»±ng trong má»™t lần, mà thá»±c tế là phát triển từ các hệ thống Ä‘Æ¡n giản hÆ¡n. + +Và dụ cổ Ä‘iển là world-wide-web. Ở trạng thái hiện tại, nó là má»™t hệ thống rất phức tạp. Tuy nhiên, ban đầu nó được định nghÄ©a là má»™t cách Ä‘Æ¡n giản để chia sẻ ná»™i dung giữa các tổ chức há»c thuáºt. Nó đã rất thà nh công trong việc đáp ứng những mục tiêu nà y và ngà y cà ng phát triển trở nên phức tạp hÆ¡n theo thá»i gian. + +Xem thêm: + +- [KISS (Giữ nó Ä‘Æ¡n giản, đến ngốc)](#the-kiss-principle) + +### Luáºt Goodhart + +[Äịnh luáºt Goodhart trên Wikipedia](https://en.wikipedia.org/wiki/Goodhart's_law) + +> Má»i hệ thống có xu hÆ°á»›ng sụp đổ khi chịu áp bị lá»±c quan sát vá»›i mục Ä‘Ãch kiểm soát. +> +> *Charles Goodhart* + +CÅ©ng thÆ°á»ng được gá»i là : + +> Khi Ä‘o lÆ°á»ng là mục tiêu, nó là má»™t Ä‘o lÆ°á»ng xấu. +> +> *Marilyn Strathern* + +Luáºt nói rằng các tối Æ°u hóa theo hÆ°á»›ng Ä‘o lÆ°á»ng, có thể dẫn đến việc giảm giá trị của chÃnh kết quả Ä‘o lÆ°á»ng. Việc áp dụng má»™t cách mù quáng các bá»™ Ä‘o lÆ°á»ng ( [KPI](https://en.wikipedia.org/wiki/Performance_indicator) ) cho má»™t quy trình dẫn đến hiệu quả bị bóp méo. Má»i ngÆ°á»i có xu hÆ°á»›ng tối Æ°u hóa cục bá»™ bằng cách "chÆ¡i" hệ thống để đáp ứng các chỉ số cụ thể, thay vì chú ý đến kết quả tổng thể của các hà nh Ä‘á»™ng của há». + +Và dụ trong thế giá»›i thá»±c: + +- Các bà i kiểm tra không có xác nháºn đáp ứng kỳ vá»ng vá» Ä‘á»™ bao phủ của mã, mặc dù thá»±c tế là mục Ä‘Ãch của số liệu là tạo ra phần má»m được kiểm tra tốt. +- Khi Ä‘iểm hiệu suất của nhà phát triển được tÃnh bằng đếm số dòng lệnh, thì sẽ dẫn đến số dòng lệnh bị phình ra má»™t cách vô cá»›. + +Xem thêm: + +- [Goodhart’s Law: How Measuring The Wrong Things Drive Immoral Behaviour](https://coffeeandjunk.com/goodharts-campbells-law/) +- [Dilbert on bug-free software](https://dilbert.com/strip/1995-11-13) + +### Dao cạo của Hanlon + +[Dao cạo của Hanlon trên Wikipedia](https://en.wikipedia.org/wiki/Hanlon%27s_razor) + +> Không thể giải thÃch má»™t kết quả xấu bằng sá»± thá»±c hiện ác ý, mà bằng sá»± ngu dốt. +> +> Robert J. Hanlon + +Nguyên tắc nà y gợi ý rằng những hà nh Ä‘á»™ng dẫn đến má»™t kết quả xấu không phải là do ý chà xấu. Thay và o đó, kết quả xấu có nhiá»u khả năng là do những hà nh Ä‘á»™ng hoặc tác Ä‘á»™ng không được hiểu má»™t cách đầy đủ. + +### Luáºt Hick (Luáºt Hick-Hyman) + +[Luáºt Hick trên Wikipedia](https://en.wikipedia.org/wiki/Hick%27s_law) + +> Thá»i gian quyết định tăng theo logarit vá»›i số lượng tùy chá»n bạn có thể chá»n. +> +> William Edmund Hick và Ray Hyman + +Trong phÆ°Æ¡ng trình dÆ°á»›i đây, `T` là thá»i gian để Ä‘Æ°a ra quyết định, `n` là số lá»±a chá»n và `b` là hằng số được xác định bằng phân tÃch dữ liệu. + +![Hicks law](./images/hicks_law.svg) + +*(Image Reference: Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Hick%27s_law)* + +Luáºt nà y chỉ áp dụng khi số lượng tùy chá»n được *sắp xếp* , và dụ, theo thứ tá»± bảng chữ cái. Äiá»u nà y được ngụ ý trong lôgarit cÆ¡ số hai - ngụ ý ngÆ°á»i ra quyết định vá» cÆ¡ bản Ä‘ang thá»±c hiện *tìm kiếm nhị phân* . Nếu các tùy chá»n không được sắp xếp hợp lý, các thá» nghiệm cho thấy thá»i gian thá»±c hiện là tuyến tÃnh. + +Äiá»u nà y có tác Ä‘á»™ng đáng kể trong thiết kế giao diện ngÆ°á»i dùng; đảm bảo rằng ngÆ°á»i dùng có thể dá»… dà ng tìm kiếm thông qua các tùy chá»n dẫn đến việc ra quyết định nhanh hÆ¡n. + +Má»™t mối tÆ°Æ¡ng quan cÅ©ng đã được chỉ ra trong Äịnh luáºt Hick giữa chỉ số IQ và thá»i gian phản ứng nhÆ° được thể hiện trong [Tốc Ä‘á»™ xá» lý thông tin: Thay đổi phát triển và Liên kết vá»›i trà thông minh](https://www.sciencedirect.com/science/article/pii/S0022440599000369) . + +Xem thêm: + +- [Luáºt Fitts](#fitts-law) + +### Äịnh luáºt Hofstadter + +[Luáºt Hofstadter trên Wikipedia](https://en.wikipedia.org/wiki/Hofstadter%27s_law) + +> Nó luôn mất nhiá»u thá»i gian hÆ¡n bạn dá»± tÃnh, ngay cả khi bạn tÃnh đến Äịnh luáºt Hofstadter. +> +> (Douglas Hofstadter) + +Bạn có thể nghe thấy luáºt nà y được Ä‘á» cáºp đến khi xem xét các Æ°á»›c tÃnh vá» thá»i gian. Có vẻ nhÆ° chúng ta có xu hÆ°á»›ng không giá»i trong việc Æ°á»›c tÃnh chÃnh xác thá»i gian má»™t thứ gì đó sẽ được phân phối, và dụ cụ thể nhÆ° trong phát triển phần má»m. + +Äây là từ cuốn sách ' [Gödel, Escher, Bach: An Eternal Golden Braid](#reading-list) '. + +Xem thêm: + +- [Danh sách Ä‘á»c: Gödel, Escher, Bach: An Eternal Golden Braid](#reading-list) + +### Äịnh luáºt Hutber + +[Luáºt Hutber trên Wikipedia](https://en.wikipedia.org/wiki/Hutber%27s_law) + +> Cải tiến đồng nghÄ©a là xấu Ä‘i. +> +> ([Patrick Hutber](https://en.wikipedia.org/wiki/Patrick_Hutber)) + +Luáºt nà y gợi ý rằng những cải tiến đối vá»›i má»™t hệ thống sẽ dẫn đến sá»± hÆ° há»ng ở các bá»™ pháºn khác, hoặc nó sẽ che giấu sá»± hÆ° há»ng khác, dẫn đến sá»± suy thoái vá» tổng thể so vá»›i trạng thái hiện tại của hệ thống. + +Và dụ: giảm Ä‘á»™ trá»… phản hồi trên mạng, có thể gây ra các vấn Ä‘á» vá» thông lượng và dung lượng tăng thêm trong luồng yêu cầu, ảnh hưởng đến má»™t hệ thống khác. + +### Chu kỳ cÆ°á»ng Ä‘iệu & Äịnh luáºt Amara + +[Chu kỳ cÆ°á»ng Ä‘iệu trên Wikipedia](https://en.wikipedia.org/wiki/Hype_cycle) + +> Chúng ta có xu hÆ°á»›ng đánh giá cao hiệu quả của má»™t công nghệ trong ngắn hạn và đánh giá thấp vá» lâu dà i. +> +> (Roy Amara) + +Hype Cycle là hình ảnh đại diện cho sá»± sôi Ä‘á»™ng và phát triển của công nghệ theo thá»i gian, ban đầu được sản xuất bởi Gartner. Nó được hiển thị tốt nhất bằng hình ảnh: + +![The Hype Cycle](./images/gartner_hype_cycle.png) + +*(Image Reference: By Jeremykemp at English Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* + +Nói tóm lại, hình vẽ cho thấy thÆ°á»ng có sá»± bùng nổ vá» công nghệ má»›i và tác Ä‘á»™ng tiá»m tà ng của nó. Các Ä‘á»™i thÆ°á»ng nhanh chóng tham gia và o các công nghệ nà y, và đôi khi cảm thấy thất vá»ng vá»›i kết quả. Äiá»u nà y có thể là do công nghệ chÆ°a đủ trưởng thà nh hoặc các ứng dụng trong thế giá»›i thá»±c vẫn chÆ°a được thá»±c hiện đầy đủ. Sau má»™t khoảng thá»i gian nhất định, khả năng của công nghệ tăng lên và các cÆ¡ há»™i thá»±c tế để sá» dụng nó cÅ©ng tăng lên, và các nhóm cuối cùng có thể trở nên hiệu quả. Câu nói của Roy Amara tóm tắt Ä‘iá»u nà y má»™t cách ngắn gá»n nhất - "Chúng ta có xu hÆ°á»›ng đánh giá quá cao tác dụng của má»™t công nghệ trong ngắn hạn và đánh giá thấp vá» lâu dà i". + +### Luáºt Hyrum (Luáºt của các giao diện ngầm) + +[Luáºt Hyrum trên mạng](http://www.hyrumslaw.com/) + +> Vá»›i đủ số lượng ngÆ°á»i dùng đủ lá»›n, Ä‘iá»u bạn ghi trong đặc tả không quan trá»ng: tất cả các hà nh vi có thể quan sát được trên hệ thống của bạn sẽ phụ thuá»™c và o ai đó khác. +> +> (Hyrum Wright) + +Luáºt của Hyrum tuyên bố rằng khi bạn có má»™t *số lượng đủ lá»›n lá»i gá»i đến bá»™* API, tất cả các hà nh vi của API (ngay cả những hà nh vi không được định nghÄ©a là má»™t phần của hợp đồng công khai) cuối cùng sẽ phụ thuá»™c và o ai đó. Và dụ Ä‘Æ¡n giản có thể là các tÃnh phi chức năng, nhÆ° thá»i gian phản hồi của má»™t API. Má»™t và dụ tinh tế hÆ¡n có thể là ngÆ°á»i tiêu dùng Ä‘ang dá»±a và o việc áp dụng regex cho má»™t thông báo lá»—i để xác định *loại* lá»—i của má»™t API. Ngay cả khi hợp đồng công khai của API không nêu gì vá» ná»™i dung của thông báo, cho biết ngÆ°á»i dùng nên sá» dụng mã lá»—i liên quan, *má»™t số* ngÆ°á»i dùng có thể sá» dụng thông báo và việc thay đổi thông báo vá» cÆ¡ bản sẽ phá vỡ API đối vá»›i những ngÆ°á»i dùng đó. + +Xem thêm: + +- [Luáºt sá»± rỉ mục của trừu tượng](#the-law-of-leaky-abstractions) +- [XKCD 1172](https://xkcd.com/1172/) + +### Äịnh luáºt Kernighan + +> Gỡ lá»—i khó gấp đôi so vá»›i viết mã ngay từ đầu. Do đó, nếu bạn viết mã má»™t cách khéo léo nhất có thể, theo định nghÄ©a, bạn không đủ thông minh để gỡ lá»—i nó. +> +> (Brian Kernighan) + +Äịnh luáºt Kernighan được đặt tên cho [Brian Kernighan](https://en.wikipedia.org/wiki/Brian_Kernighan) và bắt nguồn từ má»™t trÃch dẫn từ cuốn sách [Các yếu tố của phong cách láºp trình của](https://en.wikipedia.org/wiki/The_Elements_of_Programming_Style) Kernighan và Plauger: + +> Má»i ngÆ°á»i Ä‘á»u biết rằng việc gỡ lá»—i khó gấp đôi so vá»›i việc viết má»™t chÆ°Æ¡ng trình ngay từ đầu. Vì váºy, nếu bạn thông minh hết mức có thể khi bạn viết nó, là m thế nà o bạn sẽ gỡ lá»—i nó? + +Luáºt Kernighan Ä‘Æ°a ra láºp luáºn rằng: mã Ä‘Æ¡n giản được Æ°u tiên hÆ¡n mã phức tạp, bởi vì việc gỡ lá»—i bất kỳ vấn Ä‘á» nà o phát sinh trong mã phức tạp có thể tốn kém hoặc tháºm chà không khả thi. + +Xem thêm: + +- [Nguyên tắc KISS](#the-kiss-principle) +- [Triết lý Unix](#the-unix-philosophy) +- [Dao cạo của Occam](#occams-razor) + +### Luáºt Linus + +[Luáºt Linus trên Wikipedia](https://en.wikipedia.org/wiki/Linus%27s_law) + +> Khi đủ số lượng ngÆ°á»i soi và o thì các lá»—i Ä‘á»u sẽ bị phát hiện. +> +> *Eric S. Raymond* + +Luáºt nà y chỉ Ä‘Æ¡n giản nói rằng cà ng nhiá»u ngÆ°á»i có thể nhìn thấy vấn Ä‘á», thì khả năng má»™t ngÆ°á»i nà o đó đã nhìn thấy và giải quyết vấn đỠđó tÆ°Æ¡ng tá»± trÆ°á»›c đây. + +Mặc dù ban đầu nó được sá» dụng để mô tả giá trị của các mô hình mã nguồn mở cho các dá»± án, nó có thể được chấp nháºn cho bất kỳ loại dá»± án phần má»m nà o. Nó cÅ©ng có thể được mở rá»™ng cho các quy trình - nhiá»u đánh giá mã hÆ¡n, phân tÃch tÄ©nh hÆ¡n và các quy trình kiểm tra Ä‘a nguyên tắc sẽ là m cho các vấn Ä‘á» hiển thị và dá»… xác định hÆ¡n. + +Má»™t tuyên bố chÃnh thức hÆ¡n có thể là : + +> Vá»›i số ngÆ°á»i thá» nghiệm và đồng-phát-triển đủ lá»›n, hầu hết má»i vấn Ä‘á» sẽ được xác định má»™t cách nhanh chóng và có thể được giải quyết bởi những ngÆ°á»i đã từng gặp sá»± cố tÆ°Æ¡ng tá»± trÆ°á»›c đây. + +Luáºt nà y được đặt tên để vinh danh [Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) trong cuốn sách " [The Cathedral and the Bazaar](https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar) " của Eric S. Raymond. + +### Äịnh luáºt Metcalfe + +[Luáºt Metcalfe trên Wikipedia](https://en.wikipedia.org/wiki/Metcalfe's_law) + +> Trong lý thuyết mạng, giá trị của má»™t hệ thống tăng lên xấp xỉ bình phÆ°Æ¡ng của số lượng ngÆ°á»i dùng của hệ thống. + +Luáºt nà y dá»±a trên số lượng các kết nối theo cặp có thể có trong má»™t hệ thống và có liên quan chặt chẽ vá»›i Äịnh [luáºt Reed](#reeds-law) . Odlyzko và những ngÆ°á»i khác đã láºp luáºn rằng cả Äịnh luáºt Reed và Äịnh luáºt Metcalfe Ä‘á»u phóng đại giá trị của hệ thống bằng cách không tÃnh đến giá»›i hạn nháºn thức của con ngÆ°á»i vá» hiệu ứng mạng; xem [Số của Dunbar](#dunbars-number) . + +Xem thêm: + +- [Luáºt Reed](#reeds-law) +- [Số Dunbar](#dunbars-number) + +### Äịnh luáºt Moore + +[Äịnh luáºt Moore trên Wikipedia](https://en.wikipedia.org/wiki/Moore%27s_law) + +> Số lượng bóng bán dẫn trong má»™t mạch tÃch hợp tăng gấp đôi khoảng hai năm má»™t lần. + +ThÆ°á»ng được sá» dụng để minh há»a tốc Ä‘á»™ mà công nghệ bán dẫn và chip đã được cải thiện, dá»± Ä‘oán của Moore đã được chứng minh là có Ä‘á»™ chÃnh xác cao trong khoảng thá»i gian từ những năm 1970 đến cuối những năm 2000. Trong những năm gần đây, xu hÆ°á»›ng đã thay đổi má»™t chút, má»™t phần do [những hạn chế váºt lý vá» mức Ä‘á»™ thu nhá» của các thà nh phần](https://en.wikipedia.org/wiki/Quantum_tunnelling) . Tuy nhiên, những tiến bá»™ trong quá trình song song hóa và những thay đổi có khả năng mang tÃnh cách mạng trong công nghệ bán dẫn và điện toán lượng tá» có thể có nghÄ©a là Äịnh luáºt Moore có thể tiếp tục đúng trong nhiá»u tháºp ká»· tá»›i. + +### Äịnh luáºt Murphy / Äịnh luáºt Sod + +[Äịnh luáºt Murphy trên Wikipedia](https://en.wikipedia.org/wiki/Murphy%27s_law) + +> Cái gì có thể xảy ra sai sót thì nó sẽ xảy ra. + +Liên quan đến [Edward A. Murphy, Äịnh luáºt Jr](https://en.wikipedia.org/wiki/Edward_A._Murphy_Jr.) *Murphy* nói rằng nếu má»™t Ä‘iá»u có thể sai, nó sẽ sai. + +Äây là má»™t câu châm ngôn phổ biến giữa các nhà phát triển. Äôi khi Ä‘iá»u không mong muốn xảy ra khi phát triển, thá» nghiệm hoặc tháºm chà trong quá trình sản xuất. Äiá»u nà y cÅ©ng có thể liên quan đến Äịnh *luáºt Sod* (phổ biến hÆ¡n trong tiếng Anh): + +> Nếu Ä‘iá»u sai lầm đó có thể xảy ra, nó sẽ xảy ra và o thá»i Ä‘iểm tồi tệ nhất. + +Những 'luáºt' nà y thÆ°á»ng được sá» dụng theo nghÄ©a truyện tranh. Tuy nhiên, các hiện tượng nhÆ° [*Thiên lệch xác nháºn*](#TODO) và [*Thiên lệch lá»±a chá»n*](#TODO) có thể khiến má»i ngÆ°á»i có lẽ quá nhấn mạnh các định luáºt nà y (phần lá»›n khi má»i thứ hoạt Ä‘á»™ng, chúng không được chú ý, tuy nhiên, thất bại lại được chú ý nhiá»u hÆ¡n và thu hút nhiá»u thảo luáºn hÆ¡n). + +Xem thêm: + +- [Thiên vị xác nháºn](#TODO) +- [Thiên vị lá»±a chá»n](#TODO) + +### Dao cạo của Occam + +[Occam's Razor trên Wikipedia](https://en.wikipedia.org/wiki/Occam's_razor) + +> Không nhân các đối tượng lên khi không cần thiết. +> +> William of Ockham + +Dao cạo của Occam nói rằng trong số má»™t số giải pháp khả thi, giải pháp tốt nhất là giải pháp có Ãt khái niệm và giả định nhất. Giải pháp đúng nhất là giải pháp Ä‘Æ¡n giản nhất để giải quyết được vấn Ä‘á», không tạo ra sá»± phức tạp, ngẫu nhiên và háºu quả tiêu cá»±c có thể xảy ra. + +Xem thêm: + +- [YAGNI](#yagni) +- [Không có viên đạn bạc: Sá»± phức tạp tình cá» và sá»± phức tạp thiết yếu](https://en.wikipedia.org/wiki/No_Silver_Bullet) + +Thà dụ: + +- [Phát triển phần má»m tinh gá»n: Loại bá» lãng phÃ](https://en.wikipedia.org/wiki/Lean_software_development#Eliminate_waste) + +### Äịnh luáºt Parkinson + +[Parkinson's Law on Wikipedia](https://en.wikipedia.org/wiki/Parkinson%27s_law) + +> Công việc sẽ tá»± mở rá»™ng để lấp đầy thá»i gian được cấp. + +Trong bối cảnh ban đầu, Luáºt nà y dá»±a trên các nghiên cứu vá» các bá»™ máy quan liêu. Nó có thể được áp dụng má»™t cách bi quan cho các sáng kiến phát triển phần má»m, lý thuyết cho rằng các nhóm sẽ hoạt Ä‘á»™ng kém hiệu quả cho đến khi thá»i hạn gần ká», sau đó vá»™i và ng hoà n thà nh công việc trÆ°á»›c thá»i hạn, do đó là m cho thá»i hạn thá»±c tế hÆ¡i tùy tiện. + +Nếu luáºt nà y được kết hợp vá»›i Äịnh luáºt [Hofstadter](#hofstadters-law) , má»™t quan Ä‘iểm tháºm chà còn bi quan hÆ¡n - công việc sẽ mở rá»™ng để lấp đầy thá»i gian có sẵn để hoà n thà nh và *vẫn mất nhiá»u thá»i gian hÆ¡n dá»± kiến* . + +Xem thêm: + +- [Äịnh luáºt Hofstadter](#hofstadters-law) + +### Hiệu ứng tối Æ°u hóa sá»›m + +[Tối Æ°u hóa sá»›m trên WikiWikiWeb](http://wiki.c2.com/?PrematureOptimization) + +> Tối Æ°u sá»›m là gốc rá»… của má»i xấu xa. +> +> [(Donald Knuth)](https://twitter.com/realdonaldknuth?lang=en) + +Trong bà i báo của Donald Knuth, [Structured Programming With Go To Statements](http://wiki.c2.com/?StructuredProgrammingWithGoToStatements) , ông đã viết: "Các láºp trình viên lãng phà rất nhiá»u thá»i gian để suy nghÄ© hoặc lo lắng vá» tốc Ä‘á»™ của các phần không quan trá»ng trong chÆ°Æ¡ng trình của há» và những ná»— lá»±c vá» hiệu quả nà y thá»±c sá»± có tác Ä‘á»™ng tiêu cá»±c mạnh khi gỡ lá»—i và bảo trì được xem xét. Chúng ta nên quên Ä‘i những hiệu quả nhá», nói rằng khoảng 97% thá»i gian: **tối Æ°u hóa sá»›m là gốc rá»… của má»i Ä‘iá»u xấu** . Tuy nhiên, chúng ta không nên bá» qua cÆ¡ há»™i của mình trong 3% quan trá»ng đó. " + +Tuy nhiên, *Tối Æ°u hóa sá»›m* có thể được định nghÄ©a (Ä‘Æ¡n giản hÆ¡n) là : chÆ°a biết là m gì đã lo tối Æ°u. + +### Putt's Law + +[Luáºt Putt trên Wikipedia](https://en.wikipedia.org/wiki/Putt%27s_Law_and_the_Successful_Technocrat) + +> Công nghệ bị chi phối bởi hai loại ngÆ°á»i, những ngÆ°á»i hiểu những gì há» không quản lý và những ngÆ°á»i quản lý những gì há» không hiểu. + +Äịnh luáºt Putt thÆ°á»ng được tuân theo bởi Hệ quả Putt: + +> Trong má»i hệ thống kỹ thuáºt được phân cấp, theo thá»i gian, nó sẽ phát triển theo hÆ°á»›ng nghịch đảo của năng lá»±c. + +Những tuyên bố nà y nói rằng do các tiêu chà lá»±a chá»n khác nhau và xu hÆ°á»›ng trong cách tổ chức, sẽ có má»™t số ngÆ°á»i có kỹ năng kỹ thuáºt và má»™t số trong vai trò quản lý không nháºn thức được sá»± phức tạp và thách thức của công việc mà há» Ä‘ang quản lý. Äiá»u nà y có thể là do các hiện tượng nhÆ° [Nguyên tắc Peter](#the-peter-principle) hoặc [Nguyên tắc Dilbert](#the-dilbert-principle) . + +Tuy nhiên, cần nhấn mạnh rằng các Luáºt nhÆ° thế nà y là khái quát rá»™ng lá»›n và có thể áp dụng cho *má»™t số* loại hình tổ chức và không áp dụng cho các loại hình khác. + +Xem thêm: + +- [Nguyên tắc Peter](#the-peter-principle) +- [Nguyên tắc Dilbert](#the-dilbert-principle) + +### Luáºt Reed + +[Luáºt Reed trên Wikipedia](https://en.wikipedia.org/wiki/Reed's_law) + +> Các tiện Ãch trên các mạng lá»›n, đặc biệt là mạng xã há»™i, sẽ có quy mô theo cấp số nhân so vá»›i quy mô của mạng. + +Luáºt nà y dá»±a trên lý thuyết đồ thị, trong đó tiện Ãch mở rá»™ng theo số lượng các nhóm con có thể có, nhanh hÆ¡n số lượng ngÆ°á»i tham gia hoặc số lượng các kết nối theo cặp có thể có. Odlyzko và những ngÆ°á»i khác đã láºp luáºn rằng Äịnh luáºt Reed phóng đại quá mức tiện Ãch của hệ thống bằng cách không tÃnh đến các giá»›i hạn nháºn thức của con ngÆ°á»i vá» các hiệu ứng mạng; xem [Số của Dunbar](#dunbars-number) . + +Xem thêm: + +- [Äịnh luáºt Metcalfe](#metcalfes-law) +- [Số Dunbar](#dunbars-number) + +### Äịnh luáºt Bảo toà n Äá»™ phức tạp (Äịnh luáºt Tesler) + +[Luáºt bảo tồn sá»± phức tạp trên Wikipedia](https://en.wikipedia.org/wiki/Law_of_conservation_of_complexity) + +Luáºt nà y nói rằng có má»™t sá»± phức tạp cố định trong má»™t hệ thống và chúng không thể giảm bá»›t. + +Má»™t số phức tạp trong má»™t hệ thống là 'vô tình'. Äó là hệ quả của cấu trúc kém, sai lầm hoặc chỉ là mô hình hóa vấn Ä‘á» cần giải quyết má»™t cách tồi tệ. Sá»± phức tạp do sÆ¡ ý có thể được giảm bá»›t (hoặc loại bá»). Tuy nhiên, má»™t số phức tạp là 'ná»™i tại' là hệ quả của sá»± phức tạp vốn có trong vấn Ä‘á» Ä‘ang được giải quyết. Sá»± phức tạp nà y có thể được di chuyển, nhÆ°ng không được loại bá». + +Má»™t yếu tố thú vị đối vá»›i luáºt nà y là gợi ý rằng ngay cả khi Ä‘Æ¡n giản hóa toà n bá»™ hệ thống, Ä‘á»™ phức tạp ná»™i tại vẫn không giảm, nếu nó được *chuyển đến ngÆ°á»i dùng*, thì ngÆ°á»i dùng xá» lý phức tạp hÆ¡n. + +### Äá |