Jump to content
php.lv forumi

Darbs pavēlā vecumā un uztaisītie darbi.


Recommended Posts

1 hour ago, codez said:

Wuu, kā tu bez OOP realizē enkapsulāciju un polimorfismu? Vai tavi projekti ir pārāk vienkārši un šāda abstrakcija nav nepieciešama?

Pagaidām izmantoju OOP tikai testos, kur states ir maziņš un viegli kontrolējams, imho mocha lasa visu uz leju, kā kaut kādā PHP :> Servera pusei pēc definīcijas ir jābūt statles, lai var skailot visos virzienos. Klienta pusē redux. Tad priekš kam man tavu enkapsulāciju un polimorfismu?

Link to post
Share on other sites
  • Replies 33
  • Created
  • Last Reply

Top Posters In This Topic

@briedis, vienkāršotā variantā tas būtu šādi:

https://jsfiddle.net/uwu5hwj7/2/

Kompleksākā aplikācijā, atkarībā no arhitektūras, dati glabātos atsevišķā storē un tādas manipulācijas kā "setActive" tiktu veiktas uz store, nevis view elementu. Bet galvenā domā kodā tāpat redzama, setActive funkcija nemaina dom-u, bet gan tikai datus, par dom-a izmaiņu atbild React bibliotēka.

 

@Wuu, enkapsulācija ir vajadzīga, lai rakstītu no aplikācijas neatkarīgas, vairākkārt izmantojamas komponentes, ko redux gadījumā nav triviāli izdarīt, jo viss aplikācijas stāvoklis glabājas kopējā storē. Ļoti bieži ir daudz ērtāk un vienkāršāk izveidot pilnīgi neatkarīgu komponenti ar kuru tad galvenā aplikācija komunicē, it sevišķi, ja pie lielāka projekta strādā vairāki cilvēki. Saprotams, ka arī reduxā un tā iedvesmas avotā elm-ā ir atrasti dažādi paterni kā enkapsulēt komponentes, bet tie ir par kārtu sarežģītāki un nav tik atstrādāti un praksē pārbaudīti kā klasisks OOP.

Link to post
Share on other sites

@codez Kāda ide vispār jēdzīgi strādā ar šādu pierakstu? <List items = {["one", "two", "three","four"]} /> Un ja items ir kādas klases objekts, nevis strings? Man ļoti svarīgs faktors ir strikti tipi, code completion. 

Link to post
Share on other sites

@briedis, agrāk izmantoju Webstorm, kurš  +- strādāja, tagad izmantoju Atom ar pluginiem - strādā diezgan perfekti. Priekš React-a JSX sintakses ir vairāki plugini: https://atom.io/packages/language-babelhttps://orktes.github.io/atom-react/ (lapā ir video kā strādā autocomplete).

Ja item ir objekts, tad to var mierīgi padot, teiksim <UserAvatar user={this.user} />, respektīvi, tas, ko raksta starp {}, ir jebkāda js izteiksme.

Link to post
Share on other sites

Browserī jau nevajag. 

Uz dev ir daudz dažādi veidi kā šo kodu lietot bez liekas kompilēšanas, bet priekš production kods jau tāpat tiek minificēts un vēl, te tikai viens solis pa vidum, kurš arī ļoti daudz kļūdas neļauj pieļaut, jo i beigts JSX, i slikts babel tev izmetīs erroru pie compilation, nevis kaut kādā brīdī pie runtime, kas ir daudz efektīvāk.

+ piemetot @codez - vēl lietoju js-hyperclick, kas ļauj ctrl+clickot cauri failiem + ja lieto typescript, lielai daļai (visvairāk VSCODE) nāk līdzi skaists type definitions

 

Link to post
Share on other sites

@jurchiks, es izmantoju webpack un visu pakoju pie izstrādes, tur notiek less kopilācija vienā vai vairākos css, kurus pēc tam iekļauj kopējā bundlē, ES6/React JSX -> ES5 translācija, minimizācija un nesmukošana(uglify). Parasti viss (gan css, gan js, tāpat arī 3d pary bibliotēkas) tiek sabundlēts vienā js failā, kurš ir minimizēts. Ja projektā ir vairākas mazāk saistītas daļas, ar webpack var smuki sataisīt, lai sabundlē vairākās bundlēs un ielādē tās pēc vajadzības. Tā kā visa izstrāde notiek ES6 moduļos, tad webpack ļoti labi zin, kurš kods no kura atkarīgs un kurā brīdī, kuru bundli ielādēt.

Link to post
Share on other sites

Kaut kā man tas js-hyperclick nestrādā. Mēģināju visādi, bet neatrod neko. Pat ja burtiski šādu kodu uzrakstu:

var foo = function (){};

foo();

ctrl-klikšķinot uz `foo()`, nemet uz `var foo`, jo by default ctrl-click dublicē kursoru, bet keymapā nav nekas saistīts ar to plaginu, attiecīgi nomainīt nevar.

Link to post
Share on other sites

Front-end veidojam jau gadiem, nu jau kādus 8 gadus, bet ir tā, ka īstās lietas iemācies., ja strādā aģentūrā un ir labi kolēģi, ja visu dari pats, ieslēdzas rutīna, un kad kāds atnāk un prasa, mums vajag advanced front-end, ierauga ciparu, pazūd, par dārgu, tad ieslēdzās otra galējība, griest, veidot, darīt middle level darbus, kur materiālais ir lielāks, vai atkal sēdēt aģentūrā, kur iemācīsies visu ko vajag, nevajag, utt.. bet ārpus tavas darba vietas un fiksētā atalgojuma nekā nebūs. Pats šobrīd jau esmu gājis augstāk, un vadu front-end cilvēkus, savu šajos gados esmu atgriezis līdz nemaņai, ap 800 projektu, jāsaka, gan middle, gan advancēti, bet nekāds uber-druper nav bijis, dēļ zemāk rakstītā, līdz ar to saviem darbiniekiem dodu idejas,visādus how to do un reāli iesaistos viņu apmācībā, darbībā. Bet principā ir visādi, manuprāt visus angularjs, utt.. visu ko front-end prasa vajag aģentūrās, ja pats vadi savu biznesu, neviens to nevarēs atļauties (Latvijā), vismaz, ne šeit, par to vari aizmirst uzreiz, iesaku uzkrāt labu darbu sarakstu, samācīties lietas, kas tev jāzin un meklēt darbu ārzemēs, mums ir front-end dev serviss, līdzīgs kā psdtohtml.com, līdz ar to, kā programmētājs, vadītājs, pardošanas daļa mēs redzam, ko pārsvarā klientiem vajag un kaut kas kruts, sarežģīts, gudrs nemaz mums nenonāk, jo to dara savi inhouse html cilvēki. Otra lieta, kādu apmācīt, bakstīties ar viņu, tērēt laiku, arī īsti nevienam negribās, tāpēc tev pašam ir savs ceļs ejams, un kad būsi sasniedzis how to how līmeni, cilvēki tev palīdzēs un neeateiks palīdzību. 

Vairākums šejienes profu piemin ar ko strādā, kā kas strādā, bet ja tu vēl esi iesācējs, tev pusi no tā tā pat nesaprast un drīzāk jauc tev galvu, no vienas puses, hey, parasts html, css, bet no otras puses, zini šādi ir labāk, šads kompilātors, tāds rīks, tāds rīks, front-end lietas ir tas, kas sajūdz kopā izskatu ar funkcijām, starpposms jebkam, līdz ar to, tur var būt jebkas, respektīvi, diezgan sarežģīta nozare, jo tev ikdienā ir jāstrādā gan ar dizaineri, kas sazīmējis murgus, jādomā kā izlabot, novērst slikta dizianera lietas, kā ko nevar darīt pēc mākslinieka domām, kas klienta priekšā ir pametis uber krutu dizainu ar fontu, kas ir zagts un ir maksas, licenzes, nav, tev ir jādomā, kā tas izskatīsies pēc test vismaz uz 10 - 20 iekārtām X browseri, tātad, tev jālieto https://www.browserstack.com/ un tad tu sapratīsi, ka gala klientam ir macbooks vai 4K monitors, kuram vajag retina support, kur tev pēc tam vēl svg būs jāsāk čikāt un vēl testēt, darīties, gan mobile, utt.. plus vēl jātestē outdated divas versijas atpakaļ. Huh. Te džeki vairāk runā par visādiem angujar.js, utt.. fošām, jaukām lietām, kuras reāli vajag tiešām inhouse vajadzībām un līdz tādām lietām ir jāaug, jo beigu beigās vēl front-end atdalās, tas simply ceļs vai tikai cilvēks kurš kodē un strādā ar JS, java, utt.. viņam pat nevajag domāt kāds CMS, kāds html vai CMS, tas ir augstākais līmenis, jo arī daudzas sistēmas strādā iekšējā sistēmā, kas itkā arī skatās itkā front-end. 

Otra lieta, pa lielam reāli varētu teikt, ka vilciens ir aizbraucis dēļ viena iemesla, tev nekad nenāksies domāt, kāpēc tavs risinājums nestrādā uz IE7 vai pirmajiem Android, IOS, kur nu vēl browser versijām uz telefoniem, ipadiem, mēs, vecā paaudze esam gājuši cauri katram sasodītam pikselim, kurš nav nostājies tā vai šitā. "Vairāk domāts nostaļģijai"

Kā pa brīnumu, neviena Wordpress slavējuma šeit nav? :)

