DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone >

API Design Fest '08!

Geertjan Wielenga user avatar by
Geertjan Wielenga
·
Sep. 24, 08 · · News
Like (0)
Save
Tweet
825 Views

Join the DZone community and get the full member experience.

Join For Free
As part of promotion of "Practical API Design: Confessions of a Java Framework Architect" and also in celebration of the 10th anniversary of NetBeans releases, we decided to play again the game described in Chapter 17 of the book: an API design fest. The participants include primarily members of Czech JUG, extended potentially with everyone who'd like to play the game and to celebrate with us.

Thanks to the courtesy of Arseniy Kuznetsov, director of NetBeans, the winner(s) of the API Design Fest08 will receive a copy of "Practical API Design: Confessions of a Java Framework Architect" .

There will be a few rounds in the competition, during which the participants are supposed to solve tasks given to them in a timely manner. They should send their results to the API Fest 08 mailing list. The whole competition will use rules like those of the First API Design Fest.

Task 1

The first task consists of downloading the template. The preferred way is to use Mercurial and clone the apifest08 repository:

hg clone http://source.apidesign.org/hg/apifest08/

You will get an Ant project in the currency directory. It is designed to be opened in NetBeans IDE easily, but it can also be manipulated from the command line or other tools by those who prefer pain over comfort.

Two sources files are important:

  • currency/src/org/apidesign/apifest08/currency/Convertor.java - will contain the API that you should create. Feel free to introduce other classes, but please keep them within the org.apidesign.apifest08.currency package.
  • currency/test/org/apidesign/apifest08/test/Task1Test.java - this is the class with actual tasks that your API has to fullfil. Please stuff the method bodies with code, so they demonstrate use of your API.

The project is currently not compilable (you need to make the Convertor class public somehow), compile it, compile its tests and execute the tests so they pass without a failure.

Remember that Runtime Aspects of APIs are as important as API signatures.

Finally zip your project and send it to the API Fest 08 mailing list by Friday, Sep 26, 2008!

cd apifest08/currency
ant clean
zip -r $HOME/myname-task1.zip

We'll discuss your design decisions on Czech JUG session on Monday, Sep 29, 2008 together with announcement of the second task!

For those who will not make the Mercurial work for them, there is an alternative option: You can download source ZIP file from the repository snapshot, unzip it and use it directly.

As processing of the results might take some time, we need to set the following rules:

  • members of CZJUG takes precedence
  • first come, first served
  • if we run out of our capacity, we can stop processing further solutions

 

Final Round

There will be multiple rounds each with new task. The goal is to finish the last round and select the winner by Oct 26, 2008 - that is the day of the NetBeans first release anniversary!

That is all, happy API designing!

From http://wiki.apidesign.org/wiki/APIFest08

API Design

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • How to Configure Git in Eclipse IDE
  • Role of Development Team in an Agile Environment
  • The Most Popular Kubernetes Alternatives and Competitors
  • 5 Steps to Strengthen API Security

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo