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:29] – created andymatney560principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-If you think about it, the Mobile Casino music the actual casino. Sure, you won't win big with a ?????? Bj88, nevertheless the odds person doing so at an authentic casino are slim to none. Besides that, you're not tempted through lights and the noise and also the booze and you are obviously not losing your t-shirt. You can play all you to be able to pass the time or to get your casino fix and you will actually feel good afterward as opposed to this huge feeling of regret.+====== Uniformity Principle (UP) ======
  
-online Casino games are super easy and will not demand much figured. Unlike the role-playing strategy, these games can be bought some online Casino websites. If you happen to able perform these games, you will really enjoy it without the hassle of too much thought as though you are produced in the real casino. Gambling games tend to be simple only require you think of numbers which you like to bet on. Any kind of case, if you do not win you is still able perform for furnished that you during casinos. You won't have difficulty convincing individuals around to be able to let you play other as long as anyone might have money expend.+===== Variants and Alternative Names =====
  
-Mistakes in no way cheap the commission crusher is particularly true in online casino gambling. However, there are just some players or gamblers who are rich enough to spend lots of money because they never study their mistakes. If you are one of the listed people, go ahead and try the 10 ways eliminate money immediately you gamble in the online casino! 
  
-(2) Don't bet a person are can't afford to lose. Examine Do's #1 and #5. There is really a budget keep because which is the upside amount that be used as gambling, by no means money which must check out essentials like household budget, or your children's education or businesses. And expect that completely lose. Think the budget for online casino games will be wasted and never be won back in time.+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-Once own established the integrity of your casino then you've to consider what you want. Is it a wide array of games or perhaps a bonus? Most of the bet online Casino sites worldwide will have literally regarding games go for from, set you back are interested playing the slots. Many versions of roulette and blackjack will be there. Single deck blackjack offers you the best chance of winning in the the games, so make sure that one in.+===== Principle Statement =====
  
-Over the years, slot machine game games been recently providing many the correct amount of excitement that the growing system get. Through the world, these games have given a involving people more profits their particular small initial bankroll. Although, the game is about pure luck, these at times certain techniques and strategies so these people can maximize their earnings. One of their strategies november 23 at casino slot machines is to wisely choose a good machine and analyzing its capacity to give more profits.+Solve similar problems in the same way.
  
-As soon as you sign nearly join Pocket Fruity, you will receive a chip available as a no deposit welcome bonus, plus an online fruit basket full of Fruity Coins that support you to unlock more games. You could first deposit to find a new player match bonus. Reload bonuses on your second and third deposits will observe. Watch for special Pocket Fruity promotions on Fruity Fridays. Every Friday until midnight in britain there will be going to special cash bonuses, prize giveaways and contests. The casino sponsors a VIP program by invitation only, based on how much you play. 
  
-A company would not wish to lose their existing users. In are a current user then the ?????? bj88 company may offer you bonuses personal subsequent deposits. Most of the online casinos have loyalty rewards and VIP programs. So, they have you such beneficial savings.+===== Description =====
  
-The second ?????? Bj88 game, accordingly, was the blackjack, which Microgaming calls "classical" - the european blackjack (the dealer doesn't check the blackjack, the ball player may draw to split aces)Sport was again very plain, namely, maximum losses in time were only four, winnings were five, There we were fluctuating inside black as well as the hole, but since your result I won USD 5 at the stake of USD 2 (alack, is actually a the minimum stake)Such winnings appeared due into the great amount blackjacks - there were nine! So, there were 45 winnings51 losses4 even outsdoublings 5 won 4 used up.+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 identifiersordering parametersdeciding upon framework or library usageetc
  
-Some companies offer bonuses that are bigger other peopleTake for example, William Hill [[https://hideuri.com/Mr56Wl|?????? Bj88]]. They offer $10 free bonus while 32 Red Mobile Casino offers a $50 rewardsHoweverthese bonuses sometimes cannot immediately be pulledThey must first be played several different times in order for it to be withdraw-ableso check the rules of the regarding this skill.+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 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. 
 + 
 +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 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 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 UPPLS 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 alsoSo 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]].
  
-There is actual sanity and an in-depth process to your media buying savvy. You know, billboards are for branding, directions and memory joggers. Direct mail drives incremental visits, rewards player loyalty and is amazingly measurable. Radio spots strike a chord with your guests, "Oh yeah, optimistic Little River Band, I forgot just how many great songs they gained." Email is the "go-to because most people are doing it, cost-effect approach to measure and push" offers and sell those late unused inventory items. A person know. Speedy work. You'll be able to work his or her quirky little ways. You've learned how you can balance in between buys and definitely not over saturate your spending in one region. 
principles/uniformity_principle.1756589395.txt.gz · Last modified: by andymatney560