InfoQ Homepage Design Content on InfoQ
-
Interview: Michael Stal on Architecture Refactoring
In this interview, Michael Stal describes what architecture refactoring is about and how it relates to both code refactoring and patterns. He describes some architectural refactorings by giving real work examples from his work as Siemens, and he elaborates on some situations where you may want to avoid doing this kind of refactorings.
-
Article: Addressing Doubts about REST
InfoQ SOA lead editor Stefan Tilkov addresses 10 of the most common doubts people have about REST when they start exploring it, especially if they have a strong background in the architectural approach behind SOAP/WSDL-based Web services.
-
POJO Messaging Architecture with Terracotta
Mark Turansky detailed his implementation of a message bus architecture using Terracotta and Java 5. Instead of using an MQ or JMS based deployment, Mark took advantage of the Terracotta architecture to create his POJO message bus. This allowed for a clean, simple, and inexpensive infrastructure solution to his message needs.
-
Debate about Testing and Recoverability: Object Oriented vs. Functional Programming Languages
In his latest blog post, Michael Feathers argued that object oriented programming languages offer some built-in features that facilitate testing and are therefore more recovery friendly than functional languages. Proponents of functional languages expressed strong disagreement with this statement, which provoked a very passionate debate in the blog community.
-
QCon Panel: What will the Future of Java Development Be?
In this panel from QCon San Francisco, Joshua Bloch, Chet Haase, Rod Johnson, Erik Meijer and Charles Nutter discussed and debated the future of the Java language and APIs based upon the lessons we have learned from the past. Topics included static versus dynamic languages, removing code from Java, forking the JVM, and the next big programming language.
-
How Does Language Impact Framework Design?
Do certain languages, like Ruby, lend themselves to frameworks that are more productive than those of other languages, such as Java?
-
Dependency Injection: New Ground or Solid Footing?
Dependency Injection seems like a shiny new tool in the toolbox. Andrew McVeigh tells us that DI shares a long history with architecture description languages (ADLs), simple yet sophisticated languages for component-based development through descriptive wiring. This article looks at the history of ADLs and sheds light on possible future directions of dependency injection.
-
Startup Lovely Charts Shares Insights into Building a Flex Application
A web startup company, Lovely Charts, announced its limited beta release and came to public last week. The site was developed using Adobe Flex. InfoQ spoke with Jerome Cordiez, the founder / lead Architect, and learned the insight of how the Flex based Lovely Charts site was built.
-
Article: Mark Baker on Hypermedia in RESTful Applications
One of the constraints defined for the architectural style known as REST is "hypermedia as the engine of application state". Mark Baker, well-known for being one of the first who advocated the REST style instead of the mainstream web services approach, discusses what the hypermedia constraints means in practice and why it is essential to RESTful design.
-
Prefer Broad Design Skills over Platform Knowledge
In his latest article Martin Fowler suggests that what matters most while building a team is not experience or thorough knowledge of the specific platform and business domain, but rather some broader skills that allow building quality software and delivering value.
-
Case Study: Applying Java Programming Skill to Flex
In an article published on Adobe Flex Developer Center, Bill Bejeck shares his experience creating components and enforcing separation of concerns with Flex, from a Java developer's perspective.
-
Does code become better as it approaches English?
Achieving readability and expressiveness by writing English-like code is one of the trends on the rise in today’s industry. Michael Feathers advocates for considering other alternatives that can be instrumental for improving code expressiveness. He argues that in some circumstances symbolic approach is more appropriate than the narrative one and highlights some trades-offs between them.
-
Decisions driven by productivity concerns: Reasons, implications and limitations
Often the necessity to rapidly adapt software projects to new clients’ needs results in adopting approaches focused on productivity. Reasons, implications and limitations of this were recently discussed in the blog sphere.
-
Opinion: Refactoring is a Necessary Waste
Refactoring is one of the key technical practices in the Agile developer's toolkit. Refactoring also has no measurable customer value by its very definition - it involves changing the structure (design) while maintaining the behavior. In the Lean world - anything that does not have customer value is waste, and a customer only perceives behavior/functionality and not structure.
-
Static Code Analysis can Highlight Deeper Flaws
Static code analysis (SCA) tools like those offered by FindBugs, PMD, CheckStyle, IntelliJ IDEA can help a development team track down problems and keep quality high. But when an SCA tool flags a problem, how should a team react? Vikas Hazrati's Static Code Analysis is just the Tip of the Iceberg suggested: look deeper.