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:49] – created andymatney560principles:uniformity_principle [2025-08-31 14:13] (current) – old revision restored (2021-10-18 22:00) christian
Line 1: Line 1:
-Then I realized this ?????? bj88 was a chance to take part in to elsewhere . greater regarding success. "I'd really prefer to be dealing with houses, apartments, and commercial buildings" Believed to us. "How can I become partners with someone involved of these types of properties" I pondered aloud. The cell phone in my pocket started ringing.+====== Uniformity Principle (UP) ======
  
-Sometimes these malicious programs come in form of popups that certain might believe it is coming coming from a casino site you are surfing. Most online casinos cost-free downloadable programs that you can help you remove those hidden strategies. You can install this software inside your computer and run it at intervals on monthly basis or any time you suspect something of this. Sometimes, some of these hidden programs could be for traffic stealing; but to be on a safe and secure side, it's wise you just throw them away. The truth could be the as an e-commerce player, you don't be willing to dictate the intent of these malicious networks. It could be for your own detriment.+===== Variants and Alternative Names =====
  
-The bonus should be one of the most important considerations while selecting casino producers. A company should possess a well functioning customer support so that you simply get help whenever it ought to be. Select an online Casino by having an easy way to payment for withdrawal as well as money. The company should be serious regarding privacy. 
  
-There possess a higher of points that you require to consider when you are doing gambling online. You need to insurance carrier what these types of. Failure to do so would just you experience a associated with problems. Rather than enjoying the game, would likely just end up receiving into a lot of trouble. This defeats the reason for why you made the decision to play in online casinos sites first. Thus, you must know which are the top actions that you want to find out before you attempt gambling world-wide-web.+===== Context ===== 
 +/* fill in contexts here: */ 
 +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]] 
 +  * [[contexts:Implementation]] 
 +  * [[contexts:Documentation]]
  
-So anyone play which has a web-based casino web site, there is certainly not you always be check. First off check regardless of whether the online gambling site is legit. Stay away from dishonest people because they could copy web page . of legit gambling site to build their sites appear much like the genuine another. Check the web site that you're on deciding on actually if you agree of.+===== Principle Statement =====
  
-But the game didn't become really popular until even past the mid 1900s. In the late 60s a group of card playing enthusiasts, using a real love for this new style of poker really pushed improvement it into Vegas, the budding casino city.+Solve similar problems in the same way.
  
-Jackpot: A casino game offers you a hundred dollars for play and an unlimited amount of cash in your bank account. A typical slots game. The goal is to make the most money. Anyone have lose the money, you lose the. Money is stored on the inside memory may also be checked in the menu. 
  
-An online Casino bonus certainly to involve a person depositing money into one's casino account in finding out. After this is done the casino will match much of the money that anyone deposited. The match in which a casino can use will vary. In most cases an online casino gives a person a bonus of about fifty percent or . Sometimes the percentage could be even 250 percent much more.+===== Description =====
  
-Now that you simply have software downloaded, if at all possible need setting up your bank account with the gaming siteThis is easier than you think to take care of. At this pointyou might set very much deposit funds into your bank account if in which what you want to do. You can also invite friendsand download the games that you like the normally ,.+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 wayUP can be applied to a large variety of problems: naming identifiersordering parametersdeciding upon framework or library usageetc
  
-It's a branding campaign, it'measureable-segmented offer campaign, it'real time survey tool, it's a send-to-my-friends look what they actually do for me campaignWow, it almost sounds great as 60 capsules costs and jar cutter probably a pocket anglers! Or as the highest quality as a Swiss Army Knife advertising device!+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 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.
  
-Personally I've made very first attempt at Ladbrokes [[https://shorturl.at/fBo8W|????????????? bj88]] version - very famous English bookmaker, also working online activelyI didn't have to join at the casino, I just used my old login and password, but usually registration is held about the web-site, when you can use one and the same login for betting at bookmaker, and wagering their casino and poker gamesNeed to admit that Ladbrokes casino is really convenient of point of view of funds - they return the deposited money, including winnings rrn your registered credit cards. The mobile casino offers a very generous casino bonus with low requirements (the same casino bonus is effective in the online casino version what i mean the mobile casino).+For documentation UP means to have consistent documentation structure such that a certain piece of information can be found easilyFurthermore uniformity in naming schemes is especially important for documentation. When referring to the same concept the same word has to be usedSynonyms are source of misunderstanding.
  
-It's a branding campaign, it's a measureable-segmented offer campaign, it's a real time survey tool, it's a send-to-my-friends look what they certainly for me campaign. Wow, it almost sounds just like as 60 capsules costs and jar cutter it's tough pocket angler! Or as cutting edge as a Swiss Army Knife traffic generation! 
  
-One common question comes from online casino players is that whether they're going to pay their taxes or not in playing casino on-line games"What if we lose?""How the taxes deducted from your winnings?""Do they always deduct taxes every time we play online casino games?" These are the common confusion many gamblers are along with.+===== 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 differencesIf 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 complexitysometimes 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.1756590591.txt.gz · Last modified: by andymatney560