NSA - Non Solo Amiga

SOFTWARE => Linguaggi di programmazione e scripting => Topic aperto da: TheKaneB - 05 Dicembre 2014, 17:02:35

Titolo: Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 17:02:35
Come vi sembra questa soluzione Java? http://blog.jetbrains.com/idea/2013/10/better-control-flow-analysis-with-contract-annotations-and-intellij-idea-13/
La cosa che ho trovato utile è la presenza di warning che rompono le scatole se fai cose tipo:
Codice: [Seleziona]
getSomething().doSomeMore(); // genera un warning: Method invocation 'getSomething().doSomeMore()' may produce 'java.lang.NullPointerException.

La presenza di questi warning non risolve da sola i problemi del codice, ma è utile quantomeno per attirare la mia attenzione e fixare potenziali futuri errori a runtime con appositi check.
Titolo: Re:Static control flow analysis
Inserito da: Z80Fan - 05 Dicembre 2014, 17:18:56
Io sono sempre favorevole allo static analysis. In questo caso è un po' più fastidioso in quanto bisogna annotare correttamente le funzioni, ma bisognerebbe farlo lo stesso come documentazione del codice (nel javadoc per esempio), quindi non è un gran problema.

IntelliJ non è anche alla base di Android Studio? Mi son sempre ripromesso di provarlo, ma con la scusa che ancora non supporta l'NDK non mi permette di usarlo in un mio progetto corrente. Chissà quando arriverà il giorno in cui potremmo buttar via Eclipse... :(
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 17:35:38
Spero presto, ormai siamo alla Release Candidate 4 :)

qui alcune info, ci sta lavorando anche Intel a quanto pare: https://software.intel.com/en-us/videos/using-the-ndk-with-android-studio
Titolo: Re:Static control flow analysis
Inserito da: Z80Fan - 05 Dicembre 2014, 17:53:48
Buone notizie. :D
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:09:58
Come vi sembra questa soluzione Java? http://blog.jetbrains.com/idea/2013/10/better-control-flow-analysis-with-contract-annotations-and-intellij-idea-13/
La cosa che ho trovato utile è la presenza di warning che rompono le scatole se fai cose tipo:
Codice: [Seleziona]
getSomething().doSomeMore(); // genera un warning: Method invocation 'getSomething().doSomeMore()' may produce 'java.lang.NullPointerException.

La presenza di questi warning non risolve da sola i problemi del codice, ma è utile quantomeno per attirare la mia attenzione e fixare potenziali futuri errori a runtime con appositi check.
L'idea è interessante, e si potrebbe sfruttare anche per i linguaggi dinamici. Però non risolve tutte le problematiche relative all'utilizzo di un null pointer, o in generale al tracciamento dei risultati a partire dai valori di input (compito che, comunque, sarebbe abbastanza arduo e costoso computazionalmente).

Chissà quando arriverà il giorno in cui potremmo buttar via Eclipse... :(
Devi aspettare un po'. ::)

Spero presto, ormai siamo alla Release Candidate 4 :)

qui alcune info, ci sta lavorando anche Intel a quanto pare: https://software.intel.com/en-us/videos/using-the-ndk-with-android-studio
Ma questo è basato ancora su Eclipse. Z80Fan parlava di buttare Eclipse, invece. ::) ::) ::)
Titolo: Re:Static control flow analysis
Inserito da: Z80Fan - 05 Dicembre 2014, 18:22:19
Ma questo è basato ancora su Eclipse. Z80Fan parlava di buttare Eclipse, invece. ::) ::) ::)

Nel video usa solo IntelliJ; cosa intendi dire con "basato ancora su Eclipse"? ???
L'NDK (https://developer.android.com/tools/sdk/ndk/index.html) stesso viene scaricato separatamente dal SDK principale; non credo che abbia dipendenze da Eclipse...
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:25:40
Android Studio / IntelliJ non sono basati su Eclipse?
Titolo: Re:Static control flow analysis
Inserito da: Z80Fan - 05 Dicembre 2014, 18:30:53
Android Studio / IntelliJ non sono basati su Eclipse?

Android Studio è basato su IntelliJ, ma IntelliJ non è basato su Eclipse.
Se lo fosse, non avrebbe senso creare Android Studio, visto che già l'SDK gira su Eclipse.
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:31:25
Amen. Comunque... aspetta. ::)
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:34:15
Android Studio / IntelliJ non sono basati su Eclipse?

Per fortuna no!
IntelliJ IDEA è un progetto nato quasi contemporaneamente ad Eclipse, più o meno inizio 2000 quando Eclipse non esisteva ancora con questo nome e non era ancora Open Source.
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:35:36
Capito. Ma perché si diffondono sempre le soluzioni peggiori? :-\
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:35:56
Amen. Comunque... aspetta. ::)

cosa vuoi tentare di comunicarci?  ???
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:36:30
Capito. Ma perché si diffondono sempre le soluzioni peggiori? :-\

ah boh! per il VHS la colpa fu dell'industria del porno, ma su Eclipse non ci giurerei :D
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:37:04
Amen. Comunque... aspetta. ::)

cosa vuoi tentare di comunicarci?  ???
Eh. Magari potessi. :-X
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:38:32
uff.... tu sai cose che noi umani....  >:(
Per ora da Intel ho visto un bel po' di roba sfornata. Tipo questo: https://software.intel.com/en-us/intel-inde
Si interfaccia con Visual Studio, Eclipse o IntelliJ IDEA, ma scommetto che non era quello che volevi NON-comunicarci :D
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:40:54
uff.... tu sai cose che noi umani....  >:(
Ti assicuro che soffro molto di più io a non poter parlare. :'(
Citazione
Per ora da Intel ho visto un bel po' di roba sfornata. Tipo questo: https://software.intel.com/en-us/intel-inde
Si interfaccia con Visual Studio, Eclipse o IntelliJ IDEA, ma scommetto che non era quello che volevi NON-comunicarci :D
Ah, è pubblico allora. Yup: illo est. :D Ci sono un paio di miei colleghi che ci lavorano. E io faccio da QA. :P
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:42:26
e bravo :D

ne ho scritto un articolo per HWUpgrade, verrà pubblicato prossimamente, per cui qualcosa ho già visto anche se non in modo approfondito :)
Sicuramente devo studiarmelo per benino per capire se/come/dove mi converrà usarlo :)
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:43:40
Sei più avanti rispetto a me: io devo ancora studiarmelo, e a brevissimo dovrò lavorarci.
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:44:19
Sei più avanti rispetto a me: io devo ancora studiarmelo, e a brevissimo dovrò lavorarci.

lol!
quindi stavolta sono io a sapere cose che voi umani.... :D
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:45:05
la cosa fantastica è che ogni volta che troverò un bug saprò a chi rompere le scatole.... MUHAHAHAHA sei un uomo finito... BUHAHAH
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:47:44
Sei più avanti rispetto a me: io devo ancora studiarmelo, e a brevissimo dovrò lavorarci.

lol!
quindi stavolta sono io a sapere cose che voi umani.... :D
Diciamo che personalmente ne avrei fatto volentieri a meno, visto che a me non piace Android. Ho fatto di tutto per evitarlo, incluso non sorbirmi training e conferenze sull'argomento. Ma da poco m'è caduta questa tegola in testa, e ormai non ho più scampo. :'( :'( :'(
la cosa fantastica è che ogni volta che troverò un bug saprò a chi rompere le scatole.... MUHAHAHAHA sei un uomo finito... BUHAHAH
Ehm... no. Fortunatamente c'è un bel "firewall": i miei colleghi che fanno da customer care. ;D
Titolo: Re:Static control flow analysis
Inserito da: TheKaneB - 05 Dicembre 2014, 18:49:57
quale parte di MUHAHAHAHAH non ti è chiara?  ;D ;D
Titolo: Re:Static control flow analysis
Inserito da: cdimauro - 05 Dicembre 2014, 18:52:08
Ma a me non arrivano le segnalazioni dei bug. Arrivano agli sviluppatori. :P Al massimo, se e quando il bug sarà stato fixato, dovrò verificare che sia tutto a posto. ;)