Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Google CTCCTCGGCGGGCACGTAG

Stran: 1 ... 12 13 [14] 15 16 ... 41
196
Vývoj / Re:Investor pro C++ IDE
« kdy: 18. 09. 2021, 16:09:45 »
Ale ty testy musím napsat, že? A musím je napsat správně, že?

Ale vy jste se ptal, jak pomohou testy. Na tuhle chybu prijde kazdy linter, k tomu nejsou treba testy. Ale staci i uplne trivialni test, ktery pokryje ten kod.

197
Vývoj / Re:Investor pro C++ IDE
« kdy: 18. 09. 2021, 03:24:58 »
Smalltalk místo na typové kontroly vsadil na testy, které je mohou bez problémů nahradit. Typová kontrola je dnes už i v PHP v takové míře, která vývojářům vyhovuje. Tzn. že není vyžadována, ale je podporována.
Tak ale testy ti neohalia fakt ze scitas jablka a hrusky, ak jablka a hrusky su odvodene od integer. Jedine ze by si si definoval operator ktory ti pri scitani typu jablka a typu hrusky, vratil typ malvice. Toto ti moze odhalit len prekladac.

Jak tedy C++ rozliší mezi jablky a hruškami, pokud jsou odvozeny od int? Zabrání jejich sečtení?
myslis nieco taketo?
Kód: [Vybrat]
#include <iostream>
using namespace std;

typedef int apple;
typedef int pear;

int main() {
   apple a1 = 10;
   pear p1 = 20;
   int n = a1 + p1;
   cout << "Result : " << n << endl;
   return 0;
}

ani len pri tom nezanadava. Typovo silny jazyk by ti vynadal ze nepozna operator scitania pre apple a pear...

Ako tento nedostatok jazyka zachranis testami?

v dynamickem jazyku ten kod spadne, pokud ho spustis

Což dokazuje co?

ze to na to prijdes pri testu

198
Vývoj / Re:Investor pro C++ IDE
« kdy: 18. 09. 2021, 02:19:26 »
Smalltalk místo na typové kontroly vsadil na testy, které je mohou bez problémů nahradit. Typová kontrola je dnes už i v PHP v takové míře, která vývojářům vyhovuje. Tzn. že není vyžadována, ale je podporována.
Tak ale testy ti neohalia fakt ze scitas jablka a hrusky, ak jablka a hrusky su odvodene od integer. Jedine ze by si si definoval operator ktory ti pri scitani typu jablka a typu hrusky, vratil typ malvice. Toto ti moze odhalit len prekladac.

Jak tedy C++ rozliší mezi jablky a hruškami, pokud jsou odvozeny od int? Zabrání jejich sečtení?
myslis nieco taketo?
Kód: [Vybrat]
#include <iostream>
using namespace std;

typedef int apple;
typedef int pear;

int main() {
   apple a1 = 10;
   pear p1 = 20;
   int n = a1 + p1;
   cout << "Result : " << n << endl;
   return 0;
}

ani len pri tom nezanadava. Typovo silny jazyk by ti vynadal ze nepozna operator scitania pre apple a pear...

Ako tento nedostatok jazyka zachranis testami?

v dynamickem jazyku ten kod spadne, pokud ho spustis

199
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 17:24:22 »
pro ignoranty (BoneFlute, Death Walker), cely webovy framework postaveny nad pydanticem https://fastapi.tiangolo.com/ . Z otypovanych entit se generuje JSON schema validace a databazove modely.
A na klientovi opises tu schemu do anotacii, tak to mas 3x... to je tak ked sa pouziva format pre serializaciu javascript objektov ako format pre prenos dat... este stastie ze k tomu  nikoho nenapadlo pouzit pickle...

Jak by to melo vypadat, abyste to mel jen JEDNOU? Z tech anotaci generujete JSON schema.

200
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 16:19:09 »
pro ignoranty (BoneFlute, Death Walker), cely webovy framework postaveny nad pydanticem https://fastapi.tiangolo.com/ . Z otypovanych entit se generuje JSON schema validace a databazove modely.


