Co má dnes význam - online aplikace

Izidor Kopecki

Re:Co má dnes význam - online aplikace
« Odpověď #15 kdy: 13. 12. 2018, 12:10:53 »
V čem má dnes význam psát webové aplikace?

V Go.

Přijde mi, že PHP je již zcela mrtvé.

Bohužel není.


Re:Co má dnes význam - online aplikace
« Odpověď #16 kdy: 13. 12. 2018, 13:19:08 »
V čem má dnes význam psát webové aplikace? Přijde mi, že PHP je již zcela mrtvé.

Nie, nie je. Vo verzii 7 a so Symfony či Doctrine je to naprosto použiteľný jazyk. Avšak ak sa len chystáš začať, PHP si už nevyber.

Ak ti ide primárne o vývoj web aplikácií a najčastejšie budeš robiť REST / GraphQL API, tak na to je momentálne najlepšia Java a s jej znalosťou budeš aj na trhu práce najperspektívnejší. Node je fajn, ale neťahal by som ho do Enterprise oblasti, Go je fajn, ale stále je to oproti Jave viac módna ako praktická voľba, atď.

Suma sumárum: ak už PHP vieš, pokojne pri ňom ostaň a prehlbuj si jeho znalosti - ešte dlhé roky budeš mať o prácu postarané. Ale ak ho nevieš, ani s ním už nezačínaj. S Javou dokážeš to isté a bude to ako robustnejšie, tak výkonnejšie, či škálovateľnejšie riešenie, a preto aj platovo vyššie cenené. A Go, Rust a podobne sú na backendoch web aplikácií príliš málo používané, aby si ich riskoval ako hlavný jazyk, vedel len tie. Mal by si s nimi problém nájsť si tu zamestnanie.

Re:Co má dnes význam - online aplikace
« Odpověď #17 kdy: 13. 12. 2018, 21:09:28 »
najčastejšie budeš robiť REST / GraphQL API,
a v cem konkretne ma byt s timhle v PHP problem?
S Javou dokážeš to isté a bude to ako robustnejšie, tak výkonnejšie, či škálovateľnejšie riešenie,
jsou tohle vzdy hlavni hodnotici kriteria?
Děkuji za možnost editace příspěvku.

Kiwi

Re:Co má dnes význam - online aplikace
« Odpověď #18 kdy: 13. 12. 2018, 21:22:23 »
Tak dobry vtip jsem dlouho neslysel - dobry navrh OOP se da cilit pomci provadenych testu.... To je treba zaramovat :)
Možná se nejdřív koukněte do zrcadla, komu že se to vlastně smějete.

Správné uplatňování testů a TDD obecně téměř vždy vede k lepšímu návrhu (nejen u OOP), protože:
1. Nejdříve musíte přemýšlet nad vhodným interfacem a až pak řešíte interní detaily
2. Kvalitu vnějšího interfacu okamžitě podrobujete praktické zkoušce jste nuceni jej předělat, pokud narazíte na problém

Čím méně zkušený programátor, tím více jej TDD vede správným směrem.
Má to v sobě i určitá úskalí, protože takový postup může vést k tomu, že vymyslím vhodná rozhraní pro testování, což ovšem není totéž, jako vhodná rozhraní pro normální běh programu. Pravda, je to určitě lepší než rozhraní nevhodná pro nic, ale optimální to taky není.

Když dám příklad z elektroniky, tak je to jako navrhnout jednotlivé moduly většího celku tak, že k nim půjdou krásně připojit měřící přístroje a každý modul půjde autonomně otestovat (protože každý bude mít např. vlastní generátor hodin), ale vzájemné propojování těch modulů bude nedomyšlené a vzájemná synchronizace bude obtížná (právě protože každý bude mít např. vlastní generátor hodin místo centrálního zdroje).

Jiná typická chyba podobného rázu je "logický" postup při návrhu programu tak, jak se bude program postupně inicializovat, v jakém formátu bude program generovat/přijímat data apod. Společnou chybou je zatížení uvažování od běžného použití směrem k situacím, které nejsou běžné či nejsou podstatné z hlediska funkce.

Zkrátka testování může včas odhalit některé nedostatky navrženého rozhraní, ale určitě bych nespoléhal na to, že požadavek navrhnout nějaké rozhraní alespoň kvůli testům implikuje, že to rozhraní bude ideální i z hlediska normálního běhu a vývoje programu. To mohou být v lepším případě mimoběžné, v horším dokonce protichůdné požadavky.

Re:Co má dnes význam - online aplikace
« Odpověď #19 kdy: 13. 12. 2018, 21:25:23 »
najčastejšie budeš robiť REST / GraphQL API,
a v cem konkretne ma byt s timhle v PHP problem?
S Javou dokážeš to isté a bude to ako robustnejšie, tak výkonnejšie, či škálovateľnejšie riešenie,
jsou tohle vzdy hlavni hodnotici kriteria?

Nepíšem tam, že s tým má PHP nejaký problém. Nepíšem tam ani len o jedinom probléme s PHP, takže nerozumiem na čo sa to vôbec pýtaš. Odporúčam prečítať si znovu moju odpoveď a tentokrát pomaly a pozorne.

A samozrejme, že robustnosť, výkonnosť a škálovateľnosť sú snáď najdôležitejšie kritériá. Ak nesúhlasíš, pokojne napíš ktoré považuješ za dôležitejšie.


Re:Co má dnes význam - online aplikace
« Odpověď #20 kdy: 13. 12. 2018, 23:03:22 »
A samozrejme, že robustnosť, výkonnosť a škálovateľnosť sú snáď najdôležitejšie kritériá. Ak nesúhlasíš, pokojne napíš ktoré považuješ za dôležitejšie.
TCO je daleko nad tim co jsi napsal.
Děkuji za možnost editace příspěvku.

Re:Co má dnes význam - online aplikace
« Odpověď #21 kdy: 13. 12. 2018, 23:16:24 »
A samozrejme, že robustnosť, výkonnosť a škálovateľnosť sú snáď najdôležitejšie kritériá. Ak nesúhlasíš, pokojne napíš ktoré považuješ za dôležitejšie.
TCO je daleko nad tim co jsi napsal.

Aha. No a to sa vylučuje s tým, čo som písal?

Re:Co má dnes význam - online aplikace
« Odpověď #22 kdy: 14. 12. 2018, 00:12:57 »
U drtive vetsiny projektu ano.
Děkuji za možnost editace příspěvku.

Re:Co má dnes význam - online aplikace
« Odpověď #23 kdy: 14. 12. 2018, 13:08:36 »
U drtive vetsiny projektu ano.

Ale tak to si si vyslovene vymyslel.

Jano7

Re:Co má dnes význam - online aplikace
« Odpověď #24 kdy: 14. 12. 2018, 21:11:28 »
Citace
V čem má dnes význam psát webové aplikace? Přijde mi, že PHP je již zcela mrtvé.

To čo vás to v tej škole učia. PHP mŕtvy jazyk? Veď je to jeden z najpopulárnejších jazykov
na tvorbu webových aplikácií. Jazyk sa aktívne vyvíja a s ním aj jeho ekosystém.

Citace
Nie, nie je. Vo verzii 7 a so Symfony či Doctrine je to naprosto použiteľný jazyk.

Ja by som pridal aj Laravel a určite aj Yii či CakePHP a ďalšie. V dnešnej dobe už frameworky konvergujú
a inšpirujú sa navzájom. Nedá sa podľa mňa povedať, že ROR je oveľa lepšie ako Django či Symfony alebo naopak.

Citace
Ale ak ho nevieš, ani s ním už nezačínaj.

Čo ja viem, naučiť sa Symfony a PHP a potom prejsť k Jave/Springu mi prijde znesiteľnejšia cesta, ako
priamo skočiť na Javu a Spring. Symfony sa veľmi inšpirovalo práve Springom. Ďalej na menšie a stredne
veľké projekty je oveľa lepšia voľba PHP; ideálne tiež pre mnohé startupy. Java je pre menšie projekty
kanón na vrabce.

