User Tools

Site Tools


principles:uniformity_principle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
principles:uniformity_principle [2025-08-30 23:21] – created andymatney560principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-One what are named as gambling web marketing strategy you can come across is called the Martingale system and is to be prevented like a plague. A simple system your own double your bet any time you lose until shipped to you and start betting within your original stake amount. Require occurs when you on a losing streak and need place huge bets to win your original stake back often reaching the table limit meaning you end up incurring a definite loss since you can't place a higher bet. Avoid this system at every cost.+====== Uniformity Principle (UP) ======
  
-The 10 percent method really is as follows, only enter a betting period with 10 % of your bankroll any kind of time one days. Then, only ever bet with ten percent of your betting period at a single time, its simple yet takes a person to develop, this must resemble habit, a person have are even worse money.+===== Variants and Alternative Names =====
  
-Download program if appropriate. Links for downloading should be seen on the location. Flash or instant play is ?????? bj88 a great choice for those using two or more computer or perhaps a mobile device; the downside could be less game variety decrease quality graphics and sounding. 
  
-This feature of online casino bonuses is a that lumber species bonus all the most precious. An casino bonus can work anywhere at an e-casino. This is all in the url of making without doubt a person can do more and experience more and more at an online casino.+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-This is in truth very in order to consider. What happens if you deposit money and some or every one of the games are bust? You will need to be proven to contact someone at the online Casino by phone or live chat speak about the rrssue. It might be smart to hit the "Live Chat" button on the online casino's website and see who answers! Find out what associated with options their casino offers, and how helpful substantial with trouble shooting. Make sure the casino you choose is 24 hours, since not all online Casino are run inside your time place.+===== Principle Statement =====
  
-For race enthusiasts the International Motorsports Hall of Fame Museum is in Talladega. It is the home in the Budweiser rocket car, which was the first auto to interrupt the speed of audio tracks. Of course, the Talladega Super Speedway is at here this the starting point be style a nationality.+Solve similar problems in the same way.
  
-If you approach it, the Mobile Casino provides great progress over the actual casino. Sure, you won't win big with a [[https://Trac.Survex.com/search?q=https://site-G3Ejyon80.Godaddysites.com/|????????????? Bj88]], nevertheless the odds of individuals doing so at a major casino are slim to none. Besides that, you aren't tempted from lights and also the noise and also the booze and you will be not losing your material. You can play all you in order to pass time or to obtain your casino fix and you will then actually feel happy afterward as an alternative to this huge feeling of regret. 
  
-The online casino games truly are the the best in terms of quality and also ease of mechanics. Very first scratch . have regarding very hard if you want to play these games in both an online casino or from a real casino for that matter. Both arenas can allow for you to definitely win whenever you play their games. The online casino games include blackjack, keno and slots too. An online casino truly has lots of options instances you should fertilize to video games. This holds true also for a real casino in Las vegas. You will never regret entering the gambling arena as long as you survive earth.+===== Description =====
  
-Many beginners believe that online Casino s provide this bonus will continue the process for on condition they remain playersIs definitely not scenario. Almost every online Casino sticks when using the policy that the bonus can only be offered onceLot many other types of bonuses that can be extremely first rate deal. First depositreload and refer a friend bonuses are the most prevalent. Some online casinos will also provide bonuses dependant upon how much you play or seeking enter certain tournaments.+Software design comprises many similar tasks. There are plenty of design decisions that are similar to ones taken beforeUP tells that a design is good when similar design problems are solved the same wayUP can be applied to large variety of problems: naming identifiersordering parameters, deciding upon framework or library usage, etc
  
-As technology continues to develop, your mobile phone or PDA will take off dated. But this new technology allows you to have fun now as well as many years to come. If you are not into sports books try playing casino games like blackjack, roulette, baccarat the point that slots. Your mobile phone or PDA can a person with many hours or fun and entertainment.+Striving for consistency and always using the same solutions also means that it can be a good idea to apply a "bad" or less-well suited solution for the sake of consistency. If for example a bad naming scheme is used throughout the whole project, it is advisable not to break it as an inconsistency in the naming scheme would be worse than applying the bad naming scheme everywhere.
  
-You always be wondering tell me what is Mobile CasinoA mobile casino is what you get when you download casino games straight to your mobile deviceThese ????????????? Bj88 games usually don't cost very much, usually around five dollars, however there instead of to flee to the casino, without digging on your bank provider.+For documentation UP means to have consistent documentation structure such that a certain piece of information can be found easilyFurthermore uniformity in naming schemes is especially important for documentationWhen referring to the same concept the same word has to be used. Synonyms are a source of misunderstanding.
  
-As mentioned before, famous . one from the coolest presents. They have a $10 buy-in concerning the competition, an individual will met the criteria to win a guaranteed $300 grand-prize. If you are not up of a paid buy-in, OnBling provides 2 free daily buy-ins with a guaranteed prize pool of $50! Do it yourself an extra edge on ones online gambling adventure, an individual should definitely try out their slots tournaments. 
  
-To help you some time and money, I'll let visitor to your site what secret behind to poker with Howard Lederer is: BluffI bluffed out Lederer you can that! Once I figured that out recreation was simple and it gave us a bad impression of the AI.+===== Rationale ===== 
 + 
 +Following UP reduces the number of different solutions. There are fewer concepts to learn, fewer problems to solve and fewer kinds of defects that can occur. So the developers, whether the original ones or the maintainers, have an easier task in creating, understanding, and maintaining the software. By reducing variety in the design, the software becomes simpler (see [[Keep It Simple Stupid|KISS]]). 
 + 
 +Documentation which follows a fixed structure helps you find a certain piece of information faster because as soon as you have understood the structure you know where to look. 
 + 
 + 
 +===== Strategies ===== 
 + 
 +  * Use the same naming scheme everywhere 
 +  * Use the same techniques, mechanisms, libraries, and frameworks everywhere 
 +  * In similar methods use the same order of parameters 
 + 
 + 
 +===== Caveats ===== 
 + 
 +UP demands solving similar problems in the //same way// and not just in a similar way. This is crucial as subtle differences can be dangerous. These small differences are created easily. Sometimes it is impossible to do two things exactly the same way. And also over time two modules may slowly diverge. So it is sometimes better to have two modules work completely differently than to allow for these subtle differences as they easily lead to misconceptions and mistakes (see [[Murphy's Law|ML]]). 
 + 
 +See also section [[#contrary principles]]. 
 + 
 + 
 +===== Origin ===== 
 + 
 +This principle is newly proposed here. Nevertheless the idea is not new and should be pretty intuitive to every developer. 
 + 
 + 
 +===== Evidence ===== 
 +/* Comment out what is not applicable and explain the rest: */ 
 +  * [[wiki:Proposed]] 
 + 
 +/*  * [[wiki:Examined]] 
 +  * [[wiki:Accepted]] 
 +  * [[wiki:Questioned]] 
 +*/ 
 + 
 +===== Relations to Other Principles ===== 
 + 
 +==== Generalizations ==== 
 + 
 +  * [[Murphy's Law]] (ML): A typical source of mistakes are differences. If similar things work similarly, they are more understandable. But if there are subtle differences in how things work, it is likely that someone will make the mistake to mix this up. 
 + 
 +==== Specializations ==== 
 + 
 +==== Contrary Principles ==== 
 + 
 +Note that UP can be contrary to virtually every other principle as it demands neglecting other principles in favor of uniformity. 
 + 
 +  * [[Keep It Simple Stupid]] (KISS): Although UP normally reduces complexity, sometimes UP demands more complex solutions because they are already applied elsewhere and for the sake of uniformity shall also be applied in simpler contexts where they would not be necessary. 
 +  * [[More Is More Complex]] (MIMC): Documenting something because of UP may result in unnecessary documentation. There may be more concise ways of documentation. 
 +  * [[Model Principle]] (MP): UP may demand adhering to a certain naming scheme, which may not be best with respect to MP. See [[#example 1: naming schemes]]. 
 + 
 +==== Complementary Principles ==== 
 + 
 +  * [[Principle of Least Surprise]] (PLS): When applying UP, PLS should also be considered for naming modules. See [[#example 1: naming schemes]]. 
 + 
 + 
 + 
 +==== Principle Collections ==== 
 + 
 +{{page>collections:OOD Principle Language#Box}} 
 + 
 + 
 +===== Examples ===== 
 + 
 +==== Example 1: Naming Schemes ==== 
 + 
 +A typical example of the application of UP is the naming of method identifiers for common container classes like [[glossary:stacks]] or [[glossary:queues]]This also shows that there are several ways to apply this principle. 
 + 
 +Stacks typically have the methods ''push'', ''pop'' and ''peek'' (sometimes also called ''top''). ''push'' puts an item onto the stack, ''pop'' removes the top most item and ''peek'' retrieves the value of the top most item without removing it from the stack. This is how the common stack model describes this data structure (see [[Model Principle|MP]]). Applying UP to this naming decision means that the methods should be named precisely as they are named everywhere else also. So a developer knowing the model or other implementations of the model will immediately know how to use this module as well. In this case MP and UP demand the same thing. [[Principle of Least Surprise|PLS]] is satisfied here as well as a developer knowing stacks will expect exactly that. 
 + 
 +Queues on the other hand typically have the methods ''enqueue'', ''dequeue'', and ''peek'' (or ''front''/''first'' or the like). MP would demand naming the operations of a ''Queue'' module exactly that way. But there are several ways Up can be applied here. The one way is to apply the principle just like above. Resulting in methods ''enqueue'' and ''dequeue''. This is how it is done in .NET((http://msdn.microsoft.com/en-us/library/system.collections.queue(v=vs.110).aspx)). The other way is to consider the method identifiers of the ''Stack'' module. A possible application of UP could be to demand naming the queue methods just like the stack methods, meaning also ''push'', ''pop'' and ''peek''. This is the naming scheme which was chosen in the Delphi RTL((http://docwiki.embarcadero.com/Libraries/XE3/en/System.Contnrs.TQueue_Methods)). Here MP and UP are contrary. A further downside of this approach is that ''pop'' and ''push'' methods might be surprising for queue class. So PLS would oppose this solution. 
 + 
 +A third possibility is to find a common abstraction and to apply a very general naming scheme to all descendant classes (stack classes, queue classes and others). This is the way it is done in Eiffel((see Bertrand Meyer: //[[http://en.wikipedia.org/wiki/Object-Oriented%20Software%20Construction|Object-Oriented Software Construction]]//, p. 127)). Here there the method names are ''put'', ''remove'' and ''item'' regardless of the concrete data structure. This is contrary to MP but creates a uniform naming scheme throughout the API. So there is less uniformity across APIs but stronger uniformity within the API. MP and UP are here contrary too. For PLS this means that a developer who is used to this philosophy is never surprised by having these methods. But developers new to it might be nevertheless. 
 + 
 +==== Example 2: This Wiki ==== 
 + 
 +This wiki has a certain structure which is uniform across all principles. Each principle description has the same sections with the same kind of information. This makes looking up principles much easier because one can directly jump to those sections containing the needed information. To mitigate the problem of unnecessary documentation (i.e. MIMC violations) sections without additional information are left blank instead of describing something obvious. 
 + 
 + 
 +===== Description Status ===== 
 +/* Choose one of the following and comment out the rest: */ 
 +/*[[wiki:Stub]]*/ 
 +[[wiki:Incomplete]] 
 +/*[[wiki:Complete]]*/ 
 + 
 +===== Further Reading ===== 
 + 
 +===== Discussion ===== 
 + 
 +Discuss this wiki article and the principle on the corresponding [[talk:principles:Uniformity Principle|talk page]]. 
principles/uniformity_principle.1756588894.txt.gz · Last modified: by andymatney560