Er det noen som designe api eller biblioteket kode på denne måten?

stemmer
2

Jeg var å lese opp noen ting om hvordan å designe et bibliotek eller API godt, og snublet over Joshua Bloch store tale på Google Tech Talks. Nå selv om jeg er ikke i nærheten av en profesjonell API-utvikler, tror jeg programmere en haug med klasser / funksjoner er en lignende, men mye nedskalert versjon av det samme - entydig skille handlinger, lette og behagelige bruk, oppmuntre ren kode , etc.

Jeg gikk gjennom noen mye brukt åpen kildekode Java-kode og fikk denne ideen (ikke noe nytt, men bare å sette den opp lucidly ...)

La oss ta et eksempel pseudo-kode (eller kanskje noen dialekt av BASIC):

1. new label
2. set name 'hello world'
3. set color 'blue'
4. show 'topmost'
5. on click hide

Nå inspirert av Java-koden jeg ønsker å være i stand til å gjøre noe sånt som dette:

1. Label l = new Label()
2.          .setName('Hello World')
3.          .setColor('blue')
4.          .show(zindex.top);
5. l.onClick = l.hide() ;

Mitt spørsmål er dette:
Har noen andre motiv APIer fra pseudo-kode som dette?

Er det en god idé for noe lite? Si opp til 10 timer hver med kanskje 10 metoder, hver metode ikke mer enn enn 5-6 linjer kode i det. Det er åpenbart bare en grov sett med tall for å vise størrelsen på klassene for å være utformet - ikke på langt nær en komplett API og ikke bare et hobbyprosjekt - en profesjonell pakke som gjør noe liten, men gjør det godt .

Har noen funnet noen alvorlige ulemper til denne tilnærmingen?

Jeg tror den ene virkelige fordelen er at det tvinger deg til å skrive ned dine bruker-saker først .

Den andre tingen er at substantiver og verb bli enkelt , slik at det endelige produktet å smette unna MultiPhraseAbstractParadigmDesignPatternImplementor syndrom :-D

Publisert på 22/01/2010 klokken 19:40
kilden bruker
På andre språk...                            


4 svar

stemmer
0

Ja, dette er den måten at jQuery er utformet, det ender alltid opp med å returnere seg selv, slik at du kan kjede metoder som dette.

Svarte 22/01/2010 kl. 19:42
kilden bruker

stemmer
0

Jeg pleier å starte med tomme klasser og metoder. Dens virkelig et spørsmål om top down vs bunnen opp design.

Jeg foretrekker en stor tavle skisse skjønt.

Svarte 22/01/2010 kl. 19:45
kilden bruker

stemmer
3

Dette er en ganske vanlig design mønster kalles en flytende grensesnitt . Det er vanlig i funksjonelle språk og er stadig mer populært andre steder. Første gang jeg så det i ordningen.

Det er en veldig praktisk og lesbar idiom, men husk at det ofte vil være ganger hvor du faktisk vil at initial mer enn en variabel i en enkelt funksjon samtale. For eksempel, når det er intern tilstand som må innstilles avhengig av en kombinasjon av data, eller ved innstilling og overskrive standardverdier er kostbart. Så, som med alle "mønstre", bruker judiciously og med omtanke.

Svarte 22/01/2010 kl. 19:52
kilden bruker

stemmer
1

Jquery gjør akkurat dette. Fra http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/ :

jQuery('<div/>', {  
    id: 'foo',  
    css: {  
        fontWeight: 700,  
        color: 'green'  
    },  
    click: function(){  
        alert('Foo has been clicked!');  
    }  
}); 

eller for pre-1,4:

jQuery('<div/>')  
   .attr('id', 'foo')  
   .css({  
       fontWeight: 700,  
       color: 'green'  
   })  
   .click(function(){  
       alert('Foo has been clicked!');  
   });  

Jeg har også gjort lignende ting i C # genererer WPF i kode:

new StackPanel {
   Children = {
      new TextBlock { Text = "Hi there", Width = 50 },
      new TextBox { Width = 100 },
      new Border { 
          Content = new ListBox()
      }
   }
};
Svarte 22/01/2010 kl. 20:46
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more