Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Database per sorgenti.

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] Database per sorgenti.

Messaggioda Foto UtenteTardoFreak » 2 dic 2010, 15:50

Un saluto a tutti gli amici del forum.

Lavorando con i microcontrollori, fra esperimenti e sviluppi vari, sono arrivato al punto di avere una gran quantita' di sorgenti che vorrei organizzare in un database. Sono sorgenti in C, alcuni in Java (per ora pochi) e in un metalinguaggio che ho creato per la realizzazione automatica di sorgenti in C per le macchine a stati.

Prima d' imbarcarmi nell' impresa di riprogettare il motore a scoppio, mi piacerebbe sapere se esistono dei programmi che mi permettano di avere un unico archivio con tutti i frammenti dei sorgenti per averli sempre disponibili senza andarmeli a cercare in giro per le varie cartelle, corredati di descrizione, che si possano individuare tramite parole chiave o che si possano cercare attraverso un elenco.
Faccio un esempio.
Devo sviluppare, chesso', un' apparecchiatura che utilizza un PIC32. Vorrei avere un programma che, digitando la parola chiave "PIC32" mi riempia un elenco di nomi di funzioni che ho scritto e che si possono utilizzare con tale processore. Scorrendo l' elenco dovrei leggere (ad esempio in calce a tale elenco) un descrizione scritta da me della funzione, di come si usa e cosa fa. Una volta selezionata questa mi appare in una finestra di testo dalla quale posso copiarla per incollarla sul mio programma o che mi indici il file (o i files) da includere nel mio programma. Alcune funzioni sono di uso generale, quindi dovrei associare alla "scheda" della funzione dei tags che specifichino tutte le famiglie dei PIC dove puo' essere utilizzata.
Ecco, a grandi linee e' quello che mi piacerebbe avere.
Il fatto e' che non seguo affatto il software per il PC quindi domando a voi se esiste un qualcosa del genere.
Non serve che sia gratis ma che funzioni bene e mi rivolgo a voi per avere qualche informazione o link.

Ringrazio anticipatamente.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[2] Re: Database per sorgenti.

Messaggioda Foto Utentexyz » 2 dic 2010, 18:52

Di solito un programmatore gli serve un controllo di revisione (gestire la storia dei cambiamenti, ramificazioni, etichette di un codice) e poi, se mai, un tools per cercare parti di sorgenti nel proprio gestore di revisione.

L'utilizzo di un search engine per sorgenti senza l'uso di un controllo di revisione lo trovo abbastanza inutile.

La cosa non è in generale semplice per un neofita.

Di software di controllo di revisione c'è ne sono tanti:

http://en.wikipedia.org/wiki/List_of_re ... l_software

alcuni sono ormai obsoleti, altri sono più recenti e più attivi nello sviluppo. Io ti consiglio Git (è quello che uso in tutti i miei nuovi progetti) o Mercurial.

http://git-scm.com/
http://mercurial.selenic.com/wiki/Mercurial

Una volta scelto il controllo di revisione (decisione non facile) esistono dei frontend per implementare funzioni aggiuntive, come dei search engine via web. Ogni programma di revisione ha un elenco di tools opportuni:

https://git.wiki.kernel.org/index.php/I ... Interfaces
http://mercurial.selenic.com/wiki/OtherTools

Se è troppo complesso la gestione di un controllo di revisione con un web front-end, esistono soluzione più semplici, il più noto e vecchio tools di ricerca tra i sorgenti è ctags:

http://ctags.sourceforge.net/

originalmente scritto per cercare nei sorgenti C, ora esteso in decine di linguaggi tra cui C++ e Java. Si solito si interfaccia con un editor di testo o un IDE.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[3] Re: Database per sorgenti.

Messaggioda Foto UtenteTardoFreak » 3 dic 2010, 1:23

Ti ringrazio per la risposta. :-)
Ho guardato i software che mi hai suggerito ma, purtroppo, non sono quello che sto cercando.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[4] Re: Database per sorgenti.

Messaggioda Foto Utenteangus » 3 dic 2010, 1:32

i "pezzi di codice" vari e sparsi in gergo sono chiamati snippet
mi pare di capire che cerchi quindi uno snippet manager.

cerca con google qualcosa come "code snippet manager" o varianti...
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.490 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[5] Re: Database per sorgenti.

Messaggioda Foto UtenteTardoFreak » 3 dic 2010, 13:26

Ho girato il web fino ad ora. Ne ho trovati diversi ma nessuno fa quello che mi servirebbe. O sono troppo semplici e quindi inutili, o sono troppo rigidi e quindi non adattabili ... bah, lo scrivero' io integrando anche il mio programma per generare i sorgenti delle macchine a stati.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[6] Re: Database per sorgenti.

Messaggioda Foto UtenteBerello » 3 dic 2010, 14:06

E perché invece non metti un commento (descrizione della funzione e altri dati utili) dentro ogni file e poi esegui una ricerca interna ai files? (ad esempio usando il comando grep su Linux)

Se tieni tutto dentro una cartella o un unico albero di cartelle, mi sembra una soluzione semplice e comoda.
Avatar utente
Foto UtenteBerello
110 1 3 7
Expert EY
Expert EY
 
Messaggi: 449
Iscritto il: 3 mar 2009, 23:53
Località: Roma

0
voti

[7] Re: Database per sorgenti.

Messaggioda Foto Utenteangus » 3 dic 2010, 14:10

Faccio 3 premesse d'obbligo:
1. Quando serve uno strumento, lo strumento deve essere comodo per le proprie esigenze. Altrimenti invece di usare lo strumento, si lavora PER lo strumento. E non va bene.
2. Io tendenzialmente seguirei la tua logica: "se non c'è lo strumento che fa quello che serve a me me lo creo" (a volte da anche più soddisfazione)
3. Se il 99% delle persone va in una direzione, non è detto che si debba seguire per forza quella.

Detto questo, senza voler fare della retorica, ma analizzando solo l'aspetto tecnico... negli anni, ho imparato che, un piccolo sforzo di modificare le mie abitudini, seguendo strade che sembravano non adatte per me o troppo complicate, alla lunga mi hanno portato a buoni risultati.
Se in tutto il web non hai trovato nessuno strumento o sistema di "catalogare" i pezzi di codice che ragiona come vorresti tu.. e nessun programmatore segue la tua logica... prima di reinventare la ruota, forse dovresti chiederti se davvero sei nella direzione giusta

just my 2 cents
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.490 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[8] Re: Database per sorgenti.

Messaggioda Foto Utentexyz » 3 dic 2010, 19:01

Non ho provato nulla per la gestione degli snipper di codice che rispetta le specifiche molto particolari.

Esisto delle estensioni per gli editor di testo che permettono di inserire in modo automatico delle porzione di codice, ad esempio i progetti presenti su Google Code:

http://code.google.com/hosting/search?q=label%3Asnippet

dipendono dal editor di testo o dal IDE utilizzato.

Esistono dei siti che raccolgono code snipper di molti linguaggi:

http://snipplr.com
http://www.refactory.org
http://snippets.snippets.org/index.php

alcuni forniscono dei tool ma si interfacciano al editor di testo.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[9] Re: Database per sorgenti.

Messaggioda Foto UtenteTardoFreak » 4 dic 2010, 1:04

Innanzi tutto vi ringrazio nuovamente per le info che mi avete dato, sono state particolarmente utili. :-)
Oggi ho ripreso ed ho analizzato a fondo gli snippet managers che ci sono disponibili e ... mi sono accorto che non e' quello che voglio. Non mi serve il controllo di revisione per una serie di motivi. Il buono e' che tutto questo ha messo ordine nelle mie idee e mi ha dato parecchi spunti di riflessione. :ok:
Ho capito che ho bisogno di un tool particolare, e l' unica soluzione e' scrivermelo da me.
La stessa cosa mi e' capitata 10 anni fa. Per sviluppare un prodotto in un certo settore (non per PC ma su scheda con microcontrollore) affidabile e di sicuro funzionamento impiegavo almeno 4 mesi se non di piu'. Il mercato era mutevole, le leggi ed i regolamenti del settore cambiavano in continuazione ed avevo bisogno di un qualcosa che, partendo da parti di codice ultracollaudate e blocchi funzionali robusti, mi permettesse di sviluppare le miei idee in poco tempo e senza errori scrivendo il minimo indispensabile.
Ho quindi sviluppato un tool che letteralmente mi costruiva il sorgente del programma, convertiva i file dei suoni, immagini ed altro per adatterle alle mie basi hardware in automatico. Ci ho lavorato piu' di 6 mesi e sono riuscito ad ottenere un tool che mi permetteva di sviluppare un nuovo prodotto partendo da zero in 4/5 giorni.
La cosa ha funzionato.
Era una scelta che andava al di la degli standard, se vogliamo anche azzardata, ma ha funzionato molto bene.
Oggi ho tirato giu' parte delle specifiche ma e' un lavoro lungo.
Devo ancora valutare se mi conviene farlo o se andare avanti in modo tradizionale.

In ogni caso grazie ancora. iOi
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[10] Re: Database per sorgenti.

Messaggioda Foto Utenteangus » 4 dic 2010, 22:09

Ho riletto con più attenzione il tuo primo post... in particolare dove dici:
Faccio un esempio.
Devo sviluppare, chesso', un' apparecchiatura che utilizza un PIC32. Vorrei avere un programma che, digitando la parola chiave "PIC32" mi riempia un elenco di nomi di funzioni che ho scritto e che si possono utilizzare con tale processore.


Io con vim per fare una cosa simile uso un plugin basato su ctags
Dagli un occhio, potrebbe tornarti utile. mi pare funzioni anche con editor diversi da vim

ciao
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.490 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti