Better Software Magazine Articles

The Rules for Writing Maintainable Code

We've all been burned working with software code that, if not designed for long-term maintainability, results in expensive support over a product's lifetime. Kaushal explores three approaches that provide guidelines to ensure that software is designed with maintainability in mind. If you're a software developer, read this!

Kaushal Amin's picture Kaushal Amin
Alternative JVM Languages For Java Projects

Java Virtual Machine has become a successful platform for applications written in many languages, not just Java. Alternatives like JRuby, Scala, Clojure, and Groovy can be more concise and offer new ways to approach problems.

Daniel Wellman's picture Daniel Wellman
An Introduction to Scala

Scala is a programming language that blends functional and object-oriented language features. Scala programs run on the Java Virtual Machine and can easily interact with Java code. Learn how Scala can yield concise, safe, and compatible code and how you can start learning Scala on your own.

Daniel Wellman's picture Daniel Wellman
A Release Without a Tester

In this article inspired by an unfortunate video store rental, Lee Copeland invites software organizations that think testing is expensive to try the alternative.

Lee Copeland's picture Lee Copeland
Software to Go: Developing Applications for a Wireless World

The mobile arena is in constant evolution, changing the way we approach software development both from a business and a technical perspective. Taking the time to set your plan can make the difference between success and just a good idea. In this article, Luis Carvalho shares some guidelines for bringing new applications into the mobile ecosystem.

Luis Miguel Carvalho
A Path to Readable Code

Test-driven development is usually presented as a developer process. On the other hand, acceptance test-driven development (ATDD) is a communication process between the customer and the developer. In ATDD, the tests provide the terminology in customer-understandable terms. The customer's terminology suggests abstract data types that make code more readable.

Ken Pugh's picture Ken Pugh
Train Wreck Spotting

An oft-overlooked goal of encapsulation is to simplify usage. Without this sensibility, classes can end up with simplistic interfaces and callers can end up with method-call pile-ups.

Kevlin Henney's picture Kevlin Henney
A Galaxy of Patterns

The Gang of Four's design patterns have a special place in many programmers' hearts. But it's time to look beyond the GoF twenty-three and realize they aren't the only patterns in the universe.

Neil Harrison
The Accidental Complexity of Logic

Much code complexity and no small number of program defects can be traced back to confusion over logical expressions and the expression of logic. Find out how you can get that complexity under control.

Kevlin Henney's picture Kevlin Henney
A ''D'' in Programming

In certain company, the topic of favorite programming languages can elicit the same response as other taboo subjects, such as religion and politics. But, Chuck's going out on a limb to discuss his new favorite language, D, and some of its best features, such as its being strongly typed and compiling to native code, yet it is garbage collected.

Chuck Allison's picture Chuck Allison

Pages

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.