Consigli su joove

di il
3 risposte

Consigli su joove

Salve!

qualche anno fà avevo elaborato un progetto che trovate a questo link:

https://sourceforge.net/projects/joove

trovate qui anche una piccola documentazione:

http://joove.sourceforge.net/wiki/doku.ph

Si tratta di una libreria jar che permette di allegerire la scrittura del codice Java.

Potreste provarlo è darmi quelche consiglio o qualche valutazione tecnica siate pure schietti sono aperto alle critiche...

Ciao

3 Risposte

  • Re: Consigli su joove

    cicciodarkast ha scritto:


    https://sourceforge.net/projects/joove

    trovate qui anche una piccola documentazione:

    http://joove.sourceforge.net/wiki/doku.ph

    Si tratta di una libreria jar che permette di allegerire la scrittura del codice Java.
    • Avere un singolo, banale, package "org" è molto riduttivo e poco significativo. Uno degli obiettivi dei package è proprio quello di qualificare meglio i tipi.
    • Avere 3 livelli di annidamento delle classi, dove le 2 classi più esterne fanno proprio solo da "contenitore" e basta è abbastanza assurdo (pessimo uso delle nested class).
    • Salvo qualcuna, la maggior parte delle classi non segue le convenzioni di denominazione standard e inizia con la lettera minuscola.
    • Per il punto precedente, avendo messo var nome classe e var nome variabile di istanza (oltretutto public!!) il codice è una continua confusione (per chi legge, ovviamente) tra le due cose.
    • Avere un "oggettone" che fa di tutto e di più e contiene "una di molte cose" (String .... ArrayList ... HashMap ... ecc...), vista poi solo come Object è una cosa abbastanza lontana dai principi della programmazione ad oggetti.
      Non è tanto il fatto di "vedere" qualcosa solo come Object (le collezioni standard sono poi così, vedono gli elementi solo come Object!) Ma per tutto il resto parecchio fumoso che ci hai messo attorno!
    • Poi es.:
      public final var each(var arg) {
          for(var i: this) {
              arg.function(i);        
          }
          return this;
      }
      Che dovrebbe fare??
      Io invoco each su un oggetto var. each dovrebbe iterare, difatti la classe var è Iterable, ok. Supponendo che l'oggettone contenga una lista, si ha una iterazione per cui si hanno tanti oggetti var che incapsulano ciascun elemento della lista. Contorto, ma fin qui potrebbe ancora starci. Sull'argomento arg viene invocato function. Dato che in Java l'overloading non è dinamico (cioè risolto a runtime) ma invece è statico, risolto dal compilatore, tra i vari metodi function in overload, l'unico invocato in questo caso è solo il void function(var arg) che però è vuoto.
      Quindi?
    • Il codice è pieno di cast fatti con il cast di Class es, String.class.cast(var). A qualcuno (compreso me) potrebbe venire da pensare che sai usare poco/male il comune operatore di cast.
    • Nonostante hai usato collezioni e generics, non hai fatto nulla per rendere più facilmente interoperabile la tua classe con il Collections framework e con codice che usa i generics. Principalmente proprio perché il tuo oggettone può contenere un miscuglio di roba.
    Mi spiace, la programmazione è una cosa .... la fanta-programmazione forse è altro .....
  • Re: Consigli su joove

    Ottimi... consigli...
    Cattive... critiche...

    Avrei bisogno di una valutazione sullo spirito del progetto
    Questa mini libreria fornisce un approccio alla scrittura di codice per manipolare i tipi di dati indicati come se fossero dello stesso tipo (in qualche maniera fornisce lo stesso approccio che si ha in Python o in PHP dove i nomi delle variabili non sono tipizzate)

    es.
    
    System.out.println("Hello World!")
    // diventa
    print("Hello World!");
    
  • Re: Consigli su joove

    Per chiarire lo spirito del progetto:

    Si tratta di una libreria leggera tutta in un unico file che ha lo spirito di Guava o ApacheCommons
    cioè quello di scrivere codice java più leggibile e con meno vincoli formali

    Questo libreria e centrata su una classe "var" che rappresenta tipo unico per la gestione di Liste HashMap Stringe o altri tipi di dati che attraverso manipolazioni semplici possono essere ricondotti tra di loro (es. una stringa diventa un array dopo uno split ecc...). Qui avremo che un "var" che contiene una stringa rimane un "var" che contiene un array cosi il programmatore non si deve preoccupare di ottimizzare il processo o di fare le converioni per trattare il dato successivamente

    Con questa libreria si avvicina Java ad un tipico linguaggio di scripting, però non alla maniera di Groovy cioè con l'introduzione di un linguaggio alternativo
    ma semplicemente usanto java nativo ma con dei mini wrapper alle sue utilità.

    Grazie
Devi accedere o registrarti per scrivere nel forum
3 risposte