Jump to content
php.lv forumi

Mid level PHP developer


Lilita

Recommended Posts

  • Replies 59
  • Created
  • Last Reply

Top Posters In This Topic

11 hours ago, codez said:

Par šo lūdzu sīkāk, vai arī runa ir vienkārši par Parcel?

Pirmo reizi par tādu Parcel dzirdu.

Bet ko tur sīkā - es paņemu laravelu ar mix un zero configs... (nu neskaitot pielikt klāt kkādus pluginus)

Link to comment
Share on other sites

Ar ietvariem viss ir labi līdz brīdim, kad jāsāk optimizācija.
Jaunās skolas programmētāji teiks, ka jāceļ jauda serveriem, jo dzelži, elektrība lēta un par ekoloģiju po*uj!
Vecās, ka jāraksta no 0, lai viss ir izsekojams, bez liekām darbībām, ar minimālu procesora un atmiņas noslodzi.
Noteikti ir arī "freimvorku naži", kuri ietvara kodu pārzin kā savu kabatu un spēj visu optimizēt līdz maksimumam.

Katrā ziņā strīdēties par to ir bezjēdzīgi...
Katram projektam savi programmētāji ar savu skatījumu un izvēli kādus risinājumus lietot.
Lietotājam svarīgs UI, UX un ātrdarbība, vienalga html ģenerē Laravel, Phalcon vai Perl...

Link to comment
Share on other sites

37 minutes ago, webi said:

Ar ietvariem viss ir labi līdz brīdim, kad jāsāk optimizācija.
Jaunās skolas programmētāji teiks, ka jāceļ jauda serveriem, jo dzelži, elektrība lēta un par ekoloģiju po*uj!
Vecās, ka jāraksta no 0, lai viss ir izsekojams, bez liekām darbībām, ar minimālu procesora un atmiņas noslodzi.
Noteikti ir arī "freimvorku naži", kuri ietvara kodu pārzin kā savu kabatu un spēj visu optimizēt līdz maksimumam.

Katrā ziņā strīdēties par to ir bezjēdzīgi...
Katram projektam savi programmētāji ar savu skatījumu un izvēli kādus risinājumus lietot.
Lietotājam svarīgs UI, UX un ātrdarbība, vienalga html ģenerē Laravel, Phalcon vai Perl...

Optimizēt frameworka kodu 99.99% gadījumu ir pats pēdējais ko vajag darīt. Viens sūdīgs kvērijs, vai arī kvēriji ciklā, vai neoptimizēts attēls pirmajā lapā nodara daudz lielāku ļaunumu nekā frameworka boot laiks. Tā kā tas nav liels aspekts. Es gan vairāk varu spriest par Laravelu, kas ir diezgan elastīgs frameworks, kas arī ļautu izgriezt ārā dažādas nevajadzīgas lietas, ja nu tiešām pēdējais salmiņš ir paša boot laika optimizācija.

Link to comment
Share on other sites

3 hours ago, briedis said:

Bet ko tur sīkā - es paņemu laravelu ar mix un zero configs...

Vai laravela mix tiks galā ar šādiem uzdevumiem?
Piemēram:
- izvēlēties vairākus entry punktus, ja ir vajadzīgi vairāki js bundļi (piemēram, vajag webworker-im vai kādam embedojamam widgetam atsevišķu bundli);
- iestatīt optimizēšanu, minimizēšanu un nesmukošanu (uglify) - ar kaudzi parametru, kurus pielāgot konkrētai vajadzībai;
- rakstīs JS modernākā versijā (ES6, Typescript, etc.), bet galā iegūt savietojamu kodu;
- iestatīt dažādus buildošanas parametrus, atkarībā vai taisi DEV vai PROD buildu - pārsvarā ātrdarbībai - tas ir, dev versijā piemēram neizmantot uglify, lai, piemēram, builds ir 1/2 sekundi, nevis 20.
 

Edited by codez
Link to comment
Share on other sites

3 minutes ago, codehighriga said:

Tikko izveidotajā blakus topikā labs piemērs par "pazušanu" - kāds uzkodējis paštaisītu CMS/ietvaru un tagad pazudis. Ej nu meklē citu, kas varēs atjaunot.

Ja būtu lietoti vispārzināmi ietvari un standarti - gan jau tagad būtu vieglāk.

Domā ja tam arhaiskajam tabulu brīnumam apakšā būtu vēl iepīts kāds padsmitgadīgs (php 5.1) ietvars tas kaut ko padarītu labāku un visi stātos rindā tur kaut ko darīt? Pie tam, neviens jau nav teicis ka nav...

Link to comment
Share on other sites

6 minutes ago, codez said:

Vai laravela mix tiks galā ar šādiem uzdevumiem?
Piemēram:
- izvēlēties vairāku entry punktus, ja ir vajadzīgi vairāki js bundļi (piemēram, vajag webworker-im vai kādam embedojamam widgetam atsevišķu bundli);
- iestatīt optimizēšanu, minimizēšanu un nesmukošanu (uglify) - ar kaudzi parametru, kurus pielāgot konkrētai vajadzībai;
- rakstīs JS modernākā versijā (ES6, Typescript, etc.), bet galā iegūt savietojamu kodu;
- iestatīt dažādus buildošanas parametrus, atkarībā vai taisi DEV vai PROD buildu - pārsvarā ātrdarbībai - tas ir, dev versijā piemēram neizmantot uglify, lai, piemēram, builds ir 1/2 sekundi, nevis 20.
 

 

