Press "Enter" to skip to content

GOTO 2017 • Feature Branches and Toggles in a Post-GitHub World • Sam Newman


[Musica]
Ringrazia ovviamente ringraziare il
organizzatori per avermi invitato ancora una volta
la mia seconda volta per andare a Chicago ho bt
prestiti di chicago ma normalmente e ottengo
venire in inverno e io in realtà
proprio come gli inverni qui perché
sono come un vero inverno che non sei
scherzare è come un vero pieno
sull’esperienza invernale ottieni l’anno scorso
il tempo era fantastico, quindi stavo facendo le valigie
a questo viaggio e ho chiesto ad Alexa cosa
il tempo era come a Chicago il prossimo
video ci sarà un allerta allerta
è stato un po ‘ritardato, perché io
Mi piace dover prendere tutto del mio personale
informazioni inviate alla NSA ma loro
voluto finire con che era tutto
come se ci fosse un allarme alluvione da lunedì
a giovedì e sono tipo oh va bene
gli unici quattro giorni in cui sono al diluvio di Chicago
allerta ma il tempo si era chiarito
alcuni sono grato per questo sì no
essere un discorso su micro-servizi siamo noi
vendendo il libro quindi non sono stupido noi
stiamo parlando di argomenti diversi
invece, lavoravo effettivamente per a
il pensiero chic dell’azienda con sede a hago
lavora per molti molti anni e un sacco di
i miei pensieri sono andati a sbattere contro di me
poi passò a lavorare per un’azienda
chiamato atomista e poi li ho lasciati a
vieni indipendente quando ho lasciato il nostro
L’ultima volta che sei in Australia quest’anno
e così ora gestisco la mia compagnia che è
veramente concentrato su ciò che penso sia il
aspetto più importante e cruciale dell’IT
in un 21 ° secolo che mi sta nominando
quindi un piccolo consiglio sono l’unico
persona in azienda adesso se la mia
ragioniere mi ha fatto fare questo ha detto io
sembra più formale finora sembra essere
lavoro fuori uso la parola che molto quando
noi sappiamo che queste cose riguardano
decennio ora interessante molto non qui per
parlare di micro servizi che ho fatto
voglio riflettere un po ‘sul perché io
ha anche ottenuto microservizi interessati nel
il primo posto era perché ho il mio
i primi giorni e il pensiero funziona
la mia area di interesse principale era effettivamente attiva
aiutare le persone a spedire di più il software
rapidamente e così ho passato un sacco di volte
guardando all’integrazione continua
automazione del cloud di consegna continua
automazione dell’infrastruttura automatizzata
test e tutti quei tipi di cose
e rendersi conto che in realtà un sacco di tempo
dell’architettura
stessi sistemi che ha reso difficile
spostare il software più rapidamente e troppi
modi in cui questo parla tornando a
le mie radici e riesaminerò davvero il nostro destino
di quei principi originali che noi
si stavano concentrando su nei primi giorni di
contenuto della consegna continua
movimento e vedere se si applicano ancora
in questo tipo di nuovo post github ma
speriamo non interamente post factual
mondo
Potrei anche fare riferimento ad alcuni dati, quindi facciamolo
guarda come va ma non prendo
si risale ai primi giorni e ho pensato
Wesker nel 2004 ho aderito alle opere di pensiero
e immediatamente mi hanno mandato via
andare e lavorare per un cliente quel cliente
era una società chiamata Dixon se lo hai fatto
mai stato nel Regno Unito e in un aeroporto del Regno Unito
avrei visto il viaggio di Dixon
Emporio dove è possibile acquistare materiale elettrico
attrezzatura per soli cinque sterline in meno
di quello che si pagherà cos in alto
strada, ma poi hai avuto modo di lavorare fuori
come hai intenzione di prendere un enorme come
ghettoblaster sull’aereo con te e
il progetto a cui stiamo lavorando era
creare un punto di vendita elettronico
sistema in realtà personalizzato e in forma quasi
punto di vendita elettronico a catena completa è a
progetto veramente molto grande e così io
è stato detto di andare alla piattaforma di Euston
stazione e solo loro hanno detto che sei
salire su un treno e tu stai andando
hemel hempstead
e ci saranno altre persone sul
piattaforma e sono sicuro che puoi allenarti
chi sono
ed è elencato molto per la diversità
della compagnia nel Regno Unito in quel momento
quando sono salito sulla piattaforma avrei potuto impostare
esattamente chi sono i miei colleghi e così noi
ha avuto molte ore felici viaggiando e
giù per quel treno fino a martello
e indietro ho girato il nostro argomento di
la conversazione più viaggi era dovremmo noi
in realtà scendere a bordo di Hemel rimanere
sulla linea per un po ‘di più perché noi
stavano andando a Euston e la linea
è andato fino ad Hamill quindi tette
che era un posto a posto, ma se tu
Resta a Don un altro paio di fermate
potresti andare a Bletchley Park che abbiamo fatto
che è sceso dal treno la maggior parte delle volte ma
ogni tanto era un po ‘difficile
andando a lavorare e quello era perché io
è entrato in un momento piuttosto interessante
il progetto che il progetto sta andando
per un po ‘ma inizialmente era stato aa
progetto sarà venuto a bordo hanno
stato abbastanza in ritardo e io ero un
vera spinta per far uscire le cose da qualche anno
fa tutto Don e il team erano al momento
lavorando su
la terza versione del software che dico
rilasciare ogni sorta di rilascio è andato fuori così
multiplo ha avuto più distribuzioni effettive
era come un secchio di questo è il sono
tre focus del lavoro e ogni rilascio sono
preso in una sezione più ampia del tutto
Dixon è un tipo di organizzazione Emporium
hanno come un sacco di diversi marchi
sulla strada principale e così tu sai e io
è arrivato appena dopo un momento in cui penso
tipo di interessante è successo così il
gran parte di te dello sviluppo
organizzazione sta lavorando sull’arteria
banda di ramo del codice che controlla i lotti
e molti cambiamenti ma sono stati
questa consapevolezza che ce ne sono stati molti
supporto ora chiamato debito tecnico
costruendo e c’è un sacco di
la gente che ha voluto fare un po ‘abbastanza
modifiche sostanziali al codice base e
quindi l’accordo è stato fatto bene, almeno
cambia il nostro guinea abbastanza forte impatto che
può essere abbastanza difficile per noi farlo
pur continuando a fornire funzionalità e così via
quello che faremo è che lo faremo
una cosa non rara in quel momento ma
efficacemente tagliato fuori come una parte di
il nostro team e li abbiamo focalizzati sulla creazione
questo tipo di architettura su più larga scala
cambia così via che abbiamo fatto fuori dal
r4 ramo e quella squadra mentre la r3
la squadra è occupata in realtà
sai offrire valore reale a
i clienti il resto della torre d’avorio
architetti declassati per uffici diversi
per lavorare sui loro cambiamenti oh sì, abbiamo
mai veramente da sfamare molto
roba buona viene fatta dopo i progetti
maturato per un po ‘ , capisci che ottieni un
senso di un modo migliore di fare le cose
e questo è tutto sul tentativo in realtà di farlo
consolidare le cose e dopo a
mentre il team r4 si sentiva a posto , abbiamo un
buona conoscenza di cosa sta succedendo ora
e pensiamo che in realtà questo sia il nostro
versione del codice uno invia live e così ora
abbiamo bisogno di fare il nostro quattro ramo nostro
rilascio in produzione dal vivo del software ma
Naturalmente mentre abbiamo Chipping nostro
roba siamo stati su cosa stiamo lavorando
refactoring dei nostri livelli di repository e
venire con nuovi web handlers o
qualunque cosa stessero facendo in un momento
è in realtà l’applicazione swing così
in realtà anche non abbastanza web ma abbiamo
avuto modo di portare in tutto quel cambiamento che è
Da allora è accaduto nel ramo r3
si fuse e in modo tale che sarà facile destra
ci uniremo semplicemente in molti
mesi di lavoro nello sviluppo
fatto a metà, lo sai, se no
gestito Avella pers e che sta per
essere assolutamente bene, a quanto pare
non così tanto e sono arrivato proprio come questo
protis sono successe
e so che alcune persone sono state raggiunte
nello stesso giorno sono stati espulsi
la res parte l’organizzazione e poi
dicono che è venuto da me, così abbiamo detto
proposta molto eccitante per te
come si desidera aderire al r3 r4
Unisci bug 16 – che ovviamente è l’unico
la risposta corretta è yay
e così questo o il T mail in per
diversi mesi e l’ unica lettura e la sua
il team esisteva era quello di correggere il tipo di bug
e regressioni avvenute come a
risultato di questa mastodontica fusione di due
rami di codice ora mi sono sfregiato
e molte altre persone e in realtà ha portato
a molti cambiamenti nel modo in cui pensiamo
sulla gestione dei rami che hanno portato a
cose come lo sviluppo del tronco e
continua a vivere a cui verrò
in breve
molti anni dopo dal modo in cui sono stato svegliato
nel mio letto il terreno mi scuoteva
Viveva a Londra sfrigolando un normale
evento e scoperto che hanno
è stata una grande esplosione nella raffineria di petrolio
l’olio di raffinazione era proprio accanto alla
il quartier generale dei Dixons dove ho usato
a lavorare per quanto ne sono a conoscenza
non è stato definitivamente dimostrato che
questa massiccia esplosione è stata la causa di
questa fusione di codice ma potrebbe avere
non sto dicendo che non sta succedendo
ma comunque ora ovviamente il
domanda che ho dato ho raccontato questa storia
la gente mi chiede ma non eri tu
facendo continua integrazione sei
il pensiero funziona tu sei la compagnia che
reso popolare l’intero concetto di CI e
quindi perché non stavi integrando il tuo codice
per evitare questo tipo di enorme grande gigante
unire e la realtà era che eravamo io
sto andando a riprendere in continuazione
integrazione molto perché penso che sia un
concetto molto importante ma non ne sono sicuro
che abbiamo sempre la stessa definizione
ma CI funziona in un modo molto semplice
Lavoro sul mio sul mio portatile che creo
un po ‘di codice, ne controllo il codice in alcuni
tipo di repository di controllo del codice sorgente ora
allora non avevamo cose come git
abbiamo avuto molte più cose peggiori e
poi una sorta di strumenti CI ci sono tornati
allora stavamo facendo uso di crociera
controllo al giorno d’oggi useresti Jenkins o vai
CD o qualcosa del genere o pick up
quel cambiamento e lo integreremo con
l’ ultimo commette efficacemente ciò che accade
sei tu ad integrare il codice che poi fai a
compila passo e un passo di verifica e
ottieni un feedback sull’opportunità o meno
il tuo cambiamento funziona così sai che eccomi qui
Sto controllando il mio
è fantastico che lo sviluppatore successivo vada a controllare
nel loro codice e si stanno accertando
che i loro cambiamenti si integrano con il mio
cambiamenti e non è solo abbastanza da dire
va bene non ho ricevuto un conflitto di unione questo
dovrebbe essere quello semanticamente il software
si comporta ancora come ci aspettiamo che si comporti
dopo aver portato questi due cambiamenti di
codice insieme quindi questa è la prima cosa
hai bisogno di una sorta di suite di un conto
questo convaliderà l’integrazione
conosci l’analisi statica della compilazione
test automatico insieme queste cose
lavorare insieme adesso se effettuo il check-in a
cambia e spezzo la build di cosa
significa che l’integrazione è fallita
spero che quello che ho fatto sia gestito
il test localmente prima del check-in e
quindi in realtà ho probabilmente ottenuto un
tipo legittimo sai di miss
problema di integrazione che accade così
prossima cosa devi dire che c’è KP
una rottura costruisce hai avuto modo di sistemare le cose
costruiscilo diventa il miglior lavoro del team
è quello di assicurarsi che la compilazione sia corretta e
normalmente quello che vorresti fare è se tu
controllato il cambio di rottura che avresti fatto
aggiusta quella rottura e cambia e nessuno
altrimenti sarebbe il check-in fino a che è fatto
questo porta ad alcuni comportamenti interessanti
dove le persone non si registrano alle quattro
in punto in un pomeriggio di venerdì
perché è una rottura del conto non lo sono
andare al pub, questa è la vera chiave
cosa, ma anche di avere questa idea che
vuoi integrarti spesso perché se
ti ci vuole molto tempo prima di andare e
finalmente controlla il tuo cambiamento in quanto potresti
scoprire che in realtà lavoreresti
per un po ‘localmente sulla tua macchina e
finalmente controlli quel codice in molti giorni
dopo sarai molto simile a quello che sei
Probabili momenti in cui un grosso problema di unione
di nuovo il tempo di evitarlo e fidella
regola la regola cardinale di CA è che tu
integrare quotidianamente come stai facendo
integrazione continua sei tu
integrare quotidianamente questo è l’obiettivo
questo è ciò che il documento originale nel 2000
ha detto che sono gli articoli aggiornati di Martin
ha detto che è ciò che l’integrazione continua
è la realtà era però su di noi di Dixon
stavano facendo integrazione continua il
problema è stato come stavamo facendo si che aveva
la R per la squadra r3 nella R 14
rami separati di codice e così come il
r3 persone stavano lavorando sui loro cambiamenti
avevano una build CI e le persone r4
aveva anche una build CI, ma quell’integrazione
era una pura integrazione locale che eravamo
solo in realtà guardando i cambiamenti
con un isolamento di quella squadra
e così quando abbiamo tirato fuori tutto questo
funzionalità avevamo ancora lo stesso vecchio
problema così chiaramente c’è qualcosa a
un po ‘diverso qui ma comunque il nostro
l’idea di un’integrazione costante era
qualcosa di cui abbiamo sempre parlato
più frequentemente integri il tuo
cambia il modo più semplice se tu
fare con le fusioni perché per definizione tu
dovrebbe avere una portata più piccola di cambiamento
e quindi è molto più facile da trasportare
fuori che unire attività ma questo obiettivo di
integrando una volta alla volta i mozziconi contro
altro problema vale a dire non tutti i tuoi
il lavoro può essere svolto in un solo giorno
di lavoro anche se pensavi di pensarlo
potrebbe essere qualcosa che accadrà
hai intenzione di chiamare in a
incontro o una partita di pallavolo o
qualcosa del genere tu sei malato giusto
e quindi non puoi integrare tutti voi
non possiamo dire di finire una caratteristica ogni
singolo giorno perché alcune funzionalità anche
più complesso e altri quindi se vuoi
integrare spesso per renderlo facile
noi per gestire le fusioni come facciamo
uno abbiamo un lavoro che è finito a metà
ci sono un sacco di modi diversi
possiamo gestire questa opzione di problema
in realtà non facciamo il check-in adesso
non mi piace più così
ma lo facevamo molto come volevo dire
lo controlleremmo per diversi giorni
e poi se la tua macchina si è rotta e la tua
disco rigido è stato spazzato via, hai perso diversi
giorni di lavoro e quindi non ci piace
farlo più perché è un po ‘
schifoso quindi vogliamo mettere i nostri cappotti
siamo al sicuro nel caso succeda qualcosa di brutto
quindi questa è stata l’opzione numero uno
da un lato l’ opzione numero due facciamo
un ramo ecco che cosa stiamo andando a fare
proprio come abbiamo fatto per la nostra per abbiamo preso un
ramo di quel codice per permetterci di lavorare
efficacemente su funzionalità che non lo erano
abbastanza pronto per andare in produzione
finito e poi un po ‘di quello
attività di promozione di ora dire giusto
ora questo è il ramo di sollievo che ci consente
per rilasciare quelle funzionalità che conosci così
qui sto stanno lavorando una nuova funzionalità che
nutre potrebbe impiegarmi diversi giorni quindi
creare un ramo di codice e io faccio il mio
cambia localmente su quel ramo e mi piace
il mio collega fa altrettanto a
ramo pure lavorano su loro
caratteristiche che ci permette di anche se la nostra
perché le nostre funzionalità non sono del tutto
implementato ancora non è del tutto completo
lì posso tranquillamente controllare e commettere
a quel ramo e poi quando sono pronto
Lo unirò di nuovo nel tronco che è
dove sto andando a liberare da questo
potrebbe essere chiamato maestro a seconda del tuo
sistema di controllo della versione e così ho
ho controllato un grande cambiamento e l’ho fatto
quel lavoro e quello è
fantastico che è fantastico ora il mio collega
fa lo stesso e scopro che ho giocato
un sacco di cambiamenti prima e ho capito
veramente infastidito, quindi ho un grande
unire attività ma questo è un po ‘come
i rami funzione funzionano esattamente come te
quelle modifiche apportate a tali modifiche
fedelmente su un ramo separato permettendo
per fare molti impegni fino al tuo
la funzione è pronta e quindi la si unisce
di nuovo dentro e possiamo usare gli strumenti CI per
effettivamente eseguire build su quei rami come
bene, quindi ottieni ancora quel feedback
sulle cose che funzionano e possiamo
integrarsi continuamente se vogliamo il nostro
ramo quindi è molto facile che cose
su questi il mio strumento CD preferito
genere di cose il problema però siamo noi
hanno lo stesso problema con cui lo abbiamo fatto
r3 r4 si fondono qui, proprio come siamo
integrandosi continuamente con la nostra filiale
non stiamo integrando continuamente con
i cambiamenti di tutti gli altri siamo ancora
differire l’integrazione in questo
unità schierabile in cui mi credono
la maggior parte del mio problema generale con tutti
questo approccio come me intendo il dolore di
unire è stato come ci sarà
una funzione qui da qualche parte che spero
qualcuno a fare ricerche è ma è così
come il dolore di una fusione è quasi come
una funzione di quanto grande è l’unione
che Delta è e da quanto tempo è passato
da quando hai provato a integrarti
quel codice è come se non fosse solo
il lato la durata perché il
la durata conta anche perché tu l’hai
perso traccia di cosa diavolo sta succedendo
sul bagagliaio non sai che è difficile
capire quali cambiamenti sono stati fatti
bene, Bob, mentre sei stato fuori nel tuo
proprio piccola bolla che lavora via dopo uno
lato così sai che non è eccezionale e
e lo sappiamo anche come grandi fusioni
portare all’atto funfun di impegnarsi in gare
hai visto succedere che ne ho una nuova
Bene, lavorerai per qualche giorno
sulla funzione e sai che sta andando
essere un dolore amaro per unirsi a te, ma tu
penso che tu abbia solo ragione ma
il tuo collega ha anche ottenuto un grosso impegno
vogliono fare così quello che fai tu
distraili li mandi loro le immagini
invia loro le foto di gattini vai
fuori a pranzo e suggerisco che voglio solo
più birra per te e poi torni indietro
in ufficio e controlli la tua codifica
prima che possano controllare la loro codifica
perché poi devono fare i conti con
unire in modo che sia divertente ma lo è anche
annoying c’è un altro problema che
Arriva quelli è un altro motivo per cui sono
veramente
esitante sull’avere rami per
funzionalità di consegna e questo è perché
la fusione dei refactoring è molto difficile
quando si aggiunge semplicemente un nuovo codice che si integra
è una specie di piede abbastanza dritto
molto facile ma se lo sei davvero
refactoring il tuo codice per esempio un Dio
cercando di creare astrazioni nuovissime
tramite l’ origine della duplicazione del codice di spostamento
gli strumenti di controllo sono consapevoli di testuali
le differenze non sono a conoscenza di
cambiamenti semantici non possono leggere in
il tuo intento dietro un cambiamento che hai fatto
quattro settimane fa e riapplica l’intento
sul nuovo codice che stai unendo in noi
non hanno trasformazioni operative all’interno
i nostri strumenti di controllo del codice sorgente e quindi cosa voi
iniziare a vedere è che quando le persone sono
lavorare sui rami sono in giro per
diversi giorni se sono scoraggiati
efficacemente dall’effettuare il refactoring
perché se si refactoring sul loro
rami che effettivamente si fondono
attività abbastanza difficili e così simili
stai cercando di fare qualcosa di carino o
cercando di rendere il codice un posto migliore
e tutto quello che hai fatto hanno fatto il proprio
lavoro più difficile , proviamo a notarlo
funzione e così quando li vedi
rami molto molto lunghi che vedi
che le persone non tendono molto al refactoring
e la base di codice è dove hai un sacco di
viva ancora rami che non vedi a
sacco di refactoring in corso è troppo
pericoloso e attività okay quindi non sono un
grande fan chiaramente una caratteristica si ramifica così
quale era l’altra opzione che abbiamo parlato
circa al momento ok ok ok quindi voglio
per integrare spesso non voglio rami
ma se ho appena controllato in ogni caso ok bene
come funziona, perché se il
la funzionalità non è finita come posso solo
controlla il mio codice in qualsiasi modo, così ci sembra
ha senso, ma questa è l’ idea alla base
ora siamo chiamati sviluppo della base del tronco
che è ognuno si integra nel bagagliaio
così tutti lì ho lavorato tutti
questo sarà sullo stesso ramo
maestro in git o qualunque cosa siamo
tutto ciò che integra l’idea è
stiamo integrando davvero spesso giusto
stiamo ottenendo i nostri cambiamenti in noi
facendo un sacco e un sacco di piccoli
le fasi di integrazione stiamo diventando veloci
feedback come quando queste integrazioni funzionano
e stiamo anche ottenendo rottura che
Unisci aereo Non sto avendo un gigante
unire attività fino alla fine ne ho un sacco
di fusioni incrementali lungo il
modo ma ancora dobbiamo ancora affrontare
il fatto che in realtà non lo abbiamo fatto
rispondi qui – che ne dici di metà-finito
dispone di un sistema basato su trunk visone
lavoro di sviluppo in cui ti integrano
una volta al giorno – linea principale nel tronco noi
devo avere un po ‘della tecnica e
quella tecnica normalmente si riduce a
usare qualcosa come la funzionalità alterna così
i cavicchi sono un modo per nascondersi
funzionalità parzialmente implementate o
funzionalità in là in Guinea
sistema esistente quindi davvero semplice
esempio di come potrebbero essere attivate le levette
lavoriamo consideriamo un sito web così bene
Sto lavorando al nuovissimo super
fantastico fantastico widget super che lo farà
mostra gatti bassi in una simpatica giostra
il fondo del mio sito e -commerce e
non è ancora finito perché io
non ho ancora ottenuto la formattazione del testo
correttamente e continuo a portare dentro come
cani, invece di gatti così sto lavorando esso
attraverso la destra ma è all’avanguardia e
è da un giorno all’altro potrebbe essere bello così
quello che faccio è che solo in realtà nascondo che
widget quindi non siamo disponibili su
il sito web non sono disponibile su
sito di produzione ma è una configurazione
file che come sviluppatore puoi andare e
cambia il valore di quella configurazione
il file che dice che il super widget è attivo e ora
che appare sulla mia pagina web quindi il codice
è controllato è tutto integrato è
non effettivamente visibile nella produzione
l’ambiente non è visibile ai miei
clienti ma ho la possibilità di girare
su per testarlo in Scituate essere ora
i file di configurazione sono un modo di fare
ovviamente a cui doveva essere mappato
una condizione booleana da qualche parte il tuo codice
ma altri modi comuni di usare questo è
qualcosa come una bandiera della linea di comando
bandiera così Google che celebra il tronco
sviluppo basato che non usa funzionalità
rami fanno uso di bandiere da girare
Funzionalità off and on e se si ottiene
hai davvero voglia di permetterti di farlo
usa anche il tuo sistema di bandiere per permetterti
per spegnere e riaccendere le cose in fase di runtime
magari usando una sorta di centralizzazione
sistema di gestione della configurazione così tanto
di volte le persone useranno cose come
guardiano o console per fornire
configurazione per istanze in esecuzione e
quindi penso che la gente usi questi sistemi per
ti consente di attivare e disattivare le funzioni
ora è abbastanza facile in realtà quando tu
pensa a qualcosa di così semplice come lo sono io
lavorando su un widget nuovo di zecca dove tu
sappi che il widget è una cosa che non lo era
c’è prima e ho appena finito di girarlo
su è abbastanza facile vedere come lo faresti
implementare qualcosa del genere è abbastanza
semplice per fare quel lavoro, ma a
molto tempo ovviamente stiamo cambiando
funzionalità cosa succede se quello che sono
in realtà sta cambiando sta cambiando il
un altro widget e in realtà sta andando
comportarsi diversamente in futuro come
avrei implementato così bene che lo faremo
sali sopra, quindi parliamo di come
quello potrebbe funzionare che sta dando un buono
Kraig grande cater un esempio di questo
in realtà questo è in realtà un esempio
dai primi giorni di gogo era solito chiamare
equipaggi e quando Dio iniziato fuori di esso
era una sorta di un singolo nodo base server
con te hai un gestore di build farm ma
man mano che cresceva c’era una consapevolezza che
volevamo più di una macchina in esecuzione
il processo del server non abbiamo avuto un
punto singolo di errore e articolo ciascuno
più grande quindi hai questo esistente
sistema in saigo che stavi facendo uso
di ipersonico così ipersonico è perfettamente
okay, quello che vuoi è come una memoria
database e a questo punto lo sai
la crociera è stata davvero una passeggiata
riempiendo piccole quantità di metadati ma questo
era in realtà abbastanza profondamente integrato
nel prodotto e quindi ciò che sarà
in grado di fare è invece dire okay che vogliamo
essere in grado di inviare andare a vivere e quello
non aver eseguito la tua offerta corretta
database che permetterebbe in realtà
per ottenere una scala più grande, ah lo sai
renderlo più semplice in termini di modalità di errore
ma in realtà implementando sai il
supporto per dire che uso post gradi sul mio
sequel ma il record della squadra aveva in realtà
preso uno come pochi alcuni
settimane concentrate solo di un concentrato
sforzo per fare quel cambiamento ma loro
volevo ancora poter spedire nuovo
caratteristiche ma il problema era che lo era
piuttosto stava usando molto in alcune parti di
il codice base è così difficile
limitare le nuove versioni di crociera
e come fanno ora è andare o disponibile
ogni due settimane in modo da poter passare
il sito Web e scarica un nuovo marchio
versione ogni due settimane fuori dall’obiettivo
quindi, in pratica, continuo
consegna con un prodotto scaricato è
sfida abbastanza difficile va bene così
il cambiamento ci richiederà molte settimane
ma vogliamo anche mantenere la spedizione
caratteristiche e vogliamo fare il nostro
software disponibile per il download e noi
stavano controllando la linea principale e questa cosa
è abbastanza integrato quindi come andiamo
su come fare così la risposta sei tu
creare in modo efficace un nuovo marchio
implementazione del cambiamento
funzionalità
quindi questo esempio esistente ci viene in mente
con una genetica work-in-progress
l’ implementazione di tutti i partecipanti e così via
puoi effettuare il check-in in una delle prime versioni di
questo può essere integrato puoi essere
eseguire test contro di esso, ma è necessario
la possibilità di accenderlo per vedere
come funziona in termini di tutto
sistema così la prossima cosa che devi fare
è necessario creare un punto di astrazione
nel tuo codice così in questo particolare
esempio , vieni fuori dire una sorta di a
interfaccia persistente di ordine superiore e
poi capacità felice di spegnerlo e
ancora una volta implementare un interruttore attorno a questo così
di default la mia persistenza ipersonica
l’implementazione è più ampia e posso cambiare
quel valore di configurazione e averlo
usa invece il sequel coerente
incidenti così per molte settimane quando tu
stavano scaricando gli equipaggi internamente
anche se la persona media che usa gli equipaggi
non noterei che c’era una bandiera profondamente
dentro quel genere di cose che non dovresti
toccare il file di configurazione che lo farebbe
ti permettono di accendere questo
implementazione sequel work-in-progress
ora se lo facessi, non funzionerebbe
non era finito ma la squadra stessa era
in grado di giocare effettivamente con quella marca
sicuro che funzionasse e lo configurasse e
quando erano felici tira quel cambiamento
fuori se in realtà anche dato loro il
meccanismi per permettere alle persone di
passaggio progressivo a questo nuovo modo di
consegnare il loro sistema partecipante una volta
quella caratteristica è stata inserita e loro sono
felice con esso rimuovi il vecchio
implementazione che potresti potenzialmente
anche se volevi rimuovere il
punto di astrazione piuttosto che una sorta di
utilizzando la funzione di ramificazione in cui si ha a
ramo del codice dove l’altro
l’implementazione è o il tuo cambiamento in
il comportamento invece è coesistere
entrambe le implementazioni nello stesso codice
base allo stesso tempo tramite un’astrazione
punto e il suo modello è chiamato ramo
per astrazione
quindi piuttosto che ramo e codice sorgente
Sto ramificazione nella stessa versione del
codice ora questo causa alle persone le persone
non mi piace tutto il tempo perché
questo in realtà richiede che tu debba farlo
refactoring il tuo codice per creare un
il mio punto di vista è tutto ciò che è
se non ti senti sicuro in INRI
fratturare il codice per creare un
punto di astrazione che hai di diverso
problemi ma ciononostante questo uso di a
bronzo per modello di astrazione ti permette
per verificare in un cambiamento in esistente
comportamento senza ramificazione e
allora puoi attivare l’astrazione
il tuo utilizzo utilizzando una funzionalità di commutazione
meccanismo ora ci sono alcune cose da fare
essere consapevoli di con i pulsanti di selezione e
ci sono alcune insidie ​​e la gente ottiene
loro stessi legati in nodi se ora e ora
poi mi regolerò
visto alcuni cattivi usi di queste tecniche
ci sono alcune regole che ho intenzione di scommettere
l’orso in mente sarebbe dotato di levette
e le cose la prima cosa è la bandiera
comunque quello sta usando il tuo sistema
la base di codice lo usa usando pochi posti
possibile così per esempio se sto andando a
raccontare un widget e spegnendo
Forse voglio solo dire “booleano” nel mio
linguaggio dei templating da qualche parte il mio
il codice dei modelli potrebbe essere un posto forse
due posti nel codice sono a posto con cui ho lavorato
una squadra e usano tutte le parole di bandiera
è stato utilizzato in circa 50 o 60
i posti tra le loro basi di codice sono diventati un
vero incubo no ha davvero
confondendo così ti piace un posto uno
posiziona nella base di codice e quindi sai
quando non ne hai più bisogno rimuovi
loro quella stessa squadra aveva oltre 200 bandiere
che erano diversi in QA contro
produzione e non hai capito
così come non il software che eri
effettivamente testare in QA era lo stesso di quello
è stato effettivamente impiegato in produzione
ambiente quindi stai molto attento
su come usi queste bandiere non lo fai
vuoi carichi li rimuovi una volta che sei
fatto usando un numero limitato di posti e
starai bene, ci sono dei lati positivi
benefici quando li crei
punti di prelievo che permettono
commutazione di comportamento che effettivamente aperto
la possibilità di implementare altri
attività correlate allo spiegamento che possono
essere veramente utile quando si distribuisce in a
modo sicuro si può usare per cose
come un test per esempio che ho
l’abilità nella stessa base di codice
Le due diverse implementazioni di Courage
della stessa astrazione lo stesso pezzo
di funzionalità ho un’astrazione
punto in cui posso passare tra i due
non è un tratto pensare che potrei
ora usalo per implementare qualcosa di simile
un test a / b che conosci forse a caso
Ti do una diversa implementazione di
quel punto di astrazione o basato su alcuni
caratteristica delle basi dei tuoi clienti
forse lo segnalo anche un certo
gruppo di clienti come beta test
i clienti e diventano subito nuovi
implementazione che hai creato
punto di astrazione che ora puoi usare se
altre cose possono anche essere usate con un po ‘
più lavoro per qualcosa come canarino
rilasciando dove rilasciamo un nuovo marchio
versione della nostra funzionalità a un piccolo
sottoinsieme dei nostri utenti se si comporta
correttamente possiamo aumentare il numero di
persone che vedono così questo è queste sono
diversi modi di sfruttare
quel punto di estrazione che hai ora sono
in realtà sta lavorando a un libro al momento
per parlare di tutta questa faccenda
tutto accade dal finire una linea
del codice nel tuo computer portatile per la spedizione in
la produzione non sarà pronta
fino alla fine dell’anno ma se tu
non so molto di più sulla base del bagagliaio
sviluppo ora un mio collega Paul
Hammond che ha ottenuto un grande grande sito
chiamato commando di sviluppo basato su trunk
dove aveva catturato un sacco di cose
e gli schemi e usano casi di
così da dare a quel sito un read se
vuoi sapere un po ‘di più ora che viene
fuori dal relitto dico relitto
Dixon è davvero interessante per te
conoscere da un punto di vista dello sviluppo
era spesso abbastanza duro ma era un
progetto di successo per il
compagnia sia il pensiero che io sono il
cliente giusto ne era abbastanza soddisfatto
ma comunque siamo venuti fuori da quella
sperimentando l’esperienza realizzando a lungo
ramo dal vivo è davvero problematico voi
sapere di averlo scoperto
modi alternativi di lavorare con
software in termini di come gestiamo
il controllo del codice sorgente è davvero importante
ciò ha portato ad estendere l’ idea alla base di C
Sono diventato uno sviluppo basato sul tronco e
poi portato a conoscere la consegna continua
quindi non è una sorpresa
Dave Farley che è uno dei più lunghi
gli umili di hwijae hanno scritto questo continuo
la consegna era il testo principale dal
Progetto Vixens e ha imparato così tanto il mio
esperienze di quello che loro genere di
riuniti questi nuovi modi di
lavorando in quel libro di CD i libri di kazoo
in realtà ero molto vecchio nei miei pensieri
tu del 2011 e un sacco di cose ha davvero
cambiato da allora ma così tanto di cosa
era nel libro ancora si applica davvero
ora fino ad oggi e tu sai che c’è
molte idee in continua ad essere
libri penso che sia davvero importante
i principali cambiamenti erano oltre la discussione
CII e utilizzo dello sviluppo basato su trunk come
contrapposto a feature branch o a questa idea
di muoversi verso il trattamento di ogni
check-in come candidato per il rilascio, ma tu
dovrebbe essere felice con ogni check-in
andando in produzione il motivo è
divenne davvero importante era quel turno
nel pensare alla cadenza di rilascio e
frequenza di rilascio Penso che un sacco di
lavoro che è stato fatto fino a questo
puntare soprattutto sul lavoro che stavo facendo
con le organizzazioni aziendali era circa
rendere le pubblicazioni stesse più affidabili
migliorando la qualità del codice ma non lo eravamo
necessariamente migliorando la cadenza di
distribuzioni di software ma quando tu
iniziato a vedere cosa stava succedendo nel
all’avvio di dot-com stavano realizzando il
valore di molto più veloce e frequente
versioni penso che sia ancora in corso
meglio articolato in sport generali
parla met met met ox in questo caso e
è un vecchio discorso ora ma
come ancora oro così John ora è CTO
in realtà era in precedenza un po ‘ sconvolto
lei e prima di quel manager rilasciato per
Flickr come ha fatto la sua osservazione che
quando rilasciamo software di rado noi
hanno una sorta di duplice problema sul
una mano quando impieghiamo molto tempo
tra le versioni ogni versione ha un
cambiamento più grande è un Delta più grande
ci sono più modifiche più linee di codice
che sono cambiati tra questa versione
e una versione precedente significa che
il rischio è intrinsecamente che il rilascio è
intrinsecamente più rischioso come più possibilità di
anche qualcosa che va storto lo segue
che qualsiasi rilascio o rimedio è
probabilmente sarà più complicato
perché c’è molto di più roba ha
cambiato
normalmente con voi conoscete grandi cambiamenti in
rilasciare tra una versione e un’altra
non è certo il modo più sicuro di tornare indietro
piuttosto che cercare di aggiustare quella cosa
ti va bene, l’altra cosa, naturalmente, è
che se stai rilasciando solo
raramente il processo di rilascio
non lo usa spesso, quindi è così
più probabilmente avrà problemi
in esso e anche tu non stai imparando
sapere se al cutter piacciono queste caratteristiche
non sono giusti e poi vieni dentro
questi strani anti- cattivi modelli te
non rilasciarlo spesso quando lo fai
rilasciare hai un problema hai a
problema perché la dimensione del rilascio è
così grande aumenti il ​​rischio di ciò
rilascio e lei ha avuto problemi e persone
attraversare e dire bene come facciamo
fare in modo che non abbiamo un problema
al nostro prossimo dispiegamento so che lo saremo
in modo particolare cura per il prossimo così
prendiamo più tempo e applicheremo
più rigore e metteremo più processi
sul posto e così sarà la prossima versione
ancora più a lungo da ora e lasciami fare
abbiamo un problema, cosa dovremmo fare?
cerchiamo di pagare l’ancor più attenti a
la prossima versione e lei rilascia
L’aumento del cadence
è incredibile che gran parte del lavoro
Ho fatto in consegna continua
con i clienti è appena stato
guardando i processi di rilascio e
rendendosi conto che una grande quantità di
procedure che sono in atto al suo interno
tipo di organizzazione di importo a
tessuto cicatriziale organizzativo come
qualcosa di veramente brutto è successo a noi dieci
anni fa e abbiamo messo qualcosa in atto
per evitare che questo problema accada
di nuovo ma nessuno in realtà ricorda cosa
quel problema era che sappiamo solo che abbiamo
questa brutta specie di cicatrice sul nostro corpo
da qualche parte a destra questo è tutto ciò che di essa
di cosa si tratta
così John ha fatto le osservazioni in realtà
se riduci le dimensioni della tua schiena se tu
ridursi lati di ciascun
Lì hai un Delta più piccolo in mezzo
ogni rilascio che significa il rischio di ciascuno
l’uscita è molto più piccola , sei molto meno
probabilmente avrà un problema con quello
e se lo fai sarà più facile
diagnosticare e risolvere il problema
rilasci anche il software più spesso
quindi il tuo processo di rilascio è più
probabile che funzioni perché lo fai molto
e puoi anche imparare da quello e
quindi una di queste idee si è riunita e
così il continuo ebook live diceva
bene come possiamo prendere quel rigore di
garantire la qualità del nostro software
integrare il nostro software più frequentemente
ma in realtà spediscono software al nostro
i clienti più frequentemente in realtà
ritorna 10 queste povere idee si integrano
Spesso in modo da assicurarsi che tutto il codice
lavora insieme quando si rimanda
integrazione integrazione più costosa
meno tardi per lavorare mantieni le dimensioni del tuo
cambia piccolo e di nuovo se lo sei
integrazione spesso è ogni integrazione
sarà piccolo, si relazionerà e spedirà
il tuo software frequentemente mentre guardi
bene Jeff e David lavorano sul
libro di consegna continuo c’era il
piccolo motore di controllo della sorgente che potrebbe
ottenere era era era ronzio circa ora git
era coperto in dettaglio nel libro ma
davvero non stava facendo molto impatto nel
mondo dello sviluppo del software nel suo complesso
anche nel 2011 che un numero di persone
che lo stavano usando nei settori aziendali
era era piuttosto piccola era molto grande in
il settore open source dovremmo
in realtà ricordare da dove viene
ottenere con il design in sostituzione di
bitkeeper che viene utilizzato in quel caso
punto per gestire il kernel Linux lì
è stato un fallimento per le licenze I
non entrerò in esso puoi leggerlo
Wikipedia quindi Linus era bloccato per il
problema che aveva bisogno di una sorta di
sistema di controllo della fonte alternativo e
è probabilmente importante riflettere
perché funziona come fa e basta
per consentire alle persone di mantenere il
Kernel Linux questo tipo di abbastanza
diverso dalla maggior parte del software che noi
lavoro sulla maggior parte dei nostri software noi
integrare fino alla singola implementazione
non lo sai e ci schieriamo in uno
posizione per la maggior parte di noi motori funzionano
un certo tipo di potenziale essenzialmente
il sistema distribuito è utilizzato da più
clienti ma il suo kernel non è uno
cosa non c’è una versione di pari
il kernel 3: 6 giusto è composto da a
numero intero di patch differenti
si applicano diversi sistemi operativi
diversi schemi OS
patch nel loro kernel si conosce il
il pettine Red Hat è diverso dal
Il kernel di Ubuntu e tutto il resto lo è
che questo è diverso è un po ‘
la metafora del mescolare e abbinare comunque
anche se Linus aveva questo io questo è questo
conducente per renderlo molto veloce per integrare
patch che gli venivano inviate di più
sistemi di controllo convergenti al momento
calcolò che ne stavano prendendo circa 30
secondi per integrare una patch nel suo obiettivo
era in grado di applicare una patch su tre
secondi o meno ora che non significa
capire la patch e leggerla
e il ragionamento su di esso, ma solo il
processo effettivo di integrazione di
Sto andando a prendere in prestito dal precedente
sistemi di controllo delle versioni attribuiti come
bit keeper e arch e gli altri noi
avere regali e ora ne ha alcuni
caratteristiche che tipo di forse spostare
il gioco un po ‘quando iniziamo
pensando alla funzionalità ramificazione di uno di
le prime cose che ho capito è questo
I rami all’interno di Gear sono
significativamente più leggero rispetto al
strumenti di controllo versione tradizionale che
è venuto prima in sovversione per esempio
la ramificazione è stata un’attività importante perché
creando un ramo normalmente coinvolto in a
tutta la copia di quella fonte in realtà
il server che potrebbe essere significativo
impatto e quindi non solo
creare rami davvero quasi tu avresti
per avere una conversazione su cosa
ciò significava che quando lo facevi
rami ma vogliamo lasciare un ramo
è in giro per un po ‘e non
spesso saresti incoraggiato a usarlo
filiale per molteplici scopi in modo che
ce ne sono tre sono, ad esempio, Dixon
era dovuto in parte al costo della ramificazione
quindi è stato facile avere un ramo e
un sacco di un sacco di rami quelle
sono le cose belle probabilmente avevano un pieno
copia il codice sorgente qui in esecuzione
portatile e questo è un po ‘bello e bello
quindi puoi tipo di commit localmente e
quindi spingere dal codice sorgente locale come
bene e anche la fusione del testo in
github the gate era significativamente migliore
di sovversione sembra il lavoro migliore
di identificare le modifiche nel testo e
lavorando raccogliendo cose come rinomina
e cose del genere intendo essere giusto
la sovversione delle cose è migliorata come
bene
la cosa fondamentale da capire è però
quei rami sono più leggeri e
git e che la fusione testuale ha
stato migliore di alcune delle sorelle
prima ma non è ancora in realtà a
la fusione semantica è creduta
non lavorando su questo ci sono persone fuori
là ora che stanno cercando di guardare
strumenti e origini di fusione e conoscenza della lingua
i sistemi di controllo vanno bene e penso
Spero ad un certo punto in futuro
avremo
strumenti di controllo della versione
che in realtà operano sai il
equivalente di trasformazioni operative in
il codice che conosci piuttosto che quando lo faccio
un rinominare qualcosa semplicemente memorizzando il
effetti collaterali in un file di testo
in realtà la versione controllava il
rinominare operazione allora questo è l’unico
risposta reale Penso che in realtà probabilmente
fare fusioni ma la maggior parte di noi non ha
accesso a quegli strumenti su cui penso molto
la pipa sogna in questo momento, quindi era git
borbottava in quel momento ma non l’aveva fatto
davvero preso a calci in marcia alta in primo luogo
perché la gente non lo stava usando
molto altro che su cose come la
kernel ma poi c’era github e
github è probabilmente uno dice
da solo, ma certamente è un importante
parte del motivo per cui Gate divenne popolare nel 2008
penso che sia stato lanciato un lungo github
e ci sono voluti un po ‘ma loro te
so che il loro terzo post sul blog ha parlato di
stendere il supporto per le cose
chiamata caratteristica richiede il loro pull
richieste così povere richieste sono in realtà
nella versione più cotta di ottenere il loro il
richiesta che la richiesta di pull git sia
in realtà richiede un’operazione di pull che non posso
ricordo bene che il modulo get era
lì per i primissimi giorni ma il
gli sviluppatori di github pensavano di poterlo fare
meglio e implementare il front-end web
e l’idea è che se lo volessi
apportare una modifica a un pezzo di codice cosa
dovresti fare il fork del codice
vuoi fare un cambiamento per te
fai quel cambiamento all’interno di quel ramo
forcella del codice e poi lo diresti
il manutentore così guarda che ho un nuovo
versione ho apportato alcune modifiche al
funzionalità se la dai un’occhiata
e unisci questo cambiamento e questo è
dimostrato di spostare fondamentalmente la strada
il software open-source è stato sviluppato così
c’è un numero di persone che hanno
fatto un bel lavoro visualizzando la fonte
il controllo cambia grandi progetti nel tempo
è piuttosto una cosa bella si torna indietro
guardando i grandi progetti guardare il
cronologia del controllo sorgente puoi vedere tutto
tipi di cose incredibili che accadono uno di
le visualizzazioni che ho trovato di recente
che in realtà è un mio vecchio collega
Joe mi ha sempre indicato in realtà
mostra il tipo di essere di sviluppo
fatto su Ruby on Rails e davvero
cosa interessante succede quando guardi
quel video nel punto in cui il Ruby
su codebase Rails spostato su github
vedi qualcosa di abbastanza interessante
come molti altri strumenti open source
di Ruby on Rails ha funzionato su di te lo sai
avere un nucleo
di comitati che hanno diritti di spingere
in mainline ma prendono anche commit
e cambia da tutto il più ampio
comunità ora che quel processo era una specie di
un po ‘sempre leggermente tortuoso quando
abbiamo avuto le cose come si sa nessuno nel
mondo prima di cambiare richieste come loro
richiama richieste a chi guida la gente
scoperto qui è quando si sono trasferiti
oltre a github la richiesta pull
meccanismo drasticamente abbassato il
barriera all’ingresso per una sorta di non sicuro
committer come in persone che non facevano parte
il core team per essere coinvolto e tu
vedere questa esplosione in crescita nel
numero di comitati coinvolti attivamente
sul progetto Ruby on Rails e quello
quel tipo di quel piccolo colpo di scena
è molto facile per te lavorare sul tuo
cambia in modo sicuro e poi dice alla gente
su di loro e chi è mantenuto è
guarda e applica queste modifiche in a
i modi abbastanza sicuri hanno davvero spostato le cose
così non sorprende in un modo che è
solo molto dopo molto tempo
tempo immagina la crescita meteorica di
github che per tre anni dopo
lanciando erano già di più
successo più popolare passando di più
si impegna sia di Google Code che ora
stato chiuso e fonte per insieme
la fonte in avanti ovviamente è la grande
Papà in quel momento e ora è fantastico
posto se vuoi andare a scaricare
più dove apparentemente è stato risolto
ma certo che stavi parlando
sulla funzionalità ramificazione di funzionalità non valide
la ramificazione era precedente e sostanzialmente tirava
le richieste sono una sensazione di funzionalità
diramando correttamente stai creando una forchetta
del codice su cui stai lavorando che
cambia e poi stai chiedendo di essere
tirato indietro nella differenza sei tu
le richieste di pull think funzionano molto bene quando
hai persone al di fuori di un team principale
chi sta commettendo meno piratical II chi
forse non fanno parte di quel nucleo di fiducia
squadra si avrà la possibilità di farlo
facile per loro di impegnarsi ma tu hai il
capacità anche di controllare quel cambiamento e
integrare quel cambiamento penso che sia un
una cosa sottilmente diversa che non ho davvero
come se non vedessi le persone che lavorano dentro
piccola squadra co-individuata che fa uso di pull
le richieste a loro volta chiedono anche il
domanda qual è il punto che cosa è un sacco
di valore in quella cerimonia, ma per
commettitori non fidati che è in definitiva
quale è la stragrande maggioranza dell’open source
i contributi rappresentano quella attrazione
chiede collo non funziona molto bene e
anche se sì, ci sono alcune potenzialità
rami laterali ribassati che non puoi avere
quelli su committer di fiducia che commettono
davvero molto frequentemente perché loro
siamo
un certo valore di commissioni non sicure così
ha avuto davvero successo e github
stava davvero diventando incredibilmente
responsabilizzando la nostra rappresentazione di come
il codice open source potrebbe funzionare e in realtà
che tipo di commissioni non affidabili possono
lavoro e questo ha portato a cambiamenti simili
viene fornito un sacco di controllo della fonte
i sistemi e le fodere sono ancora arrabbiati
come iniziano le richieste di pull implementate
sai che vogliono dire che sta zitta ah
e poi ovviamente ci fu il flusso
perché se c’è qualcosa che vale la pena fare
che qualcosa stava davvero facendo
lis complicata quindi questa è una panoramica
di come funziona git flow ora git davvero
abbassato il costo della creazione di filiali
e lo ha reso molto più economico e più veloce
e più veloce ed efficiente da creare
filiali e così le persone hanno iniziato a usarlo
implementare diverse varianti sul
funzione meccanismo di ramificazione questo è giusto
una panoramica di come la ramificazione delle funzionalità
può funzionare in modo da avere padrone e nemico
i rami dell’hotfix e abbiamo il
rilasciare i rami e poi abbiamo il
rami di sviluppo e ancora la funzionalità
i rami sono io non capisco tutto questo
perché sono tutti abbastanza stupidi e
in realtà ci sono alcune persone che
piace molto questo modello e poi lo hanno
creato strumenti in cima al flusso git
meccanismo di come lavori ma questo è un
meccanismo formalizzato per fare funzionalità
rami e così il git scorre alto livello
gli script in cima possono davvero aiutarti a provare
e un po ‘di senso di tutto questo, ma io
ho davvero problemi a concettualizzare questo
flusso di lavoro nella mia testa ed effettivamente quando io
è riuscito a sbirciare attraverso la nebbia
mi sembra che cose come il flusso git
stanno effettivamente ottimizzando per un modello
dove è seduto uno sviluppatore
loro stessi lavorano per lungamente
periodo di tempo e fondamentalmente no
siediti con me
questa idea che hai uno sviluppatore che
lavora da solo su un lungometraggio
periodo di tempo la creazione di software
è un’attività sociale è a è a
attività collettiva mi piace l’idea
hai una caratteristica importante
molte persone hanno lavorato su questo
capire come funziona di nuovo aperto
mondo sorgente dove per definizione perché
di geografia a causa della disponibilità di
persone questo è sempre sta per accadere
mettere la struttura del team usando
qualcosa di simile al flusso git sembra strano
me perché sta solo promuovendo e
abilitare il lavoro da soli e a
ramo per un lungo periodo di tempo come
non mi aiuta a spedire il software frequentemente
e integrare spesso e ottengo un po ‘
la gente dice ah no, ma useremo ottenere
flusso ma noi
ti unisci sempre molto velocemente e
fino a quando non ti integrerai molto spesso con
ottenere flussi bene vanno bene così se lo sei
integrando di nuovo in mainline come
ogni giorno perché diavolo hai bisogno di ottenere
il flusso non sembra avere senso per me
Non sono ancora del tutto sicuro del
sweet spot o ottenere il flusso sembra eccessivamente
complicato e molte persone insieme
vai in giro quando contribuisci ad aprire
progetti di origine e per team co-individuati
sembrano esserci modi migliori di lavorare
Sono felice di essere smentiti, ma ogni
foto singola , dovrei spiegarmelo
come funziona il flusso git solo se vuoi
uccidermi
altre cose sono andate avanti anche se come
bene ora abbiamo organizzazioni che sono
fornire attivamente soluzioni da fare
funzione di commutazione più facile quindi dividere il
I / O e lancio scuro sono due dei
i migliori esempi di ciò ora si riducono a
un po ‘con una strana divisione che hanno
alcune caratteristiche davvero interessanti così
funziona è che puoi davvero andare e
configura le tue bandiere la tua applicazione
può raggiungere e afferrare i valori di
queste bandiere dal sistema essenziale è
hai un posto dove puoi immagazzinare
diversi passaggi di configurazione e anche
aggiorna quelle cose in fase di esecuzione e così via
entrambi questi strumenti sono dotati di un SDK
visualizza ora l’integrazione nella tua applicazione
Ho delle vere riserve su
scaricare la funzione contrassegnata per ordinare
di un prodotto basato sul personale affetto come
questo perché alla fine questa cosa ha
essere fuori per il mio sistema a lavorare e
questo è davvero l’accoppiamento
io intendo una squadra di i / o di split certamente
Ho fatto qualcosa per mitigare
quelle caratteristiche ma io sono ancora lo sai
Non sono sicuro, ma d’altra parte loro
rendere molto molto facile per voi
integrare i cavicchi e in realtà costruire
cose davvero interessanti su di esso
lo rendono molto facile, ad esempio
segmentare le bandiere per cliente, quindi se lo desideri
per consentire una serie beta di clienti che si
si può facilmente dire che va bene quel costo
il cliente beta quindi vede il
serie beta di funzionalità e fornitura di quelle
gestione di alto livello fanno anche geo
individuare le caratteristiche di localizzazione in modo da voi
può srotolare alcune funzionalità con determinate
parti del mondo in base all’indirizzo IP
che è una specie di figo, spero anche io
alcuni di voi hanno letto questo è un
Manuale di DevOps scritto per specie da
il DevOps II pionieri persone lì
Jinky e J’s umili John Willis e
Patchett si applicano ovviamente si avvicinò con
il termine DevOps in primo luogo e
in questo libro fanno rivisitare l’argomento
di sviluppo basato sul tronco nel tu
sapere nel 2012 16
il libro quindi 2017 guardando di nuovo al
concetto di sviluppo basato su tronco e
non sorprende che abbiano opinioni
perché il jazz ha scritto continuamente ha scritto
anche questo libro pensavano che dicessero
sullo sviluppo basato sul tronco il primo
affermazione, penso che molti di noi possano essere d’accordo
è piuttosto vero lo sviluppo basato su tronco
come la pratica più controversa
discusso in questo libro ne ho avuto di più
dibattiti religiosi su base tronco
sviluppo e sviluppo di funzionalità rispetto a
qualsiasi altra cosa nella mia carriera vanno a
dì comunque i dati dal burattino
laboratori di stato del diavolo 2015 supporta chiaro
sviluppo basato su tronco ma è più alto
rendimento e migliore stabilità e persino
maggiore soddisfazione sul lavoro e tassi più bassi
di burnout ora c’era un non ha lui
vieni al discorso di Nicole oggi
mani comunque se lo facessi un po ‘
potresti sapere cosa sto per dire
i dati dick fuori lo stato dei laboratori fantoccio
di DevOps Non uso tasca tu chef
che cosa ha a che fare con me in un certo modo?
questo questo tipo di questo sondaggio in corso
che stanno facendo ora per diversi
anni è sempre forse mancato nome
perché penso che ora riguardi argomenti
così ampio che basta chiamarlo DevOps in
un modo potrebbe essere in gioco il suo
significato ma questo studio è stato
guardando l’efficacia di alcuni
pratiche e cultura e comportamento così
quello che stanno facendo è identificarsi
le pratiche e i comportamenti di
team IT ad alte prestazioni e cercando di
capire quali sono le pratiche
statisticamente significativo in termini di
elaborare la correlazione e cose simili
che così guardano fare questi comportamenti
sono questi così sono questi modi di
lo sviluppo di software che portano a
buoni team IT o di alto rendimento
o no ad alte prestazioni squadre i IT
ultima versione dei rapporti disponibili
come un rapporto del 2016 vale sicuramente la pena
leggere è piuttosto conciso e nuovo
la versione sarà disponibile tra sei settimane
la versione 2016 guardando al loro
analisi dice che l’abbiamo trovato
avere rami o forche con molto breve
vite meno di un giorno prima di essere
fusi in tronco e meno di tre
i rami attivi in ​​totale sono importanti
aspetti della consegna continua e tutto
contribuire a prestazioni più elevate
così fa unire il codice nel trunk o
maestro su base giornaliera
quindi questo significa che hanno trovato un
correlazione statisticamente significativa
tra praticando il tronco basato
sviluppo e team IT ad alte prestazioni
questo non vuol dire che non puoi essere un
team IT ad alte prestazioni e ne vedete due
ramificando solo che non è quello che loro
trovato in generale per essere il caso e così
ora sta iniziando a ottenere una sorta di
ricerca abbastanza rigorosa che sta insinuando
ciò su cui alcuni di noi hanno creduto
le nostre esperienze e ho iniziato a vedere
che queste cose potrebbero applicarsi ora io
non è necessario convalidare il tuo
esperienze che potresti avere un
organizzazione che utilizza queste funzionalità
filiali e sta funzionando molto bene
nel qual caso è bello ma lo siamo
iniziare a vedere ora è la ricerca in
il generale mostra che potresti essere
meglio praticare una forma diversa
di sviluppo in modo da sintetizzare te stesso
Non sono necessariamente qui per dirlo
i rami sono intrinsecamente cattivi ora
probabilmente meno male di quanto lo fossero nel
passato Ferranti ha provato a fare branch
gestione in CVS o PVC o fonte MKS
integrita ‘o versioni del team star o
le dimensioni della squadra a stella o SC TSS CCS così
era una buona che ho usato tutti
quei sistemi che ho usato circa tre il
diverso controllo della versione di Microsoft
anche gli strumenti e molti di quelli
le esperienze erano generalmente abbastanza
miserabile e alcuni di loro sono in discussione
rami di rami erano assolutamente orribili
l’unico che non ho mai avuto modo di lavorare con
era chiaro perché mi sono assicurato che io
era ogni volta che arrivava un progetto
dove avrei usato il clearcase lo farei
sii malato quel giorno
quindi i rami sono diventati molto più facili
lavorare con e ottenere come mostrato come come
leggeri possono essere solo facendo
un po ‘di ingegneria intelligente e così alcuni di
le tradizionali sfide che li circondano
sono stati ridotti ma alla fine anche questo
combatte lo stesso problema è che se
stai usando i rami da evitare
integrazione probabilmente non lo sei realmente
andando ad essere ottimizzato per frequenti
consegna di software che non sei
ottimizzazione per l’integrazione precoce
sicuro che il tuo software funziona davvero così
tutti i mezzi usano i rami o le cose delle caratteristiche
come la funzione di uso del codice sperimentale
rami per utilizzare i rami per le cose
come ramificazioni di rilascio sai che abbiamo
unire unidirezionale ma usarli
per ramificazioni di funzionalità e rimangono ancora
Quattordici anni non convinti è un bene
idea continuo a tornare allo stesso tipo
di penitenza che si ripeteva ancora e ancora
il libro di consegna continuo e prima
nel lavoro in giro
integrazione continua si integrano spesso
mantenere le dimensioni del lotto piccole e spedire
il tuo software ha spesso ragione se tu
vogliono spedire software in modo rapido scoprire
se il software funziona e secondo
l’installazione non supportava potenzialmente nemmeno
ridurre il burnout della squadra mentre pratichi qualcosa
probabilmente con lo sviluppo basato sullo shrunk
ancora la risposta giusta anche dopo tutto
i cambiamenti e i cambiamenti che abbiamo avuto in
la tecnologia ora sono sicuro che ci sono
domande e abusi va bene io sono un
adulta quindi ci sono domande
lì abbiamo una domanda nel mezzo
lì abbiamo tempo per iniziare le domande
e sono certo che tu abbia domande
e le persone hanno domande che stanno andando
volere chiedere a loro e sfortunatamente noi
sono completamente fuori tempo ma quello
significa che puoi fare l’ aggiornamento tradizionale
il palco e vieni a chattare sì, lascia
impac è l’ultima metà del primo sì, quindi lo farò
vieni a rispondere alle domande quaggiù se
non puoi lanciare abusi su Sam human on
il Twitter ma grazie mille
per tempo
[Applausi]
tu
[Applausi]

Please follow and like us: