Gå til innhold

Så mye kode består hele Google av


Anbefalte innlegg

Videoannonse
Annonse

Nok en tulle artikkel.

 

Det er tatt med "whitespace" mellom linjene, artikkelen nevner ingen linjebredde (antall tegn per linje) i koden, og dessuten så var det bare beregnet frem til 2 milliarder. Artikkelen forteller heller ingenting om distribusjonen av linjene av kode i de forskjellige Google tjenestene.

 

Kanskje en sammenlikning til en bok hadde vært relevant (antall linjer per side, antall tegn per linje, antall sider per bok, antall bøker per gjennomsnittlig reol)?

 

Meningsløs artikkel med andre ord. 

Lenke til kommentar

"Som Wired peker på består Microsofts operativsystem..."

 

Er dette for god norsk å regne? Jeg synes det høres ut som en fornorskning av "As Wired points out", og det klinger helt feil i ørene mine.

 

"Som Wired påpeker, består Microsofts ....." skal det være. Legg merke til kommaet, også :)

  • Liker 4
Lenke til kommentar

Nok en tulle artikkel.

 

Det er tatt med "whitespace" mellom linjene, artikkelen nevner ingen linjebredde (antall tegn per linje) i koden, og dessuten så var det bare beregnet frem til 2 milliarder. Artikkelen forteller heller ingenting om distribusjonen av linjene av kode i de forskjellige Google tjenestene.

 

Kanskje en sammenlikning til en bok hadde vært relevant (antall linjer per side, antall tegn per linje, antall sider per bok, antall bøker per gjennomsnittlig reol)?

 

Meningsløs artikkel med andre ord. 

 

Strengt tatt ikke. De fleste ingeniører er enige om at SLOC er en upresis målingsmetodikk, men det er den beste metoden for måling av software vi har for øyeblikket. Den er ikke laget for å gi deg et overblikk over den nøyaktige mengden sort farge du ser om du blar igjennom hele snutten, men den skal gi deg en anelse om hvor mye vedlikehold en kode krever, hvor mye arbeid som skal til for å lage den og hvor komplekst programmet er. Den gir lite mening om man sammenlikner to kodesnutter på 30.000 linjer og 31.000, men vil gi et klarere innblikk i kompleksiteten når du sammenlikner to programmer på 50.000.000 og 2.000.000.000 linjer kode.

Deretter kan man se på om koden er effektiv eller ikke.

  • Liker 7
Lenke til kommentar

Antall tegn pr linje er da ikke relevant, men kunne selvsagt droppet tomme linjer, selv om det neppe er noen grunn til å tro at de bruker mer tomme linjer enn andre kodere.

 

Tegn per linje har mye å si. La oss si at en linje består av 80 tegn. Noen programmerer like å bruke hele linjen, mens andre liker å bare å bruke halve linjen, og så har de kommentarer til høyre på den andre halvdelen. Og så har du de som sikkert bare bruker knapt 20 tegn per linje før de trykker enter. 

 

 

 

Alternativ 1:

 

fasdf

asd

fa

sdf

asdf

asdfasdfggasdf

a

sdf

asd

fas

df

 

Alternativ 2:

 

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhas

dgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdga

sfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgds

fhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfh

sdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfha

sdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

 

Alternativ 3:

 

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsd

 

 

 

Som du ser så er det stor betydning i hvordan du programmerer. 

Endret av Exxon Valdez
  • Liker 2
Lenke til kommentar

Det er litt rart å sammenligne hele google med bare en versjon av windows. Ok, det ligger i samme repository, men omfangsesmessig blir det like vell mer riktig å sammenligne med hele MS. Alle OS og tjenester. Selv om de da ikke nødvendigvis har valgt samme løsning for plassering av koden.

Det er altså ikke størrelsen som er mest interessant, men det faktum at den ligger på samme sted.

Endret av Serpentbane
Lenke til kommentar

 

 

Antall tegn pr linje er da ikke relevant, men kunne selvsagt droppet tomme linjer, selv om det neppe er noen grunn til å tro at de bruker mer tomme linjer enn andre kodere.

 

