Imam već hrpu tutoriala + ovo gore od foggy-a tak da će se naći nešto da se nabrzinu prođe prije edukacije.
Web Development rasprave/preporuke/problemi
yakuza_stinger Među ostalim, C++ je objektno-orijentirani programski jezik, samo što je u isto vrijeme i proceduralni. Primjenjiv je na više načina. Kombinirano s time da je relativno low-level u usporedbi s C#-o, Javom ili Pythonom, C++ se smatra vrlo snažnim programskim jezikom.
S druge strane, da C# i Java bi bili potpuno objektno-orijentirani programski jezici. Iako gledanje na to je li nešto čisti OO jezik je po nekima cjepidlačenje. Neki traže i najsitnije razlike da se pokuša definirati što bi bio čisti OO jezik, drugi tvrde da je dovoljno zadovoljavati osnovne principe OOP-a da bi se smatrao OO jezikom. Uglavnom, komplikacije.
Fico Među ostalim, C++ je objektno-orijentirani programski jezik, samo što je u isto vrijeme i proceduralni. Primjenjiv je na više načina. Kombinirano s time da je relativno low-level u usporedbi s C#-o, Javom ili Pythonom, C++ se smatra vrlo snažnim programskim jezikom.
Ili ukratko; Ako znaš kodirati u C-u ili C++-u, znaš u svim ostalim jezicima Sve što automatikom rješavaš u C# i Javi, C i C++ to ne radi tako i moraš sve živo sam odraditi
C# mi je osobno najdraži programski jezik, ali pisao sam kod u dosta njih, i kad znaš jedan, znaš ih sve.
Nije bas post za ovaj topic, ali da ne otvaram drugi
@Fico, @foggy, bilo tko drugi...
Imam dva polja koja treba usporediti po jednoj zajednickoj kolumni odnosno stupcu. Radi se o email adresi gdje se gleda koji clanovi prvog polja nisu prisutni u drugom polju i obrnuto.
Za ovo sam napisao binary search algoritam i to sve radi. Medutim, kako bi binary search radio, inicijalno polje mora biti sortirano po email adresi.
Radi se o obicnom stringu i koristio sam Sort-object cmdlet u PWSu, ali sam primjetio da ne radi dobro svoj posao za pojedine entrye.
Onda sam napisao algoritam za quick sort (mozete na wiki pogledat o cemu se radi) i to radi ok... ALI samo na polju sa jednim stupcem.
Kako ja imam polje sa vise stupaca gdje primjerice ROW1 ima medusobno povezane podatke za stupac 1, 2, 3 i 4, ovaj quick sort bi trebao nakon sortiranja stupca 1, pretumbat adekvatno i ostale stupce polja.
Imate li kakav savjet, ideju kako primjeniti quicksort na polje sa vise stupaca?
chono U kojem formatu imas te kolone? Imas neki excel file ili nesto?
Quick solucija Javascript:
Array emal adresa jednom stupca, foreach petlja, contains metoda kroz drugi array u kojem gledas jel ga ima, ako ima, trpas u novi array ili sto zelis.
Ali zanima me izvor adresa. Excel ti ima VSLookup koji ti to odradi u 3 klika
@foggy i @sanzo problem je sto su ta dva polja zapravo dobivena exportom iz dva totalno odvojena sustava i enrichao sam dodatno podacima iz ADa. Nije baza, vec ta dva polja postoje samo unutar skripte.
Koristio sam powershell je u njemu znam delat.
Dakle contains i slicne metode rade, ali se skripta vrti po 5min. Sa binary search algoritmom to se radi u par sekundi. Imam vise ovakvih skripti, zbog stvari o kojima ne smijem pisati,, pa mi je 5min po skripti previse vremena za daily runove
chono Mozes skriptu rekreirat da sadrzi strukturu iz primjera i zakacit negdje da probamo nesto? Barem da napravis te kolone i objasnis jos tocnije sta iz koje i gdje vucem? Tesko mi je napamet pricat, moram uzet u ruke i probat, radio sam svasta kroz powershell i cudno mi je da ti traje dugo. Ali i dalje mi fali malo konteksta. Koristim TeamCity, poweshell i bash, pa znam neke stvari napisati, ali stvarno je tesko bez primjera.
foggy moze, modificirat cu polja sa filtivnim podacima i dati svoj kod da vidis.
Mislim, ja sam napisao quicksort algoritam (https://en.m.wikipedia.org/wiki/Quicksort) koji zaista sortira cijelo polje, ali nazalost samo po "Mail" kolumni, sve ostale izgubim nakon sorta. To bi trebao editirat i implementirat da se sortiraju i ostale kolumne polja.
Tipa da funkciji quicksort das parametre array i property, te da funkcija operira nad cijelim poljem po tom propertyu, ali da na tom istom indexu polja uzme u obzir i ostale propertye i sortira ih zajedno sa inicijalnim.
Do tada, evo malo dokumentacije
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-unique?view=powershell-7.2
Micanje duplikata iz arraya u powershellu:
https://stackoverflow.com/questions/1391853/removing-duplicate-values-from-a-powershell-array
Možda nešto bude potrebno. Ima i sort arrayeva, sve se da, sam trebamo primjer i zahtjeve.
Uglavnom, više ćemo nakon primjera, treba dovest podatke prvo u red da se lako s njima rade akcije. Isto tako, ako koristš Jenkins onda možeš rezultate spremat u Jenkins build varijable pa njih lako preneseš u sljedeći korak build pipelinea i radiš s njima šta treba. Ima 100 načina, naći ćemo najbolji.
- Uređivano
@foggy i @Fico
Hej ekipa, evo detaljnije objasnjena:
POLJE 1
Email
Date
POLJE 1 ENRICHED IZ AD-a
Date
SamAccountName
RealName
Office
Email
POLJE 2
ControllerId
EventTime
Username
UserToken
EventId
Znaci tek kada "obogatim" POLJE 1 sa podacima iz ADa, mogu raditi usporedbu po SamAccountNameu (username):
foreach ($Entry in $POLJE1) {
if ($POLJE2.username -notcontains $Entry.SamAccountName) {
$Difference += $Entry.Email
}
}
Problem je upravo to "obogacivanje" POLJA1, gdje koristenje "where-object", "contains" ili bilo cega drugog traje predugo, jer je AD uz sve filtere prevelik i to vrti jako dugo.
Ja sam sam tu potrebu koristio Binary Search algoritam:
function BinarySearch {
Param ($SortedArray, $Attribute, $SearchedObject)
$startIndex = 0
$endIndex = $SortedArray.length - 1
$Output = @()
if ( ( $SortedArray[$startIndex].$Attribute -gt $SearchedObject ) -or ($SortedArray[$endIndex].$Attribute -lt $SearchedObject ) ) {
return "Out of scope!"
}
while ($startIndex -le $endIndex) {
$middleIndex = $startIndex + [Math]::floor(($endIndex - $startIndex) / 2)
if ($SortedArray[$middleIndex].$Attribute -eq $SearchedObject) {
$Output += $SortedArray[$middleIndex]
for ($n=$middleIndex - 1;$SortedArray[$n].$Attribute -eq $SearchedObject;$n--) {
$Output += $SortedArray[$n]
}
for ($n=$middleIndex + 1;$SortedArray[$n].$Attribute -eq $SearchedObject;$n++) {
$Output += $SortedArray[$n]
}
}
if ($SortedArray[$middleIndex].$Attribute -lt $SearchedObject) {
$startIndex = $middleIndex + 1
}
else {
$endIndex = $middleIndex - 1
}
}
return $Output
}
Medutim, da bi binary radio, on mora operirati sa sortiranim poljem, a upravo to sortiranje u Powershellu ne radi kako spada:
UPOTREBA BINARY SEARCH da bi se obogatilo POLJE1 sa podacima iz ADa:
foreach ($Entry in $POLJE1) {
$UserEntry = BinarySearch -SortedArray $ADExport -Attribute Mail -SearchedObject $Entry.Email
AD Export i sortiranje PWS cmdletom "Sort-Object":
$ADExport = Get-ADUser -Filter 'Mail -like "XXX" -and Enabled -eq "True"' -SearchBase $Path -Properties Mail, extensionAttribute8 | Select-Object SamAccountName, Mail, Name | Sort-Object -Property Mail
Ono sto meni treba je Quicksort funkcija koja operira nad ADExportom i poslozi po propertyu (kolumni) Mail, ali isto to napravi nad propertyima SamAccountName, Name. Ovo je kako trenutno izgleda moja quicksort funkcija:
function quicksort($array) {
$less, $equal, $greater = @(), @(), @()
if( $array.Count -gt 1 ) {
$pivot = $array[0]
foreach( $x in $array) {
if($x -lt $pivot) { $less += @($x) }
elseif ($x -eq $pivot) { $equal += @($x)}
else { $greater += @($x) }
}
$array = (@(quicksort $less) + @($equal) + @(quicksort $greater))
}
$array
}
Pogledam nakon posla danas.
- Uređivano
chono Ok, moram se skoncentrirat, pa ću na codepen ili negdje dići ovo što si napravio, tj barem okvirno.
chono Problem je upravo to "obogacivanje" POLJA1, gdje koristenje "where-object", "contains" ili bilo cega drugog traje predugo, jer je AD uz sve filtere prevelik i to vrti jako dugo.
Znači prvi korak je uzeti POLJE1 i proširiti ga podacima koje imaš iz AD-a, po emailu?
POLJE1 je podatak koji imaš iz jednog sustava, i ono je referenca za podatke ili? Pokušavam povezat taj dio i AD dio. Što iz originalnog POLJE1 mičeš, ili ništa ne mičeš, nego samo tražiš te mailove u AD podacima i kad nađeš, proširiš?
Jesi razmišljao raditi obrnuto, da AD podatke obradiš? Ako moraš maknuti višak u tom dijelu, da ga makneš? Pretpostavljam da radiš previše loopova na velikom podatku, u ovom slučaju AD podatku, možda je dobro probati obrnuto.
EDIT:
https://code.labstack.com/XkU_q8IY
Projekt (ne znam uopće tko nudi Powershell online emulaciju, pa sam ovo prvo našao). 2 puta na run da izbaci rez dolje
Možete početi slagati primjer unutra
- Uređivano
chono Ok, onda brzinsko pitanje, to što sam te pitao: Zašto AD podatak ne obradiš tako da njemu makneš višak na neki način? Koji bi onda uvjet bio?
Podaci:
- AD podaci, imaš duplića? Tipa duplih elemenata koji imaju isti email?
- POLJE1 neobrađeno, ima li tamo duplih email elemenata?
EDIT:
https://code.labstack.com/XkU_q8IY
Ovako nekako ti izgledaju podaci? Nakucao sam samo stringove i ubacio u array objekata. Jesu ti tak podaci pohranjeni?
Ako želite nešto mijenjati, napravite svoj projekt na ovoj domeni da se ne koljemo međusobno.
EDIT 2:
Vidi jel ti ovo pomaže:
`Write-Host 'Hello Chono, lets take you for a ride!'
$polje1 = @([pscustomobject]@{email="email1@email.com";date="04/19/2022"},
[pscustomobject]@{email="email2@email.com";date="04/18/2022"})
$poljeAD = @([pscustomobject]@{date="04/19/2022";SamAccountName='userName1';RealName="Real Name hehehehehehe";Office='Office 1';email='email1@email.com'},
[pscustomobject]@{date="04/18/2022";SamAccountName='userName2';RealName="Real Name 2";Office='Office 2';email='email2@email.com'},
[pscustomobject]@{date="04/17/2022";SamAccountName='userName3';RealName="Real Name 3";Office='Office 3';email='email3@email.com'})
foreach( $elem1 in $polje1 ) {
$realNameExp = $poljeAD | Where-Object { $_.email -eq $elem1.email }
Write-Host "Expanded data for polje1 $($elem1.email): $($realNameExp)"
}`
- Uređivano
chono Oke, to me zanimalo. Znači ovo je sporiji pristup jer vrti po 1 Where-Object u svakoj iteraciji, mogu si mislit koliko je to podataka... Powershell nije najpametniji vidim. Oke, idući approach, konverzija podatka... Daj mi malo vremena (ak se ne javim do 17h pojeo me posao).
Haha, vidi ovog:
https://stackoverflow.com/questions/33009695/powershell-where-slow-is-there-a-faster-way-to-search-object
Ima tvoj kind of problem
- Uređivano
chono Ajmo preko hashtable keyeva (poljeAD konverzija objekta u key vrijednost helperpolja - powered by stackoverflow):
Write-Host 'Hello Chono, lets take you for a ride!'
$polje1 = @([pscustomobject]@{email="email1@email.com";date="04/19/2022";RealName=""},
[pscustomobject]@{email="email2@email.com";date="04/18/2022";RealName=""})
$poljeAD = @([pscustomobject]@{date="04/19/2022";SamAccountName='userName1';RealName="Real Name hehehehehehe";Office='Office 1';email='email1@email.com'},
[pscustomobject]@{date="04/18/2022";SamAccountName='userName2';RealName="Real Name 2";Office='Office 2';email='email2@email.com'},
[pscustomobject]@{date="04/17/2022";SamAccountName='userName3';RealName="Real Name 3";Office='Office 3';email='email3@email.com'})
$helperPolje = @{}
$poljeAD | ForEach-Object {
$helperPolje[$_.email] = $_
Write-Host $helperPolje[$_.email].email
}
$polje1 | ForEach-Object {
$email = $_.email
if($helperPolje.ContainsKey($email)){
Write-Host "Entered the loop"
$_.RealName = $helperPolje[$_.email].RealName
}
}
Write-Host "Expanded data for polje1 $($polje1[0].email): $($polje1[0].RealName)" `
[URL=https://i.imgur.com/WMEhBuI.png][IMG]https://i.imgur.com/WMEhBuI.png[/IMG][/URL]
EDIT (malo bolje napisano, bez da imaš prošireno polje1):
`Write-Host 'Hello Chono, lets take you for a ride!'
$polje1 = @([pscustomobject]@{email="email1@email.com";date="04/19/2022"},
[pscustomobject]@{email="email2@email.com";date="04/18/2022"})
$poljeAD = @([pscustomobject]@{date="04/19/2022";SamAccountName='userName1';RealName="Real Name hehehehehehe";Office='Office 1';email='email1@email.com'},
[pscustomobject]@{date="04/18/2022";SamAccountName='userName2';RealName="Real Name 2";Office='Office 2';email='email2@email.com'},
[pscustomobject]@{date="04/17/2022";SamAccountName='userName3';RealName="Real Name 3";Office='Office 3';email='email3@email.com'})
$helperPolje = @{}
$poljeAD | ForEach-Object {
$helperPolje[$_.email] = $_
}
$polje1 | ForEach-Object {
$email = $_.email
if($helperPolje.ContainsKey($email)){
Write-Host "Entered the loop"
$_ | Add-Member -MemberType NoteProperty -Name 'RealName' -Value $helperPolje[$_.email].RealName
}
}
Write-Host "Expanded data for polje1 $($polje1[0].email): $($polje1[0].RealName)"
Probaj na pravim podacima ako nisi pa javiš (pazi samo, ovaj forumski editor mi je maknuo sve underscore znakove, tam gdje je italik išao je underscore prije tog dijela)...
- Uređivano
chono Prokleti Powershell. Možda Fićo ima nešto u prstima, ja evo koristim powershell prvi put u životu sada na ovaj način, većinom su to jednostavne petlje za triggeranje drugih buildova i slične stvari, ništa što ima heavy load...
Ja bih ti preporučio otvorit topic na stack overflowu gdje ćeš im dati primjer kao što sam ja pokušao, pa će ti netko objasnit što je najbolje i zašto ovako ili onako. Do tada ćemo se igrati malo s ovim, upicanit ćemo tvoju metodu ako je uspiješ prekucat tu negdje u kod (ako ti se da).
Inače, Python je bolestan za obradu podataka, zato sam spomenuo da svoje varijable možeš pohraniti kao jenkins varijablu, pa ih onda možemo doslovno poslati u koji framework želimo u narednom ili istom koraku.
- Uređivano
foggy Možda Fićo ima nešto u prstima
Imam gorčinu i razočaranje.
Inače, Python je bolestan za obradu podataka, zato sam spomenuo da svoje varijable možeš pohraniti kao jenkins varijablu, pa ih onda možemo doslovno poslati u koji framework želimo u narednom ili istom koraku.
Znači, čitam ovo kaj @chono piše i krenem pisati da bi možda najpraktičnije bilo napraviti Python skripticu za ovo, on je super s velikom količinom podataka. I onda vidim i ti spomeneš Python.
Ukratko, prošao sam kroz ovo što je napisano zadnjih dana i meni se jednostavno čini kao problem koji traži jako puno fine tuninga za nešto što je izvedivo van okvira Powershella. Kažem da mi se čini zato što s Powershellom nemam iskustva. Igrao sam se s Jenkins skriptama, ali nikada nisam radio detaljniju obradu podataka, uvijek se to pokušavalo svesti na provjere flagova i konkateniranje ili pozivanje složenijih funkcija.
Još ću proučiti, malo razmisliti pa vidjeti hoće li mi pasti neki alternativni pristup.
Jedino kaj trenutno mogu je vratiti se na ideju korištenja Pythona za ovo. Lagan je za savladati, takoreći se pišu rečenice i ovakvo što bi mogao pojesti. Na tebi bi bilo da složiš skriptu koja dovlači podatke iz AD-a i onda sve predaje kao argument toj .py skripti. I onda pustiti da Python odradi svoje i negdje ti spremi gotove podatke.
U tom bih slučaju išao u smjeru:
- Dohvati mi podatke iz POLJA 1
- Dohvati mi podatke iz AD-a
- Pozovi .py skriptu kojoj se predaju podaci iz koraka 1 i 2, u njoj raditi enrichment
Sada dobivaš više slobode za eksperimentiranje i igranje s vremenom izvođenja. Možeš, recimo, napraviti u istoj toj skripti i da se predaje POLJE 2 i zatim radiš čitavu logiku unutra. Možeš i izbaciti dobiveno enrichano polje i onda izvesti običnu usporedbu između dva polja jer si sada riješio problem enrichmenta. Ili pak možeš napraviti zasebnu .py skriptu koja vrši usporedbu oba polja i pozvati ju nakon izvođenja prve .py skripte.
Ako odeš u ovom smjeru i iz kojeg god se razloga ne budeš snalazio, javi se pa nastavimo.
EDIT: Ili još bolje, sve samo hiti u Python. Nisam ovoliko shillao Python od... Nikad...
- Uređivano
Fico da, sve mi se vise cini da cu morati prosiriti okvire ovo trenutno dela, sporo, ali dela. Tako da selim u Python glavni dio koda i napravit cu to elegantnije i bolje.
Da budem iskren, malo sam razocaran u powershell nakon ovog...
I ovo sto @foggy pise, stavis AD import podataka u Jenk env varijablu i delas s njom u Pythonu, samo je pozoves.
Šalješ u doslovno bilo šta što pripremiš kao okruženje. Docker i može bit unutra što poželiš, ili jednostavno na mašini gdje radiš build digneš što ti fali (Python, NodeJs...) i obradiš tamo direkt.
- Uređivano
@foggy @Fico rijesio kompletno u pwsu i to sada radi u par sekundi, cijela skripta.
Quicksort funkcija starta na pola polja, tako da ide lijevo i desno i sortira:
function quicksort($Array) {
$Less = @()
$Equal = @()
$Greater = @()
if( $Array.Count -gt 1 ) {
$Pivot = $Array[$Array.count / 2]
foreach( $x in $Array) {
if($x -lt $Pivot) {
$Less += @($x)
}
elseif ($x -eq $Pivot) {
$Equal += @($x)
}
else {
$Greater += @($x)
}
}
$Array = (@(quicksort $Less) + @($Equal) + @(quicksort $Greater))
}
$Array
}
Pomocu zamjenskog polja kreirao zavrsno, popunio prethodno konstruiranu klasu i voila:
[System.Collections.ArrayList]$ArraySorted = quicksort $POLJE1.Mail
$FinalArray = @()
foreach ($Email in $ArraySorted) {
if ($POLJE1.Mail -eq $Email) {
$index = [array]::indexof($POLJE1.Mail,$Email)
$ThisVar = [ADUSER]::new()
$ThisVar.SamAccountName = $POLJE1[$index].SamAccountName
$ThisVar.Mail = $Email
$ThisVar.Name = $POLJE1[$index].Name
$ThisVar.extensionAttribute8 = $POLJE1[$index].extensionAttribute8
$FinalArray += $ThisVar
}
}
Sada se bacam da sve ovo odradim unutar funkcije quicksort, da sortira polje i zadrzi sve kolumne sa vrijednostima.
- Uređivano
chono Znači ne mogu vjerovat da nakon 7 major verzija oni nisu u stanju optimizirati svoje god-given metode nad listama, i da si morao pisati svoj kod za jebeni sort. Strašno. Nadam se da bash ima bolje ovo odrađeno, inače mi je draže u bashu pisati ovakve stvari. I čestitam, nadvladao si powershell
Inače, super inicijativa, meni osobno super zanimljivo uplivat u problem koji nisam nikad pokušao srediti, i evo, naučio sam da na poslu sigurno u powershellu neću obrađivati podatke
foggy Inače, super inicijativa, meni osobno super zanimljivo uplivat u problem koji nisam nikad pokušao srediti, i evo, naučio sam da na poslu sigurno u powershellu neću obrađivati podatke
Da, meni se isto dopada ideja. Ima nas više IT-evaca na forumu i mislim da možemo komotno iskoristiti kao ležerniji Stack Overflow. Napravim prikladnu temu danas ili sutra pa ju i tu linkam da se lakše nađe.
- Uređivano
Ovo mi je draze nego video gdje Tuhy kolje Melaniu! Uspio sam napisati kompletnu quicksort funkciju kojoj das polje, das joj ime kolumne, ona sortira po toj kolumni i vrati ti natrag kompletno sortirano polje sa svim kolumnama:
function quicksort($Array, $Property) {
$Less = @()
$Equal = @()
$Greater = @()
if( $Array.Count -gt 1 ) {
$Pivot = $Array[$Array.count / 2].$Property
foreach( $x in $Array) {
if($x.$Property -lt $Pivot) {
$Less += $x
}
elseif ($x.$Property -eq $Pivot) {
$Equal += $x
}
else {
$Greater += $x
}
}
$Array = (@(quicksort $Less $Property) + @($Equal) + @(quicksort $Greater $Property))
}
$Array
}
Treba 2 sekunde za polje od cca 4000 entrya sto je odlicno!
Inače, imaš Code funkciju u editoru za formatiranje
Što mislite je li oke za nekoga tko bi htio raditi React ili Angular da krene s Wordpress-om, da to radi neko vrijeme i onda se polako prebaci na Javascript pa na kraju ubaci i React/Angular?
- Uređivano
Brijac Iskreno, preporučio bih ti da sam radiš od nule. Dakle HTML i CSS pa dodaj na to JavaScript i/ili malo PHP-a. Sve se to spoji na bazu pa se malo poigraš SQL-om. Onda fino kreni na Angular jer ima odličnu dokumentaciju i stvarno vrhunski složen uvodni projektić na njihovoj stranici (Angular Hero App). Navodno i Vue ima solidnu dokumentaciju, no nisam ga koristio. React ćeš pišati krv ako kreneš prvoga ga raditi jer je Facebook uložio truda u pristupačnost koliko i u zaštitu podataka svojih korisnika. Kad poloviš jedan od ta tri, ostali se pretvore u hvatanje njihovih posebnosti, no osnovne principe ćeš razumijeti i lakše se u njima i snaći. Također, nemoj podcijeniti znanje OOP-a.
- Uređivano
Brijac Što je Fićo rekao, a ako baš krećeš u Wordpress vode onda naravno možeš sam pisat svoj HTML u sklopu njega, i naravno Javascript da upravljaš HTML-om, jer Wordpress je ništa više nego HTML koji je već predefiniran u sklopu samog CMS-a, a PHP mu je glavni dio sklopke. Sve to kačiš na bazu. Problem je što sve dolazi skoro pa posloženo i tu ćeš teže razumjet materiju, više ćeš učiti framework nego jezike.
Za React nemam pojma od kuda krenuti jer ga nisam koristio.
Angular from scratch može, no za korištenje Angulara moraš poznavati HTML, CSS, i naravno Typescript u kojem pišeš kod između, te u samim Angular komponentama, rutama, storama itd.
VueJs je po meni bolji framework jer je pristupačniji a ima sve što i Angular, i to bolje jer je rađen po uzeru na njega i popravili su neke nebuloze koje Angular ima. No Angular je daleko rasprostranjeniji i lakše je nać obilje dokumentacije, solucija za probleme i sve što ti srce poželi.
OOP - bitno za sve živo osim ako ne želiš pisati kod u jednom fajlu i imati jakuševac javascript funkcija.
foggy Za React nemam pojma od kuda krenuti jer ga nisam koristio.
Od suza i tuge, eto odakle... Na jesen sam morao neki projektić napraviti u kombinaciji Spring + React, mogao sam sam birati što će biti Frontend, ali reko idem naučiti malo Reacta. Uvjerim ja sebe da ću to brzo pohvatati, ipak sam radio u Angularu. Oću kurac. Nije težak, samo je... Čudan.
Za one koji se žele uputiti u nezaboravnu avanturu psovki i Reacta, preporučam Bezkoderov jednostavnu CRUD aplikaciju koja u pristojnoj mjeri prati načela clean codea.
Angular from scratch može, no za korištenje Angulara moraš poznavati HTML, CSS, i naravno Typescript u kojem pišeš kod između, te u samim Angular komponentama, rutama, storama itd.
Zaboravio sam na TypeScript, no ako netko prije toga krene s JavaScriptom i razumije osnovne paradigme OOP-a, mislim da će se ok snaći. Ako išta, meni je osobno TypeScript draži od čistog JavaScripta. Volim malo više reda u kodu nego nereda.
VueJs je po meni bolji framework jer je pristupačniji a ima sve što i Angular, i to bolje jer je rađen po uzeru na njega i popravili su neke nebuloze koje Angular ima.
Baš si razmišljam u kojem smjeru ići s diplomskim i Vue me za sada najviše privlačio. Jedini u kojemu nisam radio kada govorimo o tri kralja Frontenda i mislim da će na kraju i biti konačan odabir.