Knowledge

Naming convention (programming)

Source đź“ť

229: 835:
CLASS words ideally would be a very short list of data types relevant to a particular application. Common CLASS words might be: NO (number), ID (identifier), TXT (text), AMT (amount), QTY (quantity), FL (flag), CD (code), W (work) and so forth. In practice, the available CLASS words would be a list
372:
Some naming conventions limit whether letters may appear in uppercase or lowercase. Other conventions do not restrict letter case, but attach a well-defined interpretation based on letter case. Some naming conventions specify whether alphabetic, numeric, or alphanumeric characters may be used, and if
1662:
takes some cues from its C heritage for conventions. Locally scoped variables and subroutine names are lowercase with infix underscores. Subroutines and variables meant to be treated as private are prefixed with an underscore. Package variables are title cased. Declared constants are all caps.
948:
are, by convention, written using only uppercase letters and underscores (this is related to the convention in many programming languages of using all-upper-case identifiers for constants). Names containing double underscore or beginning with an underscore and a capital letter are reserved for
142:
The choice of naming conventions (and the extent to which they are enforced) is often a contentious issue, with partisans holding their viewpoint to be the best and others to be inferior. Moreover, even with known and well-defined naming conventions in place, some organizations may fail to
329:
It is an open research issue whether some programmers prefer shorter identifiers because they are easier to type, or think up, than longer identifiers, or because in many situations a longer identifier simply clutters the visible code and provides no perceived additional benefit.
1165:
rather than underscores to write multiword names. When referring to structs or functions, the first letter specifies the visibility for external packages. Making the first letter uppercase exports that piece of code, while lowercase makes it only usable within the current scope.
1722:", it is prefixed by one or two underscores. Private variables are enforced in Python only by convention. Names can also be suffixed with an underscore to prevent conflict with Python keywords. Prefixing with double underscores changes behaviour in classes with regard to 1290:— that is, designed to indicate to the casual observer the intent of its use. One-character variable names should be avoided except for temporary "throwaway" variables. Common names for temporary variables are i, j, k, m, and n for integers; c, d, and e for characters. 1145:) are treated as private (since the language does not have explicit keywords for public or private access). Additionally, source file names do not follow Java's "one public class per source file, name must match" rule, instead using snake_case for filenames. 346:
such as TRS-80 Level 2 Basic, long names were allowed, but only the first two letters were significant. This feature permitted erroneous behaviour that could be difficult to debug, for example when names such as "VALUE" and "VAT" were used and intended to be
143:
consistently adhere to them, causing inconsistency and confusion. These challenges may be exacerbated if the naming convention rules are internally inconsistent, arbitrary, difficult to remember, or otherwise perceived as more burdensome than beneficial.
1742:, the tidyverse style guide from R-guru Hadley Wickham sets the standard for most users. This guide recommends avoiding special characters in file names and using only numbers, letters and underscores for variable and function names e.g. fit_models.R. 341:
which required variable names to be restricted to 6 characters to save memory. A later "advance" allowed longer variable names to be used for human comprehensibility, but where only the first few characters were significant. In some versions of
1579:
Top-level entities, including classes, protocols, categories, as well as C constructs that are used in Objective-C programs like global variables and functions, are in UpperCamelCase with a short all-uppercase prefix denoting namespace, like
1178:, naming conventions for identifiers have been established and suggested by various Java communities such as Sun Microsystems, Netscape, AmbySoft, etc. A sample of naming conventions set by Sun Microsystems are listed below, where a name in " 1650:
identifiers for math constants, variables, formal parameters and functions. While some dialects support underscore and dollar signs in identifiers, snake case and macro case is more likely confined to use within foreign API interfaces.
903:
dialects, the delta (Δ) is used between words, e.g. PERFΔSQUARE (no lowercase traditionally existed in older APL versions). If the name used underscored letters, then the delta underbar (⍙) would be used instead.
803:
A style used for very short (eight characters and less) could be: LCCIIL01, where LC would be the application (Letters of Credit), C for COBOL, IIL for the particular process subset, and the 01 a sequence number.
289:
The exact rules of a naming convention depend on the context in which they are employed. Nevertheless, there are several common elements that influence most if not all naming conventions in common use today.
770:
Some naming conventions represent rules or requirements that go beyond the requirements of a specific project or problem domain, and instead reflect a greater overarching set of principles defined by the
396:
in identifiers, a method of delimiting each word is needed (to make it easier for subsequent readers to interpret which characters belong to which word). Historically some early languages, notably
1209:, with the first letter of every word capitalised. Use whole words – avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML). 1141:, the conventions are similar to those of Java, except that constants are written in lowerCamelCase. Dart imposes the syntactic rule that non-local identifiers beginning with an underscore ( 1811:
across variables and function declarations. Constants are usually defined by enum types or constant parameters that are also written this way. Class and other object type declarations are
80:
The choice of naming conventions can be a controversial issue, with partisans of each holding theirs to be the best and others to be inferior. Colloquially, this is said to be a matter of
385:
may not be as meaningful, or specific, as multiple words. Consequently, some naming conventions specify rules for the treatment of "compound" identifiers containing more than one word.
1428:
feature, typing just the upper-case letters of a CamelCase word will suggest any matching class or method name (for example, typing "NPE" and activating content assist could suggest
302:(i.e., the finite number of individual characters allowed in an identifier). Some rules dictate a fixed numerical bound, while others specify less precise heuristics or guidelines. 992:
naming conventions generally follow the guidelines published by Microsoft for all .NET languages (see the .NET section, below), but no conventions are enforced by the C# compiler.
1818:
As of Swift 3.0 there have been made clear naming guidelines for the language in an effort to standardise the API naming and declaration conventions across all third party APIs.
1730:
suffixing with double underscores - the so-called "dunder" ("double under") methods in Python - are reserved for "magic names" which fulfill special behaviour in Python objects.
312:
shorter identifiers may be preferred as more expedient, because they are easier to type (although many IDEs and text-editors provide text-completion, which mitigates this)
315:
extremely short identifiers (such as 'i' or 'j') are very difficult to uniquely distinguish using automated search and replace tools (although this is not an issue for
1688:
1) and PSR-12. According to PSR-1, class names should be in PascalCase, class constants should be in MACRO_CASE, and function and method names should be in camelCase.
1182:" is one composed of a number of words joined without spaces, with each word's -- excluding the first word's -- initial letter in capitals – for example "camelCase". 1011:
values). A special exception to PascalCase is made for two-letter acronyms that begin an identifier; in these cases, both letters are capitalized (for example,
120:
to enhance the aesthetic and professional appearance of work product (for example, by disallowing overly long names, comical or "cute" names, or abbreviations);
795:("Systems Hungarian") of a variable in its name. For example, the prefix "sz" for the variable szName indicates that the variable is a null-terminated string. 2463: 1238:
or a multi-word name that begins with a verb in lowercase; that is, with the first letter lowercase and the first letters of subsequent words in uppercase.
969:, but the semantics differ: the underscores are part of the value of the identifier, rather than being quoting characters (as is stropping): the value of 850:
of a particular data field. Prior to the acceptance of BOOLEAN (two values only) fields, FL (flag) would indicate a field with only two possible values.
404:(1958), allowed spaces within identifiers, determining the end of identifiers by context. This was abandoned in later languages due to the difficulty of 1761:(or single quote) within an identifier (but not two in a row), provided that it is followed by an alphabetic character. Raku programmers thus often use 1101:
refer to the same object. By convention, this prefix is only used in cases when the identifier would otherwise be either a reserved keyword (such as
151:
Well-chosen identifiers make it significantly easier for developers and analysts to understand what the system is doing and how to fix or extend the
250: 2354: 1807:
has shifted its naming conventions with each individual release. However a major update with Swift 3.0 stabilised the naming conventions for
520:
An alternative is to use underscores; this is common in the C family (including Python), with lowercase words, being found for example in
130:
to provide meaningful data to be used in project handovers which require submission of program source code and all relevant documentation;
1455:
The built-in JavaScript libraries use the same naming conventions as Java. Data types and constructor functions use upper camel case (
826:
It detailed the PRIME-MODIFIER-CLASS word scheme, which consisted of names like "CUST-ACT-NO" to indicate "customer account number".
76:
To enable code quality review tools to focus their reporting mainly on significant issues other than syntax and style preferences.
811:
and is also seen in the 8.3 (maximum eight characters with period separator followed by three character file type) MS-DOS style.
2280: 1842: 1357:
Java compilers do not enforce these rules, but failing to follow them may result in confusion and erroneous code. For example,
1117:), in which cases the prefix is not strictly required (at least not at its declaration; for example, although the declaration 2474: 2382: 1952: 2294: 1549:) and is a shared convention for the .NET languages. Microsoft further recommends that no type prefix hints (also known as 123:
to help avoid "naming collisions" that might occur when the work product of different organizations is combined (see also:
2028: 2014: 2266: 2252: 215:
Experiments suggest that identifier style affects recall and precision and that familiarity with a style speeds recall.
1417: 212:
which implies the intent and meaning of the source code, at least to those familiar with the context of the statement.
2119: 276: 322:
longer identifiers may be preferred because short identifiers cannot encode enough information or appear too cryptic
258: 363:
much of computer science originating from mathematics, where variable names are traditionally only a single letter
405: 28: 2238: 412:
for Java package names, though legibility suffers for longer terms, so usually some form of separation is used.
1862: 1007:, with the latter used only for method parameter names and method-local variable names (including method-local 989: 921: 585: 254: 184: 70: 945: 1696: 1553:) are used. Instead of using Hungarian notation it is recommended to end the name with the base class' name; 820: 577: 503: 393: 2144: 2061: 1857: 1804: 1542: 456: 2641: 1827: 1781: 1750: 1700: 1685: 1495: 1409: 1175: 1134: 872: 581: 546:. Sometimes this is humorously referred to as SCREAMING_SNAKE_CASE (alternatively SCREAMING_SNAIL_CASE). 460: 32: 2351: 1975: 900: 884: 522: 305:
Identifier length rules are routinely contested in practice, and subject to much debate academically.
1992: 1413: 1154: 2603: 2623:
that uses linguistics and psychology to attempt a cost/benefit analysis of identifier naming issues
2339: 1739: 1399: 913: 499: 239: 2578: 2170: 1614:
Method names use multiple lowerCamelCase parts separated by colons that delimit arguments, like:
408:. It is possible to write names by simply concatenating words, and this is sometimes used, as in 243: 1546: 1109:), which may not be used as an identifier without the prefix, or a contextual keyword (such as 937: 468: 48: 2091: 1987: 1929: 846:
The purpose of CLASS words, in addition to consistency, was to specify to the programmer the
772: 555: 1483:). In order to be consistent most JavaScript developers follow these conventions. See also: 2636: 808: 776: 703: 539: 389: 20: 2369: 1899: 8: 1885:
An experiment investigating the effect of variable names on operator precedence selection
1753:
follows more or less the same conventions as Perl, except that it allows an infix hyphen
1322:. Constant names may also contain digits if appropriate, but not as the first character. 839:
CLASS words, typically positioned on the right (suffix), served much the same purpose as
2446: 2435: 2308: 1958: 1837: 1550: 1286:
Variable names should be short yet meaningful. The choice of a variable name should be
1281: 1138: 966: 929: 840: 788: 514: 351: 338: 316: 2322: 2620: 2564: 2074: 1948: 1852: 1603:
Instance variables of an object use lowerCamelCase prefixed with an underscore, like
611: 560:
Another approach is to indicate word boundaries using medial capitalization, called "
543: 2220: 1723: 133:
to provide better understanding in case of code reuse after a long interval of time.
1962: 1940: 1669: 1062:) are explicitly not covered by the guidelines. The most common practice is to use 954: 925: 832:
MODIFIER words were used for additional refinement, qualification and readability.
2407: 2358: 1895: 498:
By contrast, languages in the FORTRAN/ALGOL tradition, notably languages in the
360:
early low-resolution monitors with limited line length (e.g. only 80 characters)
1882: 1719: 1522: 1435:
Initialisms of three or more letters are CamelCase instead of uppercase (e.g.,
1425: 602: 535: 510: 1944: 2630: 2195: 2042: 1421: 1284:
that state that underscores should be used to prefix all instance variables.
1265:
Local variables, instance variables, and class variables are also written in
829:
PRIME words were meant to indicate major "entities" of interest to a system.
2541: 863:
Adobe's Coding Conventions and Best Practices suggests naming standards for
807:
This sort of convention is still in active use in mainframes dependent upon
2075:"Revisions to jwfearn's answer to What's the name for dash-separated case?" 1125:
to indicate to the reader immediately that the latter is a variable name).
864: 589: 425: 355: 2500: 2420: 2486: 2267:"ISO/IEC 14882:2011 Information technology – Programming languages – C++" 1905: 1569: 1280:) characters, even though both are allowed. This is in contrast to other 507: 152: 111: 104: 63: 44: 1642:
identifiers for programs, modules, constants, types and procedures, and
1596:. Constants may optionally be prefixed with a lowercase letter "k" like 471:. This convention has no standard name, though it may be referred to as 298:
Fundamental elements of all naming conventions are the rules related to
1832: 1319: 936:
for a function testing whether a character is alphanumeric), while the
868: 736: 689: 666: 527: 433: 124: 55: 40: 2501:"perlmodlib – constructing new Perl modules and finding existing ones" 1506:. Dynamic variable names conventionally start and end with asterisks: 1484: 534:. Underscores with uppercase, as in UPPER_CASE, are commonly used for 428:
character. The two characters commonly used for this purpose are the
2528: 1847: 1573: 1537: 1527: 1424:, implement shortcuts based on CamelCase. For instance, in Eclipse's 1404: 1394: 1268: 1234: 1205: 1179: 1003: 997: 847: 561: 421: 84:. Many companies have also established their own set of conventions. 36: 27:
is a set of rules for choosing the character sequence to be used for
2383:"5 JavaScript Style Guides – Including AirBnB, GitHub, & Google" 2102: 564:", "PascalCase", and many other names, thus respectively rendering " 228: 1287: 950: 792: 381:
A common recommendation is "Use meaningful identifiers." A single
97: 1788:
for type aliases and struct, trait, enum, and enum variant names,
1498:
dialects is to use dashes to separate words in identifiers, as in
1089:
Any identifier name may be prefixed by the commercial-at symbol (
397: 16:
Set of rules for naming entities in source code and documentation
1937:
2009 IEEE 17th International Conference on Program Comprehension
2552: 2047: 1019:). The guidelines further recommend that the name given to an 621: 429: 2514: 1443:). One may also set the boundary at two or more letters (e.g. 325:
longer identifiers may be disfavored because of visual clutter
69:
To enable code reviews to focus on issues more important than
54:
Reasons for using a naming convention (as opposed to allowing
2447:.NET Framework Developer's Guide – General Naming Conventions 2424: 2015:"StackOverflow – What's the name for snake_case with dashes?" 1634:
Wirthian languages Pascal, Modula-2 and Oberon generally use
995:
The Microsoft guidelines recommend the exclusive use of only
917: 791:, which encodes either the purpose ("Apps Hungarian") or the 495:, dating at least to 2012, has achieved some currency since. 452: 401: 343: 114:
or search and replace tools with minimal potential for error;
81: 1659: 1038:
The Microsoft guidelines for naming fields are specific to
597: 513:
operator, and did not wish to require spaces around it (as
464: 382: 92:
Benefits of a naming convention can include the following:
2239:"3.2.1 Names - Chapter 3 - Ada 95 QUALITY AND STYLE Guide" 1015:); this is not the case for longer acronyms (for example, 1681: 593: 187:
correct, its purpose is not evident. Contrast this with:
58:
to choose any character sequence) include the following:
1066:
for the names of all fields, except for those which are
1883:"Operand names influence operator precedence decisions" 333:
Brevity in programming could be in part attributed to:
2350:"NETSCAPE'S SOFTWARE CODING STANDARDS GUIDE FOR JAVA", 2338:"Code Conventions for the Java Programming Language", 1663:
Package names are camel case excepting pragmata—e.g.,
814: 592:. Treatment of initialisms in identifiers (e.g. the " 451:
The hyphen is used by nearly all programmers writing
606:) varies. Some dictate that they be lowercase (e.g. 2475:
Foreign API Identifiers in Modula-2 Name Convention
1272:. Variable names should not start with underscore ( 940:often uses an underscore as a word separator (e.g. 117:
to enhance clarity in cases of potential ambiguity;
62:To reduce the effort needed to read and understand 2334: 2332: 2029:"Programmers – If this is camelCase what-is-this?" 1054:and that have other accessibility levels (such as 765: 2370:"AmbySoft Inc. Coding Standards for Java v17.01d" 2120:"naming - What are the different kinds of cases?" 2062:UnderscoreVersusCapitalAndLowerCaseVariableNaming 1093:), without any change in meaning. That is, both 871:. The style of identifiers is similar to that of 2628: 2145:"A brief list of programming naming conventions" 1796:for variable, function and struct member names. 1572:has a common coding style that has its roots in 1392:One widely used Java coding style dictates that 853: 2352:Collab Software Coding Standards Guide for Java 2329: 887:, the only recommended style of identifiers is 2436:Microsoft .NET Framework Capitalization Styles 1629: 1082:preceded by a single underscore; for example, 932:, abbreviated names are the most common (e.g. 819:IBM's "OF Language" was documented in an IMS ( 549: 100:) about the use to which an identifier is put; 2253:"ISO/IEC 9899:1999 Programming languages – C" 749:TRAIN-CASE, COBOL-CASE, SCREAMING-KEBAB-CASE 614:, whereas others leave them uppercased (e.g. 2323:"Effective Go - the Go Programming Language" 1927: 1510:. Constants names are marked by plus signs: 779:or other kind of cross-project methodology. 622:Examples of multiple-word identifier formats 415: 376: 1738:While there is no official style guide for 538:macros, hence known as MACRO_CASE, and for 367: 257:. Unsourced material may be challenged and 103:to help formalize expectations and promote 1616:application:didFinishLaunchingWithOptions: 1365:imply significantly different behaviours: 1121:is valid, this would typically be seen as 610:) to ease typing, readability and ease of 467:for commands and packages, and is used in 2546: 928:identifiers are mostly lowercase. In the 867:that are mostly consistent with those of 277:Learn how and when to remove this message 96:to provide additional information (i.e., 2529:"PSR-1: Basic Coding Standard - PHP-FIG" 1718:In Python, if a name is intended to be " 1684:recommendations are contained in PSR-1 ( 293: 2380: 2309:"Effective Dart - the Dart Style Guide" 2072: 1894: 1381:implies an invocation to static method 576:". This convention is commonly used in 2629: 1843:List of tools for static code analysis 798: 556:Letter case § Special case styles 517:), preventing its use in identifiers. 2381:Morelli, Brandon (17 November 2017). 2114: 2112: 2110: 1928:Binkley, Dave; Davis, Marcia (2009). 782: 87: 2535: 1765:in their identifiers; for example, 1471:) and methods use lower camel case ( 965:). This is superficially similar to 739:, dash-case, lisp-case, spinal-case 526:(1978), and has come to be known as 255:adding citations to reliable sources 222: 2507: 815:Composite word scheme (OF Language) 13: 2188: 2107: 1691: 1078:), which are given names that use 506:families, used the hyphen for the 218: 14: 2653: 2614: 2604:"swift.org API Design Guidelines" 627:Multiple-word identifier formats 542:in Unix, such as BASH_VERSION in 2565:"General rules of Perl 6 syntax" 2542:Style Guide for Python Code PEP8 1369:implies an invocation to method 981:(but in a different namespace). 436:("_"); e.g., the two-word name " 227: 2621:coding-guidelines.com has a pdf 2596: 2571: 2557: 2521: 2515:"PHP standards recommendations" 2493: 2479: 2468: 2457: 2451: 2440: 2429: 2414: 2400: 2374: 2363: 2344: 2340:Section 9: "Naming Conventions" 2315: 2301: 2297:. Microsoft. 15 September 2021. 2287: 2283:. Microsoft. 15 September 2021. 2273: 2259: 2245: 2231: 2213: 2163: 2137: 2096: 2081: 2066: 1485:Douglas Crockford's conventions 1416:. Recognising this usage, some 1318:Constants should be written in 1202:Class names should be nouns in 1128: 1027:preceded by the capital letter 957:) and should not be used (e.g. 858: 787:Perhaps the most well-known is 766:Metadata and hybrid conventions 491:, or other variants. Of these, 110:to enable the use of automated 2221:"Making Wrong Code Look Wrong" 2055: 2035: 2021: 2007: 1980: 1969: 1921: 1888: 1875: 1863:Syntax (programming languages) 1564: 836:of less than two dozen terms. 726:Pascal_Snake_Case, Title_Case 146: 1: 1930:"To camelcase or under_score" 1868: 1792:for constants or statics and 1450: 854:Language-specific conventions 821:Information Management System 759:Train-Case, HTTP-Header-Case 463:(1958); it is also common in 137: 2073:jwfearn (5 September 2012). 1858:Sigil (computer programming) 1709:CAPITALIZED_WITH_UNDERSCORES 1050:fields; fields that are not 944:). Identifiers representing 907: 706:, MACRO_CASE, CONSTANT_CASE 7: 1828:Category:Naming conventions 1821: 1686:PHP Standard Recommendation 1630:Pascal, Modula-2 and Oberon 1231:Methods should be verbs in 1184: 1157:, the convention is to use 889:Mixed_Case_With_Underscores 692:, snail_case, pothole_case 679:PascalCase, UpperCamelCase 550:Letter case-separated words 440:" would be represented as " 10: 2658: 553: 523:The C Programming Language 107:within a development team; 1993:Mozilla Developer Network 1945:10.1109/ICPC.2009.5090039 1535:, for most identifiers. ( 1327: 977:(which is reserved), not 655:UPPERCASE, SCREAMINGCASE 416:Delimiter-separated words 377:Multiple-word identifiers 2464:Modula-2 Name Convention 2090:(2015), by Carin Meier, 1909:(version 4.4.8 ed.) 1799: 1494:Common practice in most 1445:parseDbmXmlFromIpAddress 1441:parseDBMXMLFromIPAddress 1437:parseDbmXmlFromIPAddress 1307:float myWidth; 368:Letter case and numerals 189: 160: 155:to apply for new needs. 43:, and other entities in 2295:"Names of Type Members" 1776: 1773:are valid identifiers. 1745: 1654: 1517: 1489: 1169: 158:For example, although 2553:Style Guide for RCode 1676: 1673:—which are lowercase. 1477:getElementsByTagNameNS 1137:language, used in the 1123:dynamic @dynamic; 894: 878: 424:separate words with a 373:so, in what sequence. 1373:in an instance named 1148: 1119:dynamic dynamic; 984: 773:software architecture 540:environment variables 390:programming languages 308:Some considerations: 294:Length of identifiers 73:and naming standards. 2579:"Naming conventions" 2357:3 March 2009 at the 2171:"Naming conventions" 1939:. pp. 158–167. 1790:SCREAMING_SNAKE_CASE 1733: 1430:NullPointerException 1320:SCREAMING_SNAKE_CASE 1220:class ImageSprite {} 938:C++ standard library 777:programming language 704:SCREAMING_SNAKE_CASE 251:improve this section 21:computer programming 2281:"Naming Guidelines" 2196:"camel-snake-kebab" 2043:"Camel_SNAKE-kebab" 1711:for constants, and 1541:is recommended for 799:Positional notation 628: 515:free-form languages 420:One approach is to 352:source code editors 2642:Naming conventions 2487:"Perl style guide" 2421:Naming conventions 1900:"religious issues" 1898:(1 October 2004). 1838:Coding conventions 1551:Hungarian notation 1481:createCDATASection 1302:char c; 1297:int i; 1282:coding conventions 1276:) or dollar sign ( 930:C standard library 841:Hungarian notation 789:Hungarian notation 783:Hungarian notation 626: 88:Potential benefits 2583:doc.rust-lang.org 2200:camel-snake-kebab 2175:doc.rust-lang.org 2103:lodash: kebabCase 2051:. September 2019. 1954:978-1-4244-3998-0 1853:Naming convention 1757:or an apostrophe 1715:for other names. 1707:for class names, 1620:stringWithFormat: 1355: 1354: 1191:Rules for naming 763: 762: 716:camel_Snake_Case 300:identifier length 287: 286: 279: 25:naming convention 2649: 2608: 2607: 2600: 2594: 2593: 2591: 2589: 2575: 2569: 2568: 2561: 2555: 2550: 2544: 2539: 2533: 2532: 2525: 2519: 2518: 2511: 2505: 2504: 2497: 2491: 2490: 2483: 2477: 2472: 2466: 2461: 2455: 2449: 2444: 2438: 2433: 2427: 2418: 2412: 2411: 2404: 2398: 2397: 2395: 2393: 2378: 2372: 2367: 2361: 2348: 2342: 2336: 2327: 2326: 2319: 2313: 2312: 2305: 2299: 2298: 2291: 2285: 2284: 2277: 2271: 2270: 2263: 2257: 2256: 2249: 2243: 2242: 2235: 2229: 2228: 2225:Joel on Software 2217: 2211: 2210: 2208: 2206: 2192: 2186: 2185: 2183: 2181: 2167: 2161: 2160: 2158: 2156: 2141: 2135: 2134: 2132: 2130: 2116: 2105: 2100: 2094: 2085: 2079: 2078: 2070: 2064: 2059: 2053: 2052: 2039: 2033: 2032: 2025: 2019: 2018: 2011: 2005: 2004: 2002: 2000: 1984: 1978: 1976:Naming a Package 1973: 1967: 1966: 1934: 1925: 1919: 1918: 1916: 1914: 1896:Raymond, Eric S. 1892: 1886: 1879: 1814: 1810: 1795: 1791: 1787: 1772: 1768: 1760: 1756: 1714: 1710: 1706: 1672: 1666: 1649: 1645: 1641: 1637: 1625: 1621: 1617: 1610: 1606: 1599: 1595: 1591: 1587: 1583: 1560: 1556: 1540: 1531:, also known as 1530: 1513: 1509: 1505: 1501: 1482: 1478: 1474: 1470: 1466: 1462: 1458: 1446: 1442: 1438: 1431: 1407: 1397: 1388: 1384: 1380: 1376: 1372: 1368: 1364: 1360: 1349: 1348: 1345: 1342: 1339: 1338:MAX_PARTICIPANTS 1336: 1333: 1330: 1308: 1303: 1298: 1279: 1275: 1271: 1255: 1254:getBackground(); 1250: 1245: 1237: 1221: 1216: 1208: 1188:Identifier type 1185: 1164: 1160: 1144: 1124: 1120: 1116: 1112: 1108: 1104: 1100: 1096: 1092: 1085: 1081: 1077: 1073: 1069: 1065: 1061: 1057: 1053: 1049: 1045: 1041: 1034: 1030: 1026: 1022: 1018: 1014: 1010: 1006: 1000: 980: 976: 972: 964: 960: 955:standard library 949:implementation ( 943: 935: 926:standard library 890: 756: 746: 733: 723: 713: 699: 686: 676: 669:, dromedaryCase 662: 652: 642: 629: 625: 618:) for accuracy. 617: 609: 605: 575: 571: 567: 447: 443: 439: 426:non-alphanumeric 411: 282: 275: 271: 268: 262: 231: 223: 208: 205: 202: 199: 196: 193: 179: 176: 173: 170: 167: 164: 2657: 2656: 2652: 2651: 2650: 2648: 2647: 2646: 2627: 2626: 2617: 2612: 2611: 2602: 2601: 2597: 2587: 2585: 2577: 2576: 2572: 2563: 2562: 2558: 2551: 2547: 2540: 2536: 2527: 2526: 2522: 2513: 2512: 2508: 2499: 2498: 2494: 2485: 2484: 2480: 2473: 2469: 2462: 2458: 2452: 2445: 2441: 2434: 2430: 2419: 2415: 2406: 2405: 2401: 2391: 2389: 2379: 2375: 2368: 2364: 2359:Wayback Machine 2349: 2345: 2337: 2330: 2321: 2320: 2316: 2307: 2306: 2302: 2293: 2292: 2288: 2279: 2278: 2274: 2265: 2264: 2260: 2251: 2250: 2246: 2237: 2236: 2232: 2219: 2218: 2214: 2204: 2202: 2194: 2193: 2189: 2179: 2177: 2169: 2168: 2164: 2154: 2152: 2151:. 20 March 2018 2143: 2142: 2138: 2128: 2126: 2118: 2117: 2108: 2101: 2097: 2086: 2082: 2071: 2067: 2060: 2056: 2041: 2040: 2036: 2027: 2026: 2022: 2013: 2012: 2008: 1998: 1996: 1988:"CSS reference" 1986: 1985: 1981: 1974: 1970: 1955: 1932: 1926: 1922: 1912: 1910: 1893: 1889: 1881:Derek M. Jones 1880: 1876: 1871: 1824: 1812: 1808: 1802: 1793: 1789: 1785: 1779: 1770: 1766: 1758: 1754: 1748: 1736: 1712: 1708: 1704: 1703:both recommend 1694: 1692:Python and Ruby 1679: 1668: 1664: 1657: 1647: 1643: 1639: 1635: 1632: 1623: 1619: 1615: 1608: 1604: 1597: 1593: 1589: 1585: 1581: 1567: 1558: 1554: 1536: 1526: 1520: 1511: 1507: 1504:make-hash-table 1503: 1499: 1492: 1480: 1476: 1472: 1468: 1464: 1460: 1456: 1453: 1444: 1440: 1436: 1429: 1403: 1393: 1386: 1382: 1379:Widget.expand() 1378: 1374: 1370: 1367:widget.expand() 1366: 1363:Widget.expand() 1362: 1359:widget.expand() 1358: 1346: 1343: 1340: 1337: 1334: 1331: 1328: 1306: 1301: 1296: 1277: 1273: 1266: 1253: 1248: 1243: 1232: 1219: 1215:class Raster {} 1214: 1203: 1172: 1162: 1158: 1151: 1142: 1131: 1122: 1118: 1114: 1110: 1106: 1102: 1098: 1094: 1090: 1083: 1079: 1075: 1071: 1067: 1063: 1059: 1055: 1051: 1047: 1043: 1039: 1032: 1028: 1024: 1020: 1016: 1012: 1008: 1002: 996: 987: 978: 974: 970: 962: 958: 941: 933: 910: 897: 888: 881: 861: 856: 817: 801: 785: 768: 754: 744: 731: 721: 711: 697: 684: 674: 660: 650: 640: 624: 615: 607: 601: 573: 569: 565: 558: 552: 445: 441: 437: 418: 409: 379: 370: 296: 283: 272: 266: 263: 248: 232: 221: 219:Common elements 210: 209: 206: 204:hourly_pay_rate 203: 200: 197: 194: 191: 181: 180: 177: 174: 171: 168: 165: 162: 149: 140: 90: 17: 12: 11: 5: 2655: 2645: 2644: 2639: 2625: 2624: 2616: 2615:External links 2613: 2610: 2609: 2595: 2570: 2556: 2545: 2534: 2520: 2506: 2492: 2478: 2467: 2456: 2450: 2439: 2428: 2413: 2399: 2373: 2362: 2343: 2328: 2314: 2300: 2286: 2272: 2258: 2244: 2230: 2227:. 11 May 2005. 2212: 2187: 2162: 2136: 2124:Stack Overflow 2106: 2095: 2088:Living Clojure 2080: 2065: 2054: 2034: 2020: 2006: 1979: 1968: 1953: 1920: 1887: 1873: 1872: 1870: 1867: 1866: 1865: 1860: 1855: 1850: 1845: 1840: 1835: 1830: 1823: 1820: 1813:UpperCamelCase 1809:lowerCamelCase 1801: 1798: 1786:UpperCamelCase 1778: 1775: 1747: 1744: 1735: 1732: 1705:UpperCamelCase 1693: 1690: 1678: 1675: 1656: 1653: 1648:lowerCamelCase 1640:UpperCamelCase 1631: 1628: 1598:kCFBooleanTrue 1566: 1563: 1538:lowerCamelCase 1528:UpperCamelCase 1523:Microsoft .NET 1519: 1516: 1500:with-open-file 1491: 1488: 1473:getElementById 1465:XMLHttpRequest 1452: 1449: 1426:content assist 1405:lowerCamelCase 1395:UpperCamelCase 1353: 1352: 1351: 1350: 1323: 1316: 1312: 1311: 1310: 1309: 1304: 1299: 1292: 1263: 1259: 1258: 1257: 1256: 1251: 1246: 1239: 1229: 1225: 1224: 1223: 1222: 1217: 1210: 1200: 1196: 1195: 1192: 1189: 1171: 1168: 1150: 1147: 1130: 1127: 986: 983: 909: 906: 896: 893: 880: 877: 860: 857: 855: 852: 816: 813: 800: 797: 784: 781: 767: 764: 761: 760: 757: 751: 750: 747: 741: 740: 734: 728: 727: 724: 718: 717: 714: 708: 707: 700: 694: 693: 687: 681: 680: 677: 671: 670: 663: 657: 656: 653: 647: 646: 643: 637: 636: 633: 623: 620: 616:XMLHTTPRequest 608:XmlHttpRequest 603:XMLHttpRequest 551: 548: 536:C preprocessor 489:brochette-case 432:("-") and the 417: 414: 378: 375: 369: 366: 365: 364: 361: 358: 348: 327: 326: 323: 320: 313: 295: 292: 285: 284: 267:September 2010 235: 233: 226: 220: 217: 190: 161: 148: 145: 139: 136: 135: 134: 131: 128: 121: 118: 115: 108: 101: 89: 86: 78: 77: 74: 67: 15: 9: 6: 4: 3: 2: 2654: 2643: 2640: 2638: 2635: 2634: 2632: 2622: 2619: 2618: 2605: 2599: 2584: 2580: 2574: 2566: 2560: 2554: 2549: 2543: 2538: 2530: 2524: 2516: 2510: 2502: 2496: 2488: 2482: 2476: 2471: 2465: 2460: 2454: 2448: 2443: 2437: 2432: 2426: 2422: 2417: 2409: 2403: 2388: 2384: 2377: 2371: 2366: 2360: 2356: 2353: 2347: 2341: 2335: 2333: 2324: 2318: 2310: 2304: 2296: 2290: 2282: 2276: 2268: 2262: 2254: 2248: 2240: 2234: 2226: 2222: 2216: 2201: 2197: 2191: 2176: 2172: 2166: 2150: 2146: 2140: 2125: 2121: 2115: 2113: 2111: 2104: 2099: 2093: 2089: 2084: 2076: 2069: 2063: 2058: 2050: 2049: 2044: 2038: 2030: 2024: 2016: 2010: 1995: 1994: 1989: 1983: 1977: 1972: 1964: 1960: 1956: 1950: 1946: 1942: 1938: 1931: 1924: 1908: 1907: 1901: 1897: 1891: 1884: 1878: 1874: 1864: 1861: 1859: 1856: 1854: 1851: 1849: 1846: 1844: 1841: 1839: 1836: 1834: 1831: 1829: 1826: 1825: 1819: 1816: 1806: 1797: 1783: 1774: 1771:don't-do-that 1764: 1752: 1743: 1741: 1731: 1729: 1725: 1724:name mangling 1721: 1716: 1702: 1698: 1689: 1687: 1683: 1674: 1671: 1661: 1652: 1627: 1612: 1601: 1586:UIAppDelegate 1577: 1575: 1571: 1562: 1552: 1548: 1544: 1539: 1534: 1529: 1524: 1515: 1497: 1487: 1486: 1448: 1433: 1427: 1423: 1419: 1415: 1411: 1406: 1401: 1396: 1390: 1326: 1325: 1324: 1321: 1317: 1314: 1313: 1305: 1300: 1295: 1294: 1293: 1291: 1289: 1283: 1270: 1264: 1261: 1260: 1252: 1247: 1242: 1241: 1240: 1236: 1230: 1227: 1226: 1218: 1213: 1212: 1211: 1207: 1201: 1198: 1197: 1193: 1190: 1187: 1186: 1183: 1181: 1177: 1167: 1156: 1146: 1140: 1136: 1126: 1087: 1070:(and neither 1036: 1005: 999: 993: 991: 982: 968: 956: 952: 947: 939: 931: 927: 923: 919: 915: 905: 902: 892: 886: 876: 874: 870: 866: 851: 849: 844: 842: 837: 833: 830: 827: 824: 822: 812: 810: 805: 796: 794: 790: 780: 778: 775:, underlying 774: 758: 753: 752: 748: 743: 742: 738: 735: 730: 729: 725: 720: 719: 715: 710: 709: 705: 701: 696: 695: 691: 688: 683: 682: 678: 673: 672: 668: 664: 659: 658: 654: 649: 648: 644: 639: 638: 634: 631: 630: 619: 613: 604: 599: 595: 591: 587: 583: 579: 563: 557: 547: 545: 541: 537: 533: 529: 525: 524: 518: 516: 512: 509: 505: 501: 496: 494: 490: 486: 482: 478: 474: 470: 466: 462: 458: 454: 449: 435: 431: 427: 423: 413: 407: 403: 399: 395: 392:do not allow 391: 386: 384: 374: 362: 359: 357: 353: 349: 345: 340: 336: 335: 334: 331: 324: 321: 319:-based tools) 318: 314: 311: 310: 309: 306: 303: 301: 291: 281: 278: 270: 260: 256: 252: 246: 245: 241: 236:This section 234: 230: 225: 224: 216: 213: 188: 186: 185:syntactically 159: 156: 154: 144: 132: 129: 126: 122: 119: 116: 113: 109: 106: 102: 99: 95: 94: 93: 85: 83: 75: 72: 68: 65: 61: 60: 59: 57: 52: 50: 49:documentation 46: 42: 38: 34: 31:which denote 30: 26: 22: 2598: 2586:. Retrieved 2582: 2573: 2559: 2548: 2537: 2523: 2509: 2495: 2481: 2470: 2459: 2453: 2442: 2431: 2416: 2402: 2390:. Retrieved 2387:codeburst.io 2386: 2376: 2365: 2346: 2317: 2303: 2289: 2275: 2261: 2247: 2233: 2224: 2215: 2203:. Retrieved 2199: 2190: 2178:. Retrieved 2174: 2165: 2153:. Retrieved 2149:deanpugh.com 2148: 2139: 2127:. Retrieved 2123: 2098: 2087: 2083: 2068: 2057: 2046: 2037: 2023: 2009: 1997:. Retrieved 1991: 1982: 1971: 1936: 1923: 1911:. Retrieved 1903: 1890: 1877: 1817: 1803: 1780: 1762: 1749: 1737: 1727: 1726:. Prefixing 1717: 1695: 1680: 1658: 1633: 1613: 1602: 1578: 1568: 1532: 1521: 1493: 1454: 1434: 1408:be used for 1398:be used for 1391: 1356: 1285: 1173: 1152: 1132: 1129:Dart/Flutter 1088: 1037: 994: 988: 942:out_of_range 911: 898: 882: 865:ActionScript 862: 859:ActionScript 845: 838: 834: 831: 828: 825: 818: 806: 802: 786: 769: 612:segmentation 590:Visual Basic 559: 531: 521: 519: 497: 492: 488: 484: 480: 476: 472: 459:(1970), and 450: 419: 406:tokenization 387: 380: 371: 356:autocomplete 332: 328: 307: 304: 299: 297: 288: 273: 264: 249:Please help 237: 214: 211: 198:hours_worked 182: 157: 150: 141: 91: 79: 53: 24: 18: 2637:Source code 2408:"Variables" 1906:Jargon File 1784:recommends 1636:Capitalized 1570:Objective-C 1565:Objective-C 1557:instead of 1555:LoginButton 1525:recommends 1508:*map-walls* 1439:instead of 1139:Flutter SDK 1084:_totalCount 1033:IEnumerable 632:Formatting 508:subtraction 481:Pascal case 400:(1955) and 153:source code 147:Readability 112:refactoring 105:consistency 64:source code 56:programmers 45:source code 29:identifiers 2631:Categories 2588:4 February 1913:7 November 1869:References 1833:Checkstyle 1794:snake_case 1763:kebab case 1713:snake_case 1609:_tableView 1594:CGRectMake 1543:parameters 1533:PascalCase 1512:+map-size+ 1451:JavaScript 1420:, such as 1377:, whereas 1315:Constants 1262:Variables 1249:runFast(); 1064:PascalCase 1025:PascalCase 998:PascalCase 959:__reserved 869:ECMAScript 843:prefixes. 823:) manual. 737:kebab-case 702:ALL_CAPS, 690:snake_case 554:See also: 532:snail case 528:snake case 493:kebab-case 485:kebab-case 477:COBOL-CASE 434:underscore 394:whitespace 192:weekly_pay 138:Challenges 125:namespaces 2392:17 August 2205:16 August 2155:16 August 2129:16 August 1848:Namespace 1767:fish-food 1644:lowercase 1624:isRunning 1605:_delegate 1574:Smalltalk 1547:variables 1469:DOMObject 1461:TypeError 1410:instances 1385:in class 1269:CamelCase 1235:CamelCase 1206:CamelCase 1194:Examples 1180:CamelCase 1163:mixedCaps 1159:MixedCaps 1080:camelCase 1048:protected 1021:interface 1017:XmlStream 1004:camelCase 967:stropping 963:_Reserved 908:C and C++ 848:data type 755:Two-Words 745:TWO-WORDS 732:two-words 722:Two_Words 712:two_Words 698:TWO_WORDS 685:two_words 667:camelCase 645:flatcase 566:two words 562:camelCase 479:(compare 473:lisp-case 446:two_words 442:two-words 438:two words 410:mypackage 347:distinct. 238:does not 41:functions 33:variables 2355:Archived 1822:See also 1582:NSString 1559:BtnLogin 1383:expand() 1371:expand() 1288:mnemonic 1228:Methods 1199:Classes 1056:internal 1031:, as in 1013:IOStream 951:compiler 922:keywords 675:TwoWords 665:(lower) 661:twoWords 651:TWOWORDS 641:twowords 635:Name(s) 574:TwoWords 570:twoWords 455:(1959), 388:As most 354:lacking 98:metadata 1999:18 June 1963:1450798 1720:private 1422:Eclipse 1414:methods 1400:classes 1133:In the 1099:@factor 1068:private 1060:private 934:isalnum 596:" and " 568:" as " 422:delimit 398:FORTRAN 339:linkers 259:removed 244:sources 2269:. ISO. 2255:. ISO. 2048:GitHub 1961:  1951:  1697:Python 1665:strict 1457:RegExp 1387:Widget 1375:widget 1329:static 1244:run(); 1095:factor 1076:static 1052:static 1046:, and 1044:public 1040:static 946:macros 588:, and 578:Pascal 572:" or " 504:Pascal 444:" or " 430:hyphen 350:early 337:early 71:syntax 2425:CLiki 2180:2 May 2092:p. 91 1959:S2CID 1933:(PDF) 1805:Swift 1800:Swift 1590:NSApp 1332:final 1267:lower 1233:lower 1204:Upper 1115:where 1107:while 1072:const 1009:const 975:__foo 971:__foo 600:" in 511:infix 457:Forth 453:COBOL 402:ALGOL 344:BASIC 317:regex 82:dogma 37:types 2590:2018 2394:2018 2207:2020 2182:2023 2157:2020 2131:2020 2001:2016 1949:ISBN 1915:2011 1904:The 1782:Rust 1777:Rust 1769:and 1751:Raku 1746:Raku 1701:Ruby 1699:and 1667:and 1660:Perl 1655:Perl 1622:and 1607:and 1545:and 1518:.NET 1502:and 1496:Lisp 1490:Lisp 1418:IDEs 1412:and 1402:and 1361:and 1176:Java 1170:Java 1135:Dart 1113:and 1111:from 1105:and 1097:and 1074:nor 1058:and 1001:and 961:or 924:and 916:and 873:Java 793:type 598:HTTP 582:Java 544:bash 502:and 465:Unix 461:Lisp 383:word 242:any 240:cite 47:and 23:, a 2423:on 1941:doi 1728:and 1682:PHP 1677:PHP 1670:mro 1646:or 1638:or 1592:or 1447:). 1432:). 1335:int 1174:In 1161:or 1153:In 1103:for 1023:be 979:foo 973:is 918:C++ 912:In 901:APL 899:In 895:APL 885:Ada 883:In 879:Ada 809:JCL 594:XML 530:or 483:), 475:or 469:CSS 448:". 253:by 183:is 19:In 2633:: 2581:. 2385:. 2331:^ 2223:. 2198:. 2173:. 2147:. 2122:. 2109:^ 2045:. 1990:. 1957:. 1947:. 1935:. 1902:. 1815:. 1626:. 1618:, 1611:. 1600:. 1588:, 1584:, 1576:. 1561:. 1514:. 1479:, 1475:, 1467:, 1463:, 1459:, 1389:. 1344:10 1278:$ 1155:Go 1149:Go 1086:. 1042:, 1035:. 990:C# 985:C# 953:, 920:, 891:. 875:. 586:C# 584:, 580:, 487:, 127:); 51:. 39:, 35:, 2606:. 2592:. 2567:. 2531:. 2517:. 2503:. 2489:. 2410:. 2396:. 2325:. 2311:. 2241:. 2209:. 2184:. 2159:. 2133:. 2077:. 2031:. 2017:. 2003:. 1965:. 1943:: 1917:. 1759:' 1755:- 1740:R 1734:R 1347:; 1341:= 1274:_ 1143:_ 1091:@ 1029:I 914:C 500:C 280:) 274:( 269:) 265:( 261:. 247:. 207:; 201:* 195:= 178:; 175:c 172:* 169:b 166:= 163:a 66:;

Index

computer programming
identifiers
variables
types
functions
source code
documentation
programmers
source code
syntax
dogma
metadata
consistency
refactoring
namespaces
source code
syntactically

cite
sources
improve this section
adding citations to reliable sources
removed
Learn how and when to remove this message
regex
linkers
BASIC
source code editors
autocomplete
word

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