Tegn per linje har mye å si. La oss si at en linje består av 80 tegn. Noen programmerer like å bruke hele linjen, mens andre liker å bare å bruke halve linjen, og så har de kommentarer til høyre på den andre halvdelen. Og så har du de som sikkert bare bruker knapt 20 tegn per linje før de trykker enter. 

 

 

 

Alternativ 1:

 

fasdf

asd

fa

sdf

asdf

asdfasdfggasdf

a

sdf

asd

fas

df

 

Alternativ 2:

 

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh  //kommentar

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhas

dgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdga

sfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgds

fhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfh

sdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfha

sdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfh

 

Alternativ 3:

 

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdf

asdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsdfhdfhasdgasfdgdfgdsfhsdfhdshsdfhsdfhsdfhsdfhsdfhsdfhsd

 

 

 

Som du ser så er det stor betydning i hvordan du programmerer. 

Dette er jo med all respekt å melde bare tull. Om noen INSISTERTE på å kode slik du antyder i eksempel 2 og 3 så ville de fått fyken. En kan skrive et helt program på en linje, men ingen gjør det. Med dagens hardware er kodelesbarhet (og dermed også vedlikeholdbarhet) MYE viktigere enn alle andre kriterier for praktisk talt all normal programvare som lages.

  • Liker 1
Lenke til kommentar

Det er nok ganske vanlig å bruke venstre halvdel til kode og høyre halvdel til kommentarer i C++. Dette er vanlig praksis hos Høyskolen i Gjøvik, som regnes som blant de beste i Norge på programmering:)

 

 

 

post-360480-0-46220700-1442584892_thumb.jpg

 

 

 

Hva selvlærte brukere mener på et forum, det driter jeg opp i. 

Endret av Exxon Valdez
Lenke til kommentar

Koden ser gjerne slik ut:

 

// qwerqwerqwe erq qwe rqwer qwe rq wer qwe rqwe r 

wmnern werwe(werwerw, werwerwe, werwerw) {

     qwerqwe qwerqwer 

     qewrqwer qwerqwer 

    qwerqwer qwerqwer 

    qwerqwer qwerqwer 

    qw qwerqwer qwerqwe qwer

    qw ( qwerqwer qwer qwerqwer )  {

        qwerqewr qw qwerqwerqw(qwerqwerqwerqwer)

         qw ( qwerqwerqwerqwer rqw || wqwrqwerqwerqwer || wwertwtwrt ( qwerqwer && qwerqwer ) { // qweqwerqewrqwerqwer

                qwerr qwe qwrqwerqrwe 

                qwerq qwerqwrqwe->qwerqwerqwe(qwereq, qwerqwer, qwerqe) 

                qwerqwer

        }

    }

etc, Og den beveger seg gjerne lengre og lengre til høyre desto mer polymorf bit av koden man ser på.

Noen linjer er naturlig å ha korte, som en inkrementering, mens andre linjer er det naturlig å ha lange parametre på og kan gå langt utenfor en enkeltskjerms bredde, som komplekse sjekker i sammensatte tilfeller. Avhengig av språk kan bare det å kalle en spesifikk variabel eller metode fylle ganske bra opp med plass alene. 

 

Edit: klarte ikke å la eksemplet avbrytes uten slutt-tags, måtte avslutte den selv om tanken var at det skulle fortsette nedigjennom *rydderydde*

Endret av tommyb
  • Liker 1
Lenke til kommentar

Det er nok ganske vanlig å bruke venstre halvdel til kode og høyre halvdel til kommentarer i C++. Dette er vanlig praksis hos Høyskolen i Gjøvik, som regnes som blant de beste i Norge på programmering:)

 

 

 

attachicon.gifc++.jpg

 

 

 

Hva selvlærte brukere mener på et forum, det driter jeg opp i. 

 

Ditt eksempel er superenkel kode for opplæring, jeg tror ikke du støter på så mye så enkel kode utenfor klasserom. 

Lenke til kommentar

 

Det er nok ganske vanlig å bruke venstre halvdel til kode og høyre halvdel til kommentarer i C++. Dette er vanlig praksis hos Høyskolen i Gjøvik, som regnes som blant de beste i Norge på programmering:)

 

 

 

