Wired News - Google je ogromno podjetje z več kot 50.000 zaposlenimi in več kot ducatom najrazličnejših izdelkov, ki poganjajo vse od iskalnika na spletu in zemljevidov do več kot milijarde pametnih telefonov. Rachel Potvin je minuli teden na konferenčnem predavanju razkrila več podrobnosti o sistemu, ki skrbi za vso kodo v ozadju. Googlove izdelke namreč poganjata več kot dve milijardi vrstic kode, do katere imajo dostop vsi inženirji, ki jo tudi vsakodnevno posodabljajo.
Tu govorimo o izdelkih, kot so Google Search, Google Maps, Google Docs, Google+, Google Calendar, Gmail, YouTube, ki si delijo dobršen del kode. Google ima zato postavljen interni repozitorij, ki je podoben GitHub in do katerega ima dostop 25.000 inženirjev. To pomeni, da lahko kdorkoli uporablja že napisano kodo in pri tolikšni množici ljudi in vrstic kode je zelo verjetno, da je konkretni problem že nekdo nekje rešil. Vse skupaj nadzoruje lastni sistem Piper, ki skrbi za upravljanje z verzijami, saj je treba preprečiti, da bi drug drugemu rušili združljivost ali funkcionalnost. Pozitivna stran zbrane kode na enem mestu je tudi enostavno odpravljanje hroščev, saj se vsaka sprememba (commit) - in teh je 45.000 na teden - odrazi v vseh izdelkih.
Mimogrede, Linuxovo jedro ima okrog 15 milijonov vrstic kode, Windows pa 50 milijonov. Facebook poganja okrog 20 milijonov vrstic kode. Google svojo kodo drži v desetih podatkovnih centrih in obsega že 85 TB. Vseeno nekaj omejitev obstaja. Dostop do algoritma PageRank je strogo omejen, saj ta predstavlja srčiko razvrščanja strani pri spletnem iskanju. Prav tako koda za Android in Chrome nista del repozitorija, ker poganjata povsem druge stvari.
Novice » Ostale najave » Google poganjata dve milijardi vrstic kode
StarMafijec ::
In kaj je "vrstica kode"? Kako je to definirano?
4 vrstice kode:
1 vrstica kode:
4 vrstice kode:
for(int i=1;i>0;i++)
{
printf("Hello world!");
}
1 vrstica kode:
for(int i=1;i>0;i++){printf("Hello world!");}
Zgodovina sprememb…
- spremenil: StarMafijec ()
WarpedGone ::
In kaj je "vrstica kode"? Kako je to definirano?
Še en MIPS...
Meaningless Indication of Program Size ...
Zbogom in hvala za vse ribe
čuhalev ::
Povsem nepomemben podatek, ki ne pove ničesar.
Lahko imam zanko in znotraj nje ukaz, lahko pa imam veliko zaporednih ponovitev istega ukaza v novi vrstici.
Lahko imam zanko in znotraj nje ukaz, lahko pa imam veliko zaporednih ponovitev istega ukaza v novi vrstici.
Karlos ::
StarMafijec je izjavil:
In kaj je "vrstica kode"? Kako je to definirano?
4 vrstice kode:
for(int i=1;i>0;i++)
{
printf("Hello world!");
}
1 vrstica kode:
for(int i=1;i>0;i++){printf("Hello world!");}
Za clang formatiranje si že slišal?
Formatiral bi nekaj takega:
for (int i = 1; i > 0; i++) { printf("Hello world!"); }
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."
smoke ::
Karlos, za clang-format lahko s prve roke povem, da se uporablja v Chromium projektu. Nevem sicer kak je v drugih projektih, ampak načeloma je koda zelo vertikalno zgoščena in na 80 znakov omejena horizontalno.
Vkolikor njihovi drugi projekti uporabljajo podoben stil formatiranja, bi reko da je število vrstic kr okej metrika.
Vkolikor njihovi drugi projekti uporabljajo podoben stil formatiranja, bi reko da je število vrstic kr okej metrika.
Zgodovina sprememb…
- spremenil: smoke ()
AndrejO ::
StarMafijec je izjavil:
In kaj je "vrstica kode"? Kako je to definirano?
4 vrstice kode:
for(int i=1;i>0;i++)
{
printf("Hello world!");
}
1 vrstica kode:
for(int i=1;i>0;i++){printf("Hello world!");}
Za clang formatiranje si že slišal?
Formatiral bi nekaj takega:
for (int i = 1; i > 0; i++) {
printf("Hello world!");
}
Ali bi lahko nehali dajati "integer overflow" primere zank?
In ja, primerjati dve zbirki kode po številu vrstic, ne da bi obe zbirki uporabljali enaka pravila za oblikovanje, je seveda nesmiselno.
Zgodovina sprememb…
- spremenil: AndrejO ()
garamond ::
Tudi če upoštevamo, da se koda ne more direktno primerjati zaradi drugačnih standardov zapisovanja, je razlika še vedno dramatična. Google naj bi imel 100× več kode kot FB. Tudi če upoštevamo, da ima recimo 10× toliko velikih projektov kot je FB, bi bila razlika še vedno 10× več kode.
Kar je Google dal pod Open Source je "samo" 20 miljonov vrstic. ("Google has released over 20 million lines of code and over 900 projects.") Kaj dela preostalih 1980 miljonov vrstic? Od kje taka razlika v primerjavi z drugimi?
Kar je Google dal pod Open Source je "samo" 20 miljonov vrstic. ("Google has released over 20 million lines of code and over 900 projects.") Kaj dela preostalih 1980 miljonov vrstic? Od kje taka razlika v primerjavi z drugimi?
A parody of extremism is impossible to differentiate from sincere extremism.
Afo ::
dve milijardi vrstic kode
in so jo tolko zj***, da uporabniki za isti iskalni ključ ne dobijo več istih rezultatov... genialno. Odjava ne pomaga, brisanje piškotov ni pomembno, pač nikakor ne moreš "resetirat" svojih nastavitev - google pač preprosto "ve" kaj hočeš, tudi če hočeš kaj drugega. Temu rečejo "personalizirani rezultati". Mene bolj spominja na krasni novi svet.
Se kdo spomne Don't be evil. No google je to pozabil.
Bolje biti mlad in neumen, kot samo neumen!
Jst ::
Temu se reče information bubble.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|
FrEaKmAn ::
Kolikor vem, "vsi" njihovi projekti sledijo internem dogovoru oz. stilu - https://github.com/google/styleguide
jah lejte, če so plačani po vrsticah kode, potem je to velik biznis :)
jah lejte, če so plačani po vrsticah kode, potem je to velik biznis :)
Zgodovina sprememb…
- spremenil: FrEaKmAn ()
Looooooka ::
Ahim ::
MrStein ::
odvisno od velikosti tipa "int"
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Looooooka ::
Za omenjen sample se za izbrani programski jezik verjetno točno ve, kaj je default definicija integerja...signed or unsigned.
Randomness ::
Kolikokrat pa pravzaprav pricakujes, da se bo zanka, ki ima za zacetno stanje i = 1, za koncni pogoj pa i > 0, izvedla ?Pod pogojem, da imamo opravka z 32-bitnim intom, natanko 0x7fffffff-krat.
AndrejO ::
Hvala vsem za odgovore na vprašanje o "integer overflow".
Podvprašanje: na katerih arhitekturah se bo po prestopu izvajanje nadaljevalo od zanke naprej, na katerih pa ne in pod katerimi pogoji da ali ne.
Podvprašanje: na katerih arhitekturah se bo po prestopu izvajanje nadaljevalo od zanke naprej, na katerih pa ne in pod katerimi pogoji da ali ne.
Ahim ::
Randomness je izjavil:
Kolikokrat pa pravzaprav pricakujes, da se bo zanka, ki ima za zacetno stanje i = 1, za koncni pogoj pa i > 0, izvedla ?Pod pogojem, da imamo opravka z 32-bitnim intom, natanko 0x7fffffff-krat.
Da.
@Andrej: In zakaj bi bila tezava v takem primeru? Slo je zgolj za ilustrativno vprasanje glede smernic formatiranja kode (na kar je nekdo ze kar solidno odgovoril), in ne za to kaj zadeva dejansko pocne. Bi bilo kaj drugace, ce primer ne bi vseboval "integer overflow"?
AndrejO ::
Randomness je izjavil:
Kolikokrat pa pravzaprav pricakujes, da se bo zanka, ki ima za zacetno stanje i = 1, za koncni pogoj pa i > 0, izvedla ?Pod pogojem, da imamo opravka z 32-bitnim intom, natanko 0x7fffffff-krat.
Da.
@Andrej: In zakaj bi bila tezava v takem primeru? Slo je zgolj za ilustrativno vprasanje glede smernic formatiranja kode (na kar je nekdo ze kar solidno odgovoril), in ne za to kaj zadeva dejansko pocne. Bi bilo kaj drugace, ce primer ne bi vseboval "integer overflow"?
Da.
Če bi bila podan primer, ki ne predstavlja vratolomno neumnost, potem se ne bi imel ob kaj za obregniti.
Randomness ::
Podvprašanje: na katerih arhitekturah se bo po prestopu izvajanje nadaljevalo od zanke naprej, na katerih pa ne in pod katerimi pogoji da ali ne.Ne vem, koliko je to odvisno od arhitekture. Je pa overflow predznačenih intov po C standardu "undefined behavior", kar pomeni, da je rezultat odvisen (tudi) od prevajalnika. Npr. gcc (-O2) zanko "poenostavi" v neskončno zanko, če mu tega ne preprečimo s kakšnimi flagi (npr. -fwrapv ali -fno-strict-overflow).
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Vse najboljše, Linux!Oddelek: Novice / Operacijski sistemi | 19040 (15859) | Kenpachi |
» | Kdo piše Linuxovo jedro (strani: 1 2 )Oddelek: Novice / Operacijski sistemi | 31580 (25229) | AndrejO |
» | Trik za nadaljnje posodobitve za Windows XP (strani: 1 2 3 )Oddelek: Novice / Operacijski sistemi | 32124 (27552) | MrStein |
» | Oracle izgubil spor z Googlom okoli Jave v AndroiduOddelek: Novice / Android | 16714 (12905) | bojsi |
» | Prvi operacijski sistem brez programskih hroščevOddelek: Novice / Operacijski sistemi | 5087 (2644) | techfreak :) |