Ciao,
On Fri, Jan 12, 2024 at 6:07 PM Marco Scarpa <
qwert...@gmail.com> wrote:
>
> Ciao,
>
> Mi piacerebbe diffondere open source una piccola libreria che ogni tanto faccio per lavoro (l'ho fatta quasi uguale in due posti), praticamente implementerebbe Map<List<K>,V> per usare chiavi composte (mi sembra abbastanza una banalità come cosa e mi stupisce che progetti come Apache non ci abbiano pensato).
Perché devi garantire l'immutabilità della chiave (in particolare
hashCode() e equals()) e usare `List` sembra incitare a chiamare
add().
Certo puoi rendere la lista immutabile, ma a quel punto usi un record,
che permette anche di avere componenti di tipo diverso (altrimenti
devi usare List<Object> -- yuck) e anche se sono dello stesso tipo
puoi dare loro un nome diverso: con record Key hai Key.street e
Key.number invece di list.get(0) e list.get(1).
> Come licenza pensavo alla licenza MIT per consentire liberamente di usarla in progetti open e closed source (anche per essere protetto visto che sarebbe codice simile a quanto ho fatto per lavoro che non è open source), avete suggerimenti a riguardo?
Devi verificare di poterla rendere open source.
Se l'hai sviluppata durante il tuo lavoro per una società (per esempio
sei un impiegato, oppure un professionista al quale è stato chiesto di
sviluppare codice), di solito il codice appartiene alla società (non a
te -- tu sei stato pagato per quel codice quindi è loro), quindi ti
raccomando di chiedere il permesso alla società per evitare guai
futuri: la società potrebbe attaccarsi al fatto che hai reso open
source del codice della società che era un segreto industriale, e
prendere provvedimenti.
Se è una piccola libreria non dovrebbero esserci problemi a parlarne
con la società, ma fai in modo che la società ne sia pienamente al
corrente.
> Per dare il nome ai package, nel libro di Informatica 1 suggerivano, se non si ha un proprio dominio, di usare il proprio indirizzo email al contrario, solo che non mi sento tanto a mio agio ad usare com.google.qwertyscar , un po' perché non vorrei farmi passare per Google ed un po' per non rivelare a tutti l'email, lo stesso ma un po'meno se usassi it.tiscali.marco.scarpa (forse tiscali non è nota quanto Google ma lo stesso non vorrei farmi passare per loro e lo stesso sul non rivelare l'email), qualche idea? se ospito il progetto su github è ragionevole usare qualcosa tipo com.github.qwertyscar ?
Non devi usare la tua email :)
Usa un qualsiasi prefisso "top level" the ti piace, tipo
io.qwertyscar, o dev.qwertyscar, org.qwertyscar,
io.shoemark.qwertyscar, ecc.
Ti consiglio di non usare niente di trademarked, quindi niente
"google" o "java", "github", ecc.
--
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz