Gladh skrev:
johan skrev:
Det är alltid lättare att följa sitt arbetsätt men egentligen skall man koda kod för andra o inte sig själv,
Ja men johan, då skall du ju använda regioner i din kod om du skall programmera för oss andra :)...
För det mesta så tror jag det handlar om gammal vana. Och egentligen inget som jag bryr mig om hur någon gör. Om någon vill använda regioner och någon inte, spelar inte mig någon roll om jag får den koden, jag är mer intresserad av hur själva koden ser ut, inte hur den är uppdelad. Läste att du tycket att man skulle inte gruppera typ variabler högst upp utan att man skall deklarerar dem när de behövs och att metoderna skall komma i den ordning som de anropas och inte grupperas ihop som public/private...
Personligen så tycker jag det är extremt störande att deklarera en variable mitt i ett kodstycke, tycker det förstör flytet i koden, och om nu en metod inte är mer än 10-15 rader så spelar det ju verkligen ingen roll om de deklareras överst eller i koden, man lär ju se dem ändå.
Angående att skriva metoder som en uppsats, så kommer du aldrig klara det till hundra procent eftersom du vill kunna återanvända vissa metoder, vilket gör att du från en metod måste hoppa uppåt i din kod för att kunna återanvända den kod som du skrev tidigare. Även där bryr jag mig inte så mycket hur koden är skriven. Jag personligen tycker bäst om att försöka gruppera ihop de metoder som hör ihop, men skilja ut properties och eventhandlers från dessa metoder, vilket gör att jag inte får en uppsatsliknande kod, men det är bara jag. Jag tycker det är mycket enklare att hitta det jag letar efter när det blir grupperat så...
- M
Stämmer bra det med members. Jag lägger dem där de hör hemma för att man skall behöva leta upp o ner i koden. Massa research som gjort ang detta.
Sjukt nog gilla jag idén o tyckte personligen så som många andra att det blev sjukt mkt snyggare kod.
Några anledningar:
Först vill man som ex code reviewer eller programmerare av annans kod snabbt läsa koden, slippe se flera rader med variabler som man ändå längre ner kommer ha glömt av.
Sen så vill man gärna se all den kod en prop eller metod använder sig av på en och samma vy, för att slippa hoppa runt i koden för att undra vad eller vart membersarna sätts o kommer från.
ex:
int number = 0;
puplic int Number
{
get { return number; }
set { number = value; }
}
[/kode]
[kod]
var hasBeenExecutedOnce = false;
public void DoFoo()
{
if(!hasBeenExecutedOnce)
{
Execute();
hasBeenExecutedOnce = true;
}
}
Ovan ser man en propp, Proppen är det enda man skall använda i hela sin kod till 99,9% kan finnas något undantag någon gång fär man vill använda dess fält, men vilken man inte bör. Detta tar även en rad guidelines upp varför.
Design By COntract och Defensive Programming är två skäl.
Där av är det helt menlingslöst att lägga alla proppar members i toppen då man gärna vill se vem de tillhör med en gång. För du kommer aldrig kunna memmorera dina members ändå.
Metodens kod.
I detta fall ligger kanske denna metoden på rad 100 det är bara denna metod som har members hasBeenExecutedOnce och som läsare av kod vill man gärna veta hur denna variabel lever i din kod. Här ser man med en gång, aha den hör till denna metod, ingen annan delar på den. Man vet direkt dess default värde och kan köra koden i sitt huvud utan större problem. Du slippe alltså scrolla o lämna den kod du läser för få infomration av den. Det blir såååå sjukt mkt lättare dör hjärnan att koncentrera sig då, detta mkt pga närminnet som inte klarar av så mkt saker samtidigt. Gjorts resaerch på detta.
MEN skulle det vara så att flera metoder delar på en member då lägger man dem i toppen för att visa tidigt, här är nått som delas av andra.
Mvh Johan