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:50] – created andymatney560principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-Nokia has been the most fashionable brand of mobile phones who produced some astonishing models with regards to their customers to make their lives easy and full of throttle. Their new model Nokia N96 is for the specific, avid and unique people who love Nokia mobiles for the sake of everything - performance, looks, color and ability to move!+====== Uniformity Principle (UP) ======
  
-Pachinko - this is a Japanese based gaming fitness machine. The model reminds us of the pinball. Here the player releases the ball, simultaneously controlling the of the ball and making it land safely amid the absolutely no. of pins in.+===== Variants and Alternative Names =====
  
-Karate Master: In bingo you are Chen, the beginner in Martial Martial arts. Help him gain the desired black belt by earning the approval of aged master. Chen also in order to earn the title "The Best The particular Sun" by winning all fights. 
  
-Once experience established the integrity of the casino then you've to consider what a muscular. Is it a wide selection of games or even a bonus? The majority of the bet online Casino sites worldwide will have literally regarding games decide from, is additionally are thinking about playing the slots. Many versions of roulette and blackjack seem there. Single deck blackjack offers the gamer the best chance of winning in the the games, so be sure one off.+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-Of course, it is a usual thing to choose the right bonus for you but discover after gaining a lot, you may choose a 100% bonus with $50 limit for high stakes online casino games. With the so many kinds of cash and item bonuses accessible online gamblers, you definitely have a lot of choices. All it requires is a wrong choice to reduce a bundle of money. It's that easy.+===== Principle Statement =====
  
-Here is really a better instance of how this part of an added bonus will occupation. Let's say that man or women funds an online Casino account with $100. A casino bonus roughly fifty percent can be taken. This means make fish an additional $50 will be included to one's account. Essential value with the a person has your market account will now be $150. There are usually no questions asked associated to with certainty if the profit in particular is legal.+Solve similar problems in the same way.
  
-Some companies offer bonuses that are bigger than others. Take for example, William Hill bj88. Provide a $10 free bonus while 32 Red Mobile Casino offers a $50 added. However, these bonuses sometimes cannot immediately be taken. They must first be played a few of times so as to be withdraw-able, check the rules of the machines regarding this in turn. 
  
-?????? [[https://k.Merq.org/bj8856181|bj88]] The rules are easy to understand when playing online slot games, one just has to know which button hitting to win or not there are software developers that have included between four in order to six reels or more to 40 pay wrinkles. There are even bonus games; these help make the game a bit more very hard. Comparing the winning combinations, the payout percentages before starting the game will aid you win somewhat more. The free online slot games are method to go if have to have quantity of money to spend for poker. This is nothing but a bet on chance, will be not associated with rules state he how november 23 at slots, it's just as if hit and miss.+===== Description =====
  
-The Nokia 8600 Luna is one masterpiece with the range of Nokia handsetsIt has given new dimension to the realm of fashionable and classy gadgetsThis eye-catching phone which will be very attractive and stylish. This phone is a compact bundle of latest technology and advanced features to make things simpler for the user. It gives very high-class performance meet up with all the mobile needs of consumer. It has many interactive and interesting applications which can perfectly entertain the pc operator.+Software design comprises many similar tasks. There are plenty of design decisions that are similar to ones taken beforeUP tells that design is good when similar design problems are solved the same wayUP can be applied to a large variety of problems: naming identifiers, ordering parameters, deciding upon framework or library usage, etc
  
-Jackpot: An e-casino game presents you a hundred dollars for play and a limitless amount of cash in your pocketA typical slots hobby. The goal is to maximum benefit money. An individual are lose the moneyyou lose online game. Money is stored globe memory all of which will be checked in recption menus.+Striving for consistency and always using the same solutions also means that it can be good idea to apply a "bad" or less-well suited solution for the sake of consistencyIf for example a bad naming scheme is used throughout the whole projectit is advisable not to break it as an inconsistency in the naming scheme would be worse than applying the bad naming scheme everywhere.
  
-Once get found an online Casino a person need to think is actually you, enrollYou don't just always be stick to at least casino perhaps. You can become a person a few different ones to stand more regarding making little extra cash and playing different games against different buyers.+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 used. Synonyms are source of misunderstanding.
  
-I met with John a few hours later. Just few blocks, yet miles away from which I has become living, was John's storage area. I was in wonder because showed me around. John's personal car collection was housed within a building taking up 1/4 of a city reduce. I marveled in the old Porshe's, Jaguar's, BMW's, Alfa Romeo's, as well as a wide selection of motorcycles, scooters and other treasures. 
  
-Literally the majority Casino means - a smaller house or villa for summer season, which created on larger groundLater the word referred to public facilities where gambling would show up. The word online casino can be not correctly to others but I'm able to say that online casino is real blast.+===== 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 maintainershave 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 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 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 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]].
  
-So, go grab a mug 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 possess a great time playing the best online casino games you obtain! 
principles/uniformity_principle.1756590637.txt.gz · Last modified: by andymatney560