There is much more to C++        FI MUNI, Brno 2011        Mgr. Juraj Michálek blog: http://georgik.sinusgear.com twitter:...
Niečo o mne
ObsahVyvíjame  STL, Allegro, SDL, ClanLib, LUA, Mesa3D...C a jemu podobné  robot kit, ArundinoLadíme  Eclipse a debuggerKo...
Program programátora1. programátor dostane skvelý nápad2. naprogramuje dokonalý program3. všetko si naprogramuje sám4. zis...
Na vlastných nohách5. pokúsi sa program opraviť6. zistí, že polovicu funkcií naprogramoval zle7. preprogramuje zlé funkcie...
Vývoj
STL I.základ pre C++práca s reťazcami  #include <string>operácie nad zoznamami  #include <list>  #include <deque>
STL II.operácie s asociatívnymi poliami  #include <map>špeciálne algoritmy (triedenie, výpis)  #include <algorithm>zhrnuti...
OtázkaVystačíme so štandardnými funkciami STL?
Odpoveď
Interaktívne aplikácie
Interaktívne aplikácierýchla reagovať na užívateľamusia sa prispôsobovať jeho potrebámdobrým príkladom je počítačová hrauk...
Knižnice           Allegro  Simple Direct Media LayerClanlib Simple Development Kit
AllegroAllegro Low Level Game Routines
Allegro - aplikáciaspracovanie klávesnice, myši, joystickuspracovanie obrazu, zvukujednoduché GUIovládanie časovačovpoužív...
Allegro 5podpora pre bežné OSpodpora pre iPhoneudalostihttp://alleg.sourceforge.net/a5docs/5.0.5/
Programovanie I.inicializácia Allegra  al_init();
Inicializácia grafikyinicializácia grafického prostredia  al_create_display(int w, int h)
ALLEGRO_BITMAPštruktúra na uloženie obrazuvytvorenie obrazovej pamäte  ALLEGRO_BITMAP *bmp = create_bitmap(x,y);
Grafikavykreslenie bodu do pamäte  al_putpixel(x, y, color)načítanie obrazu zo súboru  al_load_bitmap(filename);kopírovani...
GrafikaUvoľnenie obrazovej pamäte  al_destroy_bitmap(bmp);
Klávesnicazavedenie ovládača klávesnice  al_install_keyboard()odstránenie ovládača klávesnice  al_uninstall_keyboard()načí...
Myšinštalácia a odstránenie ovládača  al_install_mouse()  al_get_mouse_state(&msestate);  al_uninstall_mouse()
Ďalšie vlastnostiprehrávanie samplov a MIDIukladanie súborov do datafilejednoduchá 3D grafika - polygonyjednoduché GUI
Knižnice nad AllegromAllegro má pomerne veľa funkciiAllegttf - práca s True Type fontamiAllegGL - práca GL grafikouDUMB - ...
KompiláciaKonfiguračný skript  allegro-configLinux, Unix, BeOS, QNX, MacOS, Windows:  g++ foo.cc -o foo  `allegro-config -...
CMake – Cross Platform Make  generuje build súbory pre IDE  http://www.cmake.org
Allegro – CMake – MSVC 2010
Allegro – CMake - KDevelop4
Zdrojevývoj knižnice  http://alleg.sourceforge.netWiki  http://wiki.allegro.cc/
Allegro.ccGame development community networkMattew J. Leverton  http://www.allegro.cc
KnižnicaSimple Direct Media Layer
Programovanieinicializácia systému  SDL_init(flags)ukončenie systému  SDL_quit()
Grafika I.inicializácia grafického prostredia  SDL_SetVideoMode(width, height,  video_bpp, videoflags)obrazové dáta v pamä...
Grafika II.štruktúra na uloženie obrazu  SDL_Surfacevytvorenie obrazovej pamäte  surface =  SDL_CreateRGBSurface(SDL_SWSUR...
Grafika III.načítanie obrazu zo súboru  SDL_Surface *SDL_LoadBMP(const   char  *file)kopírovanie medzi pamäťami  SDL_BlitS...
Klávesnicastlačenie klávesy vyvolá udalosť  SDL_PollEvent(SDL_Event *event)test na stlačenie konkrétne klávesy  event.key....
Časovaččasovač implementovaný ako počítadlo  static int counter;inštalácia funkcie volenej v pravidelnýchintervaloch  SDL_...
Myšzistenie stavu myši  SDL_GetMouseState(*x, *y);
Textjednoduchý výpis textu nie je
Ďalšie vlastnostipriama podpora GL knižníczabudovaný mechanizmus pre vláknaspolupráca s jazykmi  Ada, Eiffel, Java, Lua, P...
KnižniceSDL je samo o sebe pomerne ťažkopoužiteľnéSDL_mixer - multikanálový mixérSDL_image - spracovanie obrazovýchformáto...
Zdrojevývoj  http://www.libsdl.orgportál s hrami  http://www.lgames.org
Kompiláciakonfiguračný skript  sdl-configLinux, Windows, BeOS, Mac OS  g++ foo.cc -o foo  `sdl-config --libs`
KnižnicaClanLib game Simple Development Kithttp://www.clanlib.org
LUAsilný skriptovací nástrojvolanie skriptov z programuvolanie programu zo skriptovjednoduchá syntax jazyka  http://www.lu...
KnižnicaMesa       http://mesa3d.sourceforge.net
Dino
Games for Linuxpodpora hier pre Linuxport a code, save the gamearchív 208 hier, 35 knižníc  http://games.linux.sk
GUIGraphic User Interface
Vhodné knižnice      QT     FLTK      GTK
QT       Nokia:http://qt.nokia.com
QTprodukt firmy Trolltech, neskôr Nokialicencie: open source aj komrčnéknižnica vznikla v roku 1996podporuje C++ a Javu
PlatformyMS/WindowsUnix/X11 - Linux, Sun Solaris, HP-UX,Compaq Tru64 UNIX, IBM AIX, IRIX, Mac OSXEmbedded - Linux platform...
QT Creator IDEnástroj na tvorbu GUIrozvrhnutú plochu ukladá do XML súboruz XML definície sa generuje kód programu
Kompiláciauloženie projektuvytvorenie Makefile z projektu  qmake -o Makefile test.prokompilácia  make
Linguistnástroj na preklad aplikáciiumožňuje oddeliť kód od textovprekladateľ a programátor pracujúsamostatne
Amélia
KDE
Google Earth
FLTKhttp://www.fltk.org
Knižnica FLTKThe Fast Light Tool KitAutor: Bill Spitzakvenoval sa vývoju rozhraní pre SunMicrosystemsveľa myšlienok zjedno...
PlatformyUnix, LinuxMicrosoft WindowsMacOSs podporou OpenGL a GLUT
FLUIDFast Light User-Interface Designerjednoduchý designer na tvorbu GUI
Knižnicahttp://www.gtk.org
GTKGIMP ToolKitPeter Mattis, Spencer Kimball, JoshMacDonaldGNU Network Object Model Environment(GNOME)  C++, Guile, Perl, ...
Glade 3http://glade.gnome.org   design GUI - www.srobick.com
Android – Native Development Kithttp://developer.android.com/sdk/ndk/Pozor!  App nemusí byť optimálnejšia než napísaná v J...
NDKstiahnuť SDK a NDKexport PATH=$PATH:/cesta/sdk/tools:/ceta/ndkcd /cesta/ndk/samples/hello-jniandroid update project -p ...
Adobe Alchemyzaujímavý experimentC/C++ kód skompilovaný pre FlashPlayer  AVM2prenositeľnosť  príklad: Doom  http://labs.ad...
Interactive C - RobotHandyboardMotorola 68AX11Odvodené od Chttp://www.kipr.orghttp://www.boatball.org
Arundinohttp://www.arduino.cc/playground/Interfacing/CPPWindows
ACEThe ADAPTIVE Communication Environment  http://www.cs.wustl.edu/~schmidt/ACE.htmlOpen source C++ framework  reactor, pr...
Java Native Interface - JNIpublic class HelloWorld { private native void sayHello();    public static void main(String[] a...
NodeJSV8 JavaScript engineasynchrónny prístupudalostihttp://www.nodejs.org
výkonné multiplatformové IDE  http://www.eclipse.orgC/C++ - CDT plugin  http://www.eclipse.org/cdt
Aplikácia to neprežila    Post-mortem analýzaZostal len jej obraz: coredump
Rýchla analýza coredumpu
Módy debuggera  Spustenie lokálnej aplikácie. Pripojenie k lokálnemu procesu.Pripojenie k vzdialenému procesu.          Po...
Valgrinddebugging a profilingmemcheck  memory leakyhelgrind  race condition, thread profiling
Stracestrace ls -l     execve("/bin/ls", ["ls"], [/* 29 vars */]) = 0     brk(0)                          = 0x95d0000     ...
Mutextracemutextrace ./mutex-tester-app param1 param2  lock #1, free -> thread 1  init #2  lock #2, free -> thread 1  unlo...
PortabilitaLinux – Windows – Mac – BSDprenos C/C++ nie je vždy jednoduchýUnix/Windows Porting Dictionary  http://suacommun...
Kontinuálna integrácia   Od chaosu k štruktúre
http://www.boost.org “...one of the most highly regarded and expertly designed C++ library projects in the world.”    Herb...
Boost
Boost Test LibraryTest everything that could possibly breakjednoduchá tvorba tescasovTestSuite – TestCasetest je spustiteľ...
TestCaseusing namespace boost::unit_test_framework;/** * Test basic marshaller functionality */void testServerQuery(){    ...
Jamnáhrada Makefilerozšíriteľné fukncieautomatická detekcia header filesprenositeľné: Unix, Windows, VMS, Macmalý CPU over...
jam + TestCaseJamfile (Jamroot)  import testing ;  run tests/testServerQuery.cpp server ;Shell  $ bjam  ...patience...  .....
Maven pre C++web: http://maven.apache.org  mvn [parametre|ciele]súbor s definíciou projekt  pom.xmlplugin pre C++  native-...
Obsah pom.xmlArtifactsDependenciesPluginsRepositories
Kontinuálna integráciarýchla kontrola po commiteJenkins CI – príklad:  http://ci.sinusgear.com
NástrojeProfesionál vie používať správne nástroje            na správny účel.
Subversion - SVNverzovací nástrojjednoduchý na používanie  http://subversion.tigris.orgrepository, check-out, commit, merg...
SVN klient pre Windows  http://tortoisesvn.tigris.org
GIToproti SVN možnosť lokálných commitovSocial Coding  http://www.github.com
Source Control & Project Management  http://trac.edgewall.org  http://trac-hacks.org/
GNU a WindowsMinimalist GNU For Windows  http://www.mingw.orgCygwin  http://www.cygwin.com  http://cygwinports.dotsrc.org/
Doxygengenerovanie dokumentácie pre  C, C++, Java, Python  PHP, C#, Dpoužitie  doxygen -g project.config  doxygen project....
C#, .NET a Monoopen source implementácia .NETRozhranie napr. GTK#  http://www.mono-project.com  Silverlight pre Linux - Mo...
Pythonsilný objektovo orientovaný jazykplatformovo nezávislýintegrovateľný s C a C++  http://www.python.org  http://www.py...
Twistedudalosťami riadený sieťový frameworkpodpora TCP, UDP, SSL/TLS, multicastUnix socketsveľké množstvo protokolov  HTTP...
PyGamekombinácia sily Pythonua rýchlosti SDL (kód v C)  http://www.pygame.org
ProjektGitHub  http://www.github.comGoogle Code  http://code.google.com/opensourceSourceForge  http://sourceforge.netFresh...
Ohlohporovnanie projektovrôzne metriky  http://www.ohloh.net
Open Source projektotvoriť program svetu - Open Sourceniekto môže vo vašej práci pokračovať  http://atanks.sf.net
se-radio.netSoftware engineering radiozaujímavý a kvalitný podcast  http://www.se-radio.net
A je tu záverOtázky?
Ďakujem za pozornosť       FI MUNI, Brno 2011          Juraj Michálekblog: http://georgik.sinusgear.comtwitter: http://twi...
There is much more to C
Upcoming SlideShare
Loading in …5
×

There is much more to C

1,670 views

Published on

Slovak version only. Prednáška o vývoji v C++, prenose aplikácií medzi rôznymi OS a postupmi pre C++

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

There is much more to C

  1. 1. There is much more to C++ FI MUNI, Brno 2011 Mgr. Juraj Michálek blog: http://georgik.sinusgear.com twitter: http://twitter.com/sinusgear
  2. 2. Niečo o mne
  3. 3. ObsahVyvíjame STL, Allegro, SDL, ClanLib, LUA, Mesa3D...C a jemu podobné robot kit, ArundinoLadíme Eclipse a debuggerKontinuálna integrácia Boost, Jenkins CI, MavenNástroje
  4. 4. Program programátora1. programátor dostane skvelý nápad2. naprogramuje dokonalý program3. všetko si naprogramuje sám4. zistí, že program je nepoužiteľný
  5. 5. Na vlastných nohách5. pokúsi sa program opraviť6. zistí, že polovicu funkcií naprogramoval zle7. preprogramuje zlé funkcie8. zistí, že program je opäť nepoužiteľnýgoto 5.
  6. 6. Vývoj
  7. 7. STL I.základ pre C++práca s reťazcami #include <string>operácie nad zoznamami #include <list> #include <deque>
  8. 8. STL II.operácie s asociatívnymi poliami #include <map>špeciálne algoritmy (triedenie, výpis) #include <algorithm>zhrnutie: umožňujú urýchlenie vývoja http://www.sgi.com/tech/stl/
  9. 9. OtázkaVystačíme so štandardnými funkciami STL?
  10. 10. Odpoveď
  11. 11. Interaktívne aplikácie
  12. 12. Interaktívne aplikácierýchla reagovať na užívateľamusia sa prispôsobovať jeho potrebámdobrým príkladom je počítačová hraukážeme si konkrétnu implementáciu
  13. 13. Knižnice Allegro Simple Direct Media LayerClanlib Simple Development Kit
  14. 14. AllegroAllegro Low Level Game Routines
  15. 15. Allegro - aplikáciaspracovanie klávesnice, myši, joystickuspracovanie obrazu, zvukujednoduché GUIovládanie časovačovpoužívanie dátových súborovuvedené príklady z Allegro
  16. 16. Allegro 5podpora pre bežné OSpodpora pre iPhoneudalostihttp://alleg.sourceforge.net/a5docs/5.0.5/
  17. 17. Programovanie I.inicializácia Allegra al_init();
  18. 18. Inicializácia grafikyinicializácia grafického prostredia al_create_display(int w, int h)
  19. 19. ALLEGRO_BITMAPštruktúra na uloženie obrazuvytvorenie obrazovej pamäte ALLEGRO_BITMAP *bmp = create_bitmap(x,y);
  20. 20. Grafikavykreslenie bodu do pamäte al_putpixel(x, y, color)načítanie obrazu zo súboru al_load_bitmap(filename);kopírovanie medzi pamäťami al_draw_bitmap(bmp, 10, 10, 0);
  21. 21. GrafikaUvoľnenie obrazovej pamäte al_destroy_bitmap(bmp);
  22. 22. Klávesnicazavedenie ovládača klávesnice al_install_keyboard()odstránenie ovládača klávesnice al_uninstall_keyboard()načítanie klávesy event.keyboard.keycode
  23. 23. Myšinštalácia a odstránenie ovládača al_install_mouse() al_get_mouse_state(&msestate); al_uninstall_mouse()
  24. 24. Ďalšie vlastnostiprehrávanie samplov a MIDIukladanie súborov do datafilejednoduchá 3D grafika - polygonyjednoduché GUI
  25. 25. Knižnice nad AllegromAllegro má pomerne veľa funkciiAllegttf - práca s True Type fontamiAllegGL - práca GL grafikouDUMB - práca sa audiom (Vorbis/Ogg)
  26. 26. KompiláciaKonfiguračný skript allegro-configLinux, Unix, BeOS, QNX, MacOS, Windows: g++ foo.cc -o foo `allegro-config --libs`iPhone vyžaduje Xcode
  27. 27. CMake – Cross Platform Make generuje build súbory pre IDE http://www.cmake.org
  28. 28. Allegro – CMake – MSVC 2010
  29. 29. Allegro – CMake - KDevelop4
  30. 30. Zdrojevývoj knižnice http://alleg.sourceforge.netWiki http://wiki.allegro.cc/
  31. 31. Allegro.ccGame development community networkMattew J. Leverton http://www.allegro.cc
  32. 32. KnižnicaSimple Direct Media Layer
  33. 33. Programovanieinicializácia systému SDL_init(flags)ukončenie systému SDL_quit()
  34. 34. Grafika I.inicializácia grafického prostredia SDL_SetVideoMode(width, height, video_bpp, videoflags)obrazové dáta v pamäti SDL_SWSURFACEobrazové dáta vo video pamäti SDL_HWSURFACE
  35. 35. Grafika II.štruktúra na uloženie obrazu SDL_Surfacevytvorenie obrazovej pamäte surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32, rmask, gmask, bmask, amask);
  36. 36. Grafika III.načítanie obrazu zo súboru SDL_Surface *SDL_LoadBMP(const char *file)kopírovanie medzi pamäťami SDL_BlitSurface(src, srcrect, dst, dstrect);
  37. 37. Klávesnicastlačenie klávesy vyvolá udalosť SDL_PollEvent(SDL_Event *event)test na stlačenie konkrétne klávesy event.key.keysym.sym
  38. 38. Časovaččasovač implementovaný ako počítadlo static int counter;inštalácia funkcie volenej v pravidelnýchintervaloch SDL_SetTimer(interval, tick);
  39. 39. Myšzistenie stavu myši SDL_GetMouseState(*x, *y);
  40. 40. Textjednoduchý výpis textu nie je
  41. 41. Ďalšie vlastnostipriama podpora GL knižníczabudovaný mechanizmus pre vláknaspolupráca s jazykmi Ada, Eiffel, Java, Lua, Perl, PHP, Pike, Python, Ruby176 rozširujúcich knižníc
  42. 42. KnižniceSDL je samo o sebe pomerne ťažkopoužiteľnéSDL_mixer - multikanálový mixérSDL_image - spracovanie obrazovýchformátovSDL_net - práca so sieťou
  43. 43. Zdrojevývoj http://www.libsdl.orgportál s hrami http://www.lgames.org
  44. 44. Kompiláciakonfiguračný skript sdl-configLinux, Windows, BeOS, Mac OS g++ foo.cc -o foo `sdl-config --libs`
  45. 45. KnižnicaClanLib game Simple Development Kithttp://www.clanlib.org
  46. 46. LUAsilný skriptovací nástrojvolanie skriptov z programuvolanie programu zo skriptovjednoduchá syntax jazyka http://www.lua.org
  47. 47. KnižnicaMesa http://mesa3d.sourceforge.net
  48. 48. Dino
  49. 49. Games for Linuxpodpora hier pre Linuxport a code, save the gamearchív 208 hier, 35 knižníc http://games.linux.sk
  50. 50. GUIGraphic User Interface
  51. 51. Vhodné knižnice QT FLTK GTK
  52. 52. QT Nokia:http://qt.nokia.com
  53. 53. QTprodukt firmy Trolltech, neskôr Nokialicencie: open source aj komrčnéknižnica vznikla v roku 1996podporuje C++ a Javu
  54. 54. PlatformyMS/WindowsUnix/X11 - Linux, Sun Solaris, HP-UX,Compaq Tru64 UNIX, IBM AIX, IRIX, Mac OSXEmbedded - Linux platforms with framebuffersupport.
  55. 55. QT Creator IDEnástroj na tvorbu GUIrozvrhnutú plochu ukladá do XML súboruz XML definície sa generuje kód programu
  56. 56. Kompiláciauloženie projektuvytvorenie Makefile z projektu qmake -o Makefile test.prokompilácia make
  57. 57. Linguistnástroj na preklad aplikáciiumožňuje oddeliť kód od textovprekladateľ a programátor pracujúsamostatne
  58. 58. Amélia
  59. 59. KDE
  60. 60. Google Earth
  61. 61. FLTKhttp://www.fltk.org
  62. 62. Knižnica FLTKThe Fast Light Tool KitAutor: Bill Spitzakvenoval sa vývoju rozhraní pre SunMicrosystemsveľa myšlienok zjednodušil a vložil do kitunízko-úrovňová kompatibilita - 10% odlišnosti
  63. 63. PlatformyUnix, LinuxMicrosoft WindowsMacOSs podporou OpenGL a GLUT
  64. 64. FLUIDFast Light User-Interface Designerjednoduchý designer na tvorbu GUI
  65. 65. Knižnicahttp://www.gtk.org
  66. 66. GTKGIMP ToolKitPeter Mattis, Spencer Kimball, JoshMacDonaldGNU Network Object Model Environment(GNOME) C++, Guile, Perl, Python, TOM, Ada95, Objective C, Free Pascal, Eiffelkomplexne riešená knižnica
  67. 67. Glade 3http://glade.gnome.org design GUI - www.srobick.com
  68. 68. Android – Native Development Kithttp://developer.android.com/sdk/ndk/Pozor! App nemusí byť optimálnejšia než napísaná v Jave
  69. 69. NDKstiahnuť SDK a NDKexport PATH=$PATH:/cesta/sdk/tools:/ceta/ndkcd /cesta/ndk/samples/hello-jniandroid update project -p . -sndk-buildant debug
  70. 70. Adobe Alchemyzaujímavý experimentC/C++ kód skompilovaný pre FlashPlayer AVM2prenositeľnosť príklad: Doom http://labs.adobe.com
  71. 71. Interactive C - RobotHandyboardMotorola 68AX11Odvodené od Chttp://www.kipr.orghttp://www.boatball.org
  72. 72. Arundinohttp://www.arduino.cc/playground/Interfacing/CPPWindows
  73. 73. ACEThe ADAPTIVE Communication Environment http://www.cs.wustl.edu/~schmidt/ACE.htmlOpen source C++ framework reactor, proactor acceptor, connector
  74. 74. Java Native Interface - JNIpublic class HelloWorld { private native void sayHello(); public static void main(String[] args) { System.loadLibrary("library"); new HelloWorld().sayHello(); }}
  75. 75. NodeJSV8 JavaScript engineasynchrónny prístupudalostihttp://www.nodejs.org
  76. 76. výkonné multiplatformové IDE http://www.eclipse.orgC/C++ - CDT plugin http://www.eclipse.org/cdt
  77. 77. Aplikácia to neprežila Post-mortem analýzaZostal len jej obraz: coredump
  78. 78. Rýchla analýza coredumpu
  79. 79. Módy debuggera Spustenie lokálnej aplikácie. Pripojenie k lokálnemu procesu.Pripojenie k vzdialenému procesu. Post-mortem.
  80. 80. Valgrinddebugging a profilingmemcheck memory leakyhelgrind race condition, thread profiling
  81. 81. Stracestrace ls -l execve("/bin/ls", ["ls"], [/* 29 vars */]) = 0 brk(0) = 0x95d0000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb773c000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("tls/i686/sse2/cmov/libselinux.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
  82. 82. Mutextracemutextrace ./mutex-tester-app param1 param2 lock #1, free -> thread 1 init #2 lock #2, free -> thread 1 unlock #1 lock #1, free -> thread 1 init #3 lock #3, free -> thread 1 unlock #1
  83. 83. PortabilitaLinux – Windows – Mac – BSDprenos C/C++ nie je vždy jednoduchýUnix/Windows Porting Dictionary http://suacommunity.com/
  84. 84. Kontinuálna integrácia Od chaosu k štruktúre
  85. 85. http://www.boost.org “...one of the most highly regarded and expertly designed C++ library projects in the world.” Herb Sutter and Andrei Alexandrescu
  86. 86. Boost
  87. 87. Boost Test LibraryTest everything that could possibly breakjednoduchá tvorba tescasovTestSuite – TestCasetest je spustiteľný programbjam integruje spúšťanie testov
  88. 88. TestCaseusing namespace boost::unit_test_framework;/** * Test basic marshaller functionality */void testServerQuery(){ ServerQuery query = ServerQuery(); query.session = "112"; query.userId = "janko"; BOOST_CHECK_EQUAL( query.sessionAsChar(), "112" ); BOOST_CHECK_EQUAL( query.userIdAsChar(), "janko" );}
  89. 89. Jamnáhrada Makefilerozšíriteľné fukncieautomatická detekcia header filesprenositeľné: Unix, Windows, VMS, Macmalý CPU overheadbuild obrovských projektovškálovateľné
  90. 90. jam + TestCaseJamfile (Jamroot) import testing ; run tests/testServerQuery.cpp server ;Shell $ bjam ...patience... ...found 2 targets... ...updating 2 targets... *** test passed ***
  91. 91. Maven pre C++web: http://maven.apache.org mvn [parametre|ciele]súbor s definíciou projekt pom.xmlplugin pre C++ native-maven-plugin
  92. 92. Obsah pom.xmlArtifactsDependenciesPluginsRepositories
  93. 93. Kontinuálna integráciarýchla kontrola po commiteJenkins CI – príklad: http://ci.sinusgear.com
  94. 94. NástrojeProfesionál vie používať správne nástroje na správny účel.
  95. 95. Subversion - SVNverzovací nástrojjednoduchý na používanie http://subversion.tigris.orgrepository, check-out, commit, merge http://www.asinus.org/wiki/VideoTutorialSubversion
  96. 96. SVN klient pre Windows http://tortoisesvn.tigris.org
  97. 97. GIToproti SVN možnosť lokálných commitovSocial Coding http://www.github.com
  98. 98. Source Control & Project Management http://trac.edgewall.org http://trac-hacks.org/
  99. 99. GNU a WindowsMinimalist GNU For Windows http://www.mingw.orgCygwin http://www.cygwin.com http://cygwinports.dotsrc.org/
  100. 100. Doxygengenerovanie dokumentácie pre C, C++, Java, Python PHP, C#, Dpoužitie doxygen -g project.config doxygen project.config
  101. 101. C#, .NET a Monoopen source implementácia .NETRozhranie napr. GTK# http://www.mono-project.com Silverlight pre Linux - Moonlight
  102. 102. Pythonsilný objektovo orientovaný jazykplatformovo nezávislýintegrovateľný s C a C++ http://www.python.org http://www.py.cz
  103. 103. Twistedudalosťami riadený sieťový frameworkpodpora TCP, UDP, SSL/TLS, multicastUnix socketsveľké množstvo protokolov HTTP, NNTP, IMAP, SSH, IRC, FTP... http://twistedmatrix.com/trac/
  104. 104. PyGamekombinácia sily Pythonua rýchlosti SDL (kód v C) http://www.pygame.org
  105. 105. ProjektGitHub http://www.github.comGoogle Code http://code.google.com/opensourceSourceForge http://sourceforge.netFreshMeat http://freshmeat.netCodePlex – MS Platforma http://codeplex.com
  106. 106. Ohlohporovnanie projektovrôzne metriky http://www.ohloh.net
  107. 107. Open Source projektotvoriť program svetu - Open Sourceniekto môže vo vašej práci pokračovať http://atanks.sf.net
  108. 108. se-radio.netSoftware engineering radiozaujímavý a kvalitný podcast http://www.se-radio.net
  109. 109. A je tu záverOtázky?
  110. 110. Ďakujem za pozornosť FI MUNI, Brno 2011 Juraj Michálekblog: http://georgik.sinusgear.comtwitter: http://twitter.com/sinusgear

×