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:31] – created flossieholte9principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-So, go grab a cupful of coffee (after all, you'll need a clear head!), relax in front of your screen off from the stress normally proficient in offline casinos, and have a great time playing exercise online casino games you locate!+====== Uniformity Principle (UP======
  
-Think for your online Casino game Roulette. May be attended that includes a lot of hype. You wager at a (couple of) numbers, a color, odd or consistent. And then the thrilling minutes that the ball goes round and round. Outfit hit your lucky area?! When it does, you are feeling unconquerable. Yihaa.+===== Variants and Alternative Names =====
  
-Think concerning the online Casino game Roulette. Is actually possible to attended that includes a lot of interest. You wager at a (couple of) numbers, a color, odd or consistent. And then the thrilling minutes how the ball goes round and round. Does it hit your lucky area?! When it does, you unconquerable. Yihaa. 
  
-?????? bj88 'International Gamers Survey 2009/2010' shows that overall more men gamble online. Coverage we in different platforms we see something better. More women (16%) play casino games on portals then men (14%) enjoy. When we look at consoles, the numbers are almost even, men (10%) and girls (9%). Smartphones one the market and Pc games stand out in this survey. 17% of the women play casino games on their mobile phone in contrast with men with the lowest 8%. As we look at PC games, again 17% of the ladies play casino games. Only 7% of the men play casino games on their PC.+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-Simply because four is too many and a is not enough, subsequent three steps are essential components belonging to the gambling triangle, that employed correctly can help your income generating endeavours. It once baffled me during this how the clever individuals glasses would present privately an equation along with planning efficiency, 3d models mathematics and models of which could slightly improve openings.+===== Principle Statement =====
  
-XXL Club Casino is the most beneficial casino from the point of view of support. One more pleasant detail is that visiting the online casino site I found a pop-up banner, promising 10USD no deposit Mobile Casino bonus. In just a moment I experienced my bonus but lost it in slots as quickly as received (betting 2USD per spin, so, this isn't a wonder). After that, as I do in PlayTech casinos, I rejected the bonuses ([[http://www.Xitang-bbs.cn/home/link.php?url=https://Zenwriting.net/w9ygx75ix3|????????????? bj88]] support was very happy to handle my request), produced a deposit and started playing my favourite mobile casino quests. I have to say that the registration and also the casino deposit were made via online casino website, although it is possible also with the phone.+Solve similar problems in the same way.
  
-Apart all this, the Nokia 6500 Slide helps the user to enjoy and have entertainment through Java games like High Roller Casino Game, Golf Tour game and Rally 3D program. More games can be downloaded through game downloading facility. Very good music player is also available to be a musician in MP3, MP4, AAC, eAAC+ and WMA format for car stereo songs. The FM radio helps to attach through various radio stations and have fun with listening your favorite music. 
  
-Then I realized this was a chance to begin to elsewhere . greater amount of success. "I'd really somewhat be dealing with houses, apartments, and commercial buildings" Believed to other people. "How can I become partners with someone involved in the current types of properties" I pondered out loud. The cell phone in my pocket started ringing.+===== Description =====
  
-Always remember the fact that gambling on the web is addictive as well as that's you should be very realistic with thatYou must set certain limits oneself so that you do not fall in the trap of addiction. Educate loved ones what an individual doing so that they really can check on on you as greatThe main issue with online gambling is that going barefoot is way too difficult to walk away. From real casinowhen your chips run outyou have to end up. This isn't the truth with a respectable option anyone have always be very real about males that own a bigger chance to get hookedspecially if they provide the best online casino bonuses.+Software design comprises many similar tasksThere 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 way. UP can be applied to a large variety of problems: naming identifiersordering parametersdeciding upon framework or library usageetc
  
-Three check across the CasinoMeister site, which is actually independent auditor of casinos and offers an approved marketing e-mail list. If the casino is on that listtrucking industry excellent chance it will run to some extent.+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.
  
-So just what the simplest way to use free play money up against the casino, the answer is to be treating those handsome bonuses like real your cashThe reason, because then and simply then do you understand your way the real casino game does workWinning and losing real make the most the casino is best experienceyet free play can be used to prepare us each outcomes.+For documentation UP means to have a consistent documentation structure such that a certain piece of information can be found easily. Furthermore uniformity in naming schemes is especially important for documentation. When referring to the same concept the same word has to be used. Synonyms are a source of misunderstanding. 
 + 
 + 
 +===== 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 complexitysometimes 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 a 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]].
  
-Pocket Fruity specializes only in slots and fruit machine games at this time, serving up distinctive juicy associated with ????????????? bj88 artists. These bright and colorful games include action packed titles because Snake Charm and In demand Rolling 7s. You will notice that at first a involving the games appear with giant padlocks on them and may wonder what that's needed to know about. The secret is revealed: these games will unlock if you play the others and earn Fruity Gold. Another intriguing thing about the Pocket Fruity games is that some of such have what is called a trail feature. Like good old fruit machines in pubs on land, they allow you to move up a "trail" as you continue perform. If you are lucky enough to complete the trail, there is a pleasant surprise waiting that. 
principles/uniformity_principle.1756589508.txt.gz · Last modified: by flossieholte9