Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
spec:om-apis [2012/01/25 14:46] – created TabAtkinsspec:om-apis [2012/01/26 16:06] tabatkins
Line 1: Line 1:
 ===== Use Strings, not Numeric Constants ===== ===== Use Strings, not Numeric Constants =====
  
-When an API needs to take or return an enumerated value, many older APIs follow the C convention and use numeric constants, stored on some interface object.  Modern API practice is instead to use strings directly.+When an API needs to take or return an enumerated value, many older APIs follow the C convention and use numeric constants, stored on some interface object.  Modern API practice is instead to use strings directly.  See, for example, the ''responseType'' property used in XHR.
  
 An anti-example can be found in CSSTransformValue, which returns a list of transforms that expose an ''operationType'' property.  This is currently specified to contain an integer, with the intent that authors testing the value will use the constants like ''CSSTransformValue.CSS_TRANSLATE3D''. An anti-example can be found in CSSTransformValue, which returns a list of transforms that expose an ''operationType'' property.  This is currently specified to contain an integer, with the intent that authors testing the value will use the constants like ''CSSTransformValue.CSS_TRANSLATE3D''.
Line 8: Line 8:
   - it is much longer to type than a string like "translate3d"   - it is much longer to type than a string like "translate3d"
   - the name of the constant is different than the name of the function it corresponds to, while a string can be the same.   - the name of the constant is different than the name of the function it corresponds to, while a string can be the same.
-  - simply printing or storing the value reveals an opaque integer, which can't be translated back into a transform type without testing against every constant+  - simply printing or storing the value reveals an opaque integer like ''13'', which can't be translated back into a transform type without testing against every constant
   - long experience shows that, given the choice of using a named constant or an integer, authors will end up using the integer form instead, often due to cargo-cult "speed improvements"   - long experience shows that, given the choice of using a named constant or an integer, authors will end up using the integer form instead, often due to cargo-cult "speed improvements"
  
 
spec/om-apis.txt · Last modified: 2014/12/09 15:48 by 127.0.0.1
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki