Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako se pridruziti velikom projektu pisanom u c++?

[es] :: C/C++ programiranje :: Kako se pridruziti velikom projektu pisanom u c++?

[ Pregleda: 2305 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Alexe
Beograd

Član broj: 172465
Poruke: 37
*.eunet.rs.



Profil

icon Kako se pridruziti velikom projektu pisanom u c++?26.02.2009. u 21:22 - pre 184 meseci
Pocetnik sam u c++ i imam veliki zadatak: pridruzivanje jednoj open source zajednici u razvoju ruting softvera pisanog u c++. O cemu se radi: ovaj ruting softver je zapravo sastavljen od nekoliko ruting protokola (deamon-a) i potrebno je implementirati odredjene izmene na jednom od njih, tacnije BGP protokolu. Jos preciznije, za pocetak je potrebno uneti odredjene izmene u jedan od paketa (open packet) koji taj protokol salje. Taj open packet jeste jedna klasa koja je izvedena iz generalne klase BgpPacket. Ceo projekat je zapravo i pisan kroz c++ obrasce klasa (class templates). E sad, kako poceti? Posto sam pocetnik, a radi se o velikom projektu jedne open source zajednice, zanimaju me generalni postupci pri pocetku pisanja izmena (dopuna) na necemu sto je neko vec napisao. Ako je neko radio slicne stvari znacilo bi mi par saveta u smislu:

-kako ispitati veze izmedju razlicitih klasa i uticaj izmene jedne na korektnost druge? Da li se to u c++ koji koristi class template svodi na "class <name>::public <name> ili je kompleksnije to utvrditi i kako?
-ako se menja tj. dopunjuje postojeca klasa (u mom slucaju sadrzaj paketa koji je predstavljen klasom), da li kreirati novu, izvedenu klasu (nasledjivanje) ili ...?
-u kom okruzenju pisati, odnosno neki savet oko IDE-a ...?

Ono sto sam do sada uradio je da sam ceo ovaj ruting softver kompajlirao u Linux-u (FC8) i poceo da citam knjige o c++. Hvala!
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.ptt.yu.



+395 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 08:45 - pre 184 meseci
Citat:

-kako ispitati veze izmedju razlicitih klasa i uticaj izmene jedne na korektnost druge? Da li se to u c++ koji koristi class template svodi na "class <name>::public <name> ili je kompleksnije to utvrditi i kako?

Imas li neku dokumentaciju (UML i slicno) ili makar dobro komentarisan source code ?
Ako nemas onda ces morati dobro da zagnjuris u sors da bi otkrio,
sto je uglavnom slucaj kod open-source projekata .


Viva lollapalooza
 
Odgovor na temu

Alexe
Beograd

Član broj: 172465
Poruke: 37
*.telenor.co.yu.



Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 11:50 - pre 184 meseci
Postoji class index koji nabraja sve klase koje se koriste za konstrukciju tog deamon-a i kdoc koji daje neki opis klase (mada ne bas detaljno). Pod pretpostavkom da shvatim kako je implementirana klasa, nisam bas siguran kako da zapocnem sa izmenom.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 12:39 - pre 184 meseci
Ne poznajes C++, ne poznajes timski rad, verovatno ne poznajes ni sisteme za kontrolu verzija. Da li poznajes strukture podataka? Algoritme rutiranja? BPG protokol? Ne obeshrabrujem te, iznosim svoje misljenje - da li si siguran da grizes ono sto mozes da progutas?
 
Odgovor na temu

Alexe
Beograd

Član broj: 172465
Poruke: 37
*.telenor.co.yu.



Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 13:15 - pre 184 meseci
Pa ovako: Sto se tice c++ ne slazem se sa tobom da ga "ne poznajem" uopste. Pre bih rekao da nisam iskusan. Sto se timskog rada tice, svrha OOP i c++ jeste nezavisni rad vise programera i moze se svesti na moj prvi odgovor. Sto se tice sistema za kontrolu verzija ovaj projekat (kao i svi ostali) ne bi ni mogao da se razvija bez CVS-a pa sam tako citao i shvation nesto o tome. Strukture podataka recimo da ne poznajem. Sto se tice algoritama rutiranja, imam CCNP i radim dovoljno dugo u networkingu da znam sta je BGP... Nisam siguran da mogu da "progutam" odjednom i lako ono sto sam zagrizao, ali uz upornost i pomoc mogu.
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.ptt.yu.



+395 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 13:36 - pre 184 meseci
Citat:
Alexe: Pa ovako: Sto se tice c++ ne slazem se sa tobom da ga "ne poznajem" uopste. Pre bih rekao da nisam iskusan. Sto se timskog rada tice, svrha OOP i c++ jeste nezavisni rad vise programera i moze se svesti na moj prvi odgovor. Sto se tice sistema za kontrolu verzija ovaj projekat (kao i svi ostali) ne bi ni mogao da se razvija bez CVS-a pa sam tako citao i shvation nesto o tome. Strukture podataka recimo da ne poznajem. Sto se tice algoritama rutiranja, imam CCNP i radim dovoljno dugo u networkingu da znam sta je BGP... Nisam siguran da mogu da "progutam" odjednom i lako ono sto sam zagrizao, ali uz upornost i pomoc mogu.


Onda se baci na proucavanje objektnog modela tog programa ili dela programa koje treba da promenis
(klase,strukture , uzajamne veze , nasledjivanje,templejti koji se koriste).
Posle toga prouci i konkretan zadatak ii napravi plan kako da izmenis postojece
uz sve moguce procene rizika , kasnije nadogradnje, kao i lakseg odrzavanja
i citljivosti koda za nekog drugog koji ce posle tebe nastaviti da radi na tome .
CVS pod obavezno ako na tom programu radi vise ljudi .
Tek onda pocni da programiras ...
Srecno !!!


Viva lollapalooza
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
212.200.68.*



+10255 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 14:23 - pre 184 meseci
Citat:
Alexe: ... Sto se timskog rada tice, svrha OOP i c++ jeste nezavisni rad vise programera i moze se svesti na moj prvi odgovor.

Mnogo sam radio u softverskim firmama i veoma dobro poznajem timski rad. Zato, slobodno mogu da kažem (i tvrdim) da od "nezavisnog rada više programera" nema ništa ! Nula. Zero. Zapravo, ima: špageti projekat, boranija proizvod. Nikakva funkcionalnost.

Zajednička kobila u blatu završi.

Ukoliko taj projekat ima nekog rukovodioca, ili zvanično, ili bar po autoritetu, obrati se njemu. Ako nema - batali ćorava posla.

Zapravo, kad malo bolje razmislim, pitam se ko je i kako dozvolio da neko kao ti (mslim - principijelno, ne lično) bilo šta menja po projektu ? Pod čijom kontrolom ? Šta ako nešto zabrljaš, namerno ili slučajno ?!

Zamisli sebe posle pet godina rada na nekom velikom projektu, i onda se, kao, projektu priključi neki neiskusni novajlija i menja neke protokole ?!
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

Alexe
Beograd

Član broj: 172465
Poruke: 37
*.telenor.co.yu.



Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 14:43 - pre 184 meseci
Pa da se ne bi desilo "da neko kao ja zabrlja projekat" postoji CVS! I da hocu, mogu da zabrljam nesto na svojoj masini ali ne i na masini nekog drugog ko ce download-ovati kasnije taj softver i koristiti ga. CVS repository jednostavno nece kompajlirati moju boraniju, zar ne?! To je i smisao open source projekata. Projekat ima rukovodioce na Berkeley Univerzitetu u SAD. Moja tema je trebala da ima drugi smisao od onoga sto ovde pokusavam..., verovatno je lose formulisan naslov.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
212.200.68.*



+10255 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 14:53 - pre 184 meseci
Citat:
Alexe: Pa da se ne bi desilo "da neko kao ja zabrlja projekat" postoji CVS!

(Napomena: Sve šta pišem, pišem iz dugogodišnjeg iskustva. A tebe kao prisutnog - izuzimam, i pišem "o nekom neiskusnom" koji će da uleti u projekat.)

Ne, CVS (i bilo koji drugi source code contol system) služi da se prate verzije i podverzije projekta, a ne da se peglaju brljotine. Na svu sreću mnogih razvojnih timova pomenuti alati su spasili stvar.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 15:02 - pre 184 meseci
Prosto i jednostavno, dok ne prođe kroz „iskusno oko“ njegov kod neće biti ubačen u zvanično izdanje. Može stajati u formi zakrpe negde na vebu ili čak i biti u nekoj grani na sistemu za upravljanje verzijama, sve drugo je naravno veoma neodgovorno i loša praksa.

Naravno da svaki aktivan projekat koji se razvija metodologijom otvorenog koda ima i svoje programere-početnike. Razvijeniji i veći projekti imaju i neke mentorske programe kako bi početnici lakše uhvatili korak. (npr. u Gnomu postoji gnome-love inicijativa, u OpenOffice.orgu je tu Education ClassRoom projekat itd.)
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 15:32 - pre 184 meseci
Citat:
Alexe: Sto se tice algoritama rutiranja, imam CCNP i radim dovoljno dugo u networkingu da znam sta je BGP... Nisam siguran da mogu da "progutam" odjednom i lako ono sto sam zagrizao, ali uz upornost i pomoc mogu.

Obzirom da pricamo o programiranju, moje pitanje se odnosi na to da li ove stvari poznajes sa programerske strane i to u opstem slucaju, a ne vezano za ovaj konkretan projekat. Npr, da li znas kojom strukturom podataka bi predstavio BPG paket (kako na logickom nivou programa, tako i fizickom nivou, kao strukturu podataka koja putuje kroz mrezu). Primera radi, BPG paket NIJE klasa. Klasa sadrzi jos puno podataka osim onih koje po protokolu treba da pustis kroz mrezu. Klasa bi se koristila da se implementiraju operacija nad strukturom podataka koja predstavlja paket (primera radi, mozes pogledati u izvornom kodu jezgra kako je implementiran TCP paket, iako nije C++). Slicno je i za algoritme rutiranja, ne mislim da li ih znas u smislu teorije racunarskih mreza (sto nesumnjivo znas, jer se ne bi ni petljao sa ovakvim projektom, a imas i te sertifikate), nego imas li ideju kako bi ih implementirao (kojom strukturom podataka bi predstavio racunare, kako bi te strukture povezao (u graf, u listu...), kakav graf (kompletan, nekompletan, usmeren, neusmeren, tezinski...), kojim algoritmom bi obilazio graf i slicno. Znaci, mislio sam na poznavanja prakticnih implementacija. U svakom slucaju eksperimentisi, probaj, ako zapnes, pitaj...
 
Odgovor na temu

Alexe
Beograd

Član broj: 172465
Poruke: 37
78.30.173.*



Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 18:08 - pre 184 meseci
Mislim da ne moram da znam sve ovo sto si naveo. Ajde da malo konkretizujem problem kroz jedan primer: BGP ima cetiri vrste paketa: open, update, notification i keepalive. Postoji osnovna klasa BgpPacket koja ima svoje podatke i metode klase i izvedene klase te osnovne klase (za specificni paket) koje nasledjuju sve podatke i metode osnovne klase (npr. svaki paket bilo kojeg od ova cetiri tipa ima header sa odredjenim poljima) ali i svoje specificne podatke i metode. Dakle radi se o nasledjivanju. Pretpostavimo da open packet (koji je opisan klasom OpenPacket izvedenom iz osnovne klase) sadrzi neka polja (podatke clanove) koji su obliku (type, lenght, value) nad kojima je potrebno izvrsiti neke provere pri prijemu paketa (koje su implementirane metodama klase, tj. funkcijama clanicama). Kako se, generalno posmatrajuci ovakvu vrstu odnosa, mogu u postojeci open packet dodati jos neka polja opisana (type, lenght, value) trojkom i vrsiti provera na prijemu ovih novih polja metodama klase? Nasledjivanje ove nasledjene klase ili... ? Dakle, smatram da ne moram da poznajem sve ostale klase i njihovu implementaciju osim onih koje su u direktnoj vezi sa mojom klasom. Koje su to klase koje su u direktnoj vezi sa mojom klasom, pretpostavljam da mogu da saznam pomocu nekog code browser-a (kao sto je npr. cscope za C)?! Hvala.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?27.02.2009. u 20:24 - pre 184 meseci
Citat:
Alexe: Kako se, generalno posmatrajuci ovakvu vrstu odnosa, mogu u postojeci open packet dodati jos neka polja opisana (type, lenght, value) trojkom i vrsiti provera na prijemu ovih novih polja metodama klase? Nasledjivanje ove nasledjene klase ili... ?


Ja ti ne mogu dati odgovor na pitanje bez koda, jer ne poznajem protokol. Da ne pricamo napamet, najbolje je da posaljes kod (klase paketa i sve klase iz kojih je izvedena) i opis izmene koja ti je potrebna. Ili daj link.
 
Odgovor na temu

Alexe
Beograd

Član broj: 172465
Poruke: 37
78.30.173.*



Profil

icon Re: Kako se pridruziti velikom projektu pisanom u c++?28.02.2009. u 00:01 - pre 184 meseci
Citat:
obucina: Ja ti ne mogu dati odgovor na pitanje bez koda, jer ne poznajem protokol. Da ne pricamo napamet, najbolje je da posaljes kod (klase paketa i sve klase iz kojih je izvedena) i opis izmene koja ti je potrebna. Ili daj link.


Stvarno ne ocekujem da neko napise kod umesto mene nego samo savet kako se generalno pristupa resavanju ovih problema u c++. Zato sam i dao primer (koji je samo primer) kako bi malo konkretizovao temu. Evo linka koji opisuje klase BGP-a:

http://www.xorp.org/releases/current/docs/kdoc/html/bgp/index.html

Ovde se moze videti kako je projekat (odnosno njegov deo) implementiran. Ono sto ja treba ovde da uradim je malo kompleksnije od onoga sto sam naveo kao primer ali kada se shvati princip na jednostavnijem primeru mislim da ce ici lakse. Zato i ne ocekujem da neko cita kod umesto mene.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kako se pridruziti velikom projektu pisanom u c++?

[ Pregleda: 2305 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.