Devo usare uno spazio dei nomi di root?

2

Attualmente sto lavorando a un paio di progetti in Flash ActionScript e ho creato una piccola libreria di classi. Ho utilizzato una convenzione di denominazione simile a:

foo.events.Bar e foo.controls.Baz , ma ho notato che molte persone hanno pubblicato le loro librerie nei pacchetti com e org / spazio dei nomi (cioè com.foo.events.Bar e com.foo.controls.Baz ). Presumo che il significato di com sia common o community e che org sia organization .

C'è una ragione particolare per aggiungere uno spazio dei nomi aggiuntivo ?

Questo è comune per i linguaggi con nomi (Java, C #, AS3, ...)?

    
posta zzzzBov 07.04.2011 - 18:22
fonte

3 risposte

2

com non significa comune o comunità, significa commerical , uguale al web . Questo è importante, poiché il significato definisce le convenzioni, se desideri seguirle.

Come specificato nelle specifiche di denominazione @Dean , i pacchetti sono un schema di denominazione gerarchico , il che significa che la distinzione più generale viene prima.

Per questo, dovresti seguire la convenzione, che è:

  • Se stai realizzando software commerciale utilizza com ( .yourcompanyname ).
  • Se stai costruendo software gratuito / open source , utilizza org ( .yourorganizationname ).

Come nota a margine, ricordo di aver letto da qualche parte, anche se non riesco a trovare la fonte, che Tim Berners -Lee (creatore del URL ) ha detto, se dovesse creare nuovamente la specifica, avrebbe inserisci il TLD ( .com , .org ecc.) (rispecchiando le convenzioni del pacchetto software), poiché è il livello più alto della gerarchia.

    
risposta data 07.04.2011 - 18:32
fonte
2

Il primo posto in cui ho mai visto che la convenzione di denominazione era Java, dove è stato incoraggiato hai anteposto i nomi dei tuoi plichi all'indietro nome di dominio . Quindi, se possiedi "www.foo.com", chiamerai i tuoi pacchetti "com.foo.whatever" (lascia il "www").

Questo evita la possibilità di conflitti tra nomi di pacchetti (ad esempio se la compagnia "pippo" in Australia rilascia un pacchetto, sarebbe "au.com.foo.whatever").

L'ho visto usato anche in altre lingue (mi viene in mente python) ma credo che l'abbiano preso in prestito da Java.

    
risposta data 07.04.2011 - 18:28
fonte
1

Dovrebbe è un termine interessante, ma in ogni caso il concetto dietro gli spazi dei nomi è quello di evitare lo scontro.

Nei giorni di C e in altri linguaggi simili :-), avevi funzioni. Se due librerie hanno fornito lo stesso nome di funzione, potresti essere sfortunato al momento della compilazione o del collegamento.

Libreria uno:

/* code dealing with gui */
int draw(void*);

Libreria due:

/* code dealing with printer */
int draw(void*);

Quindi abbiamo iniziato a prendere l'abitudine di aggiungere un piccolo prefisso aziendale / libreria

Libreria Altro:

/* code dealing with GUI */
int GUI_draw(void*);

Libreria Altri due:

/* other print code */
int PRINT_draw(void*);

E questo ha aiutato un bel po ', più la digitazione, ma dato che avevi meno probabilità di usare due della stessa libreria nella stessa applicazione, è andata piuttosto bene.

Le lingue si sono evolute e il concetto è diventato più raffinato per essere un concetto di prima classe di spazi dei nomi.

Java (citazione necessaria) potrebbe essere stato il primo a (largamente) adottare il nome di dominio invertito come spazio dei nomi. Per la natura stessa del sistema DNS, questo ha assicurato che non ci sarebbero stati conflitti con gli stessi nomi.

Quindi torna a dovrebbe ; se si sta codificando per uso personale, probabilmente non preoccuparsi di preoccuparsene.

Se stai codificando per un'azienda, valuta di utilizzare il loro nome nell'ordine inverso standard. Se il codice non va da un'altra parte (cioè non è rilasciato open-source), non farà molta differenza, ma sarà meno l'elemento sorpresa per i futuri sviluppatori che arrivano e si aspettano che standard convenzione.

    
risposta data 07.04.2011 - 18:37
fonte

Leggi altre domande sui tag