
in modo da visualizzare documenti e documenti
ed esplorare l’architettura del software e
inizieremo qui, quindi immaginiamo di averlo
ho inventato i teletrasportatori e mi teletrasporterà
tu qui dove sei
Francia vicina ma non proprio così sì
dice LaRue fare qualcosa questo è ciò che
succede quando cadiamo nuovi unisciti a noi in a
base di codice li lasciamo cadere dritti
nel mezzo e sono un po ‘
perso come risolviamo questo problema come si fa
capiamo dove siamo noi ridimensionare
Usiamo la tecnologia apriamo le mappe
sul nostro telefono e iniziamo a zoomare
fuori meglio non è stato ingrandito abbastanza
dove ora puoi vedere il nome della strada
ma non siamo ancora sicuri di dove siamo
stiamo zumando ancora una volta yeah lì
andiamo così c’è Jersey che è quello
dove vivo c’è un sacco di clustering
su questa mappa non c’è, non è molto
molto chiaro per vedere cosa sta succedendo così
con cose come Google Maps possiamo
ridurre la quantità di informazioni come
questo diventa un po ‘più chiaro ora che possiamo iniziare
per vedere alcuni nomi di luoghi e e
dove alcuni dei pezzi sono se
non hai mai sentito parlare di Jersey prima di questo
è ancora confuso per cui è necessario
pizzica lo zoom ancora e ancora
e ancora così ora vanno là, perché è così
una piccola isola appena fuori dalla costa
ora se vieni a visitare Jersey che
dovresti perché è adorabile quando tu
vieni attraverso l’aeroporto, riceverai un
mappa e questo è un tipo tradizionale di
Vista mappa cosa e ti mostra
informazioni come questa le mappe spezzate
in 4 in quattro quarti e in qualche modo
ti dice abbastanza informazioni per ottenere
intorno ti dice abbastanza informazioni per
sai andare e trovare i siti principali e
quel genere di cose che non ti dice
tutto anche se non sta ascoltando
ogni strada non le ascolta tutte
edificio e ogni strada o c’è
uno zoom in parte per la città principale
e abbiamo un piccolo dettaglio in più
laggiù ma c’è ancora è un it’s a
rappresentazione non è abbastanza accurata
quindi questa cosa qui questo pezzo blu che
il
in realtà sarebbe andato là fuori, quindi se tu
se tiri interi, conosci la barca nuova
parcheggiare lì lo troverete asciutto in alcuni
punto e anche questo stabilimento balneare qui
sembra che non venga mai aggiornato con
acqua ma fa che è utile
perché sono sicuro che i bambini lo facciano pipì nel
estate la cosa queste mappe hanno in
è comune che mostrano punti di
interessi destra in modo che cosa voglio davvero
andare a vedere quando visito Jersey
contrasto questo come un ordinata
La mappa del sondaggio è molto molto molto molto
rappresentazione dettagliata di Jersey che abbiamo
ha contorni e diversi tipi di terreno
e ogni sorta di cose succedendo qui
e hai bisogno di un po ‘di intelligenza e
conosci qualche aiuto per iniziare
interpretando questa cosa entrambe le mappe sono
mostra anche le alte luci selezionate e
e questa è una cosa davvero interessante
qui selezionati evidenzia così quando tu
vieni a Shaheen in realtà durante la tua estate
probabilmente passerai oltre
grande castello si chiama Elizabeth castelli
sulla costa sud in mare e sei tu
conosci il castello del XVI secolo un po ‘bello
blocco di granito funziona ed era fondamentalmente
costruito per fermare il francese e l’inglese
prendendo Jesse e quando cammini
intorno a questo castello arriviamo al
in alto nel mezzo e le cose iniziano
cambia e hai questo tipo
bella cosa in pietra di granito con questo
strana cosa concreta attaccata sopra
qualche motivo e ti piace quell’aspetto
molto strano
cos’è tutto ciò e la storia è
importante qui così quando cammini
intorno al castello ti dice che dentro
Seconda guerra mondiale quando i tedeschi occuparono
Jersey hanno riconfigurato alcuni dei
fortificazioni esistenti, ecco cosa
quella grande cosa concreta è in cima
e ci sono un sacco di postazioni di armi e
così via e così via, naturalmente, tutto questo
roba è descritta nelle guide e
ce ne sono molti là fuori e di
Certo, se vuoi essere un po ‘hipster
puoi usare il sito web che abbiamo il
internet ora è la mia rapida
introduzione e passo di vendita per Jersey
Credo che tornerò per dirlo
giusto così visualizzazione una delle cose
Faccio con i team di software intorno al
il mondo è che avrei eseguito una visualizzazione
laboratorio e diamo un po ‘di gente
requisiti quindi diciamo che hai 90 anni
minuti in gruppi per andare a disegnare alcuni
immagini e questi sono i tipi di
immagini che in realtà attirano persone che prometto
Non ne ho fatto nessuno
Non sono sicuro di poter fare queste cose
su
questi sembrano diagrammi che vedi tu e
le tue lavagne sì ne ho altre 15
gigabytes potrei mostrarti ma sono andato
a volte quando gestisco questo workshop
In realtà sento che la gente lo dice bene
stanno disegnando una scatola o una forma e
dicono che questo non ha senso, ma
lo spiegheremo più tardi quando faremo il nostro
presentazione o qualcosa del genere
bene, ma non sempre presentiamo il nostro
diagrammi sappiamo se stiamo disegnando
un’immagine fuori dal nostro sistema non sempre
stare lì e presentarlo e un brutto
trucco che mi piace fare è che mi piacerebbe averne due
i team scambiano diagrammi e indovina un po ‘
succede perché non ne facevano parte
quella conversazione creandoli
diagrammi Non ho idea di cosa sta succedendo
e poi questo è un po ‘un momento cruciale
e sono in grado di codificare i colori e
le forme e le linee e fondamentalmente
nessuno degli elementi di notazione ne crea nessuno
senso qualunque quando chiedi alla gente te
so che è stato un esercizio facile, dicono
beh, in effetti lo era e poi lo dico bene
perché il tuo diagramma mi fa così casino oh
sì , non lo sappiamo davvero
cosa disegnare non siamo sicuri di quale tipo
diagrammi dovremmo disegnare livelli di dettaglio
notazione delle forme dovremmo usare UML che
qui usa UML che è veramente piccolo
numero come quattro o cinque persone
quindi, qual è ogni altra cosa fare qualcosa
altrimenti ho fatto questa domanda intorno al
mondo e UML stanno cadendo in modo massivo
di moda non ho prove a sostegno
tutto questo è tutto completamente
aneddotico, ma sto vedendo sempre di più
team che non hanno competenze UML e in
le squadre più
Io uso UML ma lo uso con parsimonia
piccole parti di un sistema software giusto
quando voglio mostrare una parte molto piccola di
dì la nostra gerarchia delle classi di classe o
qualcosa che Google non aiuta se tu vai
a Google e chiederlo a cosa pensa
il diagramma dell’architettura del software sembra
ottieni questa pagina giusta dopo la pagina successiva
pagina di un blocco sostanzialmente colorato
immagini il tipo di cosa che puoi fare
in Visio un PowerPoint e ridiamo a
queste cose ma queste sono esattamente a
tipo di diagramma, quindi vedo quando vado
attraverso le organizzazioni
sai che ti apri i complimenti
pagine o qualunque colpi si ottiene questo
sistemare cose e mezzo la foto appena
non ha alcun senso, questo è difficile
Penso di aver gestito questo workshop per circa
10.000 persone ora in tutto il mondo
e nessuno lo fa abbastanza bene
la prima volta ci crediate o no e
l’ ironia qui è agile quindi uno dei
le grandi cose a luglio sono state fatte da noi
più visiva ogni volta che vado a visitare
organizzazioni agili hai il loro
schede della fotocamera e le pareti della storia e
i cruscotti informativi quindi abbiamo
fantastico nel visualizzare essenzialmente
elaborando il nostro modo di lavorare
ma abbiamo completamente dimenticato come disegnare
cose che sai disegnare immagini del
cose che stiamo costruendo e questo è giusto
su una buona comunicazione sai se tu
vuoi muoverti veloce come una squadra se vuoi
l’agilità del business, allora avete bisogno di
comunicare bene è così
quindi ce ne sono alcuni davvero semplici
suggerimenti qui intorno alla notazione che posso
darti e sai che sono solo cose
come mettere titoli e immagini assicurati
le tue frecce sono annotate, assicurati
le frecce indicano una direzione e così via e così via
avanti e la notazione intorno al disegno
diagrammi architettonici è davvero molto
facile da risolvere uno dei miei punti chiave è questo
uno qui le responsabilità che spesso scherziamo
questa denominazione è difficile e il software è così
non ha senso che la maggior parte dei nostri
i diagrammi di architettura sono essenzialmente
solo una raccolta chiamata scatole perché
i diagrammi contengono un’enorme quantità di
ambiguità quindi il mio consiglio è aggiungere altro
testo per i tuoi diagrammi quindi ecco a
esempio molto semplice è lo stesso
diagramma la versione a destra ha
più testo e che cosa supplementare
il testo ci permette di vedere cose come la
responsabilità di chi costruisce
blocchi ci sono molte più informazioni
lì in termini di contenuto sai quando
stiamo disegnando diagrammi architettonici
non posso mostrare tutto su un singolo
immagine e questo è il motivo per cui le persone parlano
su cose come viste e punti di vista
e prospettive e ci sono molti e
un sacco di modi diversi per fare questo Owen
menzionato Phillip Christians quattro più
un modello Owen ha un libro che descrive a
un sacco di modi per fare questo e là
sono più la cosa è tutta quella visione
i cataloghi hanno questa visione logica di a
sistema separato per lo sviluppo
del sistema in modo che la vista logica sia
spesso sia la logica funzionale
blocchi concettuali e quindi
c’è qualcos’altro a cui si riferisce
come stiamo costruendo queste cose perché perché
facciamo questo io non capisco perché
ogni volta che vado alle organizzazioni e vedo
la loro bella architettura logica e soffice
diagrammi non corrispondono mai al codice e
questo è un po ‘il punto qui se lo sono
disegno diagrammi di architettura di cui ho bisogno
loro per abbinare il codice altrimenti sono
mi stavo solo mentendo, George Fairbanks
malato nella parte posteriore perché è la modella
codice Gavin è nel suo fantastico libro quando
stiamo avendo una discussione architettata
stiamo usando concetti astratti come
moduli e componenti e servizi ma
non abbiamo quelle stesse cose
nei nostri programmi di programmazione mostra rapida
di mani che è uno sviluppatore Java qui
proprio così in Java c’è un livello
parola chiave no in Java c’è un componente
parola chiave no ma creiamo componenti di
strati assemblando classi e
interfacce e pacchetti e cose
insieme quindi quello che sto cercando di ottenere è
una serie di diagrammi per riflettere con precisione
il codice qui è il mio obiettivo finale
prima di poter ancora tentare di risolvere questo
problema abbiamo un problema più grande e
questa è una mancanza di qualsiasi tipo di coerenza
linguaggio standard sì, anche nel 2016 noi
non hanno un consistente vocab ritu parlare
sull’architettura del software ci pensiamo noi
fare, ma non credo che facciamo tempo quiz
cos’è questa è una mappa di Londra giusta
qual è la cosa blu è un fiume così
Fiume Tamigi che cos’è un corpo fluviale di
acqua che scorre 100 altra direzione
perfetto quindi sappiamo che cos’è un fiume e
possiamo andare e trovare altri fiumi usando
la nostra conoscenza cos’è
quindi una pianta per un bagno cosa c’è
questa cosa qui è una toilette ciò che è a
toilette, sai cosa è tutto e
di nuovo potremmo usare la nostra conoscenza di
che gabinetto deve andare e trovare di più
servizi igienici e le persone elettriche qui
ingegneri magici un paio di modi per
fai riferimento agli schemi elettrici che hai a
cosa pittorica divertente a fumetti o a
versione schematica
cos’è quella linea ondulata lì al
in basso, quindi resistore, cos’è un resistore
era questa roba che rallenta la corrente
terra dell’anno se avessi una scatola di
componenti elettrici qui nella parte anteriore
con condensatori e interruttori e
resistori potresti venire in testa
e trovami un resistore in quella scatola, giusto
quindi sai come identificare un resistore
in esso se conosci il cono di colore che puoi
capire quanto forte è proprio questo
il quiz è troppo facile ralizziamo il
complessità su scala esponenziale
cos’è? Quindi abbiamo due componenti UML
diagrammi uno è una versione X di un punto
uno è una versione X a due punti non chiedere
me quali quelli che ho dimenticato cosa
sono le scatole su questi diagrammi lì
i componenti sono corretti ciò che è a
componente non so è una logica
cosa funzionale astratta del building block
e e questi componenti sono tutti molto
diverso quindi questo qui è un’ascia
è un database stereotipato e c’è un
Interfaccia JDBC in modo che suoni come a
componente del database questi siete voi
occhi o applicazioni in cosa consiste
il mezzo
componenti aziendali in cui vengono eseguiti
sono il database come parte dell’app
micro servizi a cui questo diagramma è aperto
un sacco e un sacco di interpretazione
più testo sul diagramma se questo diagramma avesse
più testo almeno sappiamo cosa questi
le cose avrebbero dovuto essere molto semplici
immagina che stiamo costruendo una cosa veramente semplice
sistema costituito da un’app Web in a
database la parola componente significa parte
per alcune persone l’app web è a
componente dell’intero sistema per
altri qualcosa come una registrazione
componente è un componente dell’app Web
stessa parola diversi livelli di
astrazione
è la cosa del linguaggio onnipresente ora
andiamo avanti da anni su DDD
e avendo questo linguaggio onnipresente
tra noi e gli uomini d’affari noi
non avere il linguaggio delle tue immagini
per noi stessi e questo è il problema che abbiamo
ho bisogno di risolvere qui anche UML ha provato a farlo
molto era una notazione standard e a
posizione di astrazione e tipo di
fallito su entrambi i fronti e penso per
dove siamo attualmente
industry.we ha bisogno di quella serie standard di
astrazioni a cui vorrei arrivare
qualcosa come l’ingegneria elettrica in
il futuro, quindi abbiamo un set standard di
simboli divertenti per rappresentare le cose ma
prendiamo la lingua inchiodata prima e
la cosa qui è che il linguaggio noi
creare necessità di riflettere la tecnologia
che stiamo usando così voglio unire il
le viste logiche e di sviluppo
insieme di nuovo li collassano così abbiamo
terminologia reale che mappa al reale
la tecnologia ora non so come facciamo
questo su scala globale ma ciò che possiamo
fare entro i confini di questa stanza
Posso mostrarti come faccio questo e per me
molto semplicemente quando sto discutendo di a
sistema software che è il sistema software
costituito da un contenitore contenitori è
solo qualcosa che memorizza dati o corre
codice in termini reali è un’app web a
app mobile una app standalone una finestra
servizio uno schema di database e così via se
apri i contenitori che sono fatti
di componenti quindi voglio usare il
componente di parola per significare qualcosa in esecuzione
essenzialmente all’interno di un ambiente di runtime
è un bel gruppo di cose coese
con una bella interfaccia pulita e noi siamo
fatto
perché mi occupo principalmente di Java e
c-sharp i miei componenti sono costruiti per
le classi è così semplice
struttura ad albero gerarchica da descrivere
la struttura statica del sistema software
se si utilizza JavaScript questo non ha senso
quindi forse i suoi moduli e oggetti o
moduli e funzioni uguali a
moduli di lingue funzionali e
funzioni se stai usando un database
la tecnologia forse i suoi componenti o
le procedure in modo ancora una volta si deve prendere la
stesso approccio gerarchico e mapparlo a
il testo che stai usando e questo è
davvero sulla creazione di un singolo semplice
modello statico di un sistema software da
il sistema come una scatola nera fino al
codice con un paio di livelli in mezzo
quindi questa è la lingua per trovarlo e
una volta definita una lingua puoi disegnare
alcuni diagrammi davvero semplicemente e e questo
è quello che mi riferisco spesso come il mio modello C4
è un diagramma di contesto in cui si ingrandisce
guarda i contenitori che ingrandisci per vedere
i componenti e non puoi andare giù
codice se lo si desidera ma non lo faccio normalmente
fare questo soprattutto se sto cercando di
descrivere la base di codice esistente per
esempio esempio veramente veloce creo a
sito chiamato tech drives quando mi sono trasferito
torna a Jersey ed è solo un semplice
aggregatore di contenuti per la tecnologia locale
industria questo è un contesto
diagramma per le tribù tech la cosa quando
la scimmia è il sistema che ho costruito lì
sono diversi tipi di utenti e
diverse dipendenze di sistema se questo
era una mappa Google interattiva che potevamo
selezionare pizzico per ingrandire vediamo il
contenitori all’interno del confine del sistema noi
seleziona un contenitore che pizzichiamo per ingrandire
mostriamo i componenti accanto e
qualcuno così avanti è solo un vero
semplice insieme di diagrammi gerarchici il
mappare su quella lingua e alla fine noi
arrivare al codice e alla fine idealmente
c’è una bella mappatura pulita tra tutti
di questi strati e questo in realtà
riflette come appare il codice
per me diagrammi e mappe bene questo è un
riassume tutte queste cose fondamentalmente
diagrammi e mappe e hai bisogno di diversi
tipi di mappe a seconda di quanto
informazioni che hai sulla cosa tu
vuoi conoscere o il pubblico che
stai parlando così agli uomini d’affari
persone non tecniche un bel livello di alto livello
la vista funziona bene come sviluppatore
qualcosa di basso livello forse un po ‘
operazioni persone qualcosa nel
in mezzo non voglio che tu ne porti via nessuno
suggerimenti su una notazione questo è il
notazione che uso solo perché è molto
molto semplice e tendo ad usare le cose
come la codifica e le forme dei colori
integrare un diagramma esistente che
ha già senso quindi è lo stesso
diagramma una versione ha alcune forme
quelli che si preferisce probabilmente quello
con le forme ma fondamentalmente non c’è
più informazioni su entrambi i diagrammi è
solo una cosa estetica, penso anche io
vale la pena di sottolineare che lì
c’erano molte altre cose che potreste desiderare
considerare quando stai descrivendo il tuo
architettura del software e questo è dove
anche se i punti di vista e punti di vista e
le cose delle prospettive entrano in gioco e io
si punta un’opera cristiani fillip
pure e gli inverni di Owen prenotano questo c4
la cosa non è un processo di progettazione, è solo
un insieme di diagrammi ed è un insieme di
diagrammi che è possibile utilizzare durante un
esercizio di progettazione in anticipo o anche
in modo retrospettivo quindi se ne hai uno
codice base esistente senza documentazione
questo è davvero un buon punto di partenza sì
Ho una domanda molto simile a quella di Tony
tu raccomandi
per favore non dire di nuovo Vizio perché
questo è solo un insieme di scatole e linee
qualsiasi strumento di diagrammi di uso generale
farà Visio OmniGraffle Gliffy
qualunque cosa scegliate, ma vieni su questo è
2016 c’è stato un appello interessante per
aiuto da Twitter di recente cosa cosa
gli strumenti ci sono per la creazione
le diapositive dell’architettura non hanno risposto
con uno strumento di modellazione era tutto
strumenti per diagrammi di uso generale che
penso sia solo matto
e se guardi al settore delle costruzioni
l’edificio della suite non utilizza Visio
il settore dell’edilizia crea a
modello tridimensionale del loro
costruendo e hanno superficie diversa
di nuovo la RN ovviamente lo è
costruiamo questi strumenti per l’edificio
settore e non possiamo farlo noi stessi in modo
Sto cercando di risolvere molti problemi
qui e uno dei miei si avvicina a questo
è un insieme di strumenti chiamato struttura
l’oggetto che cerco di fare è parte è gentile
della parte del prodotto SAS open-source è
forma molto semplice puoi scrivere a
linguaggio a dominio specifico per
creare alcuni diagrammi quindi questo è
religiosa e attuazione del
contenitori di sistemi software per persone
cosa componenti ti ho mostrato brevemente
prima è come se avessimo visto cose
diagrammi se hai visto che questo è
ottimo per disegnare qualcosa di piccolo
e semplice diagramma singolo alla volta ma
non è davvero dove vogliamo andare se io
avere una base di codice esistente , perché non posso
solo alterare generare diagrammi ha poi noi
provato questo cosa succede appena ottenuto
il caos è questo perché la tua base di codice è
il caos a volte ma spesso non è spesso così
mostrando solo troppi dettagli quindi uno di
le cose che ho fatto di recente con
struttura Iser così struttura è tutto
basato sul cloud e molte delle mie potenzialità
ai clienti piace ma non vogliono
inviare la loro architettura software a lungo
fino al cloud, quindi ho costruito molto semplice
API locale perché la struttura è il
costruttore Iser è essenzialmente un
App JavaScript in esecuzione nel browser se
si installa un’API che è possibile raggiungere
localmente è possibile memorizzare i dati localmente
si tratta di meno di migliaia di righe
codice e questo è ciò
che il codice si presenta come se si dovrebbe
genera un diagramma di classe UML in alcuni
tooling non è particolarmente utile è
ci mostra tutti i livelli del codice
elementi e tutte le relazioni
tra di loro ed è difficile davvero
scegliere quali sono le parti importanti di
questo codice base è e questo è davvero
app davvero piccola come meno di
migliaia di righe di codice cosa succede se
lo indichi a centomila o
un milione di righe di codice che ottieni
diagrammi pazzi pazzi e la ragione è
che questi strumenti di diagrammi vedono i codici
non componenti questi strumenti di diagrammi
di solito non sono in grado di aumentare lo zoom per mostrare
le astrazioni più grandi sono essenzialmente
ancora una volta il codice del codice del modello e noi
può seguire questo problema terzino destro in
tempo c’era un documento su questo
problema negli anni ’90 le prime due aperture
i paragrafi in pratica dicono se lo chiedi a
ingegnere per disegnare una foto di loro
sistema software si ottiene un bel
vista di alto livello se si esegue il reverse engineering
un diagramma dal codice che ottieni
qualcosa totalmente totalmente diverso il
diagrammi del reverse engineer super accurati
certo, ma non è come l’ingegnere
pensa al mondo e tutto viene
torna a questa domanda bene, che cos’è un
componente se voglio disegnare un componente
diagramma ho bisogno di capire che a
componente è e se torniamo al mio
piccolo diagramma di classe qui questi due
scatole di luci è davvero quello che io
considera di essere i componenti in questo
la piccola app per le API che ho creato è una Java
richiesta API di gestione servlet e c’è
un componente dello spazio di lavoro che sta trattando
con la struttura Iser spazi di lavoro
hai sentito parlare di questo servizio
le liste di framework sono come le
l’ implementazione più semplice che potresti
possibilmente scrivere e tutti questi altri
le cose del codice sono solo parti di quei due
componenti e ancora questo è ciò che il
la struttura del codice sembra così ho ottenuto
due componenti principali con un mucchio di
codice di supporto essenzialmente ora diciamo spesso
che il codice è un singolo punto di verità
il codice è l’incarnazione finale di tutti
le idee architettoniche possiamo ottenerlo
informazioni indietro di un codice esistente
base e la risposta non è davvero così se
mi avresti dato il tuo codice base possibile
Generico qualcosa come un contesto
diagramma automaticamente cercando
riferimenti a persone e software
sistemi nella tua base di codice e la risposta
non è perché non esistono davvero noi
non avere queste informazioni nel nostro codice
basi significava molto al momento lo stesso
con i contenitori posso ottenere
elenco dei contenitori semplicemente raschiando
i dati dal tuo codebase ce ne sono alcuni
informazioni in là ma è un po ‘ di
difficile da trovare quando arrivo al
livello componente questo è davvero il livello
Voglio generare automaticamente perché
è il più volatile e cambia
il più frequentemente George Fairbanks a
il salvataggio
George Fairbanks dice che dovremmo adottare un
stile di codifica architettonica comunque
lo stai facendo dovresti farlo a
davvero un George è fantastico, quindi è un
tecnica davvero molto semplice ed è
semplicemente sull’integrazione delle informazioni in
il tuo codice base in modo che il tuo codice base
riflette le tue idee architettoniche e
intento questo suona molto gentile
livello e, senza dubbio, in termini concreti
è solo roba come le convenzioni sui nomi
quindi se si dispone di un componente di accesso
il tuo diagramma di architettura è sicuro
c’è qualcosa nella tua base di codice
chiamato un componente di accesso forse è
sul nostro nome spaziatura o confezione
convenzione conosci un nome di cartella uno
spazio un pacchetto per scatola sullo schema
o forse sono metadati leggibili dalla macchina
annotare roba per essere questo è importante
questo è un componente per esempio e e
usando questo possiamo quindi estrarre davvero
informazioni utili da un codice base e
integrarla qualora tali informazioni siano
non è possibile e voglio andare via
c’è da disegnare diagrammi in Visio
qualcosa chiamato un architetto
descrizione della lingua Sto indovinando no
ne hai mai sentito parlare e nessuno lo è mai stato
l’ ho usato ed è perché non lo è mai
davvero entrato nel settore mainstream ma
una lingua di descrizione dell’architettura è
essenzialmente una descrizione testuale di dire
la struttura statica di un software
sistema ci sono un sacco di loro fuori
c’è Darwin Darwin o koala per esempio
ma la sintassi è orribile e tu
devo insegnare agli sviluppatori un altro
linguaggio bizzarro solo per quello che possono
descrivi il pezzo di software che
stanno costruendo ma questo è fantastico
concetto perché non abbiamo a che fare
immagini con trattare con testo e come
agli sviluppatori ci piace il testo che possiamo diffare il testo
abbiamo due litri per il testo, quindi facciamolo
prendere tutte queste cose li Chuck in un
pentola mescolare intorno e venire con un
linguaggio di descrizione dell’architettura d’arte
usando il codice usando il codice di uso generale
lo stesso codice noi
usando per costruire i nostri sistemi e quello è
l’altro pezzo di struttura Isis così
ci sono due librerie open-source e
in fondo sono molto semplici
implementazione delle cose di c4 di nuovo
C’è un gruppo di classi in due un popolo solo
per Java uno per dotnet
e ti hanno permesso di creare persone e
sistemi e contenitori software e
componenti e li legano insieme a
descrivi la tua architettura software così
proviamo a usare questo per
descrivendo la mia piccola cosa dell’API come a
utente a persona la persona il software
lo sviluppatore sta usando gli occhi della mia struttura
occhi del prodotto e della struttura usa il
API per impedire l’archiviazione delle informazioni localmente
quindi di nuovo possiamo scrivere un po ‘di codice
creare quel piccolo modello e poi io
può creare una vista di contesto del sistema per
aggiungendo le cose appropriate al mio
il mio diagramma e il risultato netto sono molto
semplicemente ottieni una foto come questa da
codice come questo è molto molto
modo semplice per descrivere l’alto livello
strutture di un sistema software andiamo
giù ai contenitori è lo stesso
trattare così da una prospettiva di contenitore
essenzialmente tutto quello che ho è una piccola API
server è un’app Web come app web java
distruggere informazioni su un file system
quindi di nuovo possiamo creare una tazza di
contenitori li leghiamo insieme quali
sta usando alcune chiamate di metodo e possiamo
crea alcuni diagrammi quindi in pratica
scrivere il codice per ottenere immagini è fantastico
per la roba di alto livello una volta ottenuta
fino a componenti che non vuoi
devi farlo quindi questo è il motivo per cui
le librerie open-source ne hanno alcune
componente di cose dentro e il componente
i cercatori trovano i componenti vedi i nomi
non è difficile dopotutto ora la domanda
diventa come troviamo componenti e
la risposta è dipende da te perché
ogni base di codice è diversa e questa
torna alla evidente architettonico
stile di codifica quindi se ne hai uno
convenzione di denominazione della tua squadra
adottato puoi andare e trovare componenti
basato su tale convenzione di denominazione se tu
hai usato una struttura come la primavera che puoi andare
e trova le annotazioni di primavera e chiama
loro componenti e così via e così via
così tante diverse strategie puoi
collegare per trovare i componenti questo è il
codice che utilizzo per trovare i componenti nel mio
piccola applicazione API ne ha presi un paio
diverse strategie qui voglio trovare
le cose che terminano con la parola servlet
e voglio trovare le cose
che ho annotato con il mio speciale
agire componente annotazione trovarli perché
loro insieme e in realtà ce ne sono alcuni
un po ‘di logica dietro le quinte nel
quadro che va e trova l’inter
dipendenze dei componenti e questo è ordinamento
del diagramma che ottieni da quello che è così
il componente del servlet API che ha trovato
e questo è il componente dello spazio di lavoro e
è identificata la relazione tra
loro ti starai chiedendo come è stato
il testo arriva e la risposta sei tu
aggiungere altri metadati al tuo
base di codice per farlo
questo è davvero per creare un modello così
Voglio allontanare le persone dall’uso
diagrammi e ritorno all’utilizzo della modellazione come
un approccio per descrivere software e
perché una volta che hai un modello puoi farlo
molte cose veramente interessanti come
generare chiavi diagramma automaticamente yay
e poi terrà una notazione non lo facciamo
capisco perché questo è un modello noi
può fare cose come il collegamento ipertestuale del modello
al codice quindi se vai online e tu
trova questi diagrammi puoi fare doppio clic
uno qualsiasi dei componenti che ti prende bene
per github ti porta esattamente
l’impianto di quella cosa e ancora una volta
ritorna alle mappe cosa giusta
diagrammi e mappe questo è un tweet divertente
Immagine di 388.000 pixel la ragione per cui
incluso questo tweet è fondamentalmente
tale scala di approccio e non c’è se
lo usi ingenuamente, quindi questo è ciò che
succede quando attraverso la mia utensili a
una delle mie app web tutte queste
cose sono controller di app web e questi
le cose sono componenti che sono buone
orribile non penso ai codici
orribile lo schema è orribile e di
Ovviamente ingrandendo lo schema
non aiuta un po ‘ perché tu ancora
avere il disordine è solo sparso, ma
perché questo è il modello che puoi fare
alcune cose interessanti come non mostrare
tutto mi mostra uno spaccato
il sistema quindi, per esempio, possiamo dire
cos’è una fetta, forse è una fetta
a partire da un controller di app Web e
punto di ingresso al tuo sistema e mostrami
quella fetta fino a cadere fuori al
in fondo all’app, quindi in pratica puoi farlo
creare un numero maggiore di molto
immagini più semplici quindi questo è il mio approccio
per affrontare la complessità e le dimensioni
una volta che hai un modello , puoi lanciarlo
in
un sacco di altri tipi di pedaggio quindi se
sei un grafico è parte fan del barattolo
libreria open source come un grafico
esportatore in modo che un casse un punto ti file
pensato di dot trova il grafico è auto
genera diagrammi per te se ti agganci
tutta questa roba fino alla tua build
elaborare indovinare cosa succede il tuo
documentazione che i tuoi diagrammi rimangono fino a
data in cui il codice cambia e questo è
in ultima analisi, quello che sto cercando di arrivare a
ecco quindi il titolo di questo discorso
documento visualizzato Explorer così noi
dovrebbe parlare di documentazione davvero
rapidamente molte persone non ci sono più
documentando qualsiasi cosa io sappia, suona
un po ‘ estremista abbiamo il nostro amico l’ a
da manifesto per ringraziare per questo è tutto
piuttosto l’interpretazione sbagliata della gente che cosa
il manifesto agile dice di
documentazione e, naturalmente, se l’avessi fatto
lasciati in un progetto che è
sconosciuto a voi una base di codice che
non hai mai visto prima si ottiene che
tipo di dove sono in questa strada alberata
e devi iniziare a zoomare e
esplorando e cercando di capire dove
tu sei e questo richiede tempo a Lane I
è caduto subito all’inizio che potevi
continua a camminare finché non incontri qualcuno e
chiedi loro dove sono
dov’è la X più vicina, ad esempio
ci vorrà un po ‘di tempo e di
corso una volta esplorato nel codice base
il codice base in realtà non te lo dice
tutto quello che volete conoscere il codice
non ti dice tutta la storia
soprattutto attorno a cose come logica
e intenti a sapere perché erano questi
le decisioni prese che spesso mancano a
la base di codice e spesso le squadre hanno un sacco
di conoscenza tribale che si muove come
bene conosci specializzazioni ed esperti in
parti particolari del codice di base e
quello è finanziato, tutte quelle persone se ne vanno
o vengono investiti dal proverbiale
Bus londinese la cosa è il fattore di autobus
come lo chiamiamo non riguarda solo gli autobus
sai, immagina di avere una piccola squadra
qui uno viene investito da a
autobus a due piani vicino a qualcuno continua
anno sabbatico per un anno e dobbiamo
licenzia qualcuno perché sono inutili
e ora abbiamo una squadra più piccola e il
la squadra più piccola inizia a dire cose come
tu sai quella cosa lì che abbiamo
per correre ogni settimana cosa è oh giusto
e ancora una volta è una specie di cosa estrema
ma quello III ha visto situazioni simili
che si verificano così come possiamo risolvere il nostro
problemi di documentazione scriveremo
qualche documentazione e questo è dove
quelli tristi entrano in gioco ed è così
chiamato triste perché ti rende triste
e ci sono molti modelli fuori
lì per questo genere di cose ogni
società di consulenza a cui abbia mai lavorato
ha creato il loro rap ha uno lì
sono molti là fuori e questi
sorta di documenti di architettura del software
normalmente ne include alcuni veramente
informazioni interessanti e penetranti come
arriviamo al design quali erano i
decisioni di progettazione qual è il
architettura come ci prendiamo cura di esso ma
questi documenti tendono ad essere semplicemente orribili
centinaia di pagine usano sai
obsoleto totalmente inutile come facciamo noi
sistemalo bene, si scopre che il nome è il nostro
amico quello che faccio è semplicemente rinominare il
documento e tutti i problemi vanno via
e lo chiamano una guida come la
La cosa di punta della guida di Jersey di cui ho parlato
l’inizio sai se vai, se vieni
a Jersey comprate una guida che ha un
mazzo di mappe per aiutarti a navigare
ambiente sconosciuto ti mostra il
attrazioni e gli itinerari i punti di
interessare le cose che realmente dovrebbe
vieni a vedere si parla di storia
nella cultura come sei arrivato a dove
è oggi
e ci sono tutte le cose pratiche e
di nuovo se prendi quella metafora e
applicarlo ad un sistema software si ottiene un
insieme davvero molto interessante di
documentazione in modo che Mappe i diagrammi
sai fammi vedere che aspetto ha il codice
come facciamo a esplorare il codice base
quali parti del codice base sono utili
per capire quali parti sono importanti
perché la maggior parte delle cose non è come ha fatto il
base di codice evolvere a dove è oggi
e come ci prendiamo cura di questo?
Unico consiglio per la documentazione
descrivi cosa non puoi ottenere dal
base di codice è così semplice come
tale diritto battere in su un livello di
astrazione e rendere queste cose piccole
sai che non ne hai centinaia e
centinaia di pagine di cose che diventano
non aggiornato sai fare queste cose
il più piccolo possibile
sono davvero una specie di respiro vivente
documenti di stile in evoluzione questo non è il
grande design upfront dobbiamo creare un segno
in anticipo, questo è un approccio
pezzo di documentazione supplementare
che si trova accanto al codice base e
è un documento relativo al prodotto a
sistema software un documento supplementare
documentare questo non significa che non si possa fare
documentazione di progetto , ma tutti
il sistema software dovrebbe
avere una guida utente essenzialmente come fa
il software funziona scelto e va bene
è ancora una volta si conosce la cosa utensili
cosa Tony raccomandi per i documenti
un sacco di persone quindi usiamo la parola che è
bene
SharePoint se ne hai davvero tanto
persone che usano la confluenza ma io sto vedendo
sempre più squadre sono in cima alle cose
hanno chiesto al tuo dottore un markdown e lo sono
creando un bel po ‘sai
file di documentazione e il loro bastone in
i file di documentazione accanto a loro
codice sorgente nel controllo del codice sorgente e
poi fanno roba a tempo di costruire voi
sapere generare il caricamento HTML nei siti Web
e wiki e così via quindi c’è un sacco di
opportunità per l’utilizzo diverso
strumenti qui e ancora c’è qualcosa
Sto cercando di fare la struttura che voglio
creare un modello di architettura software
che contiene sia il modello il
roba di visualizzazione e il
documentazione quindi questo è il codice I
ha scritto per documentare la mia piccola API
l’applicazione è un po ‘semplice
markdown file lo carichi come parte di
il modello e qualche documentazione è
fondamentalmente generato per te è così
di nuovo stiamo cercando di mantenere tutto questo
roba e cosa in un posto e tu puoi
anche incorporare diagrammi nel tuo
documentazione così ancora queste cose sono
insieme dove appartengono ci sono
qualche altra documentazione acquistata così
questo ragazzo ne vede davvero tanti
cose interessanti intorno alla vita
documentazione ha un sacco di
piccoli strumenti aprono la fonte del github
puoi usare per creare documentazione
dal codice per esempio e questi ragazzi in
La Germania ha un’architettura software
documento chiamano arc 42 ed è a
davvero magro e leggero
approccio alla documentazione di sistemi software
è molto simile all’approccio II
in genere prendere e c’è un sacco di
contenuto un sacco di contenuti gratuiti che tu
puoi afferrare le nostre 42 persone per dire quanto tempo
dovrebbe essere un documento e questo è il
domanda sbagliata per chiedere bene quanti
le pagine è la domanda sbagliata da chiedere se io
unisciti al tuo team per quello che sto davvero guardando
perché è un documento che posso consumare in mi piace
una o due ore al caffè o due a
ottenere un buon punto di partenza nel codice
quindi posso andare ed esplorare in molto di più
modo strutturato molto più strutturato
modo ma parlando di esplorare una volta
si inizia a modellare il software che è possibile
fai qualcosa di veramente interessante con esso
quindi puoi fare cose come sai
creare una visualizzazione d3 di Java Script di
la statica
è solo una struttura ad albero quindi questo è un
modello di uno dei campioni
è la domanda del team di primavera
chiamato la clinica per animali domestici di primavera e questo è
solo i contenitori del sistema software
componenti puoi fare cose come facciamo
trova tutto il componente interessante
dipendenze che conosci in arrivo e
dipendenze in uscita puoi fare cose
come valutiamo i nostri componenti basati
su dimensioni dalla complessità, quindi ancora una volta
tu hai un modello puoi fare un po ‘di figo
roba con essa puoi buttarla dentro
neo4j se vuoi davvero perché non tu
conosci bene gli architetti del software
c’è solo un grafico diretto lui
minacciato di neo4j è possibile interrogare era
le persone giuste per i cifrari stanno facendo davvero
questo là c’è un c’è un intero set
di strumenti chiamato assistente JQ che consente
lo fai correndo contro la tua fonte
codice si imposta alcune regole e in pratica
lo fa entrare neo dietro le quinte
è fantastico e questi ragazzi em altro
hanno creato una serie di strumenti che
corre contro il tuo codice sorgente
repository e non solo loro stanno facendo
analisi statica ma sono anche loro
sovrapponendo gli aspetti umani in cima
così anche loro possono cercare cose come
abbiamo questa cosa qui ed è
sempre cambiato da questi due diversi
squadre perché è così
sai forse abbiamo il componente
limiti errati in questo particolare
istanza quindi ancora una volta è davvero fantastico
la tecnologia lì in sintesi c’era a
pannello virtuale sugli architetti del software
documentazione dal 2009 alcune persone voi
potrebbe conoscere un eroe nei boschi qui di
Certo e dice cose come dovremmo
essere in grado di vedere l’architettura nel
codice dovremmo essere in grado di incorporare questo
informazioni nel codice che dovremmo essere
in grado di ottenere la documentazione da a
fare clic su un pulsante, ad esempio, lo sai
si tratta davvero di automatizzare tanto
questa documentazione possibile non lo faccio
pensiamo di essere lì ancora, ma penso che possiamo
arrivare e stiamo iniziando insieme
ovviamente il mio riassunto è proprio questo
diagrammi e mappe trattano il tuo software
diagrammi di architettura come un insieme di semplici
mappe che descrivono il tuo codebase in
diversi livelli di astrazione qualsiasi
la documentazione che crei dovrebbe descrivere
ciò che il codice non è semplice come
quella
e sì, le corde degli anni ’90 che vogliono
stanno parlando posteriore destra smettere di usare
Visio si prega di smettere di usare Visio e se
dirai che non usiamo Visio
usa Gliffy è la stessa cosa che si ferma
usando anche quello, fermati
durante scatole e linee da descrivere
architettura software tutti gli strumenti
a parte il mio ultimo commento finale è molto
molto molto molto semplice
ogni volta che descrivi il software
certo che all’interno del tuo team hai un
linguaggio ubiquo per fare così sono io
grazie mille
ed esplorare l’architettura del software e
inizieremo qui, quindi immaginiamo di averlo
ho inventato i teletrasportatori e mi teletrasporterà
tu qui dove sei
Francia vicina ma non proprio così sì
dice LaRue fare qualcosa questo è ciò che
succede quando cadiamo nuovi unisciti a noi in a
base di codice li lasciamo cadere dritti
nel mezzo e sono un po ‘
perso come risolviamo questo problema come si fa
capiamo dove siamo noi ridimensionare
Usiamo la tecnologia apriamo le mappe
sul nostro telefono e iniziamo a zoomare
fuori meglio non è stato ingrandito abbastanza
dove ora puoi vedere il nome della strada
ma non siamo ancora sicuri di dove siamo
stiamo zumando ancora una volta yeah lì
andiamo così c’è Jersey che è quello
dove vivo c’è un sacco di clustering
su questa mappa non c’è, non è molto
molto chiaro per vedere cosa sta succedendo così
con cose come Google Maps possiamo
ridurre la quantità di informazioni come
questo diventa un po ‘più chiaro ora che possiamo iniziare
per vedere alcuni nomi di luoghi e e
dove alcuni dei pezzi sono se
non hai mai sentito parlare di Jersey prima di questo
è ancora confuso per cui è necessario
pizzica lo zoom ancora e ancora
e ancora così ora vanno là, perché è così
una piccola isola appena fuori dalla costa
ora se vieni a visitare Jersey che
dovresti perché è adorabile quando tu
vieni attraverso l’aeroporto, riceverai un
mappa e questo è un tipo tradizionale di
Vista mappa cosa e ti mostra
informazioni come questa le mappe spezzate
in 4 in quattro quarti e in qualche modo
ti dice abbastanza informazioni per ottenere
intorno ti dice abbastanza informazioni per
sai andare e trovare i siti principali e
quel genere di cose che non ti dice
tutto anche se non sta ascoltando
ogni strada non le ascolta tutte
edificio e ogni strada o c’è
uno zoom in parte per la città principale
e abbiamo un piccolo dettaglio in più
laggiù ma c’è ancora è un it’s a
rappresentazione non è abbastanza accurata
quindi questa cosa qui questo pezzo blu che
il
in realtà sarebbe andato là fuori, quindi se tu
se tiri interi, conosci la barca nuova
parcheggiare lì lo troverete asciutto in alcuni
punto e anche questo stabilimento balneare qui
sembra che non venga mai aggiornato con
acqua ma fa che è utile
perché sono sicuro che i bambini lo facciano pipì nel
estate la cosa queste mappe hanno in
è comune che mostrano punti di
interessi destra in modo che cosa voglio davvero
andare a vedere quando visito Jersey
contrasto questo come un ordinata
La mappa del sondaggio è molto molto molto molto
rappresentazione dettagliata di Jersey che abbiamo
ha contorni e diversi tipi di terreno
e ogni sorta di cose succedendo qui
e hai bisogno di un po ‘di intelligenza e
conosci qualche aiuto per iniziare
interpretando questa cosa entrambe le mappe sono
mostra anche le alte luci selezionate e
e questa è una cosa davvero interessante
qui selezionati evidenzia così quando tu
vieni a Shaheen in realtà durante la tua estate
probabilmente passerai oltre
grande castello si chiama Elizabeth castelli
sulla costa sud in mare e sei tu
conosci il castello del XVI secolo un po ‘bello
blocco di granito funziona ed era fondamentalmente
costruito per fermare il francese e l’inglese
prendendo Jesse e quando cammini
intorno a questo castello arriviamo al
in alto nel mezzo e le cose iniziano
cambia e hai questo tipo
bella cosa in pietra di granito con questo
strana cosa concreta attaccata sopra
qualche motivo e ti piace quell’aspetto
molto strano
cos’è tutto ciò e la storia è
importante qui così quando cammini
intorno al castello ti dice che dentro
Seconda guerra mondiale quando i tedeschi occuparono
Jersey hanno riconfigurato alcuni dei
fortificazioni esistenti, ecco cosa
quella grande cosa concreta è in cima
e ci sono un sacco di postazioni di armi e
così via e così via, naturalmente, tutto questo
roba è descritta nelle guide e
ce ne sono molti là fuori e di
Certo, se vuoi essere un po ‘hipster
puoi usare il sito web che abbiamo il
internet ora è la mia rapida
introduzione e passo di vendita per Jersey
Credo che tornerò per dirlo
giusto così visualizzazione una delle cose
Faccio con i team di software intorno al
il mondo è che avrei eseguito una visualizzazione
laboratorio e diamo un po ‘di gente
requisiti quindi diciamo che hai 90 anni
minuti in gruppi per andare a disegnare alcuni
immagini e questi sono i tipi di
immagini che in realtà attirano persone che prometto
Non ne ho fatto nessuno
Non sono sicuro di poter fare queste cose
su
questi sembrano diagrammi che vedi tu e
le tue lavagne sì ne ho altre 15
gigabytes potrei mostrarti ma sono andato
a volte quando gestisco questo workshop
In realtà sento che la gente lo dice bene
stanno disegnando una scatola o una forma e
dicono che questo non ha senso, ma
lo spiegheremo più tardi quando faremo il nostro
presentazione o qualcosa del genere
bene, ma non sempre presentiamo il nostro
diagrammi sappiamo se stiamo disegnando
un’immagine fuori dal nostro sistema non sempre
stare lì e presentarlo e un brutto
trucco che mi piace fare è che mi piacerebbe averne due
i team scambiano diagrammi e indovina un po ‘
succede perché non ne facevano parte
quella conversazione creandoli
diagrammi Non ho idea di cosa sta succedendo
e poi questo è un po ‘un momento cruciale
e sono in grado di codificare i colori e
le forme e le linee e fondamentalmente
nessuno degli elementi di notazione ne crea nessuno
senso qualunque quando chiedi alla gente te
so che è stato un esercizio facile, dicono
beh, in effetti lo era e poi lo dico bene
perché il tuo diagramma mi fa così casino oh
sì , non lo sappiamo davvero
cosa disegnare non siamo sicuri di quale tipo
diagrammi dovremmo disegnare livelli di dettaglio
notazione delle forme dovremmo usare UML che
qui usa UML che è veramente piccolo
numero come quattro o cinque persone
quindi, qual è ogni altra cosa fare qualcosa
altrimenti ho fatto questa domanda intorno al
mondo e UML stanno cadendo in modo massivo
di moda non ho prove a sostegno
tutto questo è tutto completamente
aneddotico, ma sto vedendo sempre di più
team che non hanno competenze UML e in
le squadre più
Io uso UML ma lo uso con parsimonia
piccole parti di un sistema software giusto
quando voglio mostrare una parte molto piccola di
dì la nostra gerarchia delle classi di classe o
qualcosa che Google non aiuta se tu vai
a Google e chiederlo a cosa pensa
il diagramma dell’architettura del software sembra
ottieni questa pagina giusta dopo la pagina successiva
pagina di un blocco sostanzialmente colorato
immagini il tipo di cosa che puoi fare
in Visio un PowerPoint e ridiamo a
queste cose ma queste sono esattamente a
tipo di diagramma, quindi vedo quando vado
attraverso le organizzazioni
sai che ti apri i complimenti
pagine o qualunque colpi si ottiene questo
sistemare cose e mezzo la foto appena
non ha alcun senso, questo è difficile
Penso di aver gestito questo workshop per circa
10.000 persone ora in tutto il mondo
e nessuno lo fa abbastanza bene
la prima volta ci crediate o no e
l’ ironia qui è agile quindi uno dei
le grandi cose a luglio sono state fatte da noi
più visiva ogni volta che vado a visitare
organizzazioni agili hai il loro
schede della fotocamera e le pareti della storia e
i cruscotti informativi quindi abbiamo
fantastico nel visualizzare essenzialmente
elaborando il nostro modo di lavorare
ma abbiamo completamente dimenticato come disegnare
cose che sai disegnare immagini del
cose che stiamo costruendo e questo è giusto
su una buona comunicazione sai se tu
vuoi muoverti veloce come una squadra se vuoi
l’agilità del business, allora avete bisogno di
comunicare bene è così
quindi ce ne sono alcuni davvero semplici
suggerimenti qui intorno alla notazione che posso
darti e sai che sono solo cose
come mettere titoli e immagini assicurati
le tue frecce sono annotate, assicurati
le frecce indicano una direzione e così via e così via
avanti e la notazione intorno al disegno
diagrammi architettonici è davvero molto
facile da risolvere uno dei miei punti chiave è questo
uno qui le responsabilità che spesso scherziamo
questa denominazione è difficile e il software è così
non ha senso che la maggior parte dei nostri
i diagrammi di architettura sono essenzialmente
solo una raccolta chiamata scatole perché
i diagrammi contengono un’enorme quantità di
ambiguità quindi il mio consiglio è aggiungere altro
testo per i tuoi diagrammi quindi ecco a
esempio molto semplice è lo stesso
diagramma la versione a destra ha
più testo e che cosa supplementare
il testo ci permette di vedere cose come la
responsabilità di chi costruisce
blocchi ci sono molte più informazioni
lì in termini di contenuto sai quando
stiamo disegnando diagrammi architettonici
non posso mostrare tutto su un singolo
immagine e questo è il motivo per cui le persone parlano
su cose come viste e punti di vista
e prospettive e ci sono molti e
un sacco di modi diversi per fare questo Owen
menzionato Phillip Christians quattro più
un modello Owen ha un libro che descrive a
un sacco di modi per fare questo e là
sono più la cosa è tutta quella visione
i cataloghi hanno questa visione logica di a
sistema separato per lo sviluppo
del sistema in modo che la vista logica sia
spesso sia la logica funzionale
blocchi concettuali e quindi
c’è qualcos’altro a cui si riferisce
come stiamo costruendo queste cose perché perché
facciamo questo io non capisco perché
ogni volta che vado alle organizzazioni e vedo
la loro bella architettura logica e soffice
diagrammi non corrispondono mai al codice e
questo è un po ‘il punto qui se lo sono
disegno diagrammi di architettura di cui ho bisogno
loro per abbinare il codice altrimenti sono
mi stavo solo mentendo, George Fairbanks
malato nella parte posteriore perché è la modella
codice Gavin è nel suo fantastico libro quando
stiamo avendo una discussione architettata
stiamo usando concetti astratti come
moduli e componenti e servizi ma
non abbiamo quelle stesse cose
nei nostri programmi di programmazione mostra rapida
di mani che è uno sviluppatore Java qui
proprio così in Java c’è un livello
parola chiave no in Java c’è un componente
parola chiave no ma creiamo componenti di
strati assemblando classi e
interfacce e pacchetti e cose
insieme quindi quello che sto cercando di ottenere è
una serie di diagrammi per riflettere con precisione
il codice qui è il mio obiettivo finale
prima di poter ancora tentare di risolvere questo
problema abbiamo un problema più grande e
questa è una mancanza di qualsiasi tipo di coerenza
linguaggio standard sì, anche nel 2016 noi
non hanno un consistente vocab ritu parlare
sull’architettura del software ci pensiamo noi
fare, ma non credo che facciamo tempo quiz
cos’è questa è una mappa di Londra giusta
qual è la cosa blu è un fiume così
Fiume Tamigi che cos’è un corpo fluviale di
acqua che scorre 100 altra direzione
perfetto quindi sappiamo che cos’è un fiume e
possiamo andare e trovare altri fiumi usando
la nostra conoscenza cos’è
quindi una pianta per un bagno cosa c’è
questa cosa qui è una toilette ciò che è a
toilette, sai cosa è tutto e
di nuovo potremmo usare la nostra conoscenza di
che gabinetto deve andare e trovare di più
servizi igienici e le persone elettriche qui
ingegneri magici un paio di modi per
fai riferimento agli schemi elettrici che hai a
cosa pittorica divertente a fumetti o a
versione schematica
cos’è quella linea ondulata lì al
in basso, quindi resistore, cos’è un resistore
era questa roba che rallenta la corrente
terra dell’anno se avessi una scatola di
componenti elettrici qui nella parte anteriore
con condensatori e interruttori e
resistori potresti venire in testa
e trovami un resistore in quella scatola, giusto
quindi sai come identificare un resistore
in esso se conosci il cono di colore che puoi
capire quanto forte è proprio questo
il quiz è troppo facile ralizziamo il
complessità su scala esponenziale
cos’è? Quindi abbiamo due componenti UML
diagrammi uno è una versione X di un punto
uno è una versione X a due punti non chiedere
me quali quelli che ho dimenticato cosa
sono le scatole su questi diagrammi lì
i componenti sono corretti ciò che è a
componente non so è una logica
cosa funzionale astratta del building block
e e questi componenti sono tutti molto
diverso quindi questo qui è un’ascia
è un database stereotipato e c’è un
Interfaccia JDBC in modo che suoni come a
componente del database questi siete voi
occhi o applicazioni in cosa consiste
il mezzo
componenti aziendali in cui vengono eseguiti
sono il database come parte dell’app
micro servizi a cui questo diagramma è aperto
un sacco e un sacco di interpretazione
più testo sul diagramma se questo diagramma avesse
più testo almeno sappiamo cosa questi
le cose avrebbero dovuto essere molto semplici
immagina che stiamo costruendo una cosa veramente semplice
sistema costituito da un’app Web in a
database la parola componente significa parte
per alcune persone l’app web è a
componente dell’intero sistema per
altri qualcosa come una registrazione
componente è un componente dell’app Web
stessa parola diversi livelli di
astrazione
è la cosa del linguaggio onnipresente ora
andiamo avanti da anni su DDD
e avendo questo linguaggio onnipresente
tra noi e gli uomini d’affari noi
non avere il linguaggio delle tue immagini
per noi stessi e questo è il problema che abbiamo
ho bisogno di risolvere qui anche UML ha provato a farlo
molto era una notazione standard e a
posizione di astrazione e tipo di
fallito su entrambi i fronti e penso per
dove siamo attualmente
industry.we ha bisogno di quella serie standard di
astrazioni a cui vorrei arrivare
qualcosa come l’ingegneria elettrica in
il futuro, quindi abbiamo un set standard di
simboli divertenti per rappresentare le cose ma
prendiamo la lingua inchiodata prima e
la cosa qui è che il linguaggio noi
creare necessità di riflettere la tecnologia
che stiamo usando così voglio unire il
le viste logiche e di sviluppo
insieme di nuovo li collassano così abbiamo
terminologia reale che mappa al reale
la tecnologia ora non so come facciamo
questo su scala globale ma ciò che possiamo
fare entro i confini di questa stanza
Posso mostrarti come faccio questo e per me
molto semplicemente quando sto discutendo di a
sistema software che è il sistema software
costituito da un contenitore contenitori è
solo qualcosa che memorizza dati o corre
codice in termini reali è un’app web a
app mobile una app standalone una finestra
servizio uno schema di database e così via se
apri i contenitori che sono fatti
di componenti quindi voglio usare il
componente di parola per significare qualcosa in esecuzione
essenzialmente all’interno di un ambiente di runtime
è un bel gruppo di cose coese
con una bella interfaccia pulita e noi siamo
fatto
perché mi occupo principalmente di Java e
c-sharp i miei componenti sono costruiti per
le classi è così semplice
struttura ad albero gerarchica da descrivere
la struttura statica del sistema software
se si utilizza JavaScript questo non ha senso
quindi forse i suoi moduli e oggetti o
moduli e funzioni uguali a
moduli di lingue funzionali e
funzioni se stai usando un database
la tecnologia forse i suoi componenti o
le procedure in modo ancora una volta si deve prendere la
stesso approccio gerarchico e mapparlo a
il testo che stai usando e questo è
davvero sulla creazione di un singolo semplice
modello statico di un sistema software da
il sistema come una scatola nera fino al
codice con un paio di livelli in mezzo
quindi questa è la lingua per trovarlo e
una volta definita una lingua puoi disegnare
alcuni diagrammi davvero semplicemente e e questo
è quello che mi riferisco spesso come il mio modello C4
è un diagramma di contesto in cui si ingrandisce
guarda i contenitori che ingrandisci per vedere
i componenti e non puoi andare giù
codice se lo si desidera ma non lo faccio normalmente
fare questo soprattutto se sto cercando di
descrivere la base di codice esistente per
esempio esempio veramente veloce creo a
sito chiamato tech drives quando mi sono trasferito
torna a Jersey ed è solo un semplice
aggregatore di contenuti per la tecnologia locale
industria questo è un contesto
diagramma per le tribù tech la cosa quando
la scimmia è il sistema che ho costruito lì
sono diversi tipi di utenti e
diverse dipendenze di sistema se questo
era una mappa Google interattiva che potevamo
selezionare pizzico per ingrandire vediamo il
contenitori all’interno del confine del sistema noi
seleziona un contenitore che pizzichiamo per ingrandire
mostriamo i componenti accanto e
qualcuno così avanti è solo un vero
semplice insieme di diagrammi gerarchici il
mappare su quella lingua e alla fine noi
arrivare al codice e alla fine idealmente
c’è una bella mappatura pulita tra tutti
di questi strati e questo in realtà
riflette come appare il codice
per me diagrammi e mappe bene questo è un
riassume tutte queste cose fondamentalmente
diagrammi e mappe e hai bisogno di diversi
tipi di mappe a seconda di quanto
informazioni che hai sulla cosa tu
vuoi conoscere o il pubblico che
stai parlando così agli uomini d’affari
persone non tecniche un bel livello di alto livello
la vista funziona bene come sviluppatore
qualcosa di basso livello forse un po ‘
operazioni persone qualcosa nel
in mezzo non voglio che tu ne porti via nessuno
suggerimenti su una notazione questo è il
notazione che uso solo perché è molto
molto semplice e tendo ad usare le cose
come la codifica e le forme dei colori
integrare un diagramma esistente che
ha già senso quindi è lo stesso
diagramma una versione ha alcune forme
quelli che si preferisce probabilmente quello
con le forme ma fondamentalmente non c’è
più informazioni su entrambi i diagrammi è
solo una cosa estetica, penso anche io
vale la pena di sottolineare che lì
c’erano molte altre cose che potreste desiderare
considerare quando stai descrivendo il tuo
architettura del software e questo è dove
anche se i punti di vista e punti di vista e
le cose delle prospettive entrano in gioco e io
si punta un’opera cristiani fillip
pure e gli inverni di Owen prenotano questo c4
la cosa non è un processo di progettazione, è solo
un insieme di diagrammi ed è un insieme di
diagrammi che è possibile utilizzare durante un
esercizio di progettazione in anticipo o anche
in modo retrospettivo quindi se ne hai uno
codice base esistente senza documentazione
questo è davvero un buon punto di partenza sì
Ho una domanda molto simile a quella di Tony
tu raccomandi
per favore non dire di nuovo Vizio perché
questo è solo un insieme di scatole e linee
qualsiasi strumento di diagrammi di uso generale
farà Visio OmniGraffle Gliffy
qualunque cosa scegliate, ma vieni su questo è
2016 c’è stato un appello interessante per
aiuto da Twitter di recente cosa cosa
gli strumenti ci sono per la creazione
le diapositive dell’architettura non hanno risposto
con uno strumento di modellazione era tutto
strumenti per diagrammi di uso generale che
penso sia solo matto
e se guardi al settore delle costruzioni
l’edificio della suite non utilizza Visio
il settore dell’edilizia crea a
modello tridimensionale del loro
costruendo e hanno superficie diversa
di nuovo la RN ovviamente lo è
costruiamo questi strumenti per l’edificio
settore e non possiamo farlo noi stessi in modo
Sto cercando di risolvere molti problemi
qui e uno dei miei si avvicina a questo
è un insieme di strumenti chiamato struttura
l’oggetto che cerco di fare è parte è gentile
della parte del prodotto SAS open-source è
forma molto semplice puoi scrivere a
linguaggio a dominio specifico per
creare alcuni diagrammi quindi questo è
religiosa e attuazione del
contenitori di sistemi software per persone
cosa componenti ti ho mostrato brevemente
prima è come se avessimo visto cose
diagrammi se hai visto che questo è
ottimo per disegnare qualcosa di piccolo
e semplice diagramma singolo alla volta ma
non è davvero dove vogliamo andare se io
avere una base di codice esistente , perché non posso
solo alterare generare diagrammi ha poi noi
provato questo cosa succede appena ottenuto
il caos è questo perché la tua base di codice è
il caos a volte ma spesso non è spesso così
mostrando solo troppi dettagli quindi uno di
le cose che ho fatto di recente con
struttura Iser così struttura è tutto
basato sul cloud e molte delle mie potenzialità
ai clienti piace ma non vogliono
inviare la loro architettura software a lungo
fino al cloud, quindi ho costruito molto semplice
API locale perché la struttura è il
costruttore Iser è essenzialmente un
App JavaScript in esecuzione nel browser se
si installa un’API che è possibile raggiungere
localmente è possibile memorizzare i dati localmente
si tratta di meno di migliaia di righe
codice e questo è ciò
che il codice si presenta come se si dovrebbe
genera un diagramma di classe UML in alcuni
tooling non è particolarmente utile è
ci mostra tutti i livelli del codice
elementi e tutte le relazioni
tra di loro ed è difficile davvero
scegliere quali sono le parti importanti di
questo codice base è e questo è davvero
app davvero piccola come meno di
migliaia di righe di codice cosa succede se
lo indichi a centomila o
un milione di righe di codice che ottieni
diagrammi pazzi pazzi e la ragione è
che questi strumenti di diagrammi vedono i codici
non componenti questi strumenti di diagrammi
di solito non sono in grado di aumentare lo zoom per mostrare
le astrazioni più grandi sono essenzialmente
ancora una volta il codice del codice del modello e noi
può seguire questo problema terzino destro in
tempo c’era un documento su questo
problema negli anni ’90 le prime due aperture
i paragrafi in pratica dicono se lo chiedi a
ingegnere per disegnare una foto di loro
sistema software si ottiene un bel
vista di alto livello se si esegue il reverse engineering
un diagramma dal codice che ottieni
qualcosa totalmente totalmente diverso il
diagrammi del reverse engineer super accurati
certo, ma non è come l’ingegnere
pensa al mondo e tutto viene
torna a questa domanda bene, che cos’è un
componente se voglio disegnare un componente
diagramma ho bisogno di capire che a
componente è e se torniamo al mio
piccolo diagramma di classe qui questi due
scatole di luci è davvero quello che io
considera di essere i componenti in questo
la piccola app per le API che ho creato è una Java
richiesta API di gestione servlet e c’è
un componente dello spazio di lavoro che sta trattando
con la struttura Iser spazi di lavoro
hai sentito parlare di questo servizio
le liste di framework sono come le
l’ implementazione più semplice che potresti
possibilmente scrivere e tutti questi altri
le cose del codice sono solo parti di quei due
componenti e ancora questo è ciò che il
la struttura del codice sembra così ho ottenuto
due componenti principali con un mucchio di
codice di supporto essenzialmente ora diciamo spesso
che il codice è un singolo punto di verità
il codice è l’incarnazione finale di tutti
le idee architettoniche possiamo ottenerlo
informazioni indietro di un codice esistente
base e la risposta non è davvero così se
mi avresti dato il tuo codice base possibile
Generico qualcosa come un contesto
diagramma automaticamente cercando
riferimenti a persone e software
sistemi nella tua base di codice e la risposta
non è perché non esistono davvero noi
non avere queste informazioni nel nostro codice
basi significava molto al momento lo stesso
con i contenitori posso ottenere
elenco dei contenitori semplicemente raschiando
i dati dal tuo codebase ce ne sono alcuni
informazioni in là ma è un po ‘ di
difficile da trovare quando arrivo al
livello componente questo è davvero il livello
Voglio generare automaticamente perché
è il più volatile e cambia
il più frequentemente George Fairbanks a
il salvataggio
George Fairbanks dice che dovremmo adottare un
stile di codifica architettonica comunque
lo stai facendo dovresti farlo a
davvero un George è fantastico, quindi è un
tecnica davvero molto semplice ed è
semplicemente sull’integrazione delle informazioni in
il tuo codice base in modo che il tuo codice base
riflette le tue idee architettoniche e
intento questo suona molto gentile
livello e, senza dubbio, in termini concreti
è solo roba come le convenzioni sui nomi
quindi se si dispone di un componente di accesso
il tuo diagramma di architettura è sicuro
c’è qualcosa nella tua base di codice
chiamato un componente di accesso forse è
sul nostro nome spaziatura o confezione
convenzione conosci un nome di cartella uno
spazio un pacchetto per scatola sullo schema
o forse sono metadati leggibili dalla macchina
annotare roba per essere questo è importante
questo è un componente per esempio e e
usando questo possiamo quindi estrarre davvero
informazioni utili da un codice base e
integrarla qualora tali informazioni siano
non è possibile e voglio andare via
c’è da disegnare diagrammi in Visio
qualcosa chiamato un architetto
descrizione della lingua Sto indovinando no
ne hai mai sentito parlare e nessuno lo è mai stato
l’ ho usato ed è perché non lo è mai
davvero entrato nel settore mainstream ma
una lingua di descrizione dell’architettura è
essenzialmente una descrizione testuale di dire
la struttura statica di un software
sistema ci sono un sacco di loro fuori
c’è Darwin Darwin o koala per esempio
ma la sintassi è orribile e tu
devo insegnare agli sviluppatori un altro
linguaggio bizzarro solo per quello che possono
descrivi il pezzo di software che
stanno costruendo ma questo è fantastico
concetto perché non abbiamo a che fare
immagini con trattare con testo e come
agli sviluppatori ci piace il testo che possiamo diffare il testo
abbiamo due litri per il testo, quindi facciamolo
prendere tutte queste cose li Chuck in un
pentola mescolare intorno e venire con un
linguaggio di descrizione dell’architettura d’arte
usando il codice usando il codice di uso generale
lo stesso codice noi
usando per costruire i nostri sistemi e quello è
l’altro pezzo di struttura Isis così
ci sono due librerie open-source e
in fondo sono molto semplici
implementazione delle cose di c4 di nuovo
C’è un gruppo di classi in due un popolo solo
per Java uno per dotnet
e ti hanno permesso di creare persone e
sistemi e contenitori software e
componenti e li legano insieme a
descrivi la tua architettura software così
proviamo a usare questo per
descrivendo la mia piccola cosa dell’API come a
utente a persona la persona il software
lo sviluppatore sta usando gli occhi della mia struttura
occhi del prodotto e della struttura usa il
API per impedire l’archiviazione delle informazioni localmente
quindi di nuovo possiamo scrivere un po ‘di codice
creare quel piccolo modello e poi io
può creare una vista di contesto del sistema per
aggiungendo le cose appropriate al mio
il mio diagramma e il risultato netto sono molto
semplicemente ottieni una foto come questa da
codice come questo è molto molto
modo semplice per descrivere l’alto livello
strutture di un sistema software andiamo
giù ai contenitori è lo stesso
trattare così da una prospettiva di contenitore
essenzialmente tutto quello che ho è una piccola API
server è un’app Web come app web java
distruggere informazioni su un file system
quindi di nuovo possiamo creare una tazza di
contenitori li leghiamo insieme quali
sta usando alcune chiamate di metodo e possiamo
crea alcuni diagrammi quindi in pratica
scrivere il codice per ottenere immagini è fantastico
per la roba di alto livello una volta ottenuta
fino a componenti che non vuoi
devi farlo quindi questo è il motivo per cui
le librerie open-source ne hanno alcune
componente di cose dentro e il componente
i cercatori trovano i componenti vedi i nomi
non è difficile dopotutto ora la domanda
diventa come troviamo componenti e
la risposta è dipende da te perché
ogni base di codice è diversa e questa
torna alla evidente architettonico
stile di codifica quindi se ne hai uno
convenzione di denominazione della tua squadra
adottato puoi andare e trovare componenti
basato su tale convenzione di denominazione se tu
hai usato una struttura come la primavera che puoi andare
e trova le annotazioni di primavera e chiama
loro componenti e così via e così via
così tante diverse strategie puoi
collegare per trovare i componenti questo è il
codice che utilizzo per trovare i componenti nel mio
piccola applicazione API ne ha presi un paio
diverse strategie qui voglio trovare
le cose che terminano con la parola servlet
e voglio trovare le cose
che ho annotato con il mio speciale
agire componente annotazione trovarli perché
loro insieme e in realtà ce ne sono alcuni
un po ‘di logica dietro le quinte nel
quadro che va e trova l’inter
dipendenze dei componenti e questo è ordinamento
del diagramma che ottieni da quello che è così
il componente del servlet API che ha trovato
e questo è il componente dello spazio di lavoro e
è identificata la relazione tra
loro ti starai chiedendo come è stato
il testo arriva e la risposta sei tu
aggiungere altri metadati al tuo
base di codice per farlo
questo è davvero per creare un modello così
Voglio allontanare le persone dall’uso
diagrammi e ritorno all’utilizzo della modellazione come
un approccio per descrivere software e
perché una volta che hai un modello puoi farlo
molte cose veramente interessanti come
generare chiavi diagramma automaticamente yay
e poi terrà una notazione non lo facciamo
capisco perché questo è un modello noi
può fare cose come il collegamento ipertestuale del modello
al codice quindi se vai online e tu
trova questi diagrammi puoi fare doppio clic
uno qualsiasi dei componenti che ti prende bene
per github ti porta esattamente
l’impianto di quella cosa e ancora una volta
ritorna alle mappe cosa giusta
diagrammi e mappe questo è un tweet divertente
Immagine di 388.000 pixel la ragione per cui
incluso questo tweet è fondamentalmente
tale scala di approccio e non c’è se
lo usi ingenuamente, quindi questo è ciò che
succede quando attraverso la mia utensili a
una delle mie app web tutte queste
cose sono controller di app web e questi
le cose sono componenti che sono buone
orribile non penso ai codici
orribile lo schema è orribile e di
Ovviamente ingrandendo lo schema
non aiuta un po ‘ perché tu ancora
avere il disordine è solo sparso, ma
perché questo è il modello che puoi fare
alcune cose interessanti come non mostrare
tutto mi mostra uno spaccato
il sistema quindi, per esempio, possiamo dire
cos’è una fetta, forse è una fetta
a partire da un controller di app Web e
punto di ingresso al tuo sistema e mostrami
quella fetta fino a cadere fuori al
in fondo all’app, quindi in pratica puoi farlo
creare un numero maggiore di molto
immagini più semplici quindi questo è il mio approccio
per affrontare la complessità e le dimensioni
una volta che hai un modello , puoi lanciarlo
in
un sacco di altri tipi di pedaggio quindi se
sei un grafico è parte fan del barattolo
libreria open source come un grafico
esportatore in modo che un casse un punto ti file
pensato di dot trova il grafico è auto
genera diagrammi per te se ti agganci
tutta questa roba fino alla tua build
elaborare indovinare cosa succede il tuo
documentazione che i tuoi diagrammi rimangono fino a
data in cui il codice cambia e questo è
in ultima analisi, quello che sto cercando di arrivare a
ecco quindi il titolo di questo discorso
documento visualizzato Explorer così noi
dovrebbe parlare di documentazione davvero
rapidamente molte persone non ci sono più
documentando qualsiasi cosa io sappia, suona
un po ‘ estremista abbiamo il nostro amico l’ a
da manifesto per ringraziare per questo è tutto
piuttosto l’interpretazione sbagliata della gente che cosa
il manifesto agile dice di
documentazione e, naturalmente, se l’avessi fatto
lasciati in un progetto che è
sconosciuto a voi una base di codice che
non hai mai visto prima si ottiene che
tipo di dove sono in questa strada alberata
e devi iniziare a zoomare e
esplorando e cercando di capire dove
tu sei e questo richiede tempo a Lane I
è caduto subito all’inizio che potevi
continua a camminare finché non incontri qualcuno e
chiedi loro dove sono
dov’è la X più vicina, ad esempio
ci vorrà un po ‘di tempo e di
corso una volta esplorato nel codice base
il codice base in realtà non te lo dice
tutto quello che volete conoscere il codice
non ti dice tutta la storia
soprattutto attorno a cose come logica
e intenti a sapere perché erano questi
le decisioni prese che spesso mancano a
la base di codice e spesso le squadre hanno un sacco
di conoscenza tribale che si muove come
bene conosci specializzazioni ed esperti in
parti particolari del codice di base e
quello è finanziato, tutte quelle persone se ne vanno
o vengono investiti dal proverbiale
Bus londinese la cosa è il fattore di autobus
come lo chiamiamo non riguarda solo gli autobus
sai, immagina di avere una piccola squadra
qui uno viene investito da a
autobus a due piani vicino a qualcuno continua
anno sabbatico per un anno e dobbiamo
licenzia qualcuno perché sono inutili
e ora abbiamo una squadra più piccola e il
la squadra più piccola inizia a dire cose come
tu sai quella cosa lì che abbiamo
per correre ogni settimana cosa è oh giusto
e ancora una volta è una specie di cosa estrema
ma quello III ha visto situazioni simili
che si verificano così come possiamo risolvere il nostro
problemi di documentazione scriveremo
qualche documentazione e questo è dove
quelli tristi entrano in gioco ed è così
chiamato triste perché ti rende triste
e ci sono molti modelli fuori
lì per questo genere di cose ogni
società di consulenza a cui abbia mai lavorato
ha creato il loro rap ha uno lì
sono molti là fuori e questi
sorta di documenti di architettura del software
normalmente ne include alcuni veramente
informazioni interessanti e penetranti come
arriviamo al design quali erano i
decisioni di progettazione qual è il
architettura come ci prendiamo cura di esso ma
questi documenti tendono ad essere semplicemente orribili
centinaia di pagine usano sai
obsoleto totalmente inutile come facciamo noi
sistemalo bene, si scopre che il nome è il nostro
amico quello che faccio è semplicemente rinominare il
documento e tutti i problemi vanno via
e lo chiamano una guida come la
La cosa di punta della guida di Jersey di cui ho parlato
l’inizio sai se vai, se vieni
a Jersey comprate una guida che ha un
mazzo di mappe per aiutarti a navigare
ambiente sconosciuto ti mostra il
attrazioni e gli itinerari i punti di
interessare le cose che realmente dovrebbe
vieni a vedere si parla di storia
nella cultura come sei arrivato a dove
è oggi
e ci sono tutte le cose pratiche e
di nuovo se prendi quella metafora e
applicarlo ad un sistema software si ottiene un
insieme davvero molto interessante di
documentazione in modo che Mappe i diagrammi
sai fammi vedere che aspetto ha il codice
come facciamo a esplorare il codice base
quali parti del codice base sono utili
per capire quali parti sono importanti
perché la maggior parte delle cose non è come ha fatto il
base di codice evolvere a dove è oggi
e come ci prendiamo cura di questo?
Unico consiglio per la documentazione
descrivi cosa non puoi ottenere dal
base di codice è così semplice come
tale diritto battere in su un livello di
astrazione e rendere queste cose piccole
sai che non ne hai centinaia e
centinaia di pagine di cose che diventano
non aggiornato sai fare queste cose
il più piccolo possibile
sono davvero una specie di respiro vivente
documenti di stile in evoluzione questo non è il
grande design upfront dobbiamo creare un segno
in anticipo, questo è un approccio
pezzo di documentazione supplementare
che si trova accanto al codice base e
è un documento relativo al prodotto a
sistema software un documento supplementare
documentare questo non significa che non si possa fare
documentazione di progetto , ma tutti
il sistema software dovrebbe
avere una guida utente essenzialmente come fa
il software funziona scelto e va bene
è ancora una volta si conosce la cosa utensili
cosa Tony raccomandi per i documenti
un sacco di persone quindi usiamo la parola che è
bene
SharePoint se ne hai davvero tanto
persone che usano la confluenza ma io sto vedendo
sempre più squadre sono in cima alle cose
hanno chiesto al tuo dottore un markdown e lo sono
creando un bel po ‘sai
file di documentazione e il loro bastone in
i file di documentazione accanto a loro
codice sorgente nel controllo del codice sorgente e
poi fanno roba a tempo di costruire voi
sapere generare il caricamento HTML nei siti Web
e wiki e così via quindi c’è un sacco di
opportunità per l’utilizzo diverso
strumenti qui e ancora c’è qualcosa
Sto cercando di fare la struttura che voglio
creare un modello di architettura software
che contiene sia il modello il
roba di visualizzazione e il
documentazione quindi questo è il codice I
ha scritto per documentare la mia piccola API
l’applicazione è un po ‘semplice
markdown file lo carichi come parte di
il modello e qualche documentazione è
fondamentalmente generato per te è così
di nuovo stiamo cercando di mantenere tutto questo
roba e cosa in un posto e tu puoi
anche incorporare diagrammi nel tuo
documentazione così ancora queste cose sono
insieme dove appartengono ci sono
qualche altra documentazione acquistata così
questo ragazzo ne vede davvero tanti
cose interessanti intorno alla vita
documentazione ha un sacco di
piccoli strumenti aprono la fonte del github
puoi usare per creare documentazione
dal codice per esempio e questi ragazzi in
La Germania ha un’architettura software
documento chiamano arc 42 ed è a
davvero magro e leggero
approccio alla documentazione di sistemi software
è molto simile all’approccio II
in genere prendere e c’è un sacco di
contenuto un sacco di contenuti gratuiti che tu
puoi afferrare le nostre 42 persone per dire quanto tempo
dovrebbe essere un documento e questo è il
domanda sbagliata per chiedere bene quanti
le pagine è la domanda sbagliata da chiedere se io
unisciti al tuo team per quello che sto davvero guardando
perché è un documento che posso consumare in mi piace
una o due ore al caffè o due a
ottenere un buon punto di partenza nel codice
quindi posso andare ed esplorare in molto di più
modo strutturato molto più strutturato
modo ma parlando di esplorare una volta
si inizia a modellare il software che è possibile
fai qualcosa di veramente interessante con esso
quindi puoi fare cose come sai
creare una visualizzazione d3 di Java Script di
la statica
è solo una struttura ad albero quindi questo è un
modello di uno dei campioni
è la domanda del team di primavera
chiamato la clinica per animali domestici di primavera e questo è
solo i contenitori del sistema software
componenti puoi fare cose come facciamo
trova tutto il componente interessante
dipendenze che conosci in arrivo e
dipendenze in uscita puoi fare cose
come valutiamo i nostri componenti basati
su dimensioni dalla complessità, quindi ancora una volta
tu hai un modello puoi fare un po ‘di figo
roba con essa puoi buttarla dentro
neo4j se vuoi davvero perché non tu
conosci bene gli architetti del software
c’è solo un grafico diretto lui
minacciato di neo4j è possibile interrogare era
le persone giuste per i cifrari stanno facendo davvero
questo là c’è un c’è un intero set
di strumenti chiamato assistente JQ che consente
lo fai correndo contro la tua fonte
codice si imposta alcune regole e in pratica
lo fa entrare neo dietro le quinte
è fantastico e questi ragazzi em altro
hanno creato una serie di strumenti che
corre contro il tuo codice sorgente
repository e non solo loro stanno facendo
analisi statica ma sono anche loro
sovrapponendo gli aspetti umani in cima
così anche loro possono cercare cose come
abbiamo questa cosa qui ed è
sempre cambiato da questi due diversi
squadre perché è così
sai forse abbiamo il componente
limiti errati in questo particolare
istanza quindi ancora una volta è davvero fantastico
la tecnologia lì in sintesi c’era a
pannello virtuale sugli architetti del software
documentazione dal 2009 alcune persone voi
potrebbe conoscere un eroe nei boschi qui di
Certo e dice cose come dovremmo
essere in grado di vedere l’architettura nel
codice dovremmo essere in grado di incorporare questo
informazioni nel codice che dovremmo essere
in grado di ottenere la documentazione da a
fare clic su un pulsante, ad esempio, lo sai
si tratta davvero di automatizzare tanto
questa documentazione possibile non lo faccio
pensiamo di essere lì ancora, ma penso che possiamo
arrivare e stiamo iniziando insieme
ovviamente il mio riassunto è proprio questo
diagrammi e mappe trattano il tuo software
diagrammi di architettura come un insieme di semplici
mappe che descrivono il tuo codebase in
diversi livelli di astrazione qualsiasi
la documentazione che crei dovrebbe descrivere
ciò che il codice non è semplice come
quella
e sì, le corde degli anni ’90 che vogliono
stanno parlando posteriore destra smettere di usare
Visio si prega di smettere di usare Visio e se
dirai che non usiamo Visio
usa Gliffy è la stessa cosa che si ferma
usando anche quello, fermati
durante scatole e linee da descrivere
architettura software tutti gli strumenti
a parte il mio ultimo commento finale è molto
molto molto molto semplice
ogni volta che descrivi il software
certo che all’interno del tuo team hai un
linguaggio ubiquo per fare così sono io
grazie mille
Please follow and like us: