Vinnaren i pepparkakshustävlingen!
2018-11-17, 15:37
  #1
Medlem
Jag har fått ett jobberbjudande att utveckla appar med react. Jag kan ingenting om reactutveckling så jag har några frågor kring React.

1. React som språk rent generellt undrar jag lite över när jag läser om det på nätet. Det verkar ju vara spaghettinivå när man lånar tredjeparts bibliotek här och där som någon slags standardutveckling av programvara. Hur ska man kunna förvalta applikationsportföljen på sikt undrar man? Man får ju uppfattningen att det är scriptkiddienivå. Personer som inte orkar lära sig ett ramverk som har en struktur och en framtid?(Angular känns betydligt mer betryggande)

Exempelvis så har jag en lång historik av förvaltning. Många av de negativa erfarenheterna har kommit från utvecklare när dessa har valt tredjeparts bibliotek, gjort av idealister. Åren går och dessa idealister lämnar projekten till sitt öde. Applikationerna som har implementerat biblioteken hamnar i hjälplösa tillstånd. Applikationerna går inte att vidarutveckla för det kostar för mycket och det blir för stora ingrepp att byta ut ett lib mot ett annat. Sårbarheter och buggar förblir ett med applikationen. Om man hade varit ansvarsfull så hade man valt någon de facto standard så hade man kanske dels inte hamnat i situationen och det hade i alla fall varit lättare att ta sig ur eventuella dåliga lösningar. Dock är ju många utvecklare av ett skrå, fulla av ångest som bara måste hoppa på allt nytt för att inte riskera att bli utskrattade om dem arbetar med något annat än vad som kan definieras som ett buzzword. Det är den erfarenhet jag har av dessa "flugor".

Dock undrar jag hur ska man kunna förvalta dessa react applikationer när tiden går, om utvecklingen baseras på att man lånar lite här och där? I en frontend värld som utvecklas i en rasande takt?

Det finns ju också legitima skäl till varför jobba med det "senaste" och det är ju att man slipper att ta hand om gamla föråldrade lösningar som exempelvis kräver komplexa konfigurationer i xml där man i nutid har ersatt dessa med enkla notationer. Men react verkar vara precis tvärtom. Man hittar lite bibliotek här och där för att åstadkomma något och vips så fungerar något ur lådan. Men inget är framtidssäkert och av erfarenhet så vet jag att man inte ändrar tunga verksamhetsapplikationer hur som helst. Det ska kravas, det ska testas, det ska godkännas, det ska finnas pengar, verksamheten ska vara med på noterna osv. Hur förenligt är detta synsätt på utveckling i samtakt med verkligheten?

Det är den mest vanliga situationen tycker jag och absolut den värsta, att unika lösningar blir virtuella mardrömmar med åren. Därför är jag allergisk kring påhittade ramverk/libbar eller hippa ting som vissa utvecklare maler på om som saknar den insikten kring att någon ska betala för kalaset så småningom samt förvalta applikationerna som tas fram. Hur ser Ni på detta?

2. React påminner om angularjs(1), man investerar multimiljoner i projekt. Det går månader eller kanske något år och så kommer angular 2. Det går inte att konvertera, migrera etc... tidigare arbete och det går inte ens uppgradera utan göra om allt. Det finns inte heller någon som ens vill ta i skiten med tång. Alla hippa utvecklare som trånade kring ramverket verkar ha gått upp i rök. I verksamheten så finns ingen som vill arbeta med sådan teknik och det går inte heller anställda någon som kan tänka sig sitta med angularjs.

Utsikten eller insikten att kunna göra något meningsfullt på jobbet är dessutom 0 där cvn ruttnar med tiden om man inte ("flyr").

React påminner rätt mycket om den skuld angularjs skapat, är det en korrekt uppfattning? Om man exempelvis lånar libbar från halva internet bildligt menat på frontend sidan som dessutom utvecklas i rask takt, hur stor chans är det åter att dessa ting hamnar i hjälplösa tillstånd med tiden? Som exempelvis angularjs?

3. Att göra appar med react verkar vara som åka på husvagnssemester på en moppe. Du får inte med dig mycket struktur. Det liknar mest tågluffa och är inte någon trevlig bekvämlighetssemester med hotell och en mjuk säng att sova i. Att skyffla strängar må vara en sak i en basic app men så fort ett projekt växer, så vet alla att komplexiteten ökar och då behöver man struktur.

Vad händer när man ska göra något mer än skyffla strängar med simpla resttjänster från Springboot eller någon ejb böna. Såvitt jag får det beskrivet för mig så blir den fortsatta utvecklingen obskyr eftersom react saknar realistiska lösningar som går att förverkliga och när något fungerar på en plattform så fungerar det inte på den andra osv för allt är så "special" hela tiden. Är detta också en mardröm att ta ställning till förvaltningsmässigt?

Det är ungefär så jag kan utläsa vad utvecklare säger om react på nätet. Det är bara utvecklare som skyfflat strängar som verkar vara nöjda. Hur är det med det egentligen? Är det amatörerna som är nöjda som inte orkar lära sig ramverk och koda riktig native som fäller dessa kommentarer?

4. Appar.

Både IOS och Android har en egen look and feel. Biblioteken fungerar ju olika också när man vill komma åt blåtand, skapa notifieringar med kannaler, rättighetssystem osv. Det är två helt skilda plattformar med egna uppfattningar hur saker inte bara ska se ut men också hur appar ska fungera. Hur kan React kompilera en kodmassa till dessa förutsättningar? Samt hur fungerar det med åtkomst till hårdvara utan obskyra biblitiotek? På två plattformar?

Är det inte enklare att göra samma sak två gånger på en native plattform istället? Med antingen java/kotlin på android och swift på ios sidan? Allt finns på plats i riktigt fina utvecklings ide:n och communityn är båda stora och stabila ?

5. Om nu javascript var lämpligt för crossbuilds, varför hör man inte talas om att man ska bygga schyssta appar i angular? Varför duger bara react till det?

Personligen så tycker jag att man märker ganska snabbt när appar rent generellt bara är en websida i princip. Det blir en ganska cheezy upplevelse. Vad anser Ni?

https://www.quora.com/Is-React-Nativ...-pros-and-cons
__________________
Senast redigerad av dearheaven 2018-11-17 kl. 16:23.
Citera
2018-12-16, 18:33
  #2
Medlem
Jag vet inte varför du fått för dig att React projekt är ostrukturerade. Jag har jobbat med React på företag med miljarder i årsomsättning, stora monorepos såväl som mindre projekt/på startups och jag känner inte igen mig i din beskrivning alls.

React-native är ju till skillnad från Ionic och liknande faktiskt riktiga native appar. Detta är för att det är en javascript-brygga som gör att JS koden kan kommunicera med native koden, och saker som animationer och liknande går att ha hög performance på numera eftersom att det körs på native sidan.

Det stämmer att facebook som ju underhåller React har en välkänd "move fast and break things" mentalitet, och det leder till att saker kan ändras så att man måste refaktorera en del när man uppgraderar RN (som t.ex är componentWillReceiveProps numera deprecated).

Jag tror att React är här för att stanna. Det är större än Angular i USA och i Sverige så är det nästan dubbelt så populärt som Angular.
Citera
2018-12-17, 19:50
  #3
Medlem
React är inte ett språk det är ett lib (eller kanske en "svagt" framework) för att bygga GUI.
Tror att det vanligt att använda Javascript + React eller kanske Typescript + React.

Visst kan man skriva ostrukturerat med Javascript, men det kan man ju i vilket språk som helst.
Tycker dock att grund ideerna med React ie FLUX [1] är väldigt bra att kunna

Re jämförelsen med Angular o React... jag tycker ju att du se en del problem med hur Angular utvecklas ... och sedan på något sätt förutsätter att React har samma problem.
Jag har skrivet React ett par år och håller verkligen inte med dig.. de har följt ett bra system att först göra "deprecate" på något i tex V14 för att sedan ta bort det i V15.

React är dock INTE en framework på samma sätt som tex Angular.
Det är mycket mer likt ett "lib" det är mer av VIEW lagrat, där en användare inte "endst" kan använda sig av React, utan behöver samtidigt göra lite andra val

Detta kan kanske vara ett problem om man verkligen är en nybörjare i både Javascript / Ract och "node.js" / browser.
Då kan det kanske lätt bli lite för komplicerat..

Min rekommendation:

Första VAD är FLUX och varför är det bra / vilka problem läser flux (inte) ?
Testa att skriva någon ENKELT i React, testa att använda lite STATE, och sedan lite properties, (gärna allt detta så enkelt så möjligt tex i en browser)
Använd någon form av EDITOR som stödjer ESLINT (eller någon annan lint)

Men om att jämföra React-native mot att tex utveckla i Android och i iOs .. hm..

Jag tycker om React och node js miljön.
När du klagar på att det är enkelt att dra in någon form av dependency och ser detta som en "problem".. så ser jag det precis tvärt om:
Det är den STORA fördelen med att utveckla i NODE.

Node/NPM är världens största packet system, och att se det som en svaghet... tja det tycker jag är konstigt.
Det är en oerhörd styrka och förmåga att återanvända kod som är en verklig stor fördel med NODE
(Men jo.. men behöver ha lite koll så att man har reproducerbara byggen, problem med npm < v 5)

Jag har själv inte kört React-native så vet inte riktigt hur det är.
Jag misstänker det vore smartare att använda native iOs + native Android jämfört med att skriva det i React native.


[1] https://facebook.github.io/flux/docs...w.html#content
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback