Nepovinná možnost používání typování v Pythonu není vůbec špatná věc. V jedno-souborových skriptech nebo malých projektech zřejmě není potřeba typovat, ale pokud je projekt dostatečně velký a spolupracuje na něm více lidí tak už je to nezbytnost. Nástorje jakom MyPy pak dokážou odhalit zákeřné chyby, které by se v silně typovaných jazycích neděly.
Já vidím nepovinné typování jako velkou výhodu a flexibilitu Pythonu. Můžu v něm psát jednoduché věci jednoduše a složité projekty dostatečně robusně. pá 16. 5. 2025 v 12:46 odesílatel Honza Javorek <[email protected]> napsal: > Mě se nejvíc líbí, jak s tím jde natypovat data, třeba pomocí pydantic, a > hlídá mi to pak, jestli tam mám to, co čekám, že tam mám. Jinak je mi to > spíš fuk a takové ty akrobacie taky nemám rád. Občas jsem je přidal, aby mi > editor napovídal složitější objekty skrz nějaký dekorátor, ale byl to > strašný oser a kdyby mi s tím nepomohl Copilot, tak to ani nevytvořím. > Připadal jsem si jak v Haskellu, hlavně ty chybové hlášky, co z toho padaly > když to bylo blbě, mi nikdy nic neřekly a byly super zamotaný. > > Trochu pomáhá, když se ty věci pojmenujou. Takže tam pak není company: > dict[str, dict[list[int]] | tuple | str | int] apod. (to jsem si teď > vymyslel), ale udělá se někde bokem Company = dict[str, dict[list[int]] | > tuple | str | int] a pak se dá napsat company: Company a ještě se to dá > použít na víc místech. Tohle pak hodně zpřehledňuje to čtení kódu. Ale kdo > to dělá, že? > > Asi je to jak se vším. Je to jenom nástroj, do kterýho se můžu zamotat a > nasolit to bezhlavě všude, nebo si s ním občas nějak pomoct. Blbý > samozřejmě je, když to neovlivním a musím číst kód v nějaké knihovně, kde > to je všude a je to dlouhý a nepřehledný. > > HJ > > On Fri, May 16, 2025 at 11:14 AM Jirka Vejrazka <[email protected]> > wrote: > >> Jojo, tuhle jsem koukal na nejakou dokumentaci k nejakemu balicku a rikal >> jsem si "tohle vypada presne jako Java, 70% popisu argumentu je vizualni >> omacka, kterou musim preskocit"). Ja chapu, ze to par procent lidi nekde >> vyuzije, ale z Pythonu, ktery se driv cetl skoro jako anglictina, se stava >> nesrozumitelny gulas :( >> >> On Fri, 16 May 2025 at 09:00, starenka . <[email protected]> wrote: >> >>> ja budu nekonstruktivni: je mi soufl z toho, jak lidi utekli z javy a >>> .net k pythonu a ted se ho snazi aktivne zk***it temahle obludariama. pulku >>> definici fuknci uz nejsem schopnej ani rozlustit, protoze je to union union >>> union blah. soubory maj tisice radku jen kvuli temhle onucim, ktery stejne >>> k nicemu nejsou, protoze lidi nepouzivaj mypy. jestli to takle pujde dal, >>> zacnu se po 20 letech poohlizet po novym jazyce. >>> >>> On Wed, May 14, 2025, 14:16 Radim Novotny <[email protected]> >>> wrote: >>> >>>> Ahoj, >>>> >>>> VSCode s Django používám už dlouho, neřeším ale 100% type checking, >>>> protože s Djangem to je komplikovanější. Nevím o ničem jiném, než >>>> django-stubs, ale nepoužívím to. Jsem rád za to, že mi ukáže nedefinovanou >>>> proměnnou nebo špatně ukončený string :) >>>> >>>> Kolega se o to chvilku snažil, ale je to fakt dost komplikované a >>>> otravné. Jednodušší příklad: >>>> >>>> class MarkItem(models.Model): >>>> MarkItemId = NewType('MarkItemId', int) >>>> id: MarkItemId >>>> pk: MarkItemId >>>> score_set: 'models.Manager[Score]' >>>> >>>> Pustil se i do složitějších struktur, ale je to neudržovatelné. To by >>>> chtělo jednoho extra člověka jen na to, ale ten by z toho za chíáli asi >>>> zblbnul. >>>> Já se snažím definovat alespoň základní typy proměnných nebo parametrů, >>>> nebo typ návratové hodnoty. >>>> >>>> Co se týká AI, tak ve VSCode používám občas chat s Claude 3.7 Sonet >>>> modelem a nebo ChatGPT o1. Určitě to pomáhá, i v Django, ale je potřeba ho >>>> pořád kontrolovat. Občas je to super, že člověk jen mačká Tab a ono to píše >>>> přesně to co bych potřeboval :) Na druhou stranu, občas je ai-autocomplete >>>> otravné, až nebezpečné, když zapisuju nějaká čísla a on mi tam háže nějaké >>>> náhodné návrhy :) >>>> Modely nemám ale porovnané, nedokážu říct, který je lepší nebo horší. >>>> >>>> Radim >>>> >>>> On Wed, 14 May 2025 at 13:49, Honza Javorek <[email protected]> >>>> wrote: >>>> >>>>> Ahoj, >>>>> >>>>> v nějakém tom základním Python doplňku pro VS Code přímo od MS je >>>>> zabudovaný (taky jejich) pyright, který hlídá typy. Ani pylance, ani >>>>> pylint >>>>> jsem neinstaloval, na lintování a přeformátování kódu používám kdyžtak >>>>> ruff. Jestli si to rozumí s Djangem ale vůbec nevím, protože Django >>>>> nedělám >>>>> :D >>>>> >>>>> Jinak mám GitHub Copilot přímo, ale že by to byla nějaká bomba, nevím. >>>>> Lidi si chválí Cursor, což je fork VS Code s agentním modelem, takže může >>>>> i >>>>> vytvářet soubory atd., ale byl jsem líný to zatím zkoušet. Trochu doufám, >>>>> že to MS dožene a udělá to pro GitHub Copilot taky, takže nebudu muset nic >>>>> měnit, zkoušet, a budu pořád dál platit jen tu jednu věc. >>>>> >>>>> HJ >>>>> >>>>> On Wed, May 14, 2025 at 1:45 PM Vladimír Macek <[email protected]> >>>>> wrote: >>>>> >>>>>> Ahoj, >>>>>> >>>>>> v této konferenci už moc velký provoz není, ale přesto se zkusím >>>>>> zeptat. >>>>>> >>>>>> 1. >>>>>> >>>>>> Nedávno jsem z osobních důvodů přešel z PyCharmu na VS Code a spousta >>>>>> věcí se mi na tom líbila. Na Django projektech však hodně používám >>>>>> *typovou >>>>>> kontrolu* a přizpůsobuju tomu i zdrojáky. >>>>>> >>>>>> Snažím se potlačovat co nejmíň warningů. Nainstaloval jsem vedle >>>>>> Pylint i *Pylance extension*, aby mě prudil. Umí toho hodně a dobře, >>>>>> ale... >>>>>> >>>>>> - Django má některé magické vlastnosti, jako že přidá k modelům >>>>>> id typu AutoField. Statická kontrola kódu pak křičí, že .id atribut >>>>>> neexistuje. >>>>>> >>>>>> - Nebo neví, že atribut instance z IntergerFieldu je typu int. >>>>>> >>>>>> - Nebo křičí, že neexistuje metoda modelu get_<field>_display(), >>>>>> když mám choice-type field a Django tuto metodu dynamicky přidá. >>>>>> >>>>>> - QuerySety jsou samostatná kapitola. :-) >>>>>> >>>>>> Máte nějak funkčně *ošéfováno, že váš VSCode nekřičí a dokonce chápe >>>>>> tyto a další Django-specific prvky* vč. jejich typů? >>>>>> >>>>>> Čtu, že to má snad řešit django-stubs v souběhu s konfigurací v >>>>>> pyproject.toml. To mám, ale buď mi to nefunguje (a ani nekřičí) nebo tyto >>>>>> věci neumí... >>>>>> >>>>>> Povedlo se to někomu z vás tak, že jste spokojeni? >>>>>> >>>>>> 2. >>>>>> >>>>>> Co používáte ve *VS Code na AI-assisted vývoj*? LLM autocomplete je >>>>>> super. Ke kterému extension jste dokonvergovali, jaký podkladový LLM >>>>>> používate a je placený? >>>>>> >>>>>> Z těch co jsem zkusil u mě vydržel Supermaven, ale používám z něj >>>>>> málo a vývoj je jistě dál. Tak uvítám tip. >>>>>> >>>>>> -- >>>>>> >>>>>> Děkuji. S pozdravem >>>>>> Vladimír Macek | +420 608 978 164 >>>>>> >>>>>> -- >>>>>> -- >>>>>> E-mailová skupina [email protected] >>>>>> Správa: http://groups.google.cz/group/django-cs >>>>>> --- >>>>>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >>>>>> „django-cs“ ve Skupinách Google. >>>>>> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >>>>>> zašlete e-mail na adresu [email protected]. >>>>>> Tuto diskuzi najdete na adrese >>>>>> https://groups.google.com/d/msgid/django-cs/ea2173d0-6b73-6f04-1011-805517c73858%40sandbox.cz >>>>>> <https://groups.google.com/d/msgid/django-cs/ea2173d0-6b73-6f04-1011-805517c73858%40sandbox.cz?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>>> -- >>>>> E-mailová skupina [email protected] >>>>> Správa: http://groups.google.cz/group/django-cs >>>>> --- >>>>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >>>>> „django-cs“ ve Skupinách Google. >>>>> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >>>>> zašlete e-mail na adresu [email protected]. >>>>> Tuto diskuzi najdete na adrese >>>>> https://groups.google.com/d/msgid/django-cs/CAPAmg-eJwKbifQ_DbvCkX1JuXzPgUHv%2B0rr7Zr99XEC4i_KLJQ%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/django-cs/CAPAmg-eJwKbifQ_DbvCkX1JuXzPgUHv%2B0rr7Zr99XEC4i_KLJQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>>> -- >>>> E-mailová skupina [email protected] >>>> Správa: http://groups.google.cz/group/django-cs >>>> --- >>>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >>>> „django-cs“ ve Skupinách Google. >>>> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >>>> zašlete e-mail na adresu [email protected]. >>>> Tuto diskuzi najdete na adrese >>>> https://groups.google.com/d/msgid/django-cs/CADDKcsv5vcHH3AJZQrniqZAcv7zTNpKJzGnc6n%2B4RS4Qyj6veQ%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/django-cs/CADDKcsv5vcHH3AJZQrniqZAcv7zTNpKJzGnc6n%2B4RS4Qyj6veQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> -- >>> E-mailová skupina [email protected] >>> Správa: http://groups.google.cz/group/django-cs >>> --- >>> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >>> „django-cs“ ve Skupinách Google. >>> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >>> zašlete e-mail na adresu [email protected]. >>> Tuto diskuzi najdete na adrese >>> https://groups.google.com/d/msgid/django-cs/CA%2B7MNVp6qc5j3k0aSY%2B89OEz7EGgVE9ZZEQMkXCgarg_4wnP2w%40mail.gmail.com >>> <https://groups.google.com/d/msgid/django-cs/CA%2B7MNVp6qc5j3k0aSY%2B89OEz7EGgVE9ZZEQMkXCgarg_4wnP2w%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> -- >> E-mailová skupina [email protected] >> Správa: http://groups.google.cz/group/django-cs >> --- >> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny >> „django-cs“ ve Skupinách Google. >> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, >> zašlete e-mail na adresu [email protected]. >> Tuto diskuzi najdete na adrese >> https://groups.google.com/d/msgid/django-cs/CAFhEBEBvxX5sfEX5pPJLBLskGmX5NGCDcH0dyOXY2yEyVpjb6w%40mail.gmail.com >> <https://groups.google.com/d/msgid/django-cs/CAFhEBEBvxX5sfEX5pPJLBLskGmX5NGCDcH0dyOXY2yEyVpjb6w%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > -- > E-mailová skupina [email protected] > Správa: http://groups.google.cz/group/django-cs > --- > Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny > „django-cs“ ve Skupinách Google. > Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, > zašlete e-mail na adresu [email protected]. > Tuto diskuzi najdete na adrese > https://groups.google.com/d/msgid/django-cs/CAPAmg-e73kdQE7ONteDBzT5xaO-1aK9dTeAKNN1Vdi15P8M7zQ%40mail.gmail.com > <https://groups.google.com/d/msgid/django-cs/CAPAmg-e73kdQE7ONteDBzT5xaO-1aK9dTeAKNN1Vdi15P8M7zQ%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- Jaroslav Beran pgp: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9 -- -- E-mailová skupina [email protected] Správa: http://groups.google.cz/group/django-cs --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google. Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu [email protected]. Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/django-cs/CAKG-xtRLyXAtr8%2B0kZzSi6S2%3DZt0YaMc4ScwEAWttQ_KUzDP3w%40mail.gmail.com.