201
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 16:08:05 »
jde to jen v jazycich, ktere podporuji reflexi typovych anotaci za behu. Zrovna v ADE to asi nejde, ale s tim jste prisel vy, ja uvedl odkaz na konkretni knihovny v Pythonu a Typescript
No vidite, uz ste skoro doma. Este si staci odpovedat ci ma lua reflexiu typovych anotacii za behu...

do vysledneho kodu v dynamickem jazyce jdou pridat typove anotace pomoci nejake dodatecne struktury s metadatay, tak jak to dela typescript kdyz kompiluje do es6

K comu, aby ten transpilovany javascrip overil ze sa typescript nezmylil. DONT REPEAT YOURSELF! Ak urobis typovu kontrolu v zdrojovom kode, tak je zbytocne ju replikovat v cielovom kode.

nekdy se hodi mit statickou kontrolu v kodu a dynamickou kontrolu v javascriptovem REPLu. uvedl jsem priklad typeORM

jeste jednou naposledy nekdy se to hodi. netvrdim ze vzdy.
Takze ak sa zmeni schema pre tu api, tak prepisete naviac este anotacie... to je DRY?

je to  DRY, prepisu POUZE anotace.

Podla schemy ktora to api definuje, takze duplicita.

prave ze ty anotace definuji API. Proste mate nejakou definici entit s typovymi anotacemi a z nich vychazi cela aplikace (datatabazove modely, validace ...)

202
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 07:46:23 »
jde to jen v jazycich, ktere podporuji reflexi typovych anotaci za behu. Zrovna v ADE to asi nejde, ale s tim jste prisel vy, ja uvedl odkaz na konkretni knihovny v Pythonu a Typescript
No vidite, uz ste skoro doma. Este si staci odpovedat ci ma lua reflexiu typovych anotacii za behu...

do vysledneho kodu v dynamickem jazyce jdou pridat typove anotace pomoci nejake dodatecne struktury s metadatay, tak jak to dela typescript kdyz kompiluje do es6

K comu, aby ten transpilovany javascrip overil ze sa typescript nezmylil. DONT REPEAT YOURSELF! Ak urobis typovu kontrolu v zdrojovom kode, tak je zbytocne ju replikovat v cielovom kode.

nekdy se hodi mit statickou kontrolu v kodu a dynamickou kontrolu v javascriptovem REPLu. uvedl jsem priklad typeORM

jeste jednou naposledy nekdy se to hodi. netvrdim ze vzdy.
Takze ak sa zmeni schema pre tu api, tak prepisete naviac este anotacie... to je DRY?

je to  DRY, prepisu POUZE anotace.

203
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 07:09:09 »
jde to jen v jazycich, ktere podporuji reflexi typovych anotaci za behu. Zrovna v ADE to asi nejde, ale s tim jste prisel vy, ja uvedl odkaz na konkretni knihovny v Pythonu a Typescript
No vidite, uz ste skoro doma. Este si staci odpovedat ci ma lua reflexiu typovych anotacii za behu...

do vysledneho kodu v dynamickem jazyce jdou pridat typove anotace pomoci nejake dodatecne struktury s metadatay, tak jak to dela typescript kdyz kompiluje do es6

K comu, aby ten transpilovany javascrip overil ze sa typescript nezmylil. DONT REPEAT YOURSELF! Ak urobis typovu kontrolu v zdrojovom kode, tak je zbytocne ju replikovat v cielovom kode.

nekdy se hodi mit statickou kontrolu v kodu a dynamickou kontrolu v javascriptovem REPLu. uvedl jsem priklad typeORM

jeste jednou naposledy nekdy se to hodi. netvrdim ze vzdy.

204
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 06:52:33 »
No, vy o koze ja o voze.

no, ja jsem uvedl priklad, kdy se typove anotace k validacim pouzivaji (prevazne validace JSONu). Vy jste si vymyslel jiny priklad a chcete jim dokazat, ze to neni mozne.

