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 01:10] – created flossieholte9principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-Old Alabama Town in Montgomery is often a trip back in time. Six blocks are install with over 40 buildings that also been restored including an old time tavern and a drug mall. The buildings are from the 1800s and there are definite homes in particular. Many of the homes had slave's quarters and kitchens separate contrary to the main property or home.+====== Uniformity Principle (UP) ======
  
-Just for entertainment I loaded a European roulette of one's Mobile Casino. I played a very few spins - just and try to look. First, you are running the new joystick during the stakes field to you can put bets. Then you pressing the spin button you would see the wheel and next when the ball landed you would see final results. It is clear that the bets come longer in comparison to the offline mode, specially when they are a few. The advantage of this bj88 roulette game is that you have an substitute for make blank spins, but disadvantage will be the minimum bet amount of two USD even betting from the numbers. I've not being playing too many deals from the funny mobile casino game keeping in mined Albert Einstein conclusion: "You cannot beat a roulette table unless you steal money from it".+===== Variants and Alternative Names =====
  
-OK! You could have now registered a domain, and hosted it somewhere and choose say Blogger or Msn spaces. Almost all bloggers daily want fresh content ideas her or his blogs. Or in need for the Fresh Content, they crawls a lot of blogs piecemeal. SO, they started thinking whole new topic everyday on their blog. 
  
-If you bet on sports events or on the horses than you need this new way to position your bets. I have used this method a lot more than a year and would not trade the item. I commute over 2 hours one day on the train now, more than enjoy every minute than me.+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-Download plan if related. Links for downloading should be available on the web-site. Flash or instant play is the best place for those using longer than one computer probably mobile device; the downside could be less game variety decrease quality graphics and ?????? bj88 sound experience.+===== Principle Statement =====
  
-Think for your online Casino game Roulette. Ought to attended that includes a lot of passion. You wager at a (couple of) numbers, a color, odd or from time to time. And then the thrilling minutes that the ball goes round and round. Over time financially hit your lucky spot?! When it does, really feel unconquerable. Yihaa.+Solve similar problems in the same way.
  
-Most online casinos offer no deposit bonuses for beginners. This is one of the extremely misunderstood bonus products. It is basically a gimmick because we're not going to give you free money without nearly making you jump via a few hoops during idea of arbitrage .. The idea of the absolutely no deposit bonus is to get new players to sample an online casino. It essentially the equal to a play account except there is undoubtedly the slight potential genuinely get compensated for. 
  
-A slot game could be the easiest game to play in a casino. With gambling slots you only have to press a start button and wait if a complete combination hits the pay lines. There's absolutely no skill active. When you select a slot machine in a cell phone casino it's sensible that you just that on basis of the finest pay out scheme.+===== Description =====
  
-With the bj88, you play modern you want and sum of money you lose is play moneyit's electronicit isn't your house down payment or your kids' college money. You can play whenever and wherever you want and you might never lose money.+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 identifiersordering parametersdeciding upon framework or library usage, etc
  
-Download the software if related. Links for downloading should be entirely on the siteFlash or instant play is an excellent choice for those using many computer maybe [[http://www.cabinet-Saccone.com/spip.php?action=cookie&url=https://sites.google.com/view/bj88a/bj88|bj88]] device; the downside could be less game variety and lower quality graphics and good.+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 consistencyIf for example 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.
  
-First should certainly look for online casinos offer you sign up bonusesHigher be a motivation for for you to definitely make moreWith your sign up bonus person look for one's that aren't too tough earn. Some bonuses will most definately be made available after you play for that certain period of time, or maybe if you play a certain regarding game.+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 documentationWhen referring to the same concept the same word has to be usedSynonyms are source of misunderstanding.
  
-The rules are relatively easy when playing online slot games, one just become know which button to strike to win or not there are software developers that have included between four to 6 reels if not more to twenty six pay outlines. There are even bonus games; these develop the game a good deal challenging. Comparing the winning combinations, the payout percentages before starting the game will a person win better. The free online slot games are the way to go if you don't have the amount to released for playing. This is nothing but per game of chance, there is not set of rules the guy how november 23 at slots, it's kind of like hit and miss. 
  
-While gambling you should limit the danger by setting limits for spending money before you gambleConfident set the time limit properlyDecide how much bucks you want to shell out for gambling and exactly how long require play, and therefore stick the following limitsYou may face some problems while gambling if you discover yourself sinking into bucks that don'be spending or spending all of your free time at the online casino gambling web stores.+===== 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 divergeSo 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 workit 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 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]]. 
principles/uniformity_principle.1756595406.txt.gz · Last modified: by flossieholte9