Framework Design Guidelines: Design Methodologies


Continuing in the series of discussing topics from the Framework Design Guidelines


 


Expert from 2.2 Fundamental Principles of Framework Design


 


DO NOT rely solely on standard design methodologies when designing


the public APIs layer of a framework.


 


CHRIS ANDERSON Each developer has his or her own methodology,


and although there isn’t anything fundamentally wrong with using other


modeling approaches, the problem generally is the output. Starting by writing


the code you want a developer to write is almost always the best


approach—think of it as a form of test-driven development. You write the


perfect code, then work backwards to figure out the object model that you


would want.


 


I love this one from Captain Anderson… What methodologies do you find work particularly well for API design? And what nightmare stories do you have from people using the wrong tool?  

Comments (4)

  1. Norman Sasono says:

    Hi Brad,

    I got your book copy from the PDC. Good book. Providing guidelines for the programmability of a Framework (Library).

    But, with a Spec like that (in the appendix)? And the way you do BDUF, isn’t that just work for project where you really develop Framework/Library as the product?

    What if we develop apps as the product & we may also evolve our Framework? (Let say in an XP environment) … no guarantee a spec like that is generated.

    Developing Framework is always fun to do for Devs, but we should "do the simplest thing that works".

    I mean, BDUF for Frameworks only works if we build Framework as the product. Not developing apps.

    Any comment?

    BR,

    Norman

  2. ericgu says:

    I agree with Chris. In fact, I would assert that every group that produces a library should also produce (and ship) a real application using that library.

  3. BradA says:

    Yes, that is fair Norman… the book is focused on teams that whose’ stated objective is to build a reusable framework… in fact the value of the book goes up the large the number of distribution of those people are. While there is certainly some value for an application developer, the primary focus in explicitly designed frameworks and clearly you should not always use the framework model. You should only build a framework if you are reasonable sure their will be lots of different consumers.