This document provides guidelines for writing Javadoc comments, including starting the first line with a verb, explaining parameters and what is returned, mentioning exceptions thrown, and using @inheritDoc when implementing interfaces or extending classes. General guidelines include referring to collections as plurals, parameters as "the", and instances as "this", and writing keywords between <code></code>.
際際滷s di una breve conferenza che ho tenuto a scuola. Ritengo che lo stereotipo del programmatore brutto, scontrorso e antisociale sia in declino, ma perch辿 ci嘆 si realizzi davvero occorre affinare nuove abilit, le abilit sociali. Sia Online che Offline
Basato in parte sul lavoro seguente
http://www.slideshare.net/mastorey/msr-2012-keynote-storey-slideshare
Introduzione al Controllo di versione (in generale) e al funzionamento di Git (in particolare). Upgrade di un'altra presentazione simile nelle basi ma incentrata su SVN.
Introduction to Android studio and new build system (Gradle). This was presented at GDG DevFest Kathmandu (Nepal).
For detailed article on it: http://www.technotalkative.com/introduction-android-studio/
Introduction to Java Programming Languagejaimefrozr
油
The document provides an introduction and history of the Java programming language. It discusses that Java was originally developed in 1991 by Sun Microsystems to be portable for consumer electronic devices. The document then summarizes the key capabilities of Java including being a general purpose language that can develop robust applications for desktops, servers, and mobile devices. It also outlines the Java language specifications, application programming interface containing predefined classes, and development tools available. Finally, it explains how Java's use of byte code and the Java Virtual Machine allows it to be highly portable across different operating systems.
- Java is a platform independent programming language that is similar to C++ in syntax but similar to Smalltalk in its object-oriented approach. It provides features like automatic memory management, security, and multi-threading capabilities.
- Java code is compiled to bytecode that can run on any Java Virtual Machine (JVM). Only depending on the JVM allows Java code to run on any hardware or operating system with a JVM.
- Java supports object-oriented programming concepts like inheritance, polymorphism, and encapsulation. Classes can contain methods and instance variables to define objects.
A code along session to introduce the java.time library in the upcoming release of Java 8. The materials to code along can be cloned from github here: https://github.com/jpgough/JavaTimeLab
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica 竪 ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte 竪 adatta ai ragazzi di 1-2属 liceo SSA e di 2属-3属 ITIS (in particolare ad indirizzo informatico)
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica 竪 ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte 竪 adatta ai ragazzi di 1-2属 liceo SSA e di 2属-3属 ITIS (in particolare ad indirizzo informatico)
Una primissima introduzione al TDD per chi 竪 a digiuno di test in generale e di TDD in particolare. Usa Java/Junit, ma 竪 facimente adattabile ad altri linguaggi. 40-60 minuti.
Introduzione al linguaggio Java per chi ha esperienza di C++. Non si parla di OOP, solo di linguaggio.
Codice sorgente dell'esercizio finale qui: https://pastebin.com/R4yZGQcy
Queste slide dal titolo provocatorio cercano di dare l'idea che la stupidit e la pigrizia possono avere un effetto positivo nela programmazione per la ricerca di soluzioni semplici. Nello specifico caso parliamo di funzioni in C
際際滷s presentate all'incontro Didamatica 2016 a Udine. Si parla dei vantaggi didattici di una introduzione precoce dei principi Agili nella didattica informatica quotidiana (un mio pallino).
Dopo molti anni mi sono ritrovato a insegnare Informatica in una terza. Questo 竪 una breve slide che ho fatto per spiegare il ciclo for
C'竪 un errore nelle slides 7---9. ho scritto erroneamente una "," al posto del ";".
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica 竪 ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte 竪 adatta ai ragazzi di 1-2属 liceo SSA e di 2属-3属 ITIS (in particolare ad indirizzo informatico)
Questi sono i miei appunti di informatica sviluppati durante i lockdown. Di fatto costituiscono il libro di testo dei miei corsi. La grafica 竪 ispirata a D&D 5e nella speranza di accattivarmi l'interesse dei ragazzi.
Questa parte 竪 adatta ai ragazzi di 1-2属 liceo SSA e di 2属-3属 ITIS (in particolare ad indirizzo informatico)
Una primissima introduzione al TDD per chi 竪 a digiuno di test in generale e di TDD in particolare. Usa Java/Junit, ma 竪 facimente adattabile ad altri linguaggi. 40-60 minuti.
Introduzione al linguaggio Java per chi ha esperienza di C++. Non si parla di OOP, solo di linguaggio.
Codice sorgente dell'esercizio finale qui: https://pastebin.com/R4yZGQcy
Queste slide dal titolo provocatorio cercano di dare l'idea che la stupidit e la pigrizia possono avere un effetto positivo nela programmazione per la ricerca di soluzioni semplici. Nello specifico caso parliamo di funzioni in C
際際滷s presentate all'incontro Didamatica 2016 a Udine. Si parla dei vantaggi didattici di una introduzione precoce dei principi Agili nella didattica informatica quotidiana (un mio pallino).
Dopo molti anni mi sono ritrovato a insegnare Informatica in una terza. Questo 竪 una breve slide che ho fatto per spiegare il ciclo for
C'竪 un errore nelle slides 7---9. ho scritto erroneamente una "," al posto del ";".
3. Scopo
Scrivere codice 竪 complicato
Mantenere codice altrui..di pi湛!
Supportiamo gli sviluppatori
con la documentazione
Manutenzione
Riutilizzo
油 油
4. Cosa documentare?
Obbligatorio (con Javadoc):
Classi
Package
Costruttori, metodi e attibuti
Vivamente consigliato ( con /* */ e // )
Snippets poco chiari
Algoritmi
Cicli
油 油
5. Perch辿 proprio Javadoc?
Generare documentazione di una API a mano 竪 tedioso
e genera errori
Molti piccoli dettagli
Devo sincronizzare sorgente e documentazione
Devo duplicare gli sforzi (tipi, nomi. . . )
Mooolto meglio combinare codice e documentazione
Genero la documentazione dal codice
La documentazione interna al codice tende ad essere
pi湛 corretta
油 油
6. Infatti Javadoc....
Genera documentazione en HTML
Deduce correttamente informazioni quali nome,
tipi, classi... . .
Ulteriori infomazioni
Riferimenti incrociati
Molti IDE supportano Javadoc (es. Eclipse,
Netbeans)
油 油
7. Sintassi semplice
Basta premettere un testo con un particolare
formato al codice da commentare.
/**
*
*油Descrizione油principale油(testo油/油HTML)
*
*
*油Tags油(testo油/油HTML)
*
*
*/
油 油
10. Regole base
La prima frase di ogni commento deve essere un
riassunto con una descrizione concisa e
completa, terminata da un punto e seguita da
uno spazio, tabulatore o n.
Marcare con <code> I nomi e le parole chiave
Preferibile l'uso della 3属 persona
Iniziare con un verbo la descrizione dei metodi
Omettere il soggetto quando 竪 ovvio
油 油
11. I tag Javadoc
Case sensitive!
Sono di due tipi: block tag e inline tag
Block tags
Si trovano nella descrizione principale, all'inizio della
riga. Es:
@tag
Inline tags
Si trovano nella descrizione principale O nella
descrizione dei block tag. Es:
油
{@tag} 油
12. Tag autoesplicativi
@author
@version
@since /* *
* A c l as s r e p r e s e n t i n g a
wi n d o w o n t h e s c r e e n .
@deprecated * @au t h o r S ami S h ai o
* @ve r s i o n %I %, %G%
@serial * @s e e
j ava. awt . Bas e W n d o w
i
* @s e e
%I e %G sono macro
j ava. awt . Bu t t o n
*/
settate c l as s W n d o w e x t e n d s
i
Bas e W n d o w { . . . }
i
automagicamente
dai sistemi di versioning (CVS, SVN, ...)
油 油
13. @param
Descrive i parametri dei metodi
name DEVE essere /*
uguale al nome * Th i s me t h o d wi l l s ay
hel l o
del parametro * i f yo u as k i t n i c e l y.
* @ am name Yo u r n ame .
par
* @ et ur n A f r i e n d l y
r
gr e e t i ng.
*/
p u b l i c St ri ng
He l l o ( n ame : S t r i n g ) : {
r e t u r n h e l l o + n ame ;
}
油 油
14. @return
Descrive i valori di ritorno
Documentare valori /*
di ritorno insoliti * Th i s me t h o d wi l l s ay
hel l o
come 0, null e * i f yo u as k i t n i c e l y.
* @ am name Yo u r n ame .
par
simile * @ et ur n A f r i e n d l y
r
gr e e t i ng.
*/
p u b l i c St ri ng
He l l o ( n ame : S t r i n g ) : {
r e t u r n h e l l o + n ame ;
}
油 油
15. @throws, @exception
Uno per ogni possibile eccezione
...
Spesso aggiunta * @exc ept i on
automaticamente Nu mb e r Fo r mat Ex c e p t i o n i f
t he s t ri ng d oe s not
Possibile anche per c o n t ai n a
* p ar s ab l e
le unchecked < c od e > l ong< /c od e > .
*/
exceptions p u b l i c s t at i c l o n g
p ar s e L o n g ( S t r i n g s )
t h r o ws
Nu mb e r Fo r mat Ex c e p t i o n
{. . . . }
油 油
16. @see
Aggiuge link ipertestuali aggiuntivi
/* *
* ...
* @s ee < a
Varianti h r e f = " h t t p : / / www. w3. o r g / WA
I / " > W b Ac c e s s i b i l i t y
e
I n i t i at i ve < / a>
@see String * @s ee
S t r i n g #e q u al s ( Ob j e c t )
@see <a href="URL"> e q u al s
*/
label</a> p u b l i c vo i d me t h o d ( )
{. . . }
@see
package.class#member label
油 油
17. @link package.class#member
Simile al precedente, ma in versione inline
Non genera /* *
cross-reference * Re t u r n s t h e c o mp o n e n t at
t he s pe ci f i e d i nd e x.
*
* Th i s me t h o d i s i d e n t i c al
i n f u n c t i o n al i t y t o
* t h e { @l i nk #g e t ( i n t ) }
* me t h o d ( wh i c h i s p ar t o f
t h e { @l i nk L i s t }
i n t e r f ac e ) .
油 油
18. @inheritDoc
Per le classi ereditate, si pu嘆 ereditare anche la
relativa documentazione dalla classe padre, in
modo esplicito (automatico) o implicito.
Avviene in modo implicito....
Quando non si scrive una descrizione generale o un
tag @return, @param o @throws
Quando non sidescrive un tag @throws ma solo per
le checked exception
油 油
19. @inheritDoc (II)
Avviene in modo esplicito...
Usando il tag inline
/* *
{@inheritDoc} * ( s o t t o c l as s e ) .
*
* @t h r o ws
Nu l l Po i n t e r Ex c e p t i o n
{ @i nher i t Doc }
*/
p u b l i c vo i d g e t Ch ar s ( i n t
s r c Be g i n , i n t s r c En d , c h ar
d s t [ ] , i n t d s t Be g i n ) {
油 油
20. JavaDoc avanzato (da Java
5)
Doclet
Permettono di generare vari di tipi di
documento (es: PDF)
Taglet
Permettono di usare tag personalizzati
UMLGraph
Permettono di generare grafici UML
Annotations
Documentazione pi湛 raffinata.
油 油
21. Integrato in Netbeans!
Scrivere la documentazione
Si noti che il commento all'interno di un Jdoc 竪
formattato automaticamente!
Selezionare Run > Generate Javadoc
Il browser si apre sulla documentazione
La documentazione si trova nel progetto, cartella
doc
Simili funzionalit in altri IDE
Simili funzionalit in altri linguaggi (es. PHP)
油 油
22. Riassumendo...
Supportate gli sviluppatori
con la documentazione
Usate JavaDoc
Commentate
Aggiornate
Vivete felici
油 油
23. Bibliografia
Andrea Gallidabino, Florian Gysin Intro to Tdoc
MADS Group - Departamento de Computacion
Documentando con Javadoc, Introduccion
Documentazione ufficiale Java http://docs.oracle.com
Questo documento 竪 dotato di licenza CreativeCommon BY-
SA 3.0
http://creativecommons.org/licenses/by-sa/3.0/deed.it
油 油