Predstavme si, že niekto chce rozbehnúť stredne veľkú aplikáciu na webe. S Linux/FreeBSD, PHP/Laravel/Symfony, nginx,  PostgreSQL/MariaDB, Cloudways zrejme nemá konkurenciu, čo sa týka rýchlosti, pohodlnosti vývoja a nasadenia.
Na Cloudways máte bezkonkurenčne najlacnejší plán začínajúci od 10$ za mesiac.

Existuje x skvelých frameworkov ako Python/Django, C#/.Net Core, JavaScript/Express.js, ale s možnosťami nasadenia
a cene sa PHPčku nemôžu rovnať.






Kit

Re:Co má dnes význam - online aplikace
« Odpověď #25 kdy: 14. 12. 2018, 21:36:20 »
Symfony sa veľmi inšpirovalo práve Springom.

To považuji za chybu. Dost mi vadí, jaké nesmysly si tyto frameworky tahají z Javy. PHP je jiným jazykem a inspirace Javou vede k tragickému kódu.

Jano7

Re:Co má dnes význam - online aplikace
« Odpověď #26 kdy: 15. 12. 2018, 13:00:45 »
Symfony sa veľmi inšpirovalo práve Springom.

To považuji za chybu. Dost mi vadí, jaké nesmysly si tyto frameworky tahají z Javy. PHP je jiným jazykem a inspirace Javou vede k tragickému kódu.

Čo konkrétne máš na mysli? Moje primárne jazyky sú Java/Python a len nedávno som začal koketovať s PHP.
Symfony a Laravel mi prijdú kompaktné, veľmi dobre organizované. Ako prvé ma zaujal workflow; ten je oproti
Jave oveľa jednoduchší. Symfony ma validáciu kompletne prebratú z Java špecifikácie, sú tam pre Javistu známe pojmy ako Repository, Dependency Injection, Services atď, akurát to nie je tak komplexné a komplikované. Počul som už nariekať nad tým, že PHP preberá z Javy (CodeIgniter používatelia), ale neviem, čo presne im vadí.

JavaScript je odlišný, tam napr. v tom Express.js nie sú triedy, všetko ide cez funkcie -- middleware, cesty, modely.

Kit

Re:Co má dnes význam - online aplikace
« Odpověď #27 kdy: 15. 12. 2018, 13:40:26 »
Symfony sa veľmi inšpirovalo práve Springom.

To považuji za chybu. Dost mi vadí, jaké nesmysly si tyto frameworky tahají z Javy. PHP je jiným jazykem a inspirace Javou vede k tragickému kódu.

Čo konkrétne máš na mysli? Moje primárne jazyky sú Java/Python a len nedávno som začal koketovať s PHP.
Symfony a Laravel mi prijdú kompaktné, veľmi dobre organizované. Ako prvé ma zaujal workflow; ten je oproti
Jave oveľa jednoduchší. Symfony ma validáciu kompletne prebratú z Java špecifikácie, sú tam pre Javistu známe pojmy ako Repository, Dependency Injection, Services atď, akurát to nie je tak komplexné a komplikované. Počul som už nariekať nad tým, že PHP preberá z Javy (CodeIgniter používatelia), ale neviem, čo presne im vadí.

JavaScript je odlišný, tam napr. v tom Express.js nie sú triedy, všetko ide cez funkcie -- middleware, cesty, modely.

Konkrétně mi vadí, že tyto frameworky používají například přístupové metody k datovým objektům. Proč, když PHP má immutable kolekce, se kterými umí pracovat mnohem efektivněji a přehledněji? Ostatní objekty mám také immutable. K čemu statické metody, když je PHP také nepotřebuje? Proč se v těch frameworcích nevyužívají vestavěné funkce a funkcionální přístupy?

PHP je vyspělým programovacím jazykem, který žádné frameworky nepotřebuje. Vše potřebné má již v základu nebo v modulech.

Re:Co má dnes význam - online aplikace
« Odpověď #28 kdy: 15. 12. 2018, 19:30:26 »
U drtive vetsiny projektu ano.

Ale tak to si si vyslovene vymyslel.
Zkus si dat do pomeru pocet projektu ktere potrebuji resit skalovatelnost apod s temi, kde je to buřt. Ne vsechno co se programuje jsou banky a telco.
Děkuji za možnost editace příspěvku.