Press "Enter" to skip to content

Separation of concerns RANT – MPJ’s Musings – FunFunFunction #47


buon lunedì mattina sono mpj e tu sei
guardando la fun fun fun function così oggi siamo
andare a fare un due e un APU doveva nostro
stiamo andando, chiedo alla gente di mandarmi
domande su twitter my twitter
conto è da qualche parte qui MP Jamie così
le persone mi hanno mandato alcune domande e io sono
andando a rispondere a loro va bene questo di
Juan Martinez, cosa ne pensi?
la tendenza all-in Jas CSS e HTML in
JavaScript haha ok ah siamo non siamo
andando a fare un episodio di domande e risposte più questo
è che sento che questo sarà un
separazioni di preoccupazioni inaffidabili per il
persone che potrebbero non avere familiarità con
questo ah ci fu qualche anno fa
La versione di Facebook reagisce eh cosa loro
ha iniziato a fare con reagire che era molto
controverso al momento e messo molto
di persone che non reagivano era loro
misto HTML e JavaScript nella stessa
file e dicendo che va bene mescolare
HTML e e JavaScript nella stessa
file che era in quel momento un po ‘come
dicendo che la terra era rotonda nel
il tempo in cui la gente credeva fosse piatta
la gente era cosa diavolo sei tu
pazzo e dovrei dire che ero uno di
quelle persone ero molto scettico riguardo
reagire quando l’ho visto per la prima volta davvero
davvero odiato perché
offeso la mia religione di separazione di
HTML CSS e JavaScript in questi
secchi era così che hai fatto le cose ma
dopo aver ascoltato le loro motivazioni per
un po ‘prima che IES iniziasse a venire, facciamolo
pensa un po ‘ al motivo per cui noi
iniziato come un settore – ha iniziato a
HTML separato e CSS e e
JavaScript in giacca e cravatta in file separati
il primo posto nella programmazione c’è
questo concetto che si chiama divide e
Conquer è anche spesso definito anche
come separazione delle preoccupazioni e viene
dal fatto che come umano perché
i programmatori sono umani, c’è un limite
quantità di spazio cognitivo nel tuo cervello
come alcune persone possono solo pensare
una cosa alla volta e forse un po ‘
le persone possono anche pensarci e forse
alcune persone possono persino tenere tre o quattro
o cinque cose in testa a a
tempo ma non c’è nessun essere umano
può contenere un 10 o 30 o 40 o cento
cose nella tua mente allo stesso tempo così
abbiamo bisogno di essere in grado di
separare i nostri programmi in modo che possiamo
pensa a una singola parte alla volta così
è una tecnica consolidata tra
programmatori è una delle prime cose
che impari quando si tratta
strutturare il tuo software che quando
sei di fronte a un grosso problema un grande
problema peloso sei bene tu lo sei
come mangiare un elefante per iniziare
intaccando neanche un po ‘alla volta
fondamentalmente trovi un modo per romperlo
grosso problema in tanti tanti tanti minuscoli
problemi e tu porti grande struttura
in modo che tu possa pensare a uno di quelli
i problemi sono come separare separatamente e
Conquer è spesso parlato di come
separazione delle preoccupazioni abbiamo questo grande
problema questa grande preoccupazione e che noi
separare in tante piccole preoccupazioni
che non sono spaventosi così che possiamo
pensa a queste preoccupazioni separate
individualmente ora la parte difficile è come
come separi queste cose
secondo quali criteri qual è il
preoccupazioni individuali quindi la maggior parte dei programmatori
conoscere la separazione delle preoccupazioni e
desideralo e vuoi farlo nel loro
software ma tu potresti essere tu
non necessariamente essere in grado di farlo per
istanza potresti essere uno sviluppatore junior
e la separazione delle preoccupazioni potrebbe essere a
nuovo elemento per te sai che sei
suppongo di farlo ma non lo sei
esperto nel farlo così tu non puoi
vedere dove come rompere questo grande problema
in più piccoli perché tu
non vedere esattamente le cuciture per così dire
ma potrebbe anche essere che tu sia un
programmatore esperto e hai fatto
questo molte volte prima ma forse
sei stanco o forse ti piace solo
non ho pensato a questo problema
problema ancora abbastanza così che tu te
non riesco a vedere gli alberi nella foresta
ancora e quando sei in questa situazione
dove vuoi separare le preoccupazioni ma
non sei in grado di vedere come si fa
molto facile cadere nella trappola del fare
qualcosa che sembra solo di essere
separando le preoccupazioni e nel caso di
il dibattito JavaScript HTML HTML che è
contenuto qui nella tua intervista
parti della tua applicazione è la vista
separato dalla tua logica aziendale che
potrebbe essere roba del genere se è un
sistema di e-commerce sarebbe come il
sistema di ordinazione che scende nel
database e mette gli ordini come pagato
invia e-mail o dice al sistema di pagamento
che questo dovrebbe dovuto dovremmo
elaborare questo pagamento che sul credito
carta che abbiamo ottenuto dalla vista
livello e all’interno della logica aziendale
potrebbe esserci ancora un po ‘di prosperità in
termini come multe noi come un pagamento
sistema qui che potrebbe essere in grado di essere
contenuto in modo che non lo sappia
su tutte le cose nel business
la logica possiamo far sì che possa elaborare solo
pagamenti in questo modo che possiamo pensare
solo pagamenti quando lavori
quel modulo non abbiamo bisogno di mantenere questo
intero livello aziendale nelle nostre teste
ma il problema un sacco di gente aveva poi
secondo te era quello che ti piace
organizzare la vista, quindi come si rompe
quelle parti distano perché come dove sono le
cuciture nella vista che è equivalente a
cose come il sistema di pagamento all’interno
la tua logica di business come industria noi
erano confusi su questo per molto tempo
non sapevamo davvero come rompere
la vista parte in modo che potrebbe potrebbe
pensa a parti più piccole di esso
individualmente e questo ci ha frustrati
perché era troppo a cui pensare
quindi sì ah abbiamo appena iniziato lo separa
in qualche modo era come se fossimo in questo
Questo è con questo workshop di meccanica e
c’erano parti dappertutto e
non sapevamo come funzionavano o come
hanno interagito e abbiamo bisogno di
organizzare e in qualche modo e nel nostro
frustrazione abbiamo iniziato a organizzare
li dal colore noi da come hanno guardato ah
e mettiamo quelli rossi in the in
il secchio rosso e quelli verdi nel
secchio verde e blu in un blu
secchio e non ha davvero fatto
qualsiasi cosa più facile da trovare perché era un
ordinamento senza senso era solo da come
le cose sembravano ah ma lo sentivo meglio
sentivo come se avessimo organizzato le cose e noi
abbiamo creato l’ordine ma in realtà noi
dovevo saltare molto di più
tra tra i diversi colori
secchi e cercare in loro e
questo è quello che abbiamo fatto con HTML e CSS e
JavaScript li abbiamo messi in file separati
e abbiamo decretato che questo è il modo migliore
per organizzare le cose ora sono le cose
ordinato ma in realtà abbiamo imparato oltre
tempo ma questo non è un modo sensato di
organizzare le cose ora abbiamo bisogno di
ricorda che il motivo principale per cui noi
stanno facendo organizzazione del codice nel primo
il posto è così che possiamo fare la separazione di
preoccupazioni in modo da poter ridurre il carico
sul nostro cervello permettendoci di pensare
su sottoinsiemi più piccoli
del nostro dominio problematico come il più piccolo
problemi dei nostri grandi grossi problemi così
i problemi sono contenuti in piccole unità
e non mescolato con ciascuno
altro troppo in modo che possiamo pensare
su di esso da quella prospettiva che divide
cose in HTML CSS e JavaScript è
come completamente privo di senso lasciami mostrare
il tuo CSS è j ass, quindi questa è la nostra opinione
giusto HTML HTML e JavaScript ora lo facciamo
diciamo che abbiamo un problema con il nostro punto di vista
e dobbiamo cominciare a pensarci
ora potrebbe essere che in alcuni casi
che il tuo problema è che è contenuto solo
nel lavoro nel diritto di CSS potrebbe
sii che il problema è proprio qui
alcuni pixel che devi spostare
comunque ah nella mia esperienza e penso
nei problemi di esperienza della maggior parte delle persone o
comprendono queste cose di questo tipo
problemi che riguardano HTML e HTML
JavaScript sono problemi molto più comuni
di questo tipo di problema ed è per questo
questa organizzazione per tipo di file o lingua
il tipo non ha senso perché questo
ti farà saltare in mezzo
questo queste cose tutto il tempo quindi lasciatemi
disegnare un altro come un’altra preoccupazione
potrebbe essere come questo o un’altra preoccupazione
potrebbe essere così ora se siete d’accordo
io che queste aziende sono le nostre preoccupazioni
e questa preoccupazione spanning è più comune
rispetto alla preoccupazione che riguarda solo uno
tipo di tecnologia di cui hai bisogno se tu
d’accordo con che anche tu devi essere d’accordo
con me sul fatto che questo
organizzazione questo tipo di separazione
questa non è separazione per preoccupazione
è solo la separazione di come sai
colore o qualcosa è solo
ultimamente arbitrario non ti aiuterà
pensa a queste preoccupazioni individualmente
in realtà ti ostacolerà perché tu
dovrà saltare tra questi contesti
tutto il tempo se qualcuno ti dice questo
separazione CSS HTML e JavaScript che
questa è la separazione delle preoccupazioni allora
loro ti stanno prendendo in giro
sapere cosa separazione degli interessi significa che
pensa che HTML e JavaScript
separazione religiosa che ero una volta a
parte del ricordo è un’altra marca di
un’altra cosa che è abbastanza diffusa
e penso che sia molto molto dannoso
consiglio bene molto dannoso ma è molto
stupido e improduttivo e questo è e via
funzioni solitarie o cattive questo è molto
consiglio molto molto pessimo ora non capisco
mi sbaglio un sacco di codice veramente brutto è
scritto in questi lunghi come una esecuzione
funzioni che sono impossibili da
districare o capire qualcosa
ma la gente confonde questo, ma il che il
fatto che è solo quello che ha
qualsiasi cosa abbia a che fare con ciò e sento gente
dare consigli come non dovresti avere
funzione che è più lunga di una pagina o
qualche numero di linea arbitraria che è
assolutamente non importante è solo
colore che è solo come stanno le cose che
è solo che è solo un’organizzazione
si sente come organizzazione ma non è davvero
separazione delle preoccupazioni ora davanti a te
tiri fuori i forconi non sono contrario
estrazione della funzione di estrazione della funzione
è fantastico è molto molto utile
strumento ma quello che voglio che tu realizzi qui
che ci sono due tipi di funzioni
l’estrazione quella cattiva e quella buona
diciamo che abbiamo come questo è un
grande problema questo
è una grande preoccupazione questo è il tuo culo grosso
file che ha a che fare con qualcuno che conosci
pipeline di dati o qualunque sia questo file
diventando ingombrante e abbiamo bisogno di un modo per
rompendolo in pezzi in modo che lo faccia
rendere più facile per noi pensare a questo proposito
ora buona estrazione di funzioni
sta notando che abbiamo un problema
questo è è è sparso qui
e qui qui e qui e ci rendiamo conto
che possiamo spostare questo codice in uno solo
bloccare invece di averlo diffuso
sopra il file in modo che possiamo pensare
questo libro separatamente potremmo anche
notare che questa è una cosa
non è davvero un’estrazione ma è così
separazione delle preoccupazioni anche se
non abbiamo rimosso nulla di fuori
il file in una funzione che abbiamo appena
spostato il codice in modo che sia
nel posto giusto potremmo anche notare
che c’è una funzione aaa qui
e questo è duplicato qui e noi
anche notare che è un concetto generale
come potrebbe essere una sorta di stringa
operazione a cui non è realmente collegato
questo dominio problema che ho fatto potrebbe
qualcosa potrebbe essere come invertire una stringa o
upper casing una stringa o capitalizzazione
la prima lettera per esempio e noi
rendersi conto che sì, questo può essere spostato in a
file completamente diverso e lo facciamo
creiamo una funzione e qui sopra
un file separato e lo chiamiamo da
il file perché questo è un piccolo
contenuto problema che è generale che possiamo
spostalo fuori dal file e lo è anche
molto descrittivo per esempio come
capitalizzato vedendo quella chiamata in
il nel codice si ottiene quello che è da
solo guardando la chiamata che non hai
per andare nel file e capire le cose
al fine di utilizzare in maiuscolo nel tuo in
il tuo grande file così è buono
estrazione della funzione
abbiamo effettivamente separato una preoccupazione
in modo che abbiamo una cosa in meno da pensare
ma parliamo di un brutto modo di
facciamo l’estrazione delle funzioni quindi abbiamo molto
di codice abbiamo del codice qui che abbiamo
qualche codice qui abbiamo del codice qui
e una cosa molto semplice da fare è iniziare
facendo come oh questo è così tanto codice
basta spezzarlo nei capitoli, prendiamolo
questa parte qui e dare una funzione
nome e metterlo in una funzione e poi
abbiamo solo una riga di codice lì e
controlliamo questo e lo chiamiamo a
funzione e prendiamo questo e lo chiamiamo
una funzione in modo che abbiamo appena come a
parte così uno che lo chiama per un dato
terza parte aggiungi / modifica – chiamandola ma
con nomi veri per tipo di quello che fanno
prima di tutto è abbastanza dispendioso per te
potrebbe fare questo proprio come avere un
commentare in cima a ciascun blocco che non è così
è necessario aggiungere una funzione per farlo
stai solo aggiungendo più area API di superficie
senza una buona ragione
ma anche se scontiamo che lo sei anche tu
rendendo il codice più difficile ragionare su
per la stessa ragione che ci è piaciuta
è difficile ragionare nell’HTML
Caso CSS e JavaScript perché il tuo
dominio del problema che non hai separato da
preoccupazione che hai impostato giusto allora credo
qualche artefatto visivo che non hai
correttamente pensato a come se questo
l’estrazione mi aiuterà in realtà
pensare a parti più piccole del
applicazione e quando ti piace questo
tipo di estrazione della mano ondulata
finisci in una situazione in cui tu
renditi conto che vai in questo metodo
questa funzione qui e guardate
il codice e quando lo fai ti rendi conto
che hey ho bisogno di andare in questa funzione
per capire cosa
sta succedendo prima per
capire il contesto che questo
la funzione funziona ed è quando tu
senti quella sensazione se quella sensazione colpisce
questo significa che hai fatto un male
estrazione e probabilmente dovresti rotolare
che indietro e inline di nuovo fino a te
può trovare le parti reali che sono
utile per sbloccare che sono effettivi
preoccupazioni che possono essere separate perché
in questo caso hai il problema
lascia che disegni con la penna nera
perché questo rende molto più chiaro ah
è che hai preoccupazioni che si estendono come
questo o forse così ne hai un po ‘
problemi che si estendono come solo mi piace
ma alla fine devi farlo
pensare a queste cose prima come
queste sono le cose che stai provando
a pensarci separatamente e se tu
basta fare questo strano come modi arbitrari
di rompere le cose in funzioni
che non sono veramente problematici
finirai solo saltando fuori
dentro e fuori dalle funzioni tutto il tempo e
saltare giù stacktrace è un parvenu
solleva per trovare un problema
è la mia corsa per oggi in giro che io mai
ho avuto molte volte prima e avrò
di nuovo assicurati che quando lo sei
organizzando e separando il tuo codice in
le parti si assicurano che tu stia separando
dalle tue reali preoccupazioni e non dalle tue
separandolo hai appena visto un
episodio di fun fun function questo è un
programmazione mostra che rilascio ogni
Lunedì mattina o 800g tempo mt quindi cosa
sono i tuoi pensieri su questo argomento per favore
commentare in basso e risponderò o
qualcuno dei tuoi colleghi o spettatori
forse se tu forse non hai qualcosa
altro da dire si prega di controllare il commento
campo comunque e vedere se qualcuno lì
come se potessi chiarire qualcosa per
qualcuno
Richard, tocca questo
stanno bene hanno detto che dovresti
iscriviti a mmm PJ fino al prossimo lunedì
mattina grazie
Please follow and like us: