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-31 00:46] – created flossieholte9principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-A 1 week back, There we were toying around with a cell phone casino game. When I was playing a problem blackjack category, I realized that although this is just computer generation of random playing, the probability of winning and losing are about sneakers.+====== Uniformity Principle (UP) ======
  
-Initially all it is best to possible to play a game for free without download or plate. This is the case with most [[https://Oke.zone/profile.php?id=1049409|?????? bj88]] card games. Just click selection of demo play and you happen to be playing an awesome gambling game for completely free. When you in order to be play for real money on your own cell phone the process isn't hard too. Just select the you in order to play after which it is choose for the option play for real. Then you need to fill in the most personal details and when that's done you're almost ready perform for a real income. You make a deposit from the cashier and upon the initial deposit you'll receive a great bonus, generally speaking. This process won't take more compared minute or two.+===== Variants and Alternative Names =====
  
-The rules are quite simple when playing online slot games, one just needs to know which button to hit to win or not there are software developers that have included between four to six reels and assend to twenty six pay lines. There are even bonus games; these make the game far more challenging. Comparing the winning combinations, the payout percentages before starting the game will assist win whole lot. The free online slot games are the method to go if you do not have the to place for gaming. This is nothing but a game title of chance, there is not set of rules the guy how to win at slots, it's much like hit and miss. 
  
-Their welcome bonus selection is actually not that bad. Considerable offering a $3,250 welcome bonus, and assend to a 325% deposit match. Difficulties exactly as huge as the other online casinos we review, nonetheless are definitely at the top of the the list when it will come to fun and exciting contests. They offer more than just a welcome bonus though; they are selling a $5,000 table games bonus, $4,000 slots bonus and a $2,000 high roller ?????? bj88 commission. They are also providing weekly bonuses, so absolutely should want in order to maintain tuned in to this online casino.+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-'International Gamers Survey 2009/2010' shows that overall more men gamble online. An excellent we in different platforms we see something otherwise. More women (16%) play casino games on portals then men (14%) carry out. When we look at consoles, tinier businesses are almost even, men (10%) and some women (9%). Mobile phone handsets and Pc games stand out in this survey. 17% of the women play casino games of their mobile phone in contrast with men with any small 8%. When we look at PC games, again 17% of the women play casino games. Only 7% belonging to the men play casino games on their PC.+===== Principle Statement =====
  
-Personally I have made most recent attempt at Ladbrokes ?????? bj88 version - a very famous English bookmaker, also working online actively. Some have to join at the casino, I just used my old login and password, but usually the registration is held about the web-site, followed by you will use one and also the same login for betting at bookmaker, and wagering their casino and poker games. Groundbreaking, i was admit that Ladbrokes casino is a quite convenient of one's point of view of funds - they return the deposited money, including winnings to your registered plastic. The mobile casino offers a very generous casino bonus with low requirements (the same casino bonus is great at the online casino version what i mean the mobile casino).+Solve similar problems in the same way.
  
-Before actually making an investment, it's worthwhile to gather enough knowledge on affiliate marketing first. What do you really have to achieve from being a marketer online and just what your target market? Short term targets are in order to achieve as well as it advisable to start with these the first. 
  
-An online Casino bonus will probably to involve a person depositing money into one's casino account in procedure. After system done the casino will match a number of the the money that an individual deposited. The match than a casino can use will can differ. In most cases an online casino can a person a bonus of about fifty percent or simply. Sometimes the percentage can be even a century percent far more.+===== Description =====
  
-If would like to to experience staying in the cabin on the inside woodsGulf ShoresAlabama is area that it hurts to lookGulf State Park has cabin rentals; some are while on the water plus some are regarding forestWould like be regarding wilderness howeveryou are merely short distance from Mobile and Luton.+Software design comprises many similar tasks. There are plenty of design decisions that are similar to ones taken before. UP 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 identifiers, ordering parameters, deciding upon framework or library usage, etc.  
 + 
 +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. 
 + 
 +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 designthe 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 techniquesmechanisms, 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 MPSee [[#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 hereThe 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 methodsmeaning 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]].
  
-The very first thing that you're heading to wish to remember is often that even month-to-month are great at playing casino club against your friends at home or even playing within a casino club, online Casino club has alternate choice . set of rules. Regardless of what your skill level is actual life, need to know start previously room newcomers. Knowing the rules of the sport is only 1 part for being able become good using the web. You have to have the opportunity to fits how the speed of sport is additionally the know the habits people today who when the bet website. When people play online they often bet within a more aggressive manner. Have a tendency to take more chances than they might usually eat an offline game. This throw a competent player for only a loop once they first move into the online world. 
principles/uniformity_principle.1756593996.txt.gz · Last modified: by flossieholte9