Hoe maak je goede software?

Hoe maak je goede software? IMS-blog
IMS-team Kai-Uwe Schiffer
Bijgedragen door: Kai-Uwe Schiffer

Kai-Uwe Schiffer is hoofd van softwareontwikkeling. Met zijn team is hij verantwoordelijk voor de implementatie van klantvereisten en innovaties in robuuste en aantrekkelijke oplossingen. Zijn voortdurende modernisering van de huidige productlijnen is zijn speciale zorg.

Hoe maak je goede software? Afgezien van het feit dat vrouwen ook goede software maken (althans hier bij IMS) de vraag is niet zo eenvoudig te beantwoorden. Omdat software complex is. En goede software? Paradoxaal genoeg is het minder complex. Ze maken is echter complexer. Omdat er voor goede software veel meer te doen is dan alleen code schrijven.

Denk eerst na

De software is een beetje zoals overal in het leven: eerst denken, dan doen - en natuurlijk code. Om ervoor te zorgen dat code schoon en zo flexibel mogelijk blijft, moeten vóór elke ontwikkeling allerlei overwegingen worden gemaakt:

  • Wat moet de software doen?
  • Wat is de kern van de oplossing?
  • Welke elementen moeten zo robuust mogelijk worden geprogrammeerd?
  • Welke elementen moeten zo flexibel mogelijk worden geprogrammeerd?
  • Wat moet er worden aangesloten, ingelezen en uitgevoerd?
  • Hoe combineer ik de verschillende elementen op de meest zinvolle manier tot een functionele eenheid?

Iedereen houdt zich bezig met dit soort vragen software Developer uitgebreid voordat u de eerste regel schrijft. Trouwens, deze vragen kunnen nog beter in een team worden beantwoord, dan helpt het vier- (of zes- of acht-) ogen-principe om mogelijke struikelblokken in het ontwerp in een vroeg stadium te identificeren en te elimineren.

Het hoofd als hulpmiddel

Natuurlijk heeft de programmeur hulpmiddelen nodig. Een goede programmeur beheerst elke tool. Het principe is vergelijkbaar met dat van de universele vakman: hij kan ook met elk gereedschap werken, maar moet ook over de juiste kennis voor elk gereedschap beschikken.

Maar het echte hulpmiddel is het hoofd. Hier worden de abstracte constructies van elke software gemaakt. En goede constructies zijn leuk! Het plezier in de schoonheid van software is een zeldzame bonus in het professionele veld van softwareontwikkelaars. Zowel taalvaardigheden enerzijds als vaardigheden voor patroonherkenning en abstractievermogen anderzijds zijn belangrijk. In detail betekent dit:

talen

Of C#, Java, Python, HTML5, Basic, Ruby - als je wilt programmeren, moet je je taal (talen) kennen. Het is net als op vakantie: zonder woorden, geen rollen. Kennis van taal is daarom elementair. Ik kan niet uitdrukken wat ik niet weet. Wat ik niet kan uitdrukken, kan ik niet programmeren.

Patronen herkennen

Als het vocabulaire correct is, is de volgende stap patroonherkenning. Er zijn patronen in totaal verschillende vormen. Een heel simpel maar heel belangrijk punt is bijvoorbeeld: "Herhaal jezelf niet"! Alles dat hetzelfde of soortgelijk is, hoeft slechts eenmaal te worden geprogrammeerd, maar moet vervolgens zo worden ontworpen dat het toegankelijk is voor en wordt gebruikt door alle elementen die deze functie vereisen.

abstract denken

Patroonherkenning omvat ook het herkennen van gerelateerde functionele sequenties en deze dienovereenkomstig kunnen implementeren. Tegelijkertijd vereist dit de capaciteit voor abstractie, d.w.z. de mogelijkheid om de structuur van het hele product in uw hoofd op te bouwen. Omdat alleen degenen die een volledig overzicht van hun taak hebben, in staat zijn om de beste oplossing te definiëren.

