2010-09-09 21 views
31

Dire che stai lavorando al modulo principale del progetto foo per BarBaz Incorporated. Il tuo frammento di codice potrebbe essere simile:Nome azienda sillabato in pacchetti Java

package com.barbaz.foo.core; 

import com.barbaz.foo.util; 

Quale sarebbe la convenzione essere se il sito della vostra azienda non è stata barbaz.com, ma invece bar-baz.com?

+0

Così si scopre c'è una piccola quantità di Java accadendo sull'altro lato dell'edificio, anche se non ho trovato questo fuori fino a dopo ho chiesto al domanda. Il loro approccio, seguendo il formato di questo esempio, era 'com.bb.foo. *;' Che ha senso considerando che tutti i sistemi legacy sono bbs, bbw, bbj, bbl e cosa no. Grazie per l'input però! – corsiKa

risposta

47

Il Java Language Spec dà una convenzione suggerita:

Se il nome dominio contiene un trattino, o di qualsiasi altro carattere speciale non consentito in un identificatore (§3.8), convertirlo in un carattere di sottolineatura.

Ma è solo un suggerimento ...

+11

Ciò è interessante, considerando la maggior parte dei suggerimenti Java contro l'uso di caratteri di sottolineatura nella maggior parte degli identificatori. – corsiKa

7

Basta trascinare il trattino. Il nome del pacchetto non deve necessariamente corrispondere al nome del sito web. È più importante che ci sia coerenza tra i pacchetti prodotti dalla società in modo che tutti usino lo stesso nome del pacchetto di base.

+0

Viene anche usato per evitare collisioni nello spazio dei nomi nelle librerie. Se barbaz.com ha creato un prodotto utilizzando una libreria di bar-baz.com (che ha lasciato cadere il trattino), potrebbero esserci dei conflitti. In pratica è così improbabile da essere ridicolo. –

+11

Se barbaz.com e bar-baz.com producessero entrambe biblioteche, uno di loro avrebbe citato in giudizio l'altro. –

+0

Su ulteriore considerazione, ho dovuto dare la casella di controllo al suggerimento di Steve. Controlla i link nel mio commento sulla risposta di Jon Skeet per il perché. – corsiKa

13

Vorrei semplicemente rimuovere il trattino. È modificarlo in un carattere di sottolineatura, ma sarebbe un po 'brutto.

E 'altamente improbabile che sia davvero andando a scontrarsi con un'altra società con lo stesso nome meno i trattini. Anche se entrambe le società sono aziende tecnologiche, entrambe utilizzano Java, quali sono le probabilità che qualcuno utilizzi il codice creato da entrambi nella stessa base di codici?

A dire il vero, mi auguro che Java non abbia intrapreso questa strada in termini di convenzioni. Mi chiedo quante directory chiamate "com" o "org" esistano con un singolo membro: una sottodirectory con un nome più significativo.

+0

Quindi mi sono imbattuto nuovamente in questo altro giorno (non sono più nello stesso posto) e mi sono imbattuto in un [tutorial Oracle con un grafico a portata di mano in basso] (http://docs.oracle.com/javase /tutorial/java/package/namingpkgs.html). Secondo la strada del ritorno, è [stato intorno alla fine del 2011] (http://web.archive.org/web/20111117054510/http://docs.oracle.com/javase/tutorial/java/package/namingpkgs. html), un anno dopo questa domanda.Le raccomandazioni in fondo mi fanno davvero meravigliare! – corsiKa

+2

@corsiKa: Ick. Sembra orribilmente brutto per me! Non riesco a ricordare l'ultima volta che ho visto un trattino basso nel nome di un pacchetto, per essere onesti ... –

2

Io lavoro su molte cose del governo e in genere usiamo il carattere di sottolineatura in modo da bar_baz.

42

Ho appena controllato la cronologia del mio browser e negli ultimi 2 mesi non ho visitato un singolo dominio con un trattino. Quindi la convenzione è di rinominare la compagnia.

In alternativa, lascia il trattino, perché BazBaz non includerà mai il codice Baz = Baz nel proprio.

+3

Fantastico. Ho LOL'ed. –

+0

Penso che il consiglio di amministrazione sarà in discussione con questo approccio, ma anche io LOL! – corsiKa

+0

Apparentemente, solo la persona che ha posto la domanda può accettare una risposta. Purtroppo ... – root

Problemi correlati