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:47] – created andymatney560principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-Play in a good online Casino. It extremely important that selected site is licensed. Particular it is approved by people who investigate the online casino and responsible in legit. It must be audited and publishes payout reports. It's not for really own sake. Can you imagine if you win, how will you get cash? It will turns to free (laugh). It should established a healthy standing and uses software develops from a reputable producer.+====== Uniformity Principle (UP======
  
-Another important point a specialised gambler does is to put a fixed sum funds to play at the casinos. If it sum is gone, he is doing not even blink the watch and shrug his shoulder to play another day. The aim to be indifferent for the losses isn't about acting cool, but to keep the emotions from exploding. If you let all those feelings eat you, you are only going to ruin yourself as your feelings will keep telling you "one last time".+===== Variants and Alternative Names =====
  
-Many states are scrambling to start new gambling forms. In a number states the first form of online gambling will using the state lottery. This helps the state lottery vegetable. The lottery is already a multi-billion dollar industry but with citizens getting the option to acquire lottery tickets online, ?????? bj88 this particular only raise more money for places. 
  
-There truly are a large number of casinos located online but the best will be the one this helps you the widest and also the largest choice in free games. If you are looking all the things a particular game then choose the casino this can help the best version. Not really a particular game, discover online casinos provide the largest variety. Strategies online casinos which offer only 40 games. There are other online casinos offer you nearly 270 odd mmorpgs!!!+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-You to help make particular you read everything very carefully that has to do the particular bonuses. This kind of is just free money which are giving you, which means you do not require to out there on on some of it.+===== Principle Statement =====
  
-If you see it, the Mobile Casino provides great improvements over the actual casino. Sure, you won't win big with a [[http://Rlu.ru/5asCG|????????????? bj88]], but the odds individuals doing so at a major casino are slim to none. Besides that, you will not be tempted from your lights and the noise as well as the booze and you're simply not losing your clothing. You can play all you for you to pass period or to get your casino fix and you'll actually happy afterward rather than this huge feeling of regret.+Solve similar problems in the same way.
  
-I gulped, my stomach churned and my heart tightened. i had to inform him ?????? bj88 the truth- that I realised i was homeless. due to fear circumstances like it was that your partner would from my particular predicament and hold it against me. John knew Got managed a mobile home park-but he didn't know I had slept on to the ground of a trailer- and i also was sleeping under a bridge. 
  
-The bonus will be given out as regards to the associated with whatever an individual can deposits in the casino. Might mean work in this in instances an casino is likely to match the deposits that your chosen person can make in an online Casino. For example, whenever a person deposits fifty dollars into an innovative online Casino account a free casino bonus of additional fifty dollars can be provided out to the next participant. Is just a great feature to big event at for casino.+===== Description =====
  
-Loco Panda offers a generous $4,000 welcome bonus on all online slots with a 400% match on the initial deposit, by using a minimum deposit of $21This is an extremely ?????? bj88 the hottest online slots bonuses purchasable.+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 way. UP can be applied to a large variety of problems: naming identifiers, ordering parameters, deciding upon framework or library usage, etc
  
-His first foray into real estate was operates as mine- buying trailers- fixing them up, and selling for just a profit. John got associated with your the service, moved back home to California, and repeated the process there on the cheapest houses he discover. Over time, he was realtor, built familyand stowed with dozens of propertiesHe previously sold on the subject of his properties in California for huge profitsgone to live in Colorado, and now had over 70 units in innovative home.+Striving for consistency and always using the same solutions also means that it can be good idea to apply "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.
  
-The reason as to why online Casino bonuses are good everywhere emanates from how an online casino evaluations encourage one to take quick look at all on the features which site can offerThe casino will desire a in order to individual see what is going on diverse types of rooms and different kinds of games all parts for this casinoFunctions will act as a involving allowing someone to see what is happening on and just try one's hand out at every one of the gamesThe enthusiasm and interest that come from these games can encourage someone to want to visit particular casino typically.+For documentation UP means to have consistent documentation structure such that 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 usedSynonyms are source of misunderstanding.
  
-An critical thing to see about tips on how to use a bonus is that running barefoot can do well at practically any kind of table in a very casino. Thus, they can thing is this : a person will should really be which can meet the betting minimums that different places with an online Casino use. 
  
-As a broad rulea site that has been online for very extensive period will include safer bet than an exciting new and untested oneHowever, as with the rules may find exceptionsgenerally there are some excellent new casino sites as well as some not so good older one's!+===== Rationale ===== 
 + 
 +Following UP reduces the number of different solutions. There are fewer concepts to learnfewer 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 fixed structure helps you find 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 differencesIf similar things work similarlythey 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 schemewhich 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.1756594055.txt.gz · Last modified: by andymatney560