attachicon.gifc++.jpg

 

 

 

Hva selvlærte brukere mener på et forum, det driter jeg opp i. 

 

Ditt eksempel er superenkel kode for opplæring, jeg tror ikke du støter på så mye så enkel kode utenfor klasserom. 

 

 

Nei sier du det du. Den koden er det absolutt det aller letteste å forstå, selv folk som ikke kan programmering kan nesten forstå det programmet. 

Lenke til kommentar

Det er nok ganske vanlig å bruke venstre halvdel til kode og høyre halvdel til kommentarer i C++. Dette er vanlig praksis hos Høyskolen i Gjøvik, som regnes som blant de beste i Norge på programmering:)

 

 

 

attachicon.gifc++.jpg

 

 

 

Hva selvlærte brukere mener på et forum, det driter jeg opp i. 

 

Med all respekt, eksempelet du gir er ikke et eksempel på god kode. La meg gi noen grunner.

  • Variabelnavn er ikke-beskrivende. Variabel1 og variabel2 er ikke gode variabelnavn: de sier ingenting om hva verdien faktisk er.
  • Hungarian notation slik det er brukt i eksempelet ditt er ikke en god idé.
  • Kommentarene er ubrukelige. De sier nøyaktig det samme som koden, og ender opp som visuell støy. Kommentarene gir ingen forklaring på intensjoner.

... men kan vi klare å komme med en forklaring på hvorfor dette er tilfellet? Joa! Eksempelet ditt skal ikke være et eksempel på god kode! Det skal være et eksempel på enkel input/output i C++!

 

Så hvorfor blir du ikke "bare presentert god kode" når du tross alt skal lære programmering? Fordi da ville det vært helt håpløst i lære verktøyet; programmeringsspråket. Før du kan være i nærheten av å skrive god kode, må du skrive dårlig kode, og føle konsekvensene. Personlig mener jeg det er nyttig å ha vært innom et par paradigmer (imperativt, objektorientert, funksjonelt) også.

 

Vil du ha eksempler på god kode, les Clean Code. Boka er meget god, og gir konkrete eksempler på hvordan kode kan forbedres, samt forklarer hvordan forfatteren resonnerer seg fram til konklusjonene han trekker. Code Complete blir også ofte anbefalt; den har jeg ikke lest.

 

Ellers herlig at du allerede bryr deg om kodekvalitet. Stå på.

 

--

 

Tilbake på sak. Personlig ser jeg meget sjelden gode grunner til å skrive linjer lenger enn 80 tegn. Har du flere nøstede (nested) funksjonskall, bør du fakturere ut noen mellomvariabler for å si hva du driver med. Om du kaller funksjoner med mange parametre, bør du trekke ut en klasse. Unntaket blir dokumentasjon. At whitespace ikke er korrigert for er like meningsløst. Med mengden verktøy representaten fra Google nevner i YouTube-videoen fra artikkelen, har de garantert automatisert sjekk for trailing whitespace og om kodekonvensjoner følges.

 

Med en kodebase på størrelsen Google håndterer, er de fullstendig avhengig av å skrive god kode, og kode blir aldri bedre av fryktelig lange linjer. Når det er sagt, er ikke lengden av kodelinjer så mye av et valg som jeg får inntrykk av ved å lese innlegg i denne tråden. Valg av programmeringsspråk er langt mer relevant. Noen språk (Java, C#, C++, C) bruker naturlig mer plass enn andre (Haskell, Python, Ruby, Lisp, F#). Jeg vil fremdeles påstå at antall kodelinjer er et helt OK mål på kodemengde.

  • Liker 2
Lenke til kommentar
Gjest Bruker-245639

Kan det offentlige Norge se og lære? Det er nok av løsninger som kun brukers av det offentlige som vi må få over som fri og åpen kode, og som igjen lagres på samme vis som Google lager sin kode.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...