Varför Kantiga kan vara alltför komplicerad? – Ivanov Max (splincode) – Medium

Varför Kantiga kan vara alltför komplicerad?

jag har arbetat med Kantiga sedan 2013 (jag började med AngularJS). Jag själv är arrangör av i Moskva. Vi har en telegram chattar utvecklare i Ryssland. Jag skriver även artiklar om och om Kantig. Så har jag samlat en hel del statistik och feedback från de flesta människor under dessa år.

Och vad gjorde jag reda på i 5 år för att arbeta med Kantiga?

AngularJS ansågs vara för hög-nivå språk och därför alla som redan har någon erfarenhet av jQuery eller andra saker som fungerar som en enkel JavaScript snabbt kunde förstå det. Kantiga 2+ har blivit för låg nivå och inte längre liknar Java, och det känns som att jobba med C++, när du har att göra allt med dina händer, håll koll på allt och förstå tid på saker som verkar för att då och då glida bort. Kantiga 2+ kan också förstås, men inte omedelbart.

1. Du glömde att göra en unsubscribe i komponenter när de förstörs — du får en minnesläcka.

2. Du arbetar med stora dataströmmar i ansökan och inte ta reda på hur du optimerar din ansökan, och/eller inte byta komponenter på OnPush — du får allvarliga prestanda drop.

3. Kunden ändrade affärskrav, han vill dynamiska komponenter, och en liten bandle, säga adjö till den tekniska stack av Kantiga. Eftersom det är overkligt att göra det för hand, när du inte ens har den erfarenhet, särskilt när tiden är slut. Även den ursprungliga ng-komponent-uttaget fungerar inte som det ska, och att skriva en egen lösning du måste ha kunskaper på en Högre nivå, minst. Jag hoppas Kantiga Element kommer att rädda dagen för oss.

4. Junior-utvecklare ingår setInterval i-komponent och inte linda startar utanför zonen igen, prestanda nedgång för dig.

5. I AngularJS det var sådan egendom i direktivet, som setValidate (eller något sådant), jag aktivt använt det, allt var coolt. När du skapar en anpassad validator, måste du se till att du inte skriver över befintliga, för vad? På så sätt kan du skapa mer än en validator, och alla på en gång. Det är, kan du helt enkelt lägga till en validator om du redan har det som krävs, till exempel: för det första, att du kan specificera krävs validator, och sedan — din egen. Och du har fortfarande att hålla i minnet om han är aktiv, eller kanske det redan finns ett fält fyllt. För närvarande finns ingen sådan sak och du har för att skapa anpassade validator som helhet i en separat klass med tillbehör, och även då kan man inte vara säker på om du mår bra.

6. För att skapa din egen ngModel, du måste skriva massor av kod, en hel klass med ControlValueAccesor och ett lager fullt av metoder. Men även om du använder din egen banana-box attribut på den komponent som, om du har glömt att göra avger från den del av evenemanget, kommer du inte ens få en varning om det.

7. I Kantiga CLI, eftersom 1.6.5 konstiga buggar började dyka upp och något misslyckas hela tiden, vilket gör det nödvändigt att starta dev-server. När mitt projekt var skriven på ren Webpack och Kantiga, jag som inte haft sådana problem tidigare.

8. Om jag vill använda webben för arbetstagare plattform, jag måste göra en eject, och på hela Internet-det är endast ett par artiklar om hur man ytterligare kan köra web-rikedomar.

9. Det är deklarativ och reaktiva former. Men när jag arbetar med en stor organisation, att jag måste göra en hel del arbete för att mappa fält i både klassen och mallen. Dessutom, om jag använder deklarativ former, jag förlora den fördel i framtiden, där jet former kunde göra bättre.

10. Tester föll smärtsamt. Kantig är den enda ram med Dependency Injection inbyggd, men det innebär en hel del smärta också. Alla dessa obligatoriska beroenden för DI komponent inte låta dig leva lyckligt medan att skriva tester. Skriftligt prov i Angular är så tråkiga som ingen annanstans. Component designer kräver att du har allt på alla. Även om du inte kommer att testa det.

11. Routing är helt untyped; bör jag byta modul kataloger, inte ens Webstorm IDÉ eller VSC inte kommer att hjälpa mig i att sätta dessa banor på rätt sätt.

kantiga är alltför komplicerad. Och vid första ögonkastet i många fall detta inte är motiverat. Det finns inte tillräckligt med “bra” saker. Tja, ta routern, han har ett direktiv för att lägga till en aktiv klass. Men varför finns det inga sådana direktiv för kontroll av den aktuella rutten? Inte URL: en, men mycket rutt. Som det är gjort i UI-router, där du kan kontrollera individuellt alla segment på mallen nivå. Detta är en enkel sak, jag behövde det i alla projekt, på första och andra Kantiga båda. Utan undantag. När du är på en sida du visar en top hat, och andra top hat på den andra. Samma sak med bakgrund bilder. I allmänhet, de olika uppgifter för denna sak är varierat och stort. Dagen innan igår, jag hade återigen att göra något med det här. Men jag gjorde det.

låt oss Nu ta en person som bara vill studera Kantiga och försöker ta reda på vad som är vanliga på en intervju, vad ska han studera och på vilket sätt? Och så, mest i början utvecklare, de gör inte hitta en ett-steg-lösning, de börjar göra sin egen lösning, som de ser det alltför komplicerade och att de byter till Vue. Inte för att det är enklare, men på grund av det totala antalet komplikationer och bristen på detaljer Kantiga. Som, verkar det som är en ram för robotar.

först verkade det som om Kantiga var dåligt utformad. Men faktum är att, nej, det är det inte.Du tröttnar mycket snabbt medan du använder det, dock, och det är inget alternativ ännu. Varken Vue heller Reagera verkar passa mig, och jag vill inte skriva jQuery något mer. Kantiga inte göra det enklare för utvecklare, inte för ett enda ögonblick. Från den allra första raden, du är dömd till att försöka hitta lösningar, något att omdefiniera och göra det bekvämt för dig med din “bara händer”.

Det är häftigt när man kan göra det, när det finns en sådan möjlighet, men inte när du är tvungen att göra detta genom hela arbetsprocessen. Moderna front-end utvecklare har att lösa problem, inte att engagera sig i den akademiska forskningen, där ram är bättre eller snabbare skalas i första hand. Det är nödvändigt för att det ska vara enkelt och tillförlitligt. Reagerar lätt, men det är inte tillförlitliga, Kantiga är tillförlitlig, men det är inte lätt. Många människor nu ser balans i Vue, men det är inte balanserat, eftersom de ser det. Detta är en helvetisk blandning av 80% Reagera och 20% AngularJS. Av tillförlitlighet, jag menar, först av alla, sannolikheten för kod för att få “illaluktande”, om du förstår vad jag menar. JSX själv är en taskig kod, för att vara rättvis. Om React — statistiken bekräftar att beloppet av sådan dålig kvalitet koden är bara mindre skala.

Ständiga klagomål. Och alla företag som endast söker Seniorer, som kan fixa dåligt skriven kod.

Om tillståndet i ansökan. Redux — detta är inte heller ett bra genomförande, jag blir mer och mer övertygad om detta yttrande. Det faktiskt tenderar till ideologi av Kantiga, där du har att redogöra för de elementära saker som att det är någon form av multi-volym avancerad forskning. Och det gör inte att skydda dig mot oförutsedda förändringar, plus att det tvingar sin arkitektur på dig. Det dök upp precis innan Mobx och Dan Abramov talar för det, och Dan yttrande påverkar inte är mycket erfaren programmerare, vilket är en stor grupp bland de Reagerar utvecklare

Förväntat Kantiga

jag vill veta om det finns några planer på att minska komplexitet och förenkla regelverket. För att göra det lättare att börja utveckla projekt för vinklade på någon nivå av förberedelse, så att projektet kan lätt utökas, samtidigt som den är baserad på den tekniska stack av Kantiga.

Om vi hade något enkelt som StencilJS ur lådan och kan enkelt anpassas till full komponenter och moduler, som jag tror många skulle vara glada. Jag skulle vilja Kantiga att bli mer populär och frågade på alla marknader, inte bara mer populära och bättre än AngularJS bara.

jag gillar Kantiga och jag vill att allt ska bli bra.