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.