Erlang/Elixir - zkušenosti s vývojem webových aplikací

Radek Miček

Jaké jsou vaše zkušenosti s vývojem a provozem webových aplikací postavených v jazycích Erlang/Elixir.


.

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #1 kdy: 18. 02. 2017, 15:39:53 »
nauc se cowboye a udelas v tom cokoliv. my jeli cca od 2011 chicagoboss s vlastnim db backendem (dsl na datamodely kompilovany do beamu a nativnich query procedur pro db) a pak jsme presli na vlastni odlehceny framework postaveny na cowboyi, websocketech, reactu a es6. cele to jede v docker containerech (zacinali jsme na lxc) nad zfs a management je velmi blizko nule.
ted leti phoenix ale elixir je spis takovy lakadlo pro rubysty, erlang je erlang :)

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #2 kdy: 18. 02. 2017, 16:57:45 »
Jaké jsou vaše zkušenosti s vývojem a provozem webových aplikací postavených v jazycích Erlang/Elixir.
S vývojem jsou moje zkušenosti skvělé (Phoenix framework). Co se týče nějakého většího nasazení, neumím posoudit, dělám věci víceméně jenom nástroje pro sebe a omezený okruh lidí. Ale s tím by taky neměl být žádný velký problém, možná to chce jenom aby si logiku Erlangu opsáci trochu nastudovali, aby věděli, jak se k tomu chovat...

Kdyžtak zkus nahodit nějaké konkrétnější dotazy, rád pomůžu, jestli budu vědět, Elixir je moje láska :)

ted leti phoenix ale elixir je spis takovy lakadlo pro rubysty, erlang je erlang :)
Elixir rozhodně není jenom o syntaxi. I když i ta ušetří hodně nervů (osobně jsem syntaxi Ruby nesnášel a díky Elixiru jsem si na ni zvykl, ne naopak). K psaní v plain Erlangu moc nevidím důvod, Elixir je super.

Phoenix je výborný framework, dal bych mu rozhodně před ChicagoBossem přednost (v Phoenixu jsem dělal hodně - od ranných fází vývoje, v CB něco málo). Ale je fakt, že jeho síla je hodně v tom klasickém modelu oddělených stránek generovaných na serveru šablonami. Websockety má taky pořešené parádně, takže SPA se s ním taky dá udělat příjemně, ale už to není mainstreamové použití, které je fakt odladěné.

Mám rozchozenou SPA aplikaci, kde Phoenix vyloženě jenom obsluhuje websockety, rendering se dělá na klientovi (v Elmu, ale stejně dobře se dá použít třeba i React). HTTP API v téhle aplikaci vůbec nemám, všechno valí přes ws a funguje to dobře.

gll

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #3 kdy: 18. 02. 2017, 17:31:24 »
Websockety má taky pořešené parádně, takže SPA se s ním taky dá udělat příjemně, ale už to není mainstreamové použití, které je fakt odladěné.

Jak souvisí SPA s websockety?

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #4 kdy: 18. 02. 2017, 19:15:21 »
Jak souvisí SPA s websockety?
Když se stránky renderují na klientovi, musí klient nějak dostat data. Buď přes http api, nebo přes ws. Ws mají výhodu v tom, že je přes ně čistější oboustranná asynchornní komunikace. Takže když SPA, tak mi websockety přijdou jako lepší volba (pokud se s nimi v daném frameworku dobře pracuje).


Radek Miček

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #5 kdy: 19. 02. 2017, 09:53:18 »
S vývojem jsou moje zkušenosti skvělé (Phoenix framework). Co se týče nějakého většího nasazení, neumím posoudit, dělám věci víceméně jenom nástroje pro sebe a omezený okruh lidí. Ale s tím by taky neměl být žádný velký problém, možná to chce jenom aby si logiku Erlangu opsáci trochu nastudovali, aby věděli, jak se k tomu chovat...

Kdyžtak zkus nahodit nějaké konkrétnější dotazy, rád pomůžu, jestli budu vědět, Elixir je moje láska :)

