public marks

PUBLIC MARKS from mbertier with tags dev & bestpractices


Software As She’s Developed » Blog Archive » Did you hear the one about enterprise reuse?

Ironically, it’s usually easier to reuse publicly-available libraries (e.g. open-source libs on sourceforge) and public web services than those in the same company. The following things make reuse more digestible in an enterprise setting:

Event Lobby (EVENT: 92421)

Subversion™ is the fastest growing version control system for distributed development teams and its rapid adoption is a phenomenon in small and large organizations. Recently evaluated to be the Sole Leader among Standalone SCM Solutions by Forrester Research, it is taking the developer world by storm. During this webcast, you will learn about the exciting new features coming out in the next release, Subversion 1.5, including merge tracking. Learn how to implement branching strategies that best fit your organization, and utilize merge tracking functionality to integrate changes. Learn from real life examples of branching and merging, so that you can accelerate development within your enterprise using Subversion’s new features.

Mike Naberezny - Better PHPUnit Group Annotations

Running phpunit --group bug42 AllTests.php will run only the tests associated with bug #42, regardless of what files and groups those test methods span.

The Usability of Passwords -

by 5 others (via)
Passwords can be made both highly secure and user-friendly.

PHPUnit as a Project Mess Detector - Sebastian Bergmann

Well. As of version 3.2, PHPUnit will not only be able to calculate and collect a variety of software metrics. It will also be able to report violations of rules that are based on these metrics in PMD's XML format. This information can then be fed to any tool that integrates with PMD.


The talk covers many different aspects in API design and contains examples of good practice and common mistakes. Many of the principles and guidelines discussed aren’t new, but you rarely see so many of them summarized.

White Paper: Intelligent Updates to Configuration Files - Spike Developer Zone

In this paper, we provide a new two­fold solution – automated merging of changes that are done by a software provider after installation and manual merging of changes performed by the user thereafter. While some manual intervention is required in this approach, it is a more reliable solution. This approach also includes a tool to ease the manual file comparison and merge process.

MySQL AB :: How to write a successful patch

Submitting patches to Open Source code doesn't come naturally to everyone.

James Carr » Blog Archive » TDD Anti-Patterns

by 1 other (via)
Recently I began to write a paper on TDD Anti-Patterns, and decided to first quickly jot down some of the most common ones that others or myself have encountered “in the wild.” Exception-Handling Antipatterns

by 1 other (via)
Should you throw an exception, or return null? Should you use checked or unchecked exceptions? For many novice to mid-level developers, exception handling tends to be an afterthought. Their typical pattern is usually a simple try/catch/printStackTrace(). When they try to get more creative, they usually stumble into one or more common exception handling antipatterns.

BehaviourDrivenDevelopment - Behaviour-Driven Development

by 4 others (via)
Behaviour-Driven Development (BDD) is an evolution in the thinking behind TestDrivenDevelopment and AcceptanceTestDrivenPlanning.

Streamed Lines: Branching Patterns for Parallel Software Development

by 3 others (via)
Most software version control systems provide mechanisms for branching into multiple lines of development and merging source code from one development line into another. However, the techniques, policies and guidelines for using these mechanisms are often misapplied or not fully understood. This is unfortunate, since the use or misuse of branching and merging can make or break a parallel software development project. Streamed Lines is a pattern language for organizing related lines of development into appropriately diverging and converging streams of source code changes. The Big Rewrite

This is the first in a series of articles, discussing why many software rewrite projects end badly and what to do to avoid some of the ways I've seen them go astray.


MF Bliki: DesignedInheritance

That way you have to go out of your way to override something that wasn't designed. If you don't explicitly open the seal, then the compiler only allows normal inheritance, but if you use the seal-opening mechanism then the compiler will hand over the trust to you - and you are responsible for the consequences. So I'd prefer to replace Josh Bloch's 'prohibit' with a 'discourage'.

PHP5 Exception Use Guidelines

This is an informal document to describe usage guidelines for exceptions in PHP5.

Control Chaos

by 2 others
Scrum is an iterative, incremental process for developing any product or managing any work. It produces a potentially shippable set of functionality at the end of every iteration. It's attributes are:

The Programmers Stone

by 1 other
The purpose of this site is to recapture, explore and celebrate the Art of Computer Programming.


Secrets of lightweight development success, Part 5: Agile development at conservative companies

by 1 other (via)
Write your test cases first, and write only enough code to make your test case pass.