Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

P_aul

GnC Programowanie

Polecane posty

... Nadzieję na posiadanie życia poza kompem ofkoz :D

Temat do rozmów o sprawach, których zwykli śmiertelnicy nie rozumieją, czyli repozytoriach, bibliotekach, obiektach, klasach, zmiennych typu int... Oczywiście tylko dotyczących projektu. Można też wrzucać fragmenty kodu i pomagać mniej doświadczonym kolegom w razie kłopotów ;)

Link do komentarza
Udostępnij na innych stronach

No dobra. Się zgłosiłem do stworzenia repo oraz napisania tutoriala, więc kilka rzeczy do przedyskutowania.

1. Jaki system wersji wybieramy. Osobiście jestem za Mercurialem (Hg). Moim zdaniem jest dużo wygodniejszy od svna i trudniej w nim coś zepsuć. Łatwiej również merge'uje się kod. O podstawowych różnicach między svn, a Hg można przeczytać tu. Artykuł jest momentami napisany "dla Amerykanów", więc niektórzy mogą się dziwić, że można mieć dany problem, ale z doświadczenia wiem, że ludzie bywają zdolni.

2. Na jakim serwisie to hostujemy? Assembla? Google Code? SourceForge.net? CodePlex?

3. Jak nazwać projekt?

Link do komentarza
Udostępnij na innych stronach

Przepraszam za post pod postem, ale nikt w międzyczasie nic nie napisał, więc to nie moja wina. ;p

Kolejne pytanie natury zasadniczej - na jakiej licencji robimy grę? Przypuszczam, że któraś z licencji GNU, coby nie było problemów z bibliotekami i takimi tam, ale warto by było określić którą wersję dokładniej chcemy zastosować. Osobiście byłbym za GNU GPL v2.0.

Link do komentarza
Udostępnij na innych stronach

Mi sie assembla podoba, przy czym korzystałem w robocie z wersji płatnej, nie wiem co jest obcinane na potrzeby darmowej opcji (w ogóle jest taka?). Google Code IMO niefajne, nic tam prócz wersjonowania kodu nie oferują (a i to ostatnie tylko pod svn z tego co pamiętam). Ja bym był za serwerem, który wspiera od razu zgłaszanie błędów, wiki itp pierdoły z zarządzaniem projektami (ogólnie jestem fanem trac'a w tych kwestiach, swietnie sie sprawdza przy współpracy).

Co do repo to z Mercuriala nie korzystałem, styczność miałem z svn i Gitem (w sumie byłbym za tym ostatnim), ale magii wielkiej w tym zagadnieniu nie ma więc przeciwnikiem żadnej opcji nie jestem (przynajniej z tych które sie tu przewijają póki co).

O licencjach mam dość "pobieżną" wiedze, w szczegółach nie wiem czym się różnią, a trochę tego tałatajstwa jest. W każdym razie czasu za bardzo w najbliższych dniach za bardzo nie mam, żeby o tym poczytać, więc w razie "W" w tej kwestii byłbym skłonny zaufać Sevardowi :)

EDIT:

1111 post, jak słitaśnie :D

Link do komentarza
Udostępnij na innych stronach

Mi sie assembla podoba, przy czym korzystałem w robocie z wersji płatnej, nie wiem co jest obcinane na potrzeby darmowej opcji (w ogóle jest taka?). Google Code IMO niefajne, nic tam prócz wersjonowania kodu nie oferują (a i to ostatnie tylko pod svn z tego co pamiętam). Ja bym był za serwerem, który wspiera od razu zgłaszanie błędów, wiki itp pierdoły z zarządzaniem projektami (ogólnie jestem fanem trac'a w tych kwestiach, swietnie sie sprawdza przy współpracy).

Assembla ma dwie wersje darmowe. Tu masz porównanie poszczególnych wersji. Jeśli zależy nam na dodatkowych narzędziach, to można jeszcze rozważyć SF. I w sumie do tych dwóch serwisów można ograniczyć wybór, bo raczej nic lepszego nie znajdziemy.

Co do repo to z Mercuriala nie korzystałem, styczność miałem z svn i Gitem (w sumie byłbym za tym ostatnim), ale magii wielkiej w tym zagadnieniu nie ma więc przeciwnikiem żadnej opcji nie jestem (przynajniej z tych które sie tu przewijają póki co).

Git ma jedną zasadniczą wadę - jest dosyć skomplikowany i ma beznadziejną dokumentację. Można za jego pomocą zrobić cuda, ale wymaga to pewnej wprawy i obycia, a jednak jest tu parę osób, które mają z tego korzystać, a nie są biegłe w używaniu wiersza poleceń (nadal najlepsze narzędzie do obsługi repozytoriów Gita). Mercurial z kolei jest pod pewnymi względami prostszy i ma dużo lepszą dokumentację. Dobrze działa na różnych systemach i nie wymaga aż tak dużo od strony administracyjnej. Jednocześnie jest systemem rozproszonym podobnie jak Git, choć pewne założenia są inne. Wadą jest to, że ma jednak mniejsze możliwości niż Git, ale nie sądzę, byśmy potrzebowali tych rzeczy, które oferuje Git, a nie oferuje ich Mercurial. Do przeczytania dla zainteresowanych porównaniem tych systemów kontroli wersji:

http://rg03.wordpress.com/2009/04/07/mercurial-vs-git/

http://importantshock.wordpress.com/2008/0...t-vs-mercurial/

Link do komentarza
Udostępnij na innych stronach

No jeśli ktoś nie miał styczności z gitem wcześniej, to pierwsze spotkania bywają faktycznie dość męczące o ile nie irytujące. W każdym razie mercurial wygląda OK. Z tego linku do assembli IMO ta opcja Free Public wygląda całkiem ciekawie i za tym bym głosował :)

Link do komentarza
Udostępnij na innych stronach

Przejrzałem licencje i SFML jest udostępniany na ich własnych zasadach - do dowolnego użytku komercyjnego i niekomercyjnego i open-source lub nie. Czyli licencja luźniejsza niż GNU GPL ;) Z drugiej strony od początku zakładałem, że projekt będzie open-source i GNU GPL wydaje się rozsądnym wyborem.

Link do komentarza
Udostępnij na innych stronach

Dobra, utworzyłem projekt na serwisie Assembla. Na razie dodałem Hg+Trac oraz Wiki. Potrzebujemy czegoś jeszcze?

Później opiszę dokładniej co i jak. Uprawnienia do edycji plików ustawiłem na ograniczone dla uczestników projektu, coby nikt nam jakiegoś niespodziewanego zonka nie zrobił. Uprawnienia do odpowiednich osób ustali się później. Dalsze informacje pojawią się wkrótce.

Link do komentarza
Udostępnij na innych stronach

No to myślę, że jak na razie w zupełności wystarczy (nawet bym sie zastanowił czy nie wywalić wiki bo juz jest w ramach traca - o ile zdecydujemy sie na korzystanie z tego narzędzia, a myslę, że choćby bugtracker na pewno nam sie z tego przyda). W assembli jest też ten plus. że dodatkowe narzędzia sie dodaje w sposób wręcz banalny, wiec problemu żadnego być w razie czego nie powinno :)

Jakby co to sobie stworzyłem na potrzeby tego projektu konto o ID lordhrabula, więc kiedys przy okazji możesz mnie Sevard tam dorzucić do teamu.

Nie wiem jak reszta sie zapatruje na taki pomysl, ale ja z chęcią bym większośc materiałów trzymał właśnie na serwerze, bo w sumie dla reszty forumowiczów znaczenie będzie to miało znikome (np. takie guide'y do wersjonowania), a nawet na wiki mozna z tym pracować w większym porządku niz przerzucając sie miedzy postami na forum.

Link do komentarza
Udostępnij na innych stronach

Weźcie się do roboty :D, ja tu Symfonię kartkuję, na razie klasy ogarniam i czekam na jakiegoś qest-a :wink:

Puki co nawet nie wiem jak się zabrać do aktualnych zadań więc siedzę cicho :D

PS.

if(FirstPost(InformacjeOgólne !=null)) {acquire.programmer()};

else {return"Co jest grane? Jaki język? Jakie biblioteki?"};

bez średnika :icon_wink:

Możliwe jest takie coś?

Ale zaszpanowałem wiedzą

:D

Link do komentarza
Udostępnij na innych stronach

Można dyskutować nad tym co właściwie robi metoda FirstPost :P Zwraca wartość logiczną reprezentującą co? Bo wychodzi na to, że będzie true zawsze gdy argument też będzie true. Gdyby InformacjeOgolne bylo polem obiektu FitrstPost..., no ale to juz trzeba będzie wystrugać diagram UML :P

Nooo dlatego ja bym raczej napisał if(firtsPost.informacjeOgolne!=null) itd.

Czyli mamy obiekt firstPost, w nim pole informacjeOgolne będące instancją jakiegoś obiektu. Pytamy czy został on już zainicjowany ;) Proste :D- P_