Zeptám se tedy konkrétněji k Phoenix frameworku:

  • Jak je to s upgrady na novou verzi? Bývá potřeba měnit aplikaci nebo jsou nové verze zpětně kompatibilní?
  • Pro přístup k databázi používáte Ecto? A pokud ano, jak dobře se v tom píší složitější dotazy?

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #6 kdy: 19. 02. 2017, 10:26:43 »
Jak je to s upgrady na novou verzi? Bývá potřeba měnit aplikaci nebo jsou nové verze zpětně kompatibilní?
To je různé podle verze. Ze začátku byl vývoj docela bouřlivý, ale teď už je nějakou dobu řekl bych stabilizovaný. Žádné překotné změny bych teď už nečekal, podle mě už bude Phoenix hodně stabilní. Taky z toho důvodu, že z hlediska toho, co umí nejlíp (aplikace založená na oddělených stránkách, templatování) už imho není zas tak moc co vymýšlet :)

Způsoby upgradu na jednotlivé verze je zdokumentovaný, můžete se kouknout sám: http://www.phoenixframework.org/blog/upgrading-from-11x-to-120

Pro přístup k databázi používáte Ecto? A pokud ano, jak dobře se v tom píší složitější dotazy?
Zatím jsem psal věci, kde se mi hodilo jako úložiště použít Mnesia (interní erlangovská databáze), kterou Ecto nepodporuje, takže s Ecto neporadím, zkoušel jsem to snad jenom jednou a velmi krátce.

klaxo

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #7 kdy: 23. 02. 2017, 12:55:27 »
ake IDE viete doporucit na Erlang / Elixir? Idealne aj s nasepkavacom

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #8 kdy: 23. 02. 2017, 12:58:09 »
ake IDE viete doporucit na Erlang / Elixir? Idealne aj s nasepkavacom
Vim. Našeptávač asi neexistuje - na Erlangu nemůže nikdy dobře fungovat, protože moduly je možné (un)loadovat za běhu. Proto funguje našeptávání jenom v shellu, připojenému ke konkrétnímu běžícímu VM.

gll

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #9 kdy: 23. 02. 2017, 18:46:23 »
ake IDE viete doporucit na Erlang / Elixir? Idealne aj s nasepkavacom
Vim. Našeptávač asi neexistuje - na Erlangu nemůže nikdy dobře fungovat, protože moduly je možné (un)loadovat za běhu. Proto funguje našeptávání jenom v shellu, připojenému ke konkrétnímu běžícímu VM.

Našeptávač pro Elixir existuje https://github.com/tonini/alchemist-server . V Emacsu stačí nainstalovat balíček alchemist.


Bnbb

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #10 kdy: 23. 02. 2017, 19:05:40 »
Do idei existuje erlang aj elixir pligin

gll

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #11 kdy: 23. 02. 2017, 20:03:35 »
Jak souvisí SPA s websockety?
Když se stránky renderují na klientovi, musí klient nějak dostat data. Buď přes http api, nebo přes ws. Ws mají výhodu v tom, že je přes ně čistější oboustranná asynchornní komunikace. Takže když SPA, tak mi websockety přijdou jako lepší volba (pokud se s nimi v daném frameworku dobře pracuje).

IMHO pro komunikaci typu požadavek-odpověď se websockety moc nehodí.

v

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #12 kdy: 23. 02. 2017, 20:06:48 »
Jak souvisí SPA s websockety?
Když se stránky renderují na klientovi, musí klient nějak dostat data. Buď přes http api, nebo přes ws. Ws mají výhodu v tom, že je přes ně čistější oboustranná asynchornní komunikace. Takže když SPA, tak mi websockety přijdou jako lepší volba (pokud se s nimi v daném frameworku dobře pracuje).

IMHO pro komunikaci typu požadavek-odpověď se websockety moc nehodí.
proč? mi to docela funguje

gll

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #13 kdy: 23. 02. 2017, 20:22:07 »
proč? mi to docela funguje

Třeba protože v HTTP mám spárovanou odpověď s požadavkem zadarmo? Proč používat statefull řešení tam kde není potřeba udržovat stav?

v

Re:Erlang/Elixir - zkušenosti s vývojem webových aplikací
« Odpověď #14 kdy: 23. 02. 2017, 20:46:55 »
proč? mi to docela funguje

Třeba protože v HTTP mám spárovanou odpověď s požadavkem zadarmo? Proč používat statefull řešení tam kde není potřeba udržovat stav?
to "zadarmo" bych si dovolil zpochybnit, že není potřeba udržovat stav taky IMHO neplatí vždy, pro mě je přirozené, že aplikace naváže spojení spojení se serverem a po skončení aktivity uživaetle sezení uzavře