Vlákno názorů ke článku Jet - nový PHP8 framework #2 - Jak se s tím pracuje? od Lugaš - Oceňuji vaši odvahu jít s kůží na trh....

  • 31. 10. 2022 20:03

    Lugaš

    Oceňuji vaši odvahu jít s kůží na trh. Konkurence je velká a každý druhý kolega vám řekne že php frameworků už je dost a není potřeba vyrábět další. Chápu vás, sám mám svůj php framework v šuplíku. Tedy nemám ambice jít s tím ven, říkám si, alespoň zatím, už od roku 2012. Mám to spíš jako cvičení, jednou dvakrát za rok tam něco přidám upravím, naučím se nějaký nový postup, přemýšlím o architektuře a často ji měním, aby vše fungovalo co nejlépe a bylo to pochopitelné (a to my myslím dáte za pravdu, celý framework, to není žádná brnkačka).

    Nicméně, pár doporučení bych měl:

    • přidejte composer, vyřeší za vás autoload a je nutný pro další věci
    • přidejte jednotkové testy - phpunit / codeception (neotestovaný framework nikdo seriozně používat nebude) nejde jen o aktuální stav testy vám pomohou i s vývojem a zjištěním že nová verze něčeho nerozbije něco jiného a slouží i jako dokumentace, jak jste zamýšlel tu kterou věc používat
    • přidejte statickou analýzu phpstan/psalm, spustil jsem ji nad frameworkem bez striktních pravidel a v těch 900+ souborech je 3000+ chyb a to mnohdy zbytečných, namátkou jsem prošel pár souborů a je na tom vidět že typovost se přidávala postupně, na mnoha místech se kontroluje něco co tam ani nemůže být, protože kód dříve spadne na typehintu, někde zase zybtečně nullpointer, atd.. je na tom vidět že to moc lidí nepoužívá, pokud je ten systém opravdu modulární a někdo napíše nový modul nebo prostě bude chtít udělat něco trochu jinak než zamýšlíte a používáte vy, přestane to fungovat právě kvůli těmto chybám. (Někdo zavolá get dříve než set aby se ujistil že v property je null a už je to type error, protože returntype getteru neumožňuje vrátit null, zatímco property je nullable)
    • pokud to chcete někam posunout, bude potřebovat aby vám ostatní na githubu pomohli s opravami a novými funkcemi, a každý člověk formátuje kód jinak, teď je váš kód celkem konzistentní (i když ne 100%), ale ostatní vám budou dávat kód naformátovaný podle nich, takže formátování buď budete přepisovat, nebo tam budete mít nekonzistentní formátování, musíte zavést coding strandard (phpcsfixer/phpco­desniffer)

    Přeju hodně zdaru, muselo to dát spoustu práce (a spoustu ještě dá, tak to dělejte chytře).

  • 31. 10. 2022 20:36

    Mirek Marek

    1) Composer ne - vysvětlím v budoucnu pořádně.

    2) K unit testům se také dostanu.

    3) PHP Storm má skvěle integrované nástorje na kvalitu kódu atd. V tom je to celé vyvíjené a těmto analýzám neustále podrobované celé roky.

    4) S tím jak má vypadat "správně naformátovaný zdroják" (i když některá kritéria jsou čistě subjektivní, jiná objektivní) také hodně "helpne" moderní IDE jako je PHP Storm, kde pochopitelně pro to mám definici a podle těchto definic (která se dá i snadno exportovat ...) se kód automaticky formátuje - což je maličkost.
    Případně se s lidmi co budou chtít participovat dá dohodnout - je to projekt jako každý jiný a "pár" jich mám za těch "par" let praxe za sebou. Tak snad si poradím i teď ;-)

    Ale rozhodně děkuji za zájem a za zcela relevantní poznámky a radyů

  • 1. 11. 2022 23:07

    neřeknu

    ad 1) v PHP nejsem už docela dlouho, ale nepodporovat Composer (ať už máme jakýkoliv důvod), mi osobně přijde hodně divné - to je jako bych dnes nepoužíval package.json u JS, nebo Docker / Kube na serverech... :-0

    ad 2) docela risk, nedělat testy... Bylo řečeno i v jiných komentářích.

    ad 3) a co ti, kteří nepoužívají JetBrains rodinu, ale třeba něco jiného? Já sám programoval přes 8 let ve Vimu. Spoléhat se na "kvalitní" IDE (otázkou je, co které IDE to je) a jeho aktivní pluginy, je dost naivní a rozhodně ve mne nebudí myšlenku, že jste někdy programoval za peníze a ve velkém týmu.

    ad 4) no to jsou přesně argumenty phpéčkařů, to bylo vždy spaghetti code a asi nikdy více nebude. Kód má být nějak formátován automaticky. Ne v závislosti na IDE. Programátoři sice možná používají JetBrains, ale pak je tu hromada lidí, kteří používají M$ Paskvil Code, Atom, Notepad atd. Sám jsem zažil žabomyší války tab vs. mezery, chlupaté závorky na stejné řádce či nové apod. Nikdy, nelze spoléhat na to, že někdo má PhpStorm, resp. má ho stejně nastavený jako Vy.

    Koukal jsem do dokumentace, na kusy kódu a musím uznat, že od dob kdy jsem opustil PHP (v roce '14) se fakt nic nezměnilo. Furt je to stejný bastl a humus. Jsem opravdu rád, že jsem tento svět opustil...

    Psát v dnešní době PHP FW je totální nesmysl, existuje jich hromada a 1000x lepších.

    Píšu jen svůj názor, máte obdiv, že s tímto jdete ven

  • 2. 11. 2022 9:58

    to_je_jedno

    Ohledne formatovani kodu bych to postavil z velke casti na souboru .editorconfig. Zbytek resit pomoci nejakyho package kde budou pravidla pro phpcs. Spolehat na stejny nastaveni je opravdu problematicke (kdyz to budu mit jinak a budu mit v IDE nastaveni autofix tak mam pro kazdy otevreny soubor najednou miliardu zmen v gitu

  • 3. 11. 2022 16:57

    BoneFlute

    Není nutné do PHP kopat. Dělám profesionálně v C# a je to stejnej bastl. Javascript je bastl od narození. V jazyce to (obvykle) není.

    Všechno je to lidech, o technikách, o zkušenostech.

    Se zbytkem cca souhlasíme. Jen mi to přjde, že tak trochu vkládáme do úst důvody, které třeba vůbec nemá. Nechme ho se vyjádřit. Já jsem zvědavej na jeho motivaci nepoužít composer.