Esploriamo assieme come il linguaggio C# e il concetto di “universal”, declinato sulle varie piattaforme hardware, si possono fondere assieme, con poca teoria e molta pratica.
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...Codemotion
Codemotion Rome 2015 - Laravel 4 ha portato una ventata d'aria fresca nel mondo PHP. Adesso, nel 2015, l'uscita di Laravel 5 segna un ulteriore punto di svolta. In questo talk Francesco introdurrà l'ultima versione del Framework e spiegherà quanto è semplice creare applicazioni, in pochissimo tempo e con una sintassi piacevole ed espressiva. Verranno coperte tutte le basi necessarie ad iniziare a lavorare, partendo dal MVC arrivando ad Eloquent, il potente ORM in dotazione. Come degna conclusione, quindi, una veloce sessione di live coding per rendere l'idea del vero livello di flessibilità di Laravel.
Esploriamo assieme come il linguaggio C# e il concetto di “universal”, declinato sulle varie piattaforme hardware, si possono fondere assieme, con poca teoria e molta pratica.
Loving Beautiful Code - Alla Scoperta di Laravel 5 - Francesco Malatesta - Co...Codemotion
Codemotion Rome 2015 - Laravel 4 ha portato una ventata d'aria fresca nel mondo PHP. Adesso, nel 2015, l'uscita di Laravel 5 segna un ulteriore punto di svolta. In questo talk Francesco introdurrà l'ultima versione del Framework e spiegherà quanto è semplice creare applicazioni, in pochissimo tempo e con una sintassi piacevole ed espressiva. Verranno coperte tutte le basi necessarie ad iniziare a lavorare, partendo dal MVC arrivando ad Eloquent, il potente ORM in dotazione. Come degna conclusione, quindi, una veloce sessione di live coding per rendere l'idea del vero livello di flessibilità di Laravel.
In queste slide, Matteo Emili ci parla di SonarQube e del debito tecnico. Queste slide sono state utilizzate per la sessione di Matteo all'evento DotNetCampania "DevOps: dalla teoria alla pratica"
Andrea Cirioni e Nicola Zangrandi ci hanno presentato un esempio di deploy automatizzato e ripetibile, realizzato con Octopus e la sua integrazione con PowerShell. Ci hanno dimostrato come sia possibile rilasciare nei vari ambienti del cliente gli applicativi con un solo click.
Mauro Lorenzutti - Il passaggio da Magento 1 a Magento 2: le 5WMeet Magento Italy
Una delle tematiche più sentite da chi possiede uno store online basato su Magento 1 è: “devo aggiornare il mio e-commerce e passare a Magento 2?”
La risposta non è uguale per tutti. Prima di procedere con l’aggiornamento, una strategia è quella di seguire la regola delle 5W:
WHO? Chi è coinvolto nel processo di upgrade?
WHAT? Cosa bisogna fare durante il progetto di aggiornamento?
WHEN? Quando ha senso pianificare l’upgrade?
WHERE? Dove devo operare, qual è il perimetro del progetto?
WHY? Perché devo fare l’upgrade da Magento 1 a Magento 2?
In questo intervento, Mauro Lorenzutti da una risposta a ciascuna di queste domande, sulla base della propria esperienza nella gestione di progetti di upgrade già realizzati.
In queste slide, Matteo Emili ci parla di SonarQube e del debito tecnico. Queste slide sono state utilizzate per la sessione di Matteo all'evento DotNetCampania "DevOps: dalla teoria alla pratica"
Andrea Cirioni e Nicola Zangrandi ci hanno presentato un esempio di deploy automatizzato e ripetibile, realizzato con Octopus e la sua integrazione con PowerShell. Ci hanno dimostrato come sia possibile rilasciare nei vari ambienti del cliente gli applicativi con un solo click.
Mauro Lorenzutti - Il passaggio da Magento 1 a Magento 2: le 5WMeet Magento Italy
Una delle tematiche più sentite da chi possiede uno store online basato su Magento 1 è: “devo aggiornare il mio e-commerce e passare a Magento 2?”
La risposta non è uguale per tutti. Prima di procedere con l’aggiornamento, una strategia è quella di seguire la regola delle 5W:
WHO? Chi è coinvolto nel processo di upgrade?
WHAT? Cosa bisogna fare durante il progetto di aggiornamento?
WHEN? Quando ha senso pianificare l’upgrade?
WHERE? Dove devo operare, qual è il perimetro del progetto?
WHY? Perché devo fare l’upgrade da Magento 1 a Magento 2?
In questo intervento, Mauro Lorenzutti da una risposta a ciascuna di queste domande, sulla base della propria esperienza nella gestione di progetti di upgrade già realizzati.
Trunk Based Development is a social matterAlessio Coser
Ti sei mai chiesto se con il tuo team state gestendo in modo "agile" la codebase?
C'è da sempre molto interesse verso le pratiche agili perché aiutano i team a portare valore alle persone che usano il prodotto incorporando nello sviluppo i feedback ricevuti.
Ho notato però che spesso la stessa attenzione non è riservata alla collaborazione su una codebase.
Quindi, come possiamo applicare i principi agili anche a questo aspetto?
----
Slides del talk di XPug Milano del 25/05/2023
----
Articoli per approfondire:
- nelis.boucke.be/post/trunk-based-development
- mrdevops.io/trunk-based-development-8376fe577c11
- techbeacon.com/app-dev-testing/how-trunk-based-delivery-key-faster-more-reliable-software
- trunkbaseddevelopment.com
- media.webteam.puppet.com/uploads/2019/11/2016-State-of-DevOps-Report_0.pdf
- georgestocker.com/2020/03/04/please-stop-recommending-git-flow/
- mrdevops.io/if-you-still-insist-on-feature-branching-you-are-hurting-your-business-and-our-profession-32e1109d4594
- continuousdelivery.com/2011/07/on-dvcs-continuous-integration-and-feature-branches/
- 12factor.net
- martinfowler.com/bliki/BranchByAbstraction.html
- continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction
- martinfowler.com/articles/feature-toggles.html
- infoq.com/articles/feature-flags-gone-wrong
- martinfowler.com/bliki/StranglerFigApplication.html
- tuple.app/pair-programming-guide/the-case-for-pair-programming
- grrava.blogspot.com/2017/10/review-of-our-code-review-process.html
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti fornisce una panoramica generale inerente le soluzioni di alta disponibilità con MySQL.
I punti trattati durante la presentazione sono:
- Presentazione dell’offerta Par-Tec dedicata a MySQL Enterprise
- Cause, effetti e reali esigenze di HA
- Funzionamento, benefici e limiti dei principali approcci:
- Replica di database
- Cluster attivo/passivo
- Cluster attivo/attivo: shared-nothing
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/soluzioni-di-alta-disponibilita-con-mysql
FAST è una raccolta di tecnologie, basate su Web Components e su Web Standards moderni, che ci aiuta ad affrontare in modo efficiente alcune delle sfide più comuni nella progettazione e nello sviluppo di siti ed applicazioni Web.”
FAST ci aiuta a creare interfacce si adattano facilmente a qualunque Design System e che possono essere utilizzate con qualsiasi framework!
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DotNetCampus
Amministrare Team Foundation Server può diventare un lavoro a tempo pieno, viste le complessità che può raggiungere. In questa sessione vedremo una raccolta di casi reali - basati sull'esperienza diretta - spaziando dalle attività più comuni fino alle situazioni estreme di una grande infrastruttura, quali strumenti utilizzare e soprattutto quali sono le best practice da tenere in considerazione.
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
Visual Studio Online è uno strumento che fornisce molte funzionalità per l'ALM (Application Lifecycle management) e ad ogni release diventa sempre più completo, funzionale e davvero utile. Si tratta di una piattaforma completa e gratuita di strumenti per lo sviluppo e servizi utili per creare applicazioni multi-piattaforma, progettata per soddisfare i più alti requistiti a livello di disponibilità, scalabilità e complessità di sviluppo.
In questo webcast introduttivo, primo di una serie, vedremo quali sono le caratteristiche di questo strumento, impareremo come utilizzarlo per gestire il lavoro di ogni giorno e prenderemo confidenza con le sue funzionalità. Andremo infine alla scoperta delle nuove feature aggiunte alla suite.
Code Generation con i templates T4 in visual studioMarco Parenzan
Uno degli strumenti meno pubblicizzati ma più utili in Visual Studio sono i templates T4. Strumenti come l'Entity Framework e ASP.NET MVC li hanno resi (forse) più diffusi. Come sono fatti? Come si usano? Cosa ci si può fare? Una carrellata di alcuni usi interessanti, dagli oggetti POCO a WPF, passando attraverso lo "scaffolding" e i Domain Specific Languages...
Quali sono le tipiche problematiche che si devono affrontare in ambiente di produzione a livello di debugging? Quali tecniche abbiamo a disposizione? Quando portiamo in produzione del codice testato nell’ambiente di sviluppo/test, può capitare comunque di avere qualche sorpresa. Valuteremo insieme un nuovo tool chiamato Z-Ray che espone, attraverso un’estensione creata ad hoc per Magento, informazioni specifiche sul codice eseguito lato server. Inoltre scriveremo insieme del codice da inserire in Z-Ray per personalizzarne le informazioni di monitoring estratte relativamente ad uno specifico modulo.
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
La recente affermazione in ambito web delle applicazioni rich basate su HTML5 e Javascript è diventato sorgente di una serie di librerie innovative e di strumenti che, se usati correttamente, possono semplificare enormemente lo sviluppo. In questa sessione sarà illustrato come sfruttare Typescript, in concomitanza con Angular e Bootstrap per realizzare applicazioni che sfruttino al massimo le possibilità dei browser e diano un feedback il più possibile simile alle applicazioni desktop.
3. Presentazione
• Igor Antonacci
• DevOps Engineer & System Architect @ Fresenius Medical Care
• Co-Fondatore di DotDotNet e GetLatestVersion.it
• Twitter: @bitbreaker
• Facebook: fb.me/igorantonacci
• Email: igor@igorantonacci.me
4. Agenda
• Introduzione
• Nomenclatura
• Perchè ...Strategies –
«Sto adottando la strategia giusta per il mio prodotto / Team / ciclo di sviluppo?»
• Strategy #1 – Main Only
• Strategy #2 – Release Isolation
• Strategy #3 – Development Isolation
• Strategy #4 – Development and Release Isolation
• Strategy #5 – Servicing and Release Isolation
• Strategy #6 – Servicing, Hotfix and Release Isolation
• Strategy #7 – Feature Isolation
• Strategy #8 – Code Promotion
• Branching and Merging Anti-Patterns
• Conclusioni
• Reference
5. Introduzione – 1
Context
• Centralized Source Control – TFVC SOLO come esempio
• Team con più di un membro (2 è sufficiente)
• Prodotto/i (Software) da consegnare (artifacts)
7. Problematica da risolvere
• Processo di sviluppo consolidato
• Design Sviluppo Test Deploy
• Uno o più Prodotti Software
• Versioni differenti (prossima, in rilascio, in manutenzione)
• Clienti diversi / diverse personalizzazioni
• Uno o più Team
• «allocati» su Feature / Versioni differenti
• UNICA CODEBASE
NON ESISTE ALCUNO studio indipendente sulla correlazione tra
Processo di Sviluppo e Metodologia di Branching
8. Perchè ...Strategies
• Approccio empirico al problema
• Attaccare il «nemico» facendoci il meno male possibile
La strategia si applica a tutti i campi in cui per raggiungere l'obiettivo sono necessarie una serie di
operazioni separate, la cui scelta non è unica e/o il cui esito è incerto.
(cit. Wikipedia – Strategia)
9. Goal
• Gestire il lavoro concorrente di UNO o più Team sulla stessa
codebase
• Isolare il rischio introdotto da diversi insiemi di modifiche alla
codebase
• Fare delle istantanee della codebase al fine di gestire successivi
cambiamenti isolati (es. Branch per Release, Personalizzazioni
ecc.)
10. Nomenclatura
Termine Descrizione
Development Branch Branch che contiene i cambiamenti (alla codebase) per la prossima versione
Forward Integrate (FI) Merge da un ramo padre ad uno figlio
Reverse Integrate (RI) Merge da un ramo figlio ad uno padre
Hotfix Cambiamento necessario a riparare un bug «bloccante» o un problema che impatta
l’intero sistema.
Main Branch E’ il branch «che congiunge» il ramo di sviluppo con quello di rilascio.
Release Branch Branch dove confluirà il codice in preparazione per una specifica versione
Release Vehicle Il modo in cui il prodotto viene «rilasciato» al cliente (Hotfix, Major Release, Service Pack
etc.)
Service Pack (SP) Un insieme di hotfix e funzionalità per una versione precedente del prodotto
19. Branching and Merging Anti-Patterns
• Merge Paranoia – evitare di fare Merge a tutti i costi
• Merge Mania – Merge, Merge, Merge … come se piovesse
• Big Bang Merge – Merge UNA VOLTA per «TUTTI» alla fine della fase di sviluppo
• Never-ending Merge - Merge continuo…
• Wrong-way merge – Fare il Merge di una feature sul ramo di una versione PRECEDENTE
• Branch-mania – come Merge-mania, ma per il Branch
• Cascading Branches – Branch che non confluiscono mai nel branch padre
• Mysterious Branches – Branch … e perché?
• Temporary Branches – Branch effettuato per un cambiamento … ma che poi diventa un
workspace permanente
• Volatile Branches – Branch di uno o più Changeset anche se si trovano in uno stato unstable
• Development Freeze – SU LE MANIIIII
• Berlin Wall – Branch per dividere i membri del Team… non il loro lavoro
20. Conclusioni
• L’adozione di una Branching Strategy è NECESSARIA all’interno di
un Team
• La scelta della corretta Strategy non è sempre facile e non avviene
sempre al «primo colpo»
• Ogni Business / Dev Process ha delle caratteristiche uniche
Create la Vs. Strategy … cum grano salis (cit.)
21. Reference
• Visual Studio ALM Rangers – Branching Strategies
(https://vsarbranchingguide.codeplex.com/)
• Branching Taxonomy – MS Research
(http://research.microsoft.com/apps/pubs/?id=209683 )
• Defining Your Branching and Merging Strategy
(https://msdn.microsoft.com/en-us/library/bb668955.aspx)
• Branch Folders and Files
(https://msdn.microsoft.com/en-us/library/ms181425(VS.110).aspx )