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:09] – created andymatney560principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-An online casino bonus is among the most the best things for any person to get at an online casino. This are a few things that are used as a reward for an individual who wants to play at an casino. Products something prevented give a person plenty of free money to work with at one of these places.+====== Uniformity Principle (UP) ======
  
-Everyone knows the song "Smoke By the Water". Every kid who ever picked up a guitar for for certain be pleased plunked out that four chord blues riff. For many kids, it does not take only thing they were ever in the position to play. Can of these kids think they have dominated the story of methods that song was registered. Yes, there was a fire, the poor one. But what most, if not every one of them, don't realize is how the fire that broke out that day was throughout a Frank Zappa and the Mothers Of Invention display.+===== Variants and Alternative Names =====
  
-Jackpot: An online casino game presents you 100 dollars for play and a limitless amount of cash in your pocket. A typical slots sports. The goal is to get the most money. A person's lose the money, you lose video game. Money is stored globe memory and also be checked in recption menus. 
  
-Another important point a complicated gambler does is unique a fixed sum of cash to play at the casinos. If that sum is gone, he is doing not even blink the watch and shrug his shoulder to play another time frame. The aim end up being indifferent to your losses isn't about acting cool, but to maintain your emotions from increasing. If you let your feelings eat you, you will definitely ruin yourself as all your other worries will keep telling you "one last time".+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-The at the side of go in the list is the River belle online casino, making sure that tend to be left the actual best sensation gaming ?????? bj88 in the wagers you just can hardly manage to miss out. One more reason they give you to make note of coming to be able to the website is these people provide extremely lavish incentives and amount of payday loans of games that they give you to decide from is usually as good as 125.+===== Principle Statement =====
  
-Many states are scrambling to start new gambling forms. In a number states the first form of online gambling will start with the state lottery. It willaids the state lottery raise. The lottery is already a multi-billion dollar industry but with citizens getting the option to order lottery tickets online, all you have to only raise more money for states.+Solve similar problems in the same way.
  
-Now, playing online pokies at the online casino of one's choice takes no planning whatsoever. If you've got several minutes to kill before your favorite show occurs - enjoy online pokies. You're watching for your wife to ?????? [[https://k.merq.org/bj8856181|bj88]] get dressed for the dinner date; don't get annoyed, just get some pokies to game! Truly, you do not need an excuse to enjoy pokies anyone don't need very long. Times have certainly been changed. 
  
-Videopoker was the second Bj88 game for the testing. The game was the standard "Jack or better" by using a normal payment table 6/9. Playtech mobile casinos have wider the range of stakes than it is in Microgaming mobile casinos - coins from 0.05 USD to 5 USD. I played five coins of USD nought.25. The results were again odd: 14 pairs, 15 - two pairs, 12 treys, not a single street or flash and three fulls. Loan . fantastic way my pairs turned into treys and full-houses, there isn't any other way to explain such statistics. Basic a cut of cards the gain of 10 USD is not a wonder. The doubles sprawled in equal parts - the half was a gain, the half the loss. The PlayTech has additionally one more opportunity to double simply a half with the gain as videopoker.+===== Description =====
  
-The online casino bonus if you have a person should expect is a wonderful thing to discoverThis bonus will allow person to get free money just for adding money to one's casino scenarioBe sure to look on how different casinos can work with different standards for every single piece of their casino bonuses. Not every bonus plans are gonna be be exact same.+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
  
-One of the most important factors to me was fundamentalI wanted in order to create sure my information and money was pleasant. After doing some pretty extensive research To start to try Rushmore Casino since include been around for a couple years now and have a very good reputation. Located it easy to develop a deposit in this particular site. Inside of the past Bj88 I've tried to deposit money at other online casinos and run into big problems since complete thing been found to big a really big publicity.+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.
  
-So then, you've joined casino and a few nice bonus cash to find you startedYou're playing strictly within your loyalties towards 10 % method currently its time exercise cash extraction exercise.+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 developerswhether 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 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 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 ''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 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]].
  
-By trustworthy, it doesn't only mean someone who won't swindle your ?????? bj88 profit. Trustworthiness also means a company who thinks of your convenience inside of their players. Stop trying offer multiple payment and withdrawal methods? Will someone help you out or answer your questions if and when you need it? Are you really going to get paid a person's win? 
principles/uniformity_principle.1756595367.txt.gz · Last modified: by andymatney560