Komerčné projekty v golang?

Re:Komerčné projekty v golang?
« Odpověď #60 kdy: 06. 06. 2016, 19:01:15 »
typova kontrola je len zaciatok, ja pouzivam gometalinter, ten pusta asi 15 nastrojov na kontrolu kodu

Statická analýza kódů ti pořád, notabene v jazyce jako go, řeší jenom omezené množství problémů.

Pro seriózní práci potřebuješ testy, typicky alespoň jednotkové a integrační.


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Komerčné projekty v golang?
« Odpověď #61 kdy: 06. 06. 2016, 21:09:01 »
Keby stacila typova kontrola na otestovanie, to by nam bolo sveta zit :D. Nie, testy sa nepisu iba na syntakticku kontrolu..
Typová kontrola nemá se syntaxí vůbec nic společného.

Radek Miček

Re:Komerčné projekty v golang?
« Odpověď #62 kdy: 06. 06. 2016, 21:13:08 »
Go je iny v tom, ze implementuje nejaky teoreticky model

Jaký model máte na mysli?

Šlo by říci, že F# implementuje lambda kalkulus s DM typovým systémem (nebo alespoň z něho vychází) a Dotty (nová verze Scaly) implementuje DOT calculus?

Citace
Keby stacila typova kontrola na otestovanie, to by nam bolo sveta zit

V některých typových systémech stačí.

Re:Komerčné projekty v golang?
« Odpověď #63 kdy: 06. 06. 2016, 22:48:23 »
Keby stacila typova kontrola na otestovanie, to by nam bolo sveta zit :D. Nie, testy sa nepisu iba na syntakticku kontrolu..

Mas sice pravdu ze typova kontrola na odhlaenie chyb nie vzdy staci, ale v praxi pri kvalitnom typovom systeme ti velmi urychli pracu. Clovek ktory neprogramnoval v silne typovom jazyku toto asi nepochopi... skus Haskell alebo F# a sam uvidis. Druha vec je ze silny typovy system casto aj veci strasne kompikuje a castokrat je otravne furt nieco konvertovat. Lenze ten vysledny kod je potom nepriestrelny.

pozn. C++ C# ani Java nie su silne typove jazyky, GO nepoznam.

andy

Re:Komerčné projekty v golang?
« Odpověď #64 kdy: 07. 06. 2016, 00:04:51 »
Keby stacila typova kontrola na otestovanie, to by nam bolo sveta zit :D. Nie, testy sa nepisu iba na syntakticku kontrolu..
Typová kontrola nemá se syntaxí vůbec nic společného.
Ak mas premennu a typu int a volas a.f(), tak kazdy tomu nadava syntakticka chyba, ale gramaticky je to spravne. Rovnako preklepy v premennych a pod. To uz je take slovickarenie, ale zatial tu boli mozno 4 prispevky k veci..


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Komerčné projekty v golang?
« Odpověď #65 kdy: 07. 06. 2016, 01:20:03 »
Keby stacila typova kontrola na otestovanie, to by nam bolo sveta zit :D. Nie, testy sa nepisu iba na syntakticku kontrolu..
Typová kontrola nemá se syntaxí vůbec nic společného.
Ak mas premennu a typu int a volas a.f(), tak kazdy tomu nadava syntakticka chyba, ale gramaticky je to spravne. Rovnako preklepy v premennych a pod. To uz je take slovickarenie, ale zatial tu boli mozno 4 prispevky k veci..
Je dobré se vyjadřovat jasně. Syntax je o skladbě, typová kontrola je sémantika.

martin

Re:Komerčné projekty v golang?
« Odpověď #66 kdy: 07. 06. 2016, 11:01:51 »
Clovek ktory neprogramnoval v silne typovom jazyku toto asi nepochopi... skus Haskell alebo F# a sam uvidis. Druha vec je ze silny typovy system casto aj veci strasne kompikuje a castokrat je otravne furt nieco konvertovat.

Mate v tom trochu zmatek. Silne typovy je treba i Python a Ruby. Asi myslite staticky typovy system.

Radek Miček

Re:Komerčné projekty v golang?
« Odpověď #67 kdy: 07. 06. 2016, 18:56:58 »
Clovek ktory neprogramnoval v silne typovom jazyku toto asi nepochopi... skus Haskell alebo F# a sam uvidis. Druha vec je ze silny typovy system casto aj veci strasne kompikuje a castokrat je otravne furt nieco konvertovat.

Mate v tom trochu zmatek. Silne typovy je treba i Python a Ruby. Asi myslite staticky typovy system.

Myslím, že xxar3s měl na mysli to, jaké invarianty jde v typovém systému vyjádřit (např. v některých jazycích je typový systém tak silný, že můžete v rámci typové kontroly provádět testy - typ může říkat, že určité volání funkce vrátí určitou hodnotu).

Citace
Asi myslite staticky typovy system.

Někteří lidé si myslí, že jiný ani neexistuje - viz Does “untyped” also mean “dynamically typed” in the academic CS world? - dynamicky typovaný jazyk je speciálním případem staticky typovaného jazyka s jedním typem:

Citace
Bob Harper is fond of saying that languages like Scheme, Javascript, and so on should be considered typed languages with just a single type: value. I lean to this view, as it makes it possible to construct a consistent worldview using just one type formalism.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Komerčné projekty v golang?
« Odpověď #68 kdy: 07. 06. 2016, 20:37:24 »
Myslím, že xxar3s měl na mysli to, jaké invarianty jde v typovém systému vyjádřit (např. v některých jazycích je typový systém tak silný, že můžete v rámci typové kontroly provádět testy - typ může říkat, že určité volání funkce vrátí určitou hodnotu).

Mohl byste mi ukázat, jak v nějakém šikovném typovém systému vyjádřím/definuji typ Date ? Tedy typ, který říká, že únor může mět pouze 28dní a každej přestupnej 29, etc.

Matně tuším, jak bych to dělal já. Ale zajímal by mě příklad jiných.

Dík.

Radek Miček

Re:Komerčné projekty v golang?
« Odpověď #69 kdy: 07. 06. 2016, 22:24:40 »
Mohl byste mi ukázat, jak v nějakém šikovném typovém systému vyjádřím/definuji typ Date ? Tedy typ, který říká, že únor může mět pouze 28dní a každej přestupnej 29, etc.

Například v Idrisu:

Kód: [Vybrat]

import Data.Fin

%default total

prestupnyRok : Nat -> Bool
prestupnyRok rok = delitelny 400 SIsNotZ || (delitelny 4 SIsNotZ && not (delitelny 100 SIsNotZ))
  where
      delitelny : (x:Nat) -> Not (x = 0) -> Bool
      delitelny x nz = (modNatNZ rok x nz) == Z

pocetDnuVMesici : Nat -> Fin 12 -> Nat
pocetDnuVMesici rok mesic =
    case finToInteger mesic of
        0 => 31
        1 => 28 + (if prestupnyRok rok then 1 else 0)
        2 => 31
        3 => 30
        4 => 31
        5 => 30
        6 => 31
        7 => 31
        8 => 30
        9 => 31
        10 => 30
        _ => 31       

-- Mesice a dny jsou cislovany od nuly.
-- Napriklad 29. unora 2004 se zapise jako MkDatum 2004 28 1.
data Datum : Type where
    MkDatum : (rok:Nat) -> (mesic:Fin 12) -> (den:Fin (pocetDnuVMesici rok mesic)) -> Datum

Výstup pro chybné datum MkDatum 2003 1 28 (dny i měsíce jsou číslovány od 0) je

Kód: [Vybrat]
(input):1:18:When checking argument prf to function Data.Fin.fromInteger:
        When using 28 as a literal for a Fin 28
                28 is not strictly less than 28

pro správné datum MkDatum 2004 1 28

Kód: [Vybrat]
MkDatum (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (fromIntegerNat 1903))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
        (FS FZ)
        (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS (FS FZ)))))))))))))))))))))))))))) : Datum

Vašek

Re:Komerčné projekty v golang?
« Odpověď #70 kdy: 07. 06. 2016, 22:26:01 »
Na HN byl dnes odkaz na prezentaci o Go od Googlu. Doporučuji přečíst komentáře: https://news.ycombinator.com/item?id=11855775

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Komerčné projekty v golang?
« Odpověď #71 kdy: 08. 06. 2016, 12:31:38 »
Mohl byste mi ukázat, jak v nějakém šikovném typovém systému vyjádřím/definuji typ Date ? Tedy typ, který říká, že únor může mět pouze 28dní a každej přestupnej 29, etc.

Například v Idrisu:

Zajímavé. Díky! Budu trávit.

čumil

Re:Komerčné projekty v golang?
« Odpověď #72 kdy: 08. 06. 2016, 14:02:03 »
Moc hezký článek o GO :)

http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/

Dokonce i tvůrce řekl že GO je jazyk pro !začátečníky! protože potřebují v googlu s těma začátečníkama odvést práci.

To nemaj v googlu soudruzi samí elitní opice ? Někde se stala chyba ...

go pouzivatel 2 roky

Re:Komerčné projekty v golang?
« Odpověď #73 kdy: 08. 06. 2016, 14:37:10 »
To nemaj v googlu soudruzi samí elitní opice ? Někde se stala chyba ...

vsak hovorim, C na trenovacich koleckach

čumil

Re:Komerčné projekty v golang?
« Odpověď #74 kdy: 08. 06. 2016, 15:24:23 »
To nemaj v googlu soudruzi samí elitní opice ? Někde se stala chyba ...

vsak hovorim, C na trenovacich koleckach
je to tak

jen tak ze zvědavosti jsem se kouknul jak se v "GO stylu" řeší reverze pole

potichu jsem zaklapl laptop a odplížil se do kouta ...