Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Typed models pug roma febbraio 2020

117 views

Published on

Talk tenuto all'incontro di febbraio 2020 del PUG Roma

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Typed models pug roma febbraio 2020

  1. 1. Typed models 25 febbraio 2020 Massimiliano Arione
  2. 2. https://massimilianoarione.it/ About
  3. 3. Warning! Experimental content Questa presentazione deriva da esperienze limitate. Usare con cautela.
  4. 4. PHP 7.4 ci ha portato alcune novità interessanti ➔ Preloading più performance ➔ Arrow functions più syntax sugar ➔ Typed properties Bingo!
  5. 5. Come possiamo migliorare ulteriormente la nostra static analyis? Non la fai ancora? Dai un’occhiata all’incontro di maggio 2019 https://roma.grusp.o rg/2019/07/incontro- di-maggio-2019/
  6. 6. Togliendo un po’ di phpdoc! E mettendo dei tipi VERI.
  7. 7. Circa il QUARANTA PER CENTO della nostra static analysy viene ingannata da annotation in phpdoc Disclaimer Le percentuali citate potrebbero differire nella vita reale.
  8. 8. Tipi di classi Possiamo suddividere grossolanamente le classi di un nostro progetto in 3 grandi gruppi: ➔ Controller ➔ Servizi ➔ Model 🎉
  9. 9. Controller I controller sono delle classi un po’ particolari, non fatte per istanziare oggetti ma piuttosto per contenere brevi metodi Definiti come servizi? Meglio di no, ma eventualmente ricadiamo nel caso successivo
  10. 10. Servizi Son la gran parte del nostro codice, ma sono immutabili. Suggerimento: se hai un servizio non immutabile, qualcosa non va. Storia a scopo puramente illustrativo
  11. 11. Le classi di modello sono la parte più importante della nostra applicazione Videos! 2017 youtube.com/v/KxSEnYbxYRg 2016 vimeo.com/196398557
  12. 12. Model Repository gestiscono le entity a livello collettivo Entity mappate su tabelle Value object “tipi” locali al servizio delle entity. Immutabili
  13. 13. Entity
  14. 14. Value object
  15. 15. Repository
  16. 16. Hands on! 🙌 È ora di vedere un po’ di codice!
  17. 17. Prossimamente Con PHP 8 potremmo (condizionale d’obbligo) avere ulteriori miglioramenti nella static analysis ➔ Generics class Entry<KeyType, ValueType> ➔ Immutable properties immutable class Email public immutable $email;
  18. 18. Grazie! 🙏

×