Hvordan laver du god software?

Hvordan laver du god software? IMS-blog
IMS team Kai-Uwe Schiffer
Bidraget af: Kai-Uwe Schiffer

Kai-Uwe Schiffer er leder af softwareudvikling. Med sit team er han ansvarlig for implementering af kundekrav og innovationer i robuste og attraktive løsninger. Konstant modernisering af de nuværende produktlinjer er hans særlige bekymring.

Hvordan laver du god software? Bortset fra det faktum, at kvinder også laver god software (i det mindste her kl IMS) spørgsmålet er ikke så let at besvare. Fordi software er kompleks. Og god software? Paradoksalt nok er det mindre kompleks. Det er dog mere kompliceret at oprette dem. For for god software er der meget mere at gøre end bare at skrive kode.

Tænk først

Softwaren er lidt som overalt i livet: først tænk, derefter handle - og selvfølgelig kode. Så denne kode forbliver ren og så fleksibel som muligt, skal alle former for overvejelser tages forud for hver udvikling:

  • Hvad skal softwaren gøre?
  • Hvad er kernen i løsningen?
  • Hvilke elementer skal programmeres så robust som muligt?
  • Hvilke elementer skal programmeres så fleksibelt som muligt?
  • Hvad skal der tilsluttes, læses ind og udsendes?
  • Hvordan kombinerer jeg de fleste elementer mest fornuftigt i en funktionel enhed?

Alle er optaget af spørgsmål af denne art Software Developer omfattende, før du skriver den første linje. Forresten, disse spørgsmål kan besvares endnu bedre i et team, så hjælper fire- (eller seks- eller otte-) -princippet med at identificere og fjerne mulige snubleblokke i designet på et tidligt tidspunkt.

Hovedet som et værktøj

Naturligvis har programmereren brug for værktøjer. En god programmør kan mestre ethvert værktøj. Princippet ligner det for den universelle håndværker: han kan også arbejde med ethvert værktøj, men skal også have den nødvendige viden til hvert værktøj.

Det virkelige værktøj er imidlertid hovedet. Her oprettes de abstrakte konstruktioner af enhver software. Og gode konstruktioner er dejlige! Gleden ved skønheden i software er en sjælden bonus inden for det professionelle felt af softwareudviklere. Så både sprogfærdigheder på den ene side og færdigheder til mønstergenkendelse og evnen til abstraktion på den anden er vigtige. I detaljer betyder dette:

sprog

Uanset om C#, Java, Python, HTML5, Basic, Ruby - hvis du vil programmere, skal du kende dit / de sprog. Det er som på ferie: ingen ord uden ord. Kendskab til sprog er derfor elementær. Jeg kan ikke udtrykke det, jeg ikke ved. Jeg kan ikke programmere, hvad jeg ikke kan udtrykke.

Genkend mønstre

Hvis ordforrådet er korrekt, er det næste trin mønstergenkendelse. Der er mønstre i helt forskellige former. Et meget enkelt, men meget vigtigt punkt er for eksempel "Gentag ikke dig selv"! Alt, der er ens eller lignende, skal kun programmeres én gang, men skal derefter designes, så det kan fås adgang til og bruges af alle elementer, der kræver denne funktion.

abstrakt tænkning

Mønstergenkendelse inkluderer også genkendelse af relaterede funktionelle sekvenser og at være i stand til at implementere dem i overensstemmelse hermed. På samme tid kræver dette kapacitet til abstraktion, dvs. evnen til at opbygge strukturen af hele produktet i dit hoved. Fordi kun dem, der har et komplet overblik over deres opgave, er i stand til at definere den bedste løsning.

Logik med og uden matematik

Et andet nøgleord skal nævnes her: logik. Hvis du vil programmere, skal du være i stand til at tænke logisk, fordi spørgsmålet altid hænger over alt: hvilken handling har hvilke konsekvenser? Den grundlæggende struktur for logisk tænkning læres i skolen i matematik, hvilket derfor kan være vigtigt for softwareudviklere - men er ikke obligatorisk, fordi selvom tankegangen er ens, er den ikke den samme. Og der er også kompleks logik, for eksempel i filosofi (og ikke kun i Ludwig Wittgenstein, heller) Tractatus logico philosophicus).

designprincipper

Det næste trin er at følge designprincipperne. Disse principper for design af god software har næppe ændret sig gennem årene trods enorme tekniske ændringer og fremskridt.En generel teoretisk tilgang er allerede fundet i objektorienteret programmering, og mange af resultaterne gælder også for arbejde med ikke-objektorienterede sprog.

Nogle eksempler er:

  • Kapsel hvad der er anderledes.
  • Adressegrænseflader i stedet for at programmere en implementering.
  • Hver klasse i din ansøgning skal kun have en grund til at ændre.
  • Klasser skal være åbne for udvidelser, men bør ekskludere ændringer (OCP).
  • Undgå duplikater i koden ved at abstrahere, hvilken kernefunktion der skal udføres (TØR-princip)
  • Hvert objekt skal kun have en funktion, og hver metode til et objekt skal hovedsageligt sigte mod at udføre denne funktion (SRP)
  • Underklasser skal kunne bruges som genstande i deres baseklasse (LSP)

Det største ikke i denne sammenhæng er stadig: Skriv ikke en monolitisk blok. Den største gør er følgelig: Skriv strukturerede og i meningsfulde funktionelle enheder.

Og et andet princip er vigtigt, når det kommer til softwaredesign: Vær fleksibel med ændringer! Ændringer finder sted konstant. Af denne grund er det vigtigt at være opmærksom på, hvilke dele der vil ændre sig, og hvilke ikke, når man designer software. De, der vil ændre, skal være designet så ændringerne er lette at implementere og deres funktionaliteter er robuste over for ændringer.

Derfor:

Der er ikke noget godt, medmindre du gør det, siger de. Det gælder også for software - jo mere kompleks, jo mere. Og hvad med den gode software nu?

Hos IMS holder vi altid vores øjne åbne, så vores software fungerer så pålideligt som muligt, fungerer optimalt, er let at bruge og skaber fordele på lang sigt.

Fokus er på moderne programmeringsstandarder såvel som den seneste udvikling i sprog og tredjepartssystemer. En 3-lags arkitektur er lige så obligatorisk som brugervenlighed. Og mobilvenligt design er lige så meget en del af det som weboptimering og meget mere.

Dette er sandsynligvis grunden til at IMSWARE er så succesrig på markedet.

 

Med venlig hilsen

ksc Sådan oprettes god software »RIB IMS

PS softwareudvikling er din ting? Så kig på vores nuværende ledige stillinger i løbet ...

 

Din vurdering?

gennemsnit 4.9 / 5. Antal stemmer: 8

Vær den første til at bedømme :-)

Fantastisk, meget tak!

Måske vil du følge os på ...

Vi beklager, at du ikke kunne lide dette indlæg.

Hvordan kan vi forbedre det?

Nyheder blog
Forrige læsning
IMS på ServParc i juni 2019
Næste læsning
51. årlige møde i ATA