Stavo facendo una revisione del codice per un mio collega e mi sono imbattuto in un codice che ha immediatamente inviato una bandiera rossa nella mia mente.
<Checkbox label={translationContext.getTranslation(checkboxLabel)}/>
... inside functional component
const getNextSection = () => {
valid = context.actions.validateCurrentSection()
if(!valid){
return context.actions.showErrors()
} else {
return context.actions.getNextSection()
}
}
Questo ha introdotto anche altri problemi. E se dovessimo spostare queste funzioni in un contesto diverso in futuro? Avremmo bisogno di rintracciare ogni volta che si accede a quella funzione tramite context.actions.functionIWantToMovee cambiare il contesto su cui viene chiamata la funzione, il che significa che dovrei dare a quel componente pieno accesso a un SECONDO contesto. Tutto in modo da poter accedere a un dato o chiamare una singola funzione.
Ho dato una rapida colpa per vedere chi avrebbe potuto implementare uno schema così irresponsabile e, ovviamente, sono stato io. Chiaramente questo è un modo orribile di fare le cose. Avevamo bisogno di una soluzione migliore.
Una delle cose in cui React è davvero bravo è la separazione delle preoccupazioni. Nessuna caratteristica lo incarna più dei ganci. Sono tornato a quella riga che originariamente causava le bandiere rosse, ho ampliato il codice per fornire un po' più di contesto:
import React, {useContext} from "react"
import {TranslationContext} from "../contexts/translation-context.tsx"
const CheckboxGroup = ({options}) => (
translationContext = useContext(TranslationContext)
<div>
{options.map(option => (
<Checkbox label={translationContext.getTranslation(option.text) />
))
}
</div>
)
import React from "react"
import {useTranslate} from "../translate"
const TranslatedCheckbox = ({label}) => {
const translatedValue = useTranslate(label)
return <Checkbox label={translatedValue} />
}
const CheckboxGroup = ({options}) => (
<div>
{options.map(
option => <TranslatedCheckbox label={option.label}/>
)
}
</div>
)
Volevo solo notare che i frammenti di codice qui presentati sono esempi inventati usati per sottolineare un punto, modificati per mostrare solo le parti rilevanti. Sono consapevole che non funzioneranno così com'è. Speriamo che il punto arrivi ancora.
Introduzione Un ictus è un'emergenza medica che può colpire chiunque in qualsiasi momento. Si verifica quando il flusso sanguigno verso una parte del cervello viene interrotto, portando a un'improvvisa perdita della funzione cerebrale.
Il test è una parte essenziale dello sviluppo del software. Assicura che il codice sia affidabile, funzioni come previsto e riduce la probabilità di errori.
Ciò che è vecchio ora è di nuovo nuovo e ciò che prima era la cosa luccicante e scintillante ora sembra noioso. Non sto parlando dei jeans JNCO che stanno tornando in auge tra i ragazzi fighi del centro insieme ad altre mode di fine anni '90.
Nel mondo frenetico e competitivo di oggi, la propria carriera gioca un ruolo significativo nella crescita personale, nella stabilità finanziaria e nella soddisfazione generale della vita. Tuttavia, molte persone si trovano intrappolate in un ciclo inesorabile di stagnazione e insoddisfazione, che si esauriscono gradualmente nella loro vita professionale.
[Avviso di attivazione: questo saggio include schermate di persone che elogiano l'assassino di Jordan Neely.] I funzionari delle forze dell'ordine hanno finalmente - e forse con riluttanza - accusato Daniel Penny, l'uomo che ha soffocato Jordan Neely fino alla sua morte, per quell'omicidio.
Nel 2022, con il rilascio di GPT-3, l'abilità di scrittura sembra diventare meno importante. Con l'intelligenza artificiale, anche le persone con una scrittura scadente possono generare personale di qualità.