Archive for the ‘Thoughts’ Category.

Struktura katalogów w projekcie

Czasami istnieje potrzeba pisania jednego projektu w różnych środowiskach programistycznych, tym bardziej jeśli korzystamy z systemu kontroli wersji (np. SVN,  GIT) i chcemy skompilować projekt z założenia multiplatformowy na innym systemie operacyjnym. W takim przypadku fajnie by było, aby projekt miał strukturę katalogów niezależną od IDE, ale jak powinna ona wyglądać? Według mnie tak:

  • include
  • src
  • workdir
  • projects
  • libs

Katalog include powinien zawierać tylko pliki nagłówkowe, które będą dołączane w innych projektach. Tak naprawdę jest on tutaj tylko ze względu na projekt biblioteki (np. lib, dll, itp.), więc w przypadku kompilacji do pliku wykonywalnego, można ten katalog pominąć, wtedy wszystkie pliki nagłówkowe powinny znaleźć się w katalogu src. Katalog src jest przeznaczony tylko dla plików źródłowych bieżącego projektu, które mogą być uporządkowane w różnych podkatalogach. W workdir powinna się znaleźć cała struktura katalogów docelowego programu, czyli wszystkie pliki i katalogi, które będą dostarczane ze skompilowanym plikiem wykonywalnym. Katalog libs służy do przechowywania wszystkich dołączanych bibliotek używanych w aplikacji. Dla każdej z nich powinien znaleźć się odpowiedni katalog a w nim jeszcze dwa – include i lib. Ostatnim katalogiem jest projects, który jest przeznaczony do przechowywania plików projektów dla każdego IDE (oczywiście każdy w osobnym katalogu).

Taka struktura jest przejrzysta i niezależna od stosowanego IDE. Zresztą nie jest to mój pomysł, ponieważ jest on od dawna stosowany w środowiskach linuksowych, ale w nieco innej postaci. Kluczowe jest po prostu trzymanie plików źródłowych w jednym katalogu niezależnym od stosowanego środowiska.

Jak to pomysły przychodzą

Postanowiłem dziś wymyślić sposób zapisywania questów i ich opisów do mojego silnika RPG. Myślałem nad tym dość znaczną ilość czasu bo kilka godzin, w końcu postanowiłem się poddać i zacząłem grę w Starcraft’a (UMS’y :)). Jak to się później okazało czas ten nie poszedł na marne bo pomysł, którego oczekiwałem przedtem pojawił się znikąd w czasie gry. Całego pomysłu wyszła kartka A4 (żeby nie zapomnieć, a o to u mnie nie trudno). Dlatego tak się zastanawiam i dochodzę do wniosku, że w życiu kodera najlepsze jest to, że (cytat Wacha z irca): najpierw walisz głową w mur przez kilka godzin, a potem ni stąd ni zowąd ten mur sam sie burzy.