Presented at O'Reilly Fluent Conference, San Francisco (March 12, 2014):
http://fluentconf.com/fluent2014/public/schedule/detail/32527
Modular design of a large-scale web application encourages the right level of component coupling and at the same time it mandates a reasonable set of APIs (application programming interfaces) between those modules. The way a particular module is being used by other modules define the success of those APIs. In this talk, best practices on the interactions between modules, particularly on the influence of an interface on the code patterns, will be analyzed and used to formulate the following strategies:
* Using static polymorphism to ensure consistent naming
* Preventing unnecessary and dangerous convenience (e.g. Boolean traps)
* Avoiding unreadable code due to confusing semantics
Examples, both on the good and bad sides, will be taken from real-world application code. In addition, a few language tools to recognize the ambiguous code pattern will be demonstrated.
For links to follow-up resources, read also:
http://ariya.ofilabs.com/2014/03/the-phenomenal-fluent-2014.html.