Am citit câteva lucruri despre cum să se proiecteze o bibliotecă sau API bine, și a dat peste o mare discutie Joshua Bloch la Tech Talks Google. Acum, deși sunt nici pe departe un API dezvoltator profesionist, cred că programarea unui grup de clase / funcții este un similară, deși mult la scară redusă versiune același lucru - separare clară a acțiunilor, ușurința și utilizarea plăcută, încurajând codul curat etc.
Am fost trece printr-o anumită folosit pe scară largă open source cod Java și a luat această idee (nimic nou, ci doar punerea la lucidly ...)
Să luăm un exemplu de cod pseudo (sau , poate , dialect al limbii de bază):
1. new label
2. set name 'hello world'
3. set color 'blue'
4. show 'topmost'
5. on click hide
Acum , inspirat de codul Java aș dori să fie capabil să facă ceva de genul:
1. Label l = new Label()
2. .setName('Hello World')
3. .setColor('blue')
4. .show(zindex.top);
5. l.onClick = l.hide() ;
Întrebarea mea este:
Are cineva API - uri de design else pornind de la pseudo-cod ca asta?
Este o idee bună pentru ceva mic? Spune pana la 10 clase fiecare cu poate 10 metode, fiecare metodă nu mai mult decât 5-6 linii de cod în interiorul acestuia. Aceasta este , evident , doar un set dur de numere pentru a arăta dimensiunea claselor care urmează să fie proiectate - nicăieri aproape de un API completă și nu doar un proiect de hobby - un pachet profesional care face ceva mic , dar o face bine .
Are cineva a găsit dezavantaje serioase la această abordare?
Cred că un avantaj real , este că te forțează să scrie în jos dvs. de utilizare-cazuri mai întâi .
Un alt lucru este că substantivele și verbele ședere simplă , permițând produsul final se eschiva de MultiPhraseAbstractParadigmDesignPatternImplementor sindromul :-D













