principles:keep_it_simple_stupid
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| principles:keep_it_simple_stupid [2025-11-04 21:58] – created luciennej68 | principles:keep_it_simple_stupid [2025-11-25 10:53] (current) – old revision restored (2021-10-20 21:09) christian | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | The next school additionally be the freshest. Founded in 2007, the Virginia Tech Carilion School of medicine is fat loss the newest medical schools in the actual. They present you with the MD depth. Not much else is known about this school yet, as the 1st class has yet to graduate. | + | ====== Keep It Simple Stupid (KISS) ====== |
| - | The first school I am going to discuss may be the Osteopathic boarding school. This is the Edward Via Virginia College of Osteopathic Medicine. They not just offer the DO degree by itself, additionally in several combinations. The DO/MBA (Masters of Business Administration) | + | ===== Variations |
| - | But as a result just the end of the iceberg. We living longer as a people. You can even examine the census data to ensure this verifiable truth. But you know this actually without examining | + | * (Rule of) Simplicity |
| + | * KISS may also mean " | ||
| - | It's good that we're talking about healthcare adverse reactions | + | **Remarks**: |
| - | It's good that we're talking about healthcare while doing this election year; and the election this fall should offer us a clear chair choice re who will cover it. But, when we debate really should pay for healthcare, we're missing the actual point, unless we along with the tyranny of our present healthcare system. There are choices. You should be looking into them. | ||
| - | Everyone in which has a cat needs learn some good basic information on cat healthcare. But please keep idea that it takes no solution to good veterinary care. Each and every you have doubts in about the health of your cat, seek the advice of your vet as soon as possible. | + | ===== Context ===== |
| - | If encounter mild or medium back pain the fastest way to relieve your Acupuncture clinic back pain is to get to sleep. This type of pain often due to substantially more than exertion of the muscles and joints which can easily be relived with a rest. Very best to to lay down on cargo area or using the carpet with your back for the floor and maybe a pillow under your knees. You will also rest your back by placing your feet on a chair or stool. You should make without doubt your knees bend properly approximately which has a 90-degree point of view. You can also place a rolled towel under your neck for support. | + | * [[contexts: |
| + | * [[contexts: | ||
| + | * [[contexts: | ||
| + | * [[contexts: | ||
| - | Experience depends. Although you don't want to thought of as a doctor or maybe a nurse of becoming a healthcare consultant, it help if you have a good brief background about their day-to-day paid position. I recommend in order to apply as the volunteer meant for local hospital for at a minimum 3-6 days. The knowledge that you'll obtain can actually be crucial when you ultimately start your work in healthcare consulting. | + | ===== Principle Statement ===== |
| - | As north america Presidential elections approach, healthcare has taken center stage. While the Democrats debate variant forms of universal healthcare and conservatives tell us we can not afford it, the theory that everyone is trying to fill out the wrong question. The point we always be discussing will be the nature of healthcare, by themselves. | + | A simple solution is better than a complex one, even if the solution looks stupid. |
| - | Why does my cat need to vaccinated? For proper cat [[http:// | ||
| - | Be open-minded, | + | ===== Description ===== |
| - | The common cold is the reason more absenteeism from school and the job, numerous physicians cannot offer much of therapy. Bacteria, as some believe, aren't the cause of a cold-colds are performing a virus infection, so antibiotics are absolutely crappy. Viruses are smarter than decreases companies. | + | The KISS principle |
| - | Osteopathic clinic Family healthcare | + | A solution that follows the KISS principle might look boring or even " |
| + | |||
| + | This does not mean that features like inheritance and polymorphism should not be used at all. Rather they should only be used when they are necessary or there is some substantial advantage. | ||
| + | |||
| + | ===== Rationale ===== | ||
| + | |||
| + | A simpler solution is better than a complex one because simple solutions are easier to maintain. This includes increased readability, | ||
| + | |||
| + | The advantage of simplicity is even more significant when the person who maintains | ||
| + | |||
| + | One reason to create more complex code is to make it more flexible to accommodate further requirements. But one cannot know how to make it flexible or if that flexibility will be ever needed. | ||
| + | |||
| + | "When you make your code more flexible or sophisticated than it needs to be, you over-engineer it. Some do this because they believe they know their system' | ||
| + | |||
| + | Another reason to create more complex code is to make optimizations. An optimized code is a more complex code. Pareto principle applies also in code: a program spends most of the time in a small portion of the code, so it will be wise to concentrate the effort to optimize only that part of the code. Another best practice is to follow the | ||
| + | "Three rules of optimization": | ||
| + | |||
| + | |||
| + | ===== Strategies ===== | ||
| + | |||
| + | This is a very general principle, so there is a large variety of possible strategies | ||
| + | |||
| + | * Avoid inheritance, | ||
| + | * Avoid low-level optimization of algorithms, especially when involving Assembler, bit-operations, | ||
| + | * Use simple brute-force solutions instead of complicated algorithms. Slower algorithms will work in the first place. | ||
| + | * Avoid numerous classes and methods as well as large code blocks (see [[More Is More Complex]]) | ||
| + | * For slightly unrelated but rather small pieces of functionality use private methods instead of an additional class. | ||
| + | * Avoid general solutions needing parameterization. A specific solution will suffice. | ||
| + | * ... | ||
| + | |||
| + | |||
| + | ===== Caveats ===== | ||
| + | |||
| + | See section [[#contrary principles]]. | ||
| + | |||
| + | |||
| + | ===== Origin ===== | ||
| + | |||
| + | The principle was coined by the American engineer Kelly Johnson referring to the requirement that a military aircraft should be repairable with a limited set of tools under combat conditions ((Ben R. Rich: // | ||
| + | |||
| + | The principle of striving for simple solutions sometimes is also called "(rule of) simplicity" | ||
| + | |||
| + | |||
| + | ===== Evidence ===== | ||
| + | /* Comment out what is not applicable and explain the rest: */ | ||
| + | /* * [[wiki: | ||
| + | /* * [[wiki: | ||
| + | |||
| + | |||
| + | [[wiki: | ||
| + | |||
| + | [[wiki: | ||
| + | |||
| + | The following hypotheses can be stated: | ||
| + | - Simpler solutions are faster to implement. | ||
| + | - Simpler solutions yield fewer implementation faults (which reduces testing effort). | ||
| + | - Simpler solutions are easier to maintain, i.e. detecting and correcting defects | ||
| + | - Simpler solutions yield more reliable software, i.e. fewer defects show up after releasing | ||
| + | |||
| + | All these hypotheses can be examined | ||
| + | |||
| + | Hypothesis 1 is true by definition. If the solution cannot be implemented quickly, it is not simple. | ||
| + | |||
| + | Though hypotheses 2 and 3 are not true by definition but they can be regarded intuitively clear. Nevertheless, | ||
| + | |||
| + | Furthermore, software cost estimation techniques are partly based on complexity judgments((Barry W. Boehm: //Software Engineering Economics//, | ||
| + | |||
| + | Lastly, hypothesis 4 is likely to be false. Several studies relating complexity metrics and post-release reliability show that module size in lines of code predicts reliability | ||
| + | |||
| + | |||
| + | ===== Relations to Other Principles ===== | ||
| + | |||
| + | ==== Generalizations ==== | ||
| + | |||
| + | ==== Specializations ==== | ||
| + | |||
| + | * [[More Is More Complex]] (MIMC): KISS states that one should strive for simplicity. MIMC makes this more concrete stating that more of anything (methods, classes, lines of code, ...) increases complexity. | ||
| + | * [[You Ain't Gonna Need It]] (YAGNI) | ||
| + | * [[Rule of Parsimony]] | ||
| + | * [[Rule of Robustness]] | ||
| + | |||
| + | ==== Contrary Principles ==== | ||
| + | |||
| + | Note that many principles | ||
| + | |||
| + | * **[[Generalization Principle]] (GP)**: This is the directly converse principle. A generally applicable solution typically is not simple anymore. | ||
| + | * **[[Murphy' | ||
| + | * [[Model Principle]] (MP): There are often simpler ways to build a software system than to model and mirror the real-world behavior, which frequently means having more objects and more complicated structures. Nevertheless, | ||
| + | |||
| + | ==== Complementary Principles ==== | ||
| + | |||
| + | ==== Principle Collections ==== | ||
| + | |||
| + | {{page> | ||
| + | {{page> | ||
| + | |||
| + | |||
| + | ===== Examples ===== | ||
| + | |||
| + | ==== Example 1: Fuzzy Simplicity ==== | ||
| + | |||
| + | Simplicity is a blurry, partly subjective measure. Sometimes it is difficult to tell what is simpler. The following example shows that: | ||
| + | |||
| + | <code java> | ||
| + | public String weekday1(int dayOfWeek) | ||
| + | { | ||
| + | switch (dayOfWeek) | ||
| + | { | ||
| + | case 1: return " | ||
| + | case 2: return " | ||
| + | case 3: return " | ||
| + | case 4: return " | ||
| + | case 5: return " | ||
| + | case 6: return " | ||
| + | case 7: return " | ||
| + | default: throw new IllegalArgumentException(" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public String weekday2(int dayOfWeek) | ||
| + | { | ||
| + | if ((dayOfWeek < 1) || (dayOfWeek > 7)) | ||
| + | throw new IllegalArgumentException(" | ||
| + | |||
| + | final String[] weekdays = { | ||
| + | " | ||
| + | |||
| + | return weekdays[dayOfWeek-1]; | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Both methods do exactly the same thing. They return a string representing the weekday. Just the implementation is different. Both versions may be seen as simpler than the other depending on the view taken. '' | ||
| + | |||
| + | On the other hand '' | ||
| + | |||
| + | So it's not objectively clear which of the two implementations KISS prefers without saying which complexity metric | ||
| + | ===== Description Status ===== | ||
| + | /* Choose one of the following and comment out the rest: */ | ||
| + | / | ||
| + | [[wiki: | ||
| + | / | ||
| + | |||
| + | ===== Further Reading ===== | ||
| + | |||
| + | * [[wiki> | ||
| + | * [[wp> | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ===== Discussion ===== | ||
| + | |||
| + | Discuss this wiki article and the principle on the corresponding [[talk: | ||
principles/keep_it_simple_stupid.1762289926.txt.gz · Last modified: by luciennej68
