Cosa si intende per codice di separazione per tipo in base a funzione? [chiuso]

0

Ad esempio, per lo sviluppo del frontend web, ci sono due modi principali per strutturare un progetto:

client
 -js
  -component_1.js
  -component_2.js
 -html
  -component_1.html
  -component_2.html
 -css
   -component_1.css
   -component_2.css

vs.

client
 -component_1
  -component_1.js
  -component_1.html
  -component_1.css
 -component_2
  -component_2.js
  -component_2.html
  -component_2.css

Esiste una terminologia adeguata per distinguerli?

Lo chiamo sempre "strutturazione del progetto basata su asset" e "basata sui componenti".

    
posta Claas M. 13.08.2017 - 12:17
fonte

1 risposta

0

Mi piace il termine funzione suggerito da David Packer nel suo commento. Il termine componente potrebbe anche essere un termine corretto, ma dipende dal progetto e dalla terminologia del framework: per un'applicazione AngularJS, ad esempio, sarebbero componenti. Nel dubbio, evita componenti , per il motivo che spiego partendo dal quarto paragrafo.

Quando si tratta del primo layout, non mi piace nessuno dei termini suggeriti in precedenza. HTML, JavaScript e CSS non sono né risorse , né livelli . Asset è troppo generico e probabilmente dovrebbe essere inteso più come feature , che non è ciò a cui si desidera fare riferimento. I livelli hanno un significato più specifico nello sviluppo del software, come nella logica N-tier. Un livello di accesso ai dati o un livello di presentazione è un livello; CSS o JavaScript non sono un livello.

Quindi cosa sono? Sono lingue, ma nel tuo primo esempio, non stai raggruppando i file in base alle lingue, ma in base al ruolo che tali file realizzano nel progetto. Come contro-esempio, probabilmente inserirai file LESS e Sass nella stessa directory, anche se sono due lingue diverse. Allo stesso modo, non metti i controller Node.js e i file JavaScript lato client nella stessa directory solo perché hanno un'estensione .js -avrai una directory per i controller e un'altra per il lato client script.

Con un ambito più ampio di un'applicazione lato server, diventa chiaro che la distinzione non sono le lingue, ma le parti dell'applicazione. Prendendo un esempio di un'applicazione MVC, sarebbe:

- controllers
  - account-controller
  - cart-controller
  - shopping-controller
- models
  - user
  - cart
  - product
  ...
- views
  - login
  - register
  ...

Wikipedia li chiama componenti , non livelli, e usa questo termine piuttosto coerentemente . Tuttavia, usare il termine componenti sarebbe molto ambiguo nel tuo caso (lo hai usato per il layout opposto tu stesso).

Invece, suggerirei il termine tipi , come in "Che tipo di file è? - È un controller. " I tuoi file CSS (sarebbero CSS, LESS, Sass o qualsiasi altra cosa) sono fogli di stile, questo è il loro tipo. Il tipo di file CoffeeScript o TypeScript è script sul lato client. I file HTML sono i modelli (o file di contenuti).

  • Struttura basata sui tipi e basata sui componenti.
  • Struttura basata sui tipi e basata sulle funzionalità.
risposta data 13.08.2017 - 14:44
fonte

Leggi altre domande sui tag