Architecture Council/Links Collection
< Architecture Council
A collection of interesting links to articles, blogs and other resources related to software architecture. Please add your name when you add an item, for discussions.
- The Dependency Injection Pattern: an alternative to Factories and Service Locators (Blog by Michael Scharf). See also Introduction to the Spring Framework (article by Rod Johnson) for a discussion of IoC and DI.
- Threads considered Harmful Blog (found by David Orme)
- Erlang, Functional Java, Scala and others on E4 Mailing list (David Orme)
- Java Concurrency in Practice contains an excellent treatment of the issues. In a dynamic environment such as OSGi you need to be aware of the rules surrounding things such as visibility, safe publication etc.
- The Problem with Threads by Edward A. Lee Often cited article explaining the problems of threading today.
- Concurrency: Past and Present by Brian Goetz -- A 1h presentation on Concurrency in Java. Brian shows a very simple example and how difficult it is to get concurrency done correctly. If you think threading is easy -- listen to this talk... If you are interested in alternatives and future skip the first 30 min (the 30 min are just showing why threading (using locks) is difficult).
- Real-world Concurrency by Bryan Cantrill and Jeff Bonwick, Sun Microsystems -- an insightful ACM Queue article: we hope to inject some calm reality (if not some hard-won wisdom) into a discussion that has too often descended into hysterics (quote).
- Don't have code run in the context of the Java Classloader (bugzilla comment by John Arthorne)
- Java.net.URL.equals() and hashCode() make blocking internet connections (Blog by Michael Scharf)
- Don't swallow InterruptedException. Call Thread.currentThread().interrupt() instead. (Blog by Michael Scharf)
Eclipse Tips & Tricks
Outside of the Eclipse Ecosystem
- Microsoft's patterns & practices Application Architecture Guide 2.0 Project for .NET
- Stackoverflow.com - Questions and Answers for everything related to programming