Logica met en zonder wiskunde

Een ander sleutelwoord moet hier worden genoemd: logica. Als je wilt programmeren, moet je logisch kunnen denken, omdat de vraag altijd over alles hangt: welke actie heeft welke gevolgen? De basisstructuur van logisch denken wordt op school geleerd in de wiskunde, wat daarom belangrijk kan zijn voor softwareontwikkelaars - maar niet verplicht is, want hoewel het denken vergelijkbaar is, is het niet hetzelfde. En er is ook complexe logica, bijvoorbeeld in de filosofie (en ook niet alleen in Ludwig Wittgenstein) Tractatus logico philosophicus).

ontwerpprincipes

In de volgende stap volgen de ontwerpprincipes. Deze beginselen van goede voor design software hebben nauwelijks veranderd door de jaren heen ondanks enorme technologische veranderingen en voorschotten een universele theoretische benadering is al gevonden in object-georiënteerd programmeren, en veel van de bevindingen ook gelden voor het werken met niet-objectgeoriënteerde talen.

Enkele voorbeelden zijn:

  • Capsule wat anders is.
  • Adresinterfaces in plaats van een implementatie te programmeren.
  • Elke klasse van uw toepassing moet slechts één reden hebben om te wijzigen.
  • Klassen moeten openstaan voor extensies, maar moeten wijzigingen (OCP) uitsluiten.
  • Vermijd duplicaten in de code door samen te vatten welke kernfunctie moet worden vervuld (DRY-principe)
  • Elk object moet slechts één functie hebben en elke methode van een object moet vooral gericht zijn op het uitvoeren van deze functie (SRP)
  • Subklassen moeten bruikbaar zijn als objecten van hun basisklasse (LSP)

Het grootste niet in deze context is nog steeds: schrijf geen monolithisch blok. Het grootste probleem is dienovereenkomstig: schrijf gestructureerd en in zinvolle functionele eenheden.

En een ander principe is essentieel als het gaat om softwareontwerp: wees flexibel met veranderingen! Veranderingen vinden voortdurend plaats. Daarom is het belangrijk om bij het ontwerpen van software op te letten welke onderdelen wel en welke niet zullen veranderen. Degenen die zullen veranderen, moeten zo zijn ontworpen dat de veranderingen eenvoudig te implementeren zijn en hun functionaliteiten bestand zijn tegen veranderingen.

daarom:

Er is niets goeds, tenzij je het doet, zeggen ze. Dat geldt ook voor software - hoe complexer, hoe meer. En hoe zit het nu met de goede software?

Bij IMS houden we altijd onze ogen open, zodat onze software zo betrouwbaar mogelijk werkt, optimaal presteert, gemakkelijk te gebruiken is en voordelen op lange termijn oplevert.

De focus ligt op moderne programmeerstandaarden en de nieuwste ontwikkelingen in talen en systemen van derden. Een drieledige architectuur is net zo verplicht als bruikbaarheid. En mobielvriendelijk ontwerp is er net zo goed onderdeel van als weboptimalisatie en nog veel meer.

Dit is waarschijnlijk de reden waarom IMSWARE zo succesvol is op de markt.

 

Met vriendelijke groeten

ksc Hoe maak je goede software »RIB IMS

PS-softwareontwikkeling is jouw ding? Kijk dan eens naar de onze huidige vacatures meer dan ...

 

Uw beoordeling

gemiddelde 4.9 / 5. Aantal stemmen: 8

Beoordeelt u als eerste :-)

Geweldig, heel erg bedankt!

Misschien wil je ons volgen op ...

Het spijt ons dat je dit bericht niet leuk vond.

Hoe kunnen we dit verbeteren?

nieuws blog
Vorige lezing
IMS bij ServParc in juni 2019
Volgende lezing
51e jaarlijkse vergadering van de ATA