205
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 06:44:08 »
jde to jen v jazycich, ktere podporuji reflexi typovych anotaci za behu. Zrovna v ADE to asi nejde, ale s tim jste prisel vy, ja uvedl odkaz na konkretni knihovny v Pythonu a Typescript
No vidite, uz ste skoro doma. Este si staci odpovedat ci ma lua reflexiu typovych anotacii za behu...

do vysledneho kodu v dynamickem jazyce jdou pridat typove anotace pomoci nejake dodatecne struktury s metadatay, tak jak to dela typescript kdyz kompiluje do es6

206
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 05:45:43 »
v pydanticu staci, kdyz konstruktor ciloveho typu akceptuje zdrojovy typ (vetsinou string). https://pydantic-docs.helpmanual.io/usage/models/#data-conversion

pokud chcete zakazat implicitni konverze, pouzijete strict typy

https://pydantic-docs.helpmanual.io/usage/types/#strict-types

207
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 05:36:30 »
Njn, staticky typovany jazyk...

jde to jen v jazycich, ktere podporuji reflexi typovych anotaci za behu. Zrovna v ADE to asi nejde, ale s tim jste prisel vy, ja uvedl odkaz na konkretni knihovny v Pythonu a Typescriptu

premenna do ktorej tu navratovu hodnotu ulozim musi byt rovnakeho typu, alebo musi byt definovany operator priradenia, alebo ju musim explicitne pretypovat...

v pydanticu staci, kdyz konstruktor ciloveho typu akceptuje zdrojovy typ (vetsinou string). https://pydantic-docs.helpmanual.io/usage/models/#data-conversion


208
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 01:24:28 »
Pripadne to urobim tak ze deklarujem triedu request ktora bude mat metodu getPercenta a vrati priamo ten typ Percenta, pripadne hodi vynimku ak vstup nebude validny. Takto v jednej triede popisem vstup podla kontraktu a v zbytku kodu uz budem pouzivat priamo percenta, bez zbytocnej typovej kontroly (tu urobi prekladac uz pri preklade) a bez zbytocnej kontroly pretecenia (implicitne priradenia ada nedovoli).

Deklaracia triedy request sa dobre anotuje (nie su v nej zalezitosti mimo ramec funkcnosti triedy). Naviac ten vysledny kod je rychly...

to neni DRY, protoze musite nekde definovat ciselnou promenou, do ktere ta procenta ukladate, a na jinem miste napsa kod, ktery overuje, ze vstupni string je cislo.

209
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 01:17:38 »
Mozem sice pouzit
Kód: [Vybrat]
subtype Percenta is Smallint range 0..100;
a napisat si super parser ktory mi deklaracie bude konvertovat napr. na regular ktory potom v runtime bude validovat hodnoty. Alebo budem odchytavat exceptions...

presne to je cil, ale tohle konkretne v Pythonu pujde validovat pouze v runtime, protoze Mypy (zatim?) neumi rozsahove ciselne typy.

doporucuji se podivat na dokumentaci te knihovny, kterou jsem odkazoval, validace podle typovych anotaci je default, ale muzete ji libovolne customizovat, kdyz nestaci

210
Vývoj / Re:Investor pro C++ IDE
« kdy: 14. 09. 2021, 00:24:02 »
Takhle to u typovaných jazyků nefunguje. Nech to bejt.

pokud typove informace zahodite pri kompilaci, nemuze to fungovat. Pokud je zachovate a umoznite jejich cteni v case behu, lze je vyuzit.
Když myslíš.

nemyslim, vim. V Pythonu se stejne typove anotace bezne pouzivaji jak ke staticke analyze, tak v runtime. Nektere typescriptove knihovny (typeORM), take pouzivaji anotace v runtime (s pomoci reflect-metadata).

a netykejte mi prosim.

Stran: 1 ... 12 13 [14] 15 16 ... 41