14. juni 2011 - 09:58Der er
20 kommentarer og 2 løsninger
Hvad skal jeg sætte mig ind i?
Hej
Jeg er ved at lære at programmere i C# og synes jeg konstant støder på problemer, eller rettere ting, hvor den måde jeg umiddelbart vælger at implementere det på, virker uelegant, og højest sandsynligt vil komme til at give problemer senere i forløbet.
Jeg er desværre i en situation, hvor jeg ikke har tid til at tage en uddannelse mere, så jeg vil høre om nogen kan anbefale bøger ikke så meget om C# men mere om systemudvikling generelt og kan pege mig i retning af, hvad for teori jeg vil have gavn af at sætte mig ind i.
Jeg har indtil videre kigget lidt på noget materiale omkring Design Patterns og på noget omkring S.O.L.I.D principperne. Jeg mangler også materiale omkring dokumentation af softwareudvikling og evt. noget info om skitsering af løsninger. Der har jeg kigget på UML, men ved ikke om det er relevant.
En del af dit problem løses lidt ved at læse bogen: Refactoring, Improving the Design of Existing Code
Den kan helt klart anbefales enhver programmør.
Jeg ved godt det ikke er helt det du er ude efter, men hvis du ikke allerede har kigget på den, synes jeg du skal tilføje den til stakken af "must reads".
Den er godtnok specificeret til java, men patterns osv. er jo universalt. Den giver en dejlig stille og rolig gennemgang, i et tempo alle kan følge med til. Desuden er der brugt rigtigt gode eksempler og flotter forklaringer.
@jjam - umiddelbart virker det som om siden indeholder mere konkrete eksempler på, hvordan man programmerer i C#, altså syntaks, kontrolstrukturer osv. Jeg leder mere efter materiale generelt om systemudvikling.
@johny - jeg vil helt sikkert kigge på denne. Synes at Refactoring er et begreb jeg ofte støder på.
@j3ppah - tjekkede lige siden ud. Synes umiddelbart den virker til at give en god indføring i programmering. Jeg synes ikke alle Design Patterns var med? men er det fordi jeg ikke ved nok om design patterns og der måske i virkeligheden er en række "basis patterns" som mange andre bygger på?
Jeg stod f.eks. nu og skulle vælge mellem, hvordan jeg vil implementere database tilgang. Og der har jeg læst to forskellige eksempler på patterns nævnt. Et der hedder Repository og så noget Table Gateway. Og har flere gange også stødt på Dispose Pattern. Men tror det er min viden der er utilstrækkelig.
Jeg må også indrømme at jeg ikke (bevidst) har brugt desgin patterns i særlig stor udstrækning, så hvordan hver enkelt af de gennemgåede patterns virker i praksis, kan jeg ikke umiddelbart hjælpe dig med... men det kan være du kan finde nogle du ikke har kunnet finde andre steder.
Ok tak til j3ppah og softspot. Måske handler det også bare om at kaste sig ud i det, og finde ud af tingene hen af vejen. Jeg ved ikke rigtigt om Design Patterns overhovedet er noget der bliver brugt, eller om det er noget man bruger til at snakke om programmering ud fra et teoretisk synspunkt. Det er også derfor jeg søger materiale om en mere generel tilgang til systemudvikling. Har f.eks. fundet denne her:
Men ved ikke rigtig om man kan tage tingene seriøst, eller om det er noget Microsoft har forfattet, uden egentlig faglig tyngde, for at lokke folk til at bruge deres programmer.
@jjam - umiddelbart virker det som om siden indeholder mere konkrete eksempler på, hvordan man programmerer i C#, altså syntaks, kontrolstrukturer osv. Jeg leder mere efter materiale generelt om systemudvikling
Ok - bildsoe, så misforstod jeg spørgsmålet. Trode at du var ved at skifte til C# fra andet sprog.
Hvorvidt du stoler på hvad Microsoft mener om systemudvikling og best practices må være op til en personlig stillingtagen, men givet at du koder i C#, ville det da være et godt udgangspunkt, at stole på Microsoft og deres erfaring med at lave systemer :-)
Men bort set fra det, så er der i min verden, forskel på at kunne programmere og at programmere i et specifikt sprog. Det ene handler om at have en forståelse for, hvordan man på en struktureret måde løser problemer, typisk vha. en computer, det andet handler om at lære en syntaks og et framework. Det jeg kan forstå på dig er, at du ønsker viden om det første (hvilket for mig at se er det rigtige udgangspunkt). Jeg er enig med dig i, at man skal lære det ved at gøre det, så det er et spørgsmål om at kaste sig ud i en masse projekter, hvor man får noget erfaring med hvad der virker og hvad der ikke virker.
Jeg tror ikke det er en dårlig investering at have et grundliggende kendskab til design patterns (DP), da det giver dig et godt fundament til at løse mange af de objektorienterede opgaver du måtte få. Man skal blot være forsigtig med at presse DP ned over alle opgaver, for noget er bare ikke egnet hertil. Et godt princip indenfor programmering er generelt KISS (Keep It Simple Stupid) og det er ikke altid DP medfører det mest simple resultat.
@Softspot - du har ret i at jeg søger en grundlæggende forståelse for det at programmere. Det er også derfor jeg søger materiale om programmering/systemudvikling/systemarkitektur på et mere generelt plan. Noget info om gode tilgange til systemudvikling. Jeg vil selvfølgelig kigge på de nævnte ting, men mangler især en metode til at visualisere de tænkte løsninger for mig. Jeg overvejer UML, men er ikke klar over om UML stadig er relevant, og om det overhovedet er det man vil modellere en løsning i, før man vil begynde at programmere den.
Det meste er næsten blevet sagt her, men du(bildsoe) spurgte om design patterns er noget der bliver brugt; til det vil jeg sige "ja absolut". Design patterns er altid gode at have ved hånden, et hav af andre programmører har allerede siddet med samme problemstillinger som dig, så hvorfor ikke lære af dem :)
Problemet med design patterns er ofte, at det er svært lige at finde et der kan passe til problemstillingen. Men nu når du allerede sætter dig ind i emnet, så er du længere fremme end mange med flere år på bagen end dig. Godt gået :)
Tak for kommentaren janus_007. Jeg er allerede stødt på første eksempel på, hvor der ikke er et Design Pattern der passer helt på det jeg laver, men hvor der rettere er to forskellige der begge vil kunne dække de krav der er til løsningen, men hvor jeg ikke har erfaringen til at afgøre, hvilken vil være bedst.
Og det er så her refaktoring kommer ind i billedet. ;) Så længe man laver vel struktureret kode, hvor man forstår hvad delene gør, så er det lettere at skifte strategi/design pattern, hvis man finder ud af at det skal fungere anderledes.
Ah, det er jo smart. Jeg vil i gang med at læse om Design Patterns og refaktorering :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.