Come si crea un buon software?

Come si crea un buon software? Blog IMS
Squadra IMS Kai-Uwe Schiffer
Contributo di: Kai-Uwe Schiffer

Kai-Uwe Schiffer è responsabile dello sviluppo software. Con il suo team, è responsabile dell'implementazione delle esigenze e delle innovazioni dei clienti in soluzioni solide e interessanti. La sua costante preoccupazione è la costante modernizzazione delle attuali linee di prodotti.

Come si crea un buon software? A parte il fatto che anche le donne creano un buon software (almeno qui a IMS) alla domanda non è così facile rispondere. Perché il software è complesso. E un buon software? Paradossalmente, è meno complesso. Tuttavia, crearli è più complesso. Perché per un buon software c'è molto altro da fare oltre a scrivere codice.

Pensaci prima

Il software è un po 'come ovunque nella vita: prima pensa, poi agisci - e ovviamente il codice. Affinché il codice rimanga pulito e il più flessibile possibile, ogni tipo di considerazione deve essere fatta prima di ogni sviluppo:

  • Cosa dovrebbe fare il software?
  • Qual è il nucleo della soluzione?
  • Quali elementi devono essere programmati nel modo più affidabile possibile?
  • Quali elementi devono essere programmati nel modo più flessibile possibile?
  • Cosa deve essere collegato, letto ed emesso?
  • Come posso combinare in modo più sensato i vari elementi in un'unità funzionale?

Tutti sono preoccupati per domande di questo tipo Software Developer ampiamente prima di scrivere la prima riga. A proposito, a queste domande si può rispondere ancora meglio in una squadra, quindi il principio dei quattro (o sei o otto) occhi aiuta a identificare ed eliminare i possibili ostacoli nella progettazione in una fase iniziale.

La testa come strumento

Certo, il programmatore ha bisogno di strumenti. Un buon programmatore può padroneggiare ogni strumento. Il principio è simile a quello dell'artigiano universale: può anche lavorare con qualsiasi strumento, ma deve anche avere le conoscenze appropriate per ogni strumento.

Ma il vero strumento è la testa. È qui che vengono creati i costrutti astratti di ogni software. E i buoni costrutti sono belli! Il piacere nella bellezza del software è un raro vantaggio nel campo professionale degli sviluppatori di software. Quindi sia le competenze linguistiche da un lato, sia le capacità di riconoscimento dei modelli e la capacità di astrarre dall'altro sono importanti. Nel dettaglio questo significa:

lingue

Sia C#, Java, Python, HTML5, Base, Rubino - se vuoi programmare, devi conoscere le tue lingue. È come in vacanza: senza parole, senza panini. La conoscenza del linguaggio è quindi elementare. Non posso esprimere ciò che non so. Ciò che non posso esprimere, non posso programmare.

Riconosci i modelli

Se il vocabolario è corretto, il passaggio successivo è il riconoscimento dei pattern. Esistono schemi in forme completamente diverse. Un punto molto semplice ma molto importante è, ad esempio, "Non ripetere te stesso"! Tutto ciò che è uguale o simile deve essere programmato una sola volta, ma deve quindi essere progettato in modo tale da poter essere accessibile e utilizzato da tutti gli elementi che richiedono questa funzione.

pensiero astratto

Il riconoscimento di modelli include anche il riconoscimento di sequenze funzionali correlate e la possibilità di implementarle di conseguenza. Allo stesso tempo, ciò richiede la capacità di astrazione, cioè la capacità di costruire la struttura dell'intero prodotto nella tua testa. Perché solo chi ha una visione completa del proprio compito è in grado di definire la soluzione migliore.

Logica con e senza matematica

Un'altra parola chiave dovrebbe essere menzionata qui: logica. Se vuoi programmare, devi essere in grado di pensare logicamente, perché la domanda pende sempre su tutto: quale azione ha quali conseguenze? La struttura di base del pensiero logico viene appresa a scuola in matematica, che può quindi essere importante per gli sviluppatori di software - ma non è obbligatoria, perché sebbene il pensiero sia simile, non è lo stesso. E c'è anche una logica complessa, ad esempio, in filosofia (e non solo in Ludwig Wittgenstein) Tractatus logico philosophicus).

principi di progettazione

Nel passaggio successivo, seguono i principi di progettazione. Questi principi per la progettazione di un buon software sono cambiati a malapena nel corso degli anni, nonostante enormi cambiamenti tecnici e progressi: un approccio teorico generalizzato è già stato trovato nella programmazione orientata agli oggetti e molti dei risultati si applicano anche al lavoro con linguaggi non orientati agli oggetti.

Alcuni esempi sono:

  • Capsula ciò che è diverso.
  • Indirizzare le interfacce invece di programmare un'implementazione.
  • Ogni classe dell'applicazione dovrebbe avere solo un motivo per cambiare.
  • Le classi dovrebbero essere aperte alle estensioni, ma dovrebbero escludere le modifiche (OCP).
  • Evita i duplicati nel codice estraendo la funzione principale che deve essere soddisfatta (principio DRY)
  • Ogni oggetto dovrebbe avere una sola funzione e ogni metodo di un oggetto dovrebbe mirare principalmente a svolgere questa funzione (SRP)
  • Le sottoclassi dovrebbero essere utilizzabili come oggetti della loro classe base (LSP)

Il più grande non in questo contesto è ancora: non scrivere un blocco monolitico. Di conseguenza, il più grande è: scrivere in unità funzionali strutturate e significative.

E un altro principio è essenziale per la progettazione del software: sii flessibile con le modifiche! I cambiamenti avvengono costantemente. Pertanto, quando si progetta un software, è importante prestare attenzione a quali parti cambieranno e quali no. Coloro che cambieranno devono essere progettati in modo che i cambiamenti siano facili da implementare e le loro funzionalità siano solide ai cambiamenti.

pertanto:

Non c'è niente di buono, a meno che tu non lo faccia, dicono. Questo vale anche per software - più è complesso, più. E il buon software ora?

In IMS, teniamo sempre gli occhi aperti in modo che il nostro software funzioni nel modo più affidabile possibile, funzioni in modo ottimale, sia facile da usare e crei vantaggi a lungo termine.

L'attenzione si concentra sui moderni standard di programmazione, nonché sugli ultimi sviluppi in lingue e sistemi di terze parti. Un'architettura a 3 livelli è obbligatoria quanto l'usabilità. Inoltre, il design ottimizzato per i dispositivi mobili è parte integrante dell'ottimizzazione del Web e molto altro.

Questo è probabilmente il motivo per cui IMSWARE ha così tanto successo sul mercato.

 

I migliori saluti

ksc Come creare un buon software »RIB IMS

Lo sviluppo di software PS fa per te? Dai un'occhiata alla nostra offerte di lavoro attuali over ...

 

La tua valutazione?

media 4.9 / 5. Numero di voti: 8

Sii il primo a votare :-)

Ottimo, grazie mille!

Forse vuoi seguirci su ...

Siamo spiacenti che questo post non ti sia piaciuto.

Come possiamo migliorarlo?

notizie blog
Lettura precedente
IMS a ServParc nel giugno 2019
Lettura successiva
51a riunione annuale dell'ATA