# Piano studi java
## infrastruttura linguaggio java (studio autonomo)
[Appunti studio su Moduli, package](https://hackmd.io/BAK55YNwQTKHSkFOC9PMaQ?edit)
## Java, Testing
- [x] ~~Testing-Guidelines-2019-10-17.pdf (1.4 MB)~~
- [ ] Per fare pratica puoi poi seguire i Java Koans (https://github.com/matyb/java-koans)
- [ ] Fare pratica su Exercism
[https://exercism.io/profiles/martinovallara](https://exercism.io/profiles/martinovallara)
- [x] [Hello Word](https://exercism.io/my/solutions/e9c32fef6a044b729447f0eeec8ee32d)
- [x] [luhn](https://exercism.io/my/solutions/63fa5d66ac5b4fb9ad587d6259c0cd10)
- [x] [Leap](https://exercism.io/tracks/java/exercises/leap/solutions/e9c32fef6a044b729447f0eeec8ee32d)
- [x] [Nth Prime](https://exercism.io/tracks/java/exercises/nth-prime/solutions/038a979bfe9f42f79be418783dca72ed)
- [ ] [in progress] [List Ops](https://exercism.io/my/solutions/d22ba8abf8c546b0abc63dbde91d3ed6)
- [ ] https://github.com/xpepper/javaCourse
## Into Moderm Java
- [ ] https://martinfowler.com/articles/practical-test-pyramid.html
- [ ] https://github.com/hamvocke/spring-testing
- [ ] https://github.com/giorgiosironi/game-of-life-modern-java
- [ ] https://github.com/winterbe/java8-tutorial
## Into the Spring Universe
- [ ] https://github.com/xpeppers/testing-spring-project-example
## Clean Code
- [ ] Clean Code on Java (book)
## Suggerimenti per quando fai i kata
* committa spesso, in particolare dopo ogni azione "significativa" sul codice, ad esempio dopo aver fatto passare un test, oppure dopo un refactoring.
* cerca di usare il più possibile gli shortcut da tastiera, per navigare nel codice, estrarre variabili/parametri/metodi ecc.
* mentre programmi, scrivi da parte i dubbi o i problemi che emergono, su qualunque aspetto. Le cose che emergono le puoi rivedere in un secondo momento, da solo o con un collega. Esempi:
* come funzionano i branch in git?
* come gestisco le dipendenze con maven/gradle in un progetto java con Intellij?
* ...
## kata
### salex-taxes-problem
* ripetere iniziando come primo passo a risolvere il problema con un solo articolo (senza introdurre da subito la lista)
* attenzione test che testano collaboratori: come introdurre test unitari sui collaboratori
### String-calculator
*
## approfondimenti
* packadge
* maven
* gradle
## testing
https://martinfowler.com/articles/practical-test-pyramid.html