Mycodez skrev:
gbx = groupbox och vi har lärt oss att koda såhär :( alla dim ska var i toppen för ha allt sånt samlat på ett ställe och ha massa dim:ar mitt i koden. men ska tänka på vad du säger :)
jag tycker du skall prata med din lärare om Hungarian notation, det är något som mer och mer ses som något mycket dåligt.
Ett starkt tips är Clean Code av Uncle Bob aka Robert Steve Martin, där han skriver om hur man bör skriva kod för att öka förståbarheten.
T.ex. en metod skall max göra en sak. (en sak kan vara att ha en if-sats som anropar en annan sak). Dvs den gör en sak skiljer på ett värde och anropar andra metoder.
Det som metoden utför skall vara beskrivet i metodnamnet.
osv.
Här är ett exempel på en start.
Jag skrev aldrig färdigt det för jag hann inte, men jag hoppas jag får igenom min poäng när det gäller namngivningar (jag har antagligen inte valt helt rätt ord ändå i detta fallet, det är att hitta bra namngivningar som är svårigheten med programmering tycker jag).
I den koden jag skriver här finns inget med Winform's eller liknande med, tanken är att denna klassen anropass och läses av för att populera ett eventuellt user interface.
Ett bra exempel här är att jag har slängt undan en massa komplex kod som en eventuell läsare kanske inte är så intresserad av. Så när han går in och läser metoden Guess(character as Char) så ser han snabbt i stora drag vad metoden gör, är han intresserad av detaljer går hann vidare till de metoder som han vill grotta sig ner i.
Public Class Hangman
Private _wrongCharacters As IList(Of String)
Private _correctWord As String
Private _answerWord As String
Private _retriesLeft As Integer
Public ReadOnly Property WrongCharacters As IEnumerable(Of String)
Get
Return _wrongCharacters
End Get
End Property
Public ReadOnly Property RetriesLeft As Integer
Get
Return _retriesLeft
End Get
End Property
Public ReadOnly Property AnswerWord As String
Get
Return _answerWord
End Get
End Property
Public ReadOnly Property CorrectWord As String
Get
Return _correctWord
End Get
End Property
Public Sub StartNewGame(ByVal correctWord As String, ByVal numberOfTries As Integer)
_correctWord = correctWord
_retriesLeft = numberOfTries
_wrongCharacters = New List(Of String)
SetupAnswerWord()
End Sub
Public Sub Guess(ByVal character As Char)
If _wrongCharacters.Contains(character) OrElse AnswerWord.Contains(character) Then
Throw New ArgumentException("Du har redan gissat på den bokstaven")
End If
If RetriesLeft <= 0 Then
Throw New ArgumentException("Antalet försök har överskridits")
End If
If Not CorrectWord.Contains(character) Then
HandleWrongGuess(character)
Return
End If
HandleCorrectGuess(character)
End Sub
Private Sub HandleCorrectGuess(ByVal character As Char)
Dim findIndexesOfCharacter = New Regex(character)
Dim matches = findIndexesOfCharacter.Matches(CorrectWord)
For Each match As Match In matches
ReplaceCharacterAtIndexInAnswerWord(match.Index, character)
Next
End Sub
Private Sub HandleWrongGuess(ByVal character As Char)
_wrongCharacters.Add(character)
_retriesLeft = RetriesLeft - 1
End Sub
Private Sub SetupAnswerWord()
_answerWord = New String(Char.Parse(" "), CorrectWord.Length)
End Sub
Private Sub ReplaceCharacterAtIndexInAnswerWord(ByVal index As Integer, ByVal character As Char)
' and so on.......
End Sub
End Class
LaspMedlem sedan juli 200012 980 inlägg Bra Nickemannen, jag gjorde ett inlägg under fotbollen om Ungersk Notation som är en produkt av äldre tiders språk och att datorerna för utveckling inte hade samma kapacitet.
Det är ju så att vi skrev nästan för hand från början.
Nu med nya språk, helt andra krav så är möjligheten att förklara viktigt.
Så nu när matchen är över läser jag ett underbart exempel inlagt av Nickemannen.
Det är så wF skall vara tycker Lasp. Tack.
Lasp skrev:
Bra Nickemannen, jag gjorde ett inlägg under fotbollen om Ungersk Notation som är en produkt av äldre tiders språk och att datorerna för utveckling inte hade samma kapacitet.
Det är ju så att vi skrev nästan för hand från början.
Nu med nya språk, helt andra krav så är möjligheten att förklara viktigt.
Så nu när matchen är över läser jag ett underbart exempel inlagt av Nickemannen.
Det är så wF skall vara tycker Lasp. Tack.
Ja det användes förr i tiden när språken inte var typade för att man skulle veta vad det var för något. Tittar man på wikisidan om hungarian notation så har dom ett skräckexempel där man tar in 16 tecken innan man skriver namnet på variabeln, det är databaskolumnsinfo osv osv.
Oftast tycker jag att namnet i sig talar om vad det är för datatyp, t.ex. name eller age, rätt självklart att det handlar om integer och name, men är man osäker håll musen över så får man direkt se vad det är för något eller f12 så man kommer till deklarationen.
dAEkMedlem sedan feb. 20041 816 inlägg
Nickemannen skrev:
Ett starkt tips är Clean Code av Uncle Bob aka Robert Steve Martin, där han skriver om hur man bör skriva kod för att öka förståbarheten.
+1.
Ja, den är riktigt, riktigt bra. Alla utvecklare borde ha läst den och minst en gång.
Nackdelen är att man tycker att andras och ens egen kod är skit efteråt. :)
ZaimanMedlem sedan dec. 20014 239 inlägg
dAEk skrev:
+1.
Ja, den är riktigt, riktigt bra. Alla utvecklare borde ha läst den och minst en gång.
Nackdelen är att man tycker att andras och ens egen kod är skit efteråt. :)
Är det den här boken http://www.adlibris.com/se/product.aspx?isbn=0132350882 ni refererar till?
LaspMedlem sedan juli 200012 980 inlägg Ja det är rätt. Hittade inte länken till bokklubben i Malmö, det var ju ett tag sedan.
Men föreläsningen från tidigare Öredev skall nog ligga kvar med exempel ute på nätet.
http://vimeo.com/12643301
Var där han är en riktigt bra talare.
MycodezMedlem sedan feb. 2010445 inlägg Jag har löst mina problem nu :) hade tänkt lite galet :) bara men vill ni testa en slarvig verison av mitt hänga gubben så e det bara att lämna en kommentar i min blogg.
https://www.mycodez.se