Tak nejste typický programátor knihoven.
Z hlediska uživatelů se nic moc nemění, generika akorát nahrazují type erasure, které se používá v C. V javascriptu chápu, že se neuvádí typu async, protože tam není typová kontrola.
Pro lidi, co knihovny používají se snažím navrhovat jednoduchá API.
task<T> - toho bych se fakt nebál. Místo T se samozřemě dá typ, takže task<int> je prostě korutina, která vrací int, akorát není dostupný hned. Lze použít i task<void>
V javascriptu, pokud uvedu klíčové slovo async, tak vím, že mi z funkce vypadne Promise. Pokud ho neuvedu, může vypadnout cokoliv, (včetně Promise). V C++ musím vždycky uvádět typ. A dává mi smysl, aby třeba některá moje funkce vracela future<int> - to je celkem dobře popisné, je to proměnná, která bude dostupná v budoucnosti a bude typu int. (dokonce v jednom návrh jsem používal šablonu async<typ> podle javascriptu). Použití pak se nelíší od javascriptu. Akorát místo await píšu co_await (nová klíčová slova se špatně zavádí do jazyka, kde už mohou existovat tyto slova jako identifikátory)
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 51 064×
Přečteno 23 939×
Přečteno 22 871×
Přečteno 20 953×
Přečteno 17 760×