Ja nepatīk mans viedoklis, neraujat vienu teikumu, vai citātu (Tūlīt kāds nocitēs un mauks augstāk minēto), bez visa konteksta. vienkārši, ja nesaproti manu viedokli, pastāvi klusu.

Paldies :)
 

Link to post
Share on other sites

@foxsk8, tas, ir apmēram tas pats, kas spēlēt ģitāru. Daži no vecajiem teiks - Tavs vilciens ir aizgājis, jo esi par vecu, pirkstu vietā Tev ir ābeļzari. Mēs esam gājuši cauri lēnām lenšu tīšanas mocībām, lai iemācītos ģitārspēli, vārdus u.t.t. Tas priecē un pierāda tikai to, ka ar gribēšanu var daudz panākt!

Ir jauns laikmets un varbūt mana "smadzene" ir pietiekoši spējīga, lai divu gadu laikā uzdienētos un stāvētu līdz vecajiem, varbūt pat pamācīt "vecos".

Pēc manām domām - ja ir interese un gribasspēks, tad pa lielam, var visu!

Tu nekad nebeidz mācīties.

P.S. - Liels paldies visiem par ieteikumiem.

Link to post
Share on other sites
9 minutes ago, jurchiks said:

Kaut kā man tas js-hyperclick nestrādā. Mēģināju visādi, bet neatrod neko. Pat ja burtiski šādu kodu uzrakstu:


var foo = function (){};

foo();

ctrl-klikšķinot uz `foo()`, nemet uz `var foo`, jo by default ctrl-click dublicē kursoru, bet keymapā nav nekas saistīts ar to plaginu, attiecīgi nomainīt nevar.

Nezinu vai mēģināji, bet vispirms vajadzēja šo - https://atom.io/packages/hyperclick un pēc tam js-hyperclick.

Link to post
Share on other sites
25 minutes ago, jurgenz said:

Nezinu vai mēģināji, bet vispirms vajadzēja šo - https://atom.io/packages/hyperclick un pēc tam js-hyperclick.

Mēģināju arī tā, nepalīdzēja, ctrl-left tas pats action. Lai gan paša plagina settingos ir rakstīts "Trigger keys for Windows > control + click", tas neko nedara, tikai taisa kursoru dublikātus.

Edit: ok, kaut kādus baigi primitīvus variable declarations atrod, bet starp failiem ņifiga, jo acīmredzot nesaprot Angular DI. Karoč I am not impressed.

 

Edit2: Visual Studio Code dara to pašu, tikai 3x mazākā package un bez plaginiem...

Edited by jurchiks
Link to post
Share on other sites
On 2017.03.10. at 5:41 PM, codez said:

@Wuu, enkapsulācija ir vajadzīga, lai rakstītu no aplikācijas neatkarīgas, vairākkārt izmantojamas komponentes, ko redux gadījumā nav triviāli izdarīt, jo viss aplikācijas stāvoklis glabājas kopējā storē. Ļoti bieži ir daudz ērtāk un vienkāršāk izveidot pilnīgi neatkarīgu komponenti ar kuru tad galvenā aplikācija komunicē, it sevišķi, ja pie lielāka projekta strādā vairāki cilvēki. Saprotams, ka arī reduxā un tā iedvesmas avotā elm-ā ir atrasti dažādi paterni kā enkapsulēt komponentes, bet tie ir par kārtu sarežģītāki un nav tik atstrādāti un praksē pārbaudīti kā klasisks OOP.

Redux ir radīts specifiski lai atrisinātu darbu grupās. Enkapsulācija - nav kaut kādā veidā caur vienu vietu sasniedzama, bet gan ir pa tiešu iebūvēta un uzspiesta. RTFM

On 2017.03.10. at 6:14 PM, briedis said:

@codez Kāda ide vispār jēdzīgi strādā ar šādu pierakstu? <List items = {["one", "two", "three","four"]} /> Un ja items ir kādas klases objekts, nevis strings? Man ļoti svarīgs faktors ir strikti tipi, code completion. 

Pirmkārs, codez piemērs ir gaužam novecojis, neviens vairs tādā viedā React nelieto. Otrkārt, es ceru, ka viņa kodā pieļautā kļūda, ir tikai drukas kļūda. Savādāk, ir ļoti skumji.

Runājot par striktiem tipiem, React ir iebūvēts PropType, kurā norādi kāda tipa props šis komponents var pieņemt. https://facebook.github.io/react/docs/typechecking-with-proptypes.html Ļoti patīkama fīčā, atvieglo darbu.

On 2017.03.10. at 4:48 PM, jurchiks said:

Ar Wuu par OOP nav jēgas runāt, viņš to principā nesaprot un neatzīst.

Mana kļūda, iekš PHP OOP tiešām nav slikts, jo izsekot datu mutācijai var lasot tekstu uz leju. JavaScriptā, gala aplikācija atgādina bļodu ar spageti.  

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...