Mans mix config fails, kas:
1. minificē/versionē ja laiž npm run prod
2. iznes npm libus atsevišķā failā (vai vairākos)
3. iekļauj bable pluginus

Out of box strādā arī hot reloads. Kas nozīmē, ka labojot kodu re-builds būs <1-2s noteikti.

Pašos layoutos (base layout) atliek izmantot frameworka metodi, kas parūpējās, lai strādā arī versionēšana, ja ir buildots ar prod flagu.

<script src="{{ mix('js/app.js') }}"></script>
 

No lietām, kuras neesmu mēgīnājis - vairākus entry pointus, bet pieļauju iespēju, ka to var risināt ar mix.js(..cits-fails.js), jo js/app.js satur visu vue bootstrapu.

const mix = require('laravel-mix');

const webpackConfig = require('./webpack.config');

mix.webpackConfig(webpackConfig);

mix.babelConfig({
    plugins: [
        '@babel/plugin-proposal-class-properties',
        '@babel/plugin-proposal-optional-chaining',
        '@babel/plugin-proposal-private-methods',
    ],
});

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .sass('resources/sass/custom.scss', 'public/css')
    .extract(['vue', 'vee-validate', 'vuex', 'bootstrap-vue'])
    .extract(['moment'], 'js/moment')
    .extract(['sweetalert2'], 'js/sweetalert');

if (mix.inProduction()) {
    mix.version();
}

Man grūti iztēloties, ka tas viss varētu būt vēl vienkāršāk...

Link to comment
Share on other sites

2 minutes ago, mad182 said:

Domā ja tam arhaiskajam tabulu brīnumam apakšā būtu vēl iepīts kāds padsmitgadīgs (php 5.1) ietvars tas kaut ko padarītu labāku un visi stātos rindā tur kaut ko darīt? Pie tam, neviens jau nav teicis ka nav...

Rindā noteikti nestātos taču jebkura ietvara izmantošana noteikti uzlabotu pārtaisīšanas sāpju līmeni.
Konkrētais piemērs varbūt ir mazāk relevants, jo fokuss par 90% ir uz frontendu, taču mierīgi varētu iztēloties kaut ko no sērijas "Pievienot Omniva pakomātu shippingu", "Pievienot banklink", vai ko tamlīdzīgu.

Link to comment
Share on other sites

31 minutes ago, briedis said:

Optimizēt frameworka kodu 99.99% gadījumu ir pats pēdējais ko vajag darīt. Viens sūdīgs kvērijs, vai arī kvēriji ciklā, vai neoptimizēts attēls pirmajā lapā nodara daudz lielāku ļaunumu nekā frameworka boot laiks. Tā kā tas nav liels aspekts. Es gan vairāk varu spriest par Laravelu, kas ir diezgan elastīgs frameworks, kas arī ļautu izgriezt ārā dažādas nevajadzīgas lietas, ja nu tiešām pēdējais salmiņš ir paša boot laika optimizācija.

Tas, ka datubāzes arhitektūra un pieprasījumi ir ātrdarbības pamatā, ir vispārzināms.
Mazāk zināms par servera atmiņas un procesora jaudas racionālu izmantošanu.
Visam ir robeža, noteikti ne konkrēta, bet katram projektam un serverim sava.
Pēc pieredzes, pie aptuveni 1000+ pieprasījumiem sekundē uz viduvēja servera, rodas vēlme, lai optimizēts ir viss, ko var optimizēt.
Kad vairs nav kur piesieties, var sākt celt servera jaudu.

Viedoklis mans subjektīvais, nevienam neko neuzspiežu un nepasniedzu kā vienīgo patiesību.
Vienkārši esmu slinks, vecs un negribu labot svešu kodu...  :D

Link to comment
Share on other sites

@briedis, ok skaidrs, mix ir vienkārši abstrakcija virsū webpackam, kurā principā populārākās webpack rules ir abstrahētas ar funkciju, taču, ja būs specifiski configa parametri, tik un tā nāksies configurēt +- tikpat, cik plikā webpakā. Un tik vienkāršotā situācijā arī pliks webpack config nebūs īpaši kompleksāks.
Praksē tas ir tradeoffs - jo augstāka abstrakcija, jo mazāk kontroles - tātad, ja pietiek tik kontroles, cik sniedz mix, tad noteikti ir ok, ja nē, ērtāk , manuprāt, būs izmantot pliku webpack.

Tikai īsti nav skaidrs, kāpēc mix configā ir jāekstrakto katra 3rd party bibliotēka vai jānorāda stylesheeti, ja webpack automātiski māk iekļaut visas šādas bibliotēkas.
 

Link to comment
Share on other sites

12 minutes ago, codez said:

@briedis, ok skaidrs, mix ir vienkārši abstrakcija virsū webpackam, kurā principā populārākās webpack rules ir abstrahētas ar funkciju, taču, ja būs specifiski configa parametri, tik un tā nāksies configurēt +- tikpat, cik plikā webpakā. Un tik vienkāršotā situācijā arī pliks webpack config nebūs īpaši kompleksāks.
Praksē tas ir tradeoffs - jo augstāka abstrakcija, jo mazāk kontroles - tātad, ja pietiek tik kontroles, cik sniedz mix, tad noteikti ir ok, ja nē, ērtāk , manuprāt, būs izmantot pliku webpack.

Ko Parcel dara labāk / citādāk?

Link to comment
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...