Link do komentarza
Udostępnij na innych stronach

W sumie powyższe przypomniało mi o zadaniu, więc może jedna propozycja na start, odnośnie używania wielkich i małych liter:

ClassName

fieldName lub methodName()

variable_name

Poza tym nie używamy jako nazw zmiennych pojedynczych liter czy nic nie mówiących skrótów. Jeśli skrót jest oczywisty (temp od temporary) to może być. Ponadto dopuszczalne jest używanie i jako iteratora pod warunkiem, że będzie miało zasięg lokalny - for(int i = ... ). Nazwy pól i metod, a także w miarę możliwości zmiennych powinny być jak najbardziej opisowe. A, i używajmy angielskiego, kod po polsku dziwnie wygląda :P

Link do komentarza
Udostępnij na innych stronach

Skoro tak, to dorzucam od siebie takie propozycje:

-stale wielkimi literami

-zamiast TAB 3 albo 4 spacje(mam na myśli wcięcia)

-dwie linijki między definicjami klas interfejsow, po jednej miedzy metodami

Prócz tego pierdoły typu nadmiarowe nawiasy przy bardziej zlozonych warunkach logicznych, unikanie liczb magicznych (każdy zostawia to do zrobienia na potem, w rezultacie szuka się pół dnia błędu, albo myśli co te 47 oznacza, bo komuś sie nie chcialo stałej zadeklarować:P)

Było tego jeszcze od groma, ale nie będziemy sie chyba wdawać w te totalne szczegóły, bo pewnych nawyków i tak nie zwalczy, tylko na potrzeby tego projektu (poza tym IDE umozliwiają automatyczne formatowanie na poziomie spacji w instrukacjach itp). Jak se przypomne jeszcze coś sensownego to dorzuce...

Link do komentarza
Udostępnij na innych stronach

-zamiast TAB 3 albo 4 spacje(mam na myśli wcięcia)

Tylko dlaczego, jeśli lwia część IDE robi wcięcia właśnie tabulatorami? Chcesz zmuszać każdego piszącego do całej masy poprawek (całkowicie mimo wszystko zbędnych) albo pisania w notatniku?

Link do komentarza
Udostępnij na innych stronach

A ja zawsze myślałem, że to programista robi wcięcia, a nie IDE :P

Jeśli ktoś napisze, z normalnymi tabulatorami (a chyba każde poważne IDE umożliwia zamianę TABa na spacje) to myślę, że świat nie spłonie, w końcu C++, to nie Python i wszystko dalej będzie działać.

Chodzi mi o to, że spacje są interpretowane zawsze tak samo przez każdy edytor. Z tabulatormi różnie bywa i jeśli otworzy Ci się kod z wcięciami na szerokość 1/3 strony to wtedy dopiero jest co przerabiać. W każdym razie upierać sie nie będę przesadnie, to szczegół, pewnie nawet malo kto by zauważył, ze zamiast atbsów robie spacje :P

Link do komentarza
Udostępnij na innych stronach

To może ustalcie też jakieś jedno IDE?

Możliwe jest takie coś?

No wiesz? Oczywiście! To jest normalny zwrot tekstu zawartego w cudzysłowie, przypomnij sobie "Hello world". : )

Nooo dlatego ja bym raczej napisał if(firtsPost.informacjeOgolne!=null) itd.

Czyli mamy obiekt firstPost, w nim pole informacjeOgolne będące instancją jakiegoś obiektu. Pytamy czy został on już zainicjowany Proste - P_

O! Dokładnie o coś takiego mi chodziło, tylko już kompletnie zapomniałem jak się robiło obiekty. : )

Czyli będzie tak:

if(FirstPost.InformacjeOgólne !=null) {acquire.programmer();}

else {return"Co jest grane? Jaki język? Jakie biblioteki?";}

Ale widzę, że i tak ten kod nic nie dał... : / P_aul - dorzuć do pierwszego posta w tym temacie informacje ogólne, rzeczy takie jak używany język, dodatkowe biblioteki, IDE (jeśli ustalicie jedno) - wszystko, czego potrzeba programiście do tego, by mógł wejść do dyskusji. Znam przypadek co najmniej jednego, który jeszcze się tu ani razu nie odezwał, bo mu się nie chciało szukać informacji o języku w starym wątku głównym.

EDIT - poprawiłem średniki. : )

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...