Ať se z kódu nepráší!
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Ať se z kódu nepráší!

on

  • 1,275 views

Talk about programming in C for FI MUNI Brno. Topics: Uni

Talk about programming in C for FI MUNI Brno. Topics: Uni

Statistics

Views

Total Views
1,275
Views on SlideShare
588
Embed Views
687

Actions

Likes
0
Downloads
0
Comments
0

4 Embeds 687

http://georgik.sinusgear.com 678
http://translate.googleusercontent.com 6
http://webcache.googleusercontent.com 2
http://www.tuicool.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Ať se z kódu nepráší! Presentation Transcript

  • 1. Ať se z kódu nepráší! Juraj Michálek 7 5. 2012 - FI MUNI - Brno . http:/ /georgik.sinusgear.com http:/ witter.com/sinusgear /t
  • 2. Niečo o mne
  • 3. Čo nás čakáTestovanie v CKvalita kódu, open source a projektyC vo svete Applu, Objective-C
  • 4. Když se dívám na svůj kód,tak se musím pochválit.Nevypadá věru zle,zkrátka program jak má být.Před naší, za našíať se z kódu nepráší! Hej!
  • 5. Háá! Chybáá!
  • 6. Testovaniežiadnemanuálneautomatické
  • 7. Žiadne testovanie
  • 8. Ľudová múdrosťBez testů do vývoje nelez!
  • 9. Manuálne - black boxSpustíme a aplikácia ...
  • 10. Manuálne - debuggerKdyž něco rozeberem, tak leda debuggeremhttp://georgik.sinusgear.com/2010/09/19/zaznam-z-prednasky-kdyz-neco-rozeberem-tak-leda-debuggerem/
  • 11. Prečo automatizovať?Som vývojár alebo debuggrista?
  • 12. Automatizované testy Záchranná sieť pre vývojárov Živá dokumentácia Lepší dizajn Viac času na vývoj
  • 13. Typy testovUnit testing - jednotkové testyIntegračné testyAkceptačné testyRegresné testy
  • 14. Test Driven Devel.Testy prvéPotom kód
  • 15. Unit Testingizolácia setUp - príprava prostredia test - samotný test tearDown - upratanie prostredia
  • 16. Príklad testuint a=41;a++;assert( a == 42, “Universe should be ok”);
  • 17. MinunitMinimalist Unit Testing Framework for Chttp://www.jera.com/techinfo/jtns/jtn002.html
  • 18. Minunit - code/* file: minunit.h */#define mu_assert(message, test) do { if (!(test)) return message; } while (0)#define mu_run_test(test) do { char *message = test(); tests_run++; if (message) return message; } while (0)extern int tests_run;
  • 19. mu_runtestmu_runtest( test_currency );mu_runtest( test_accounting );
  • 20. mu_assertmu_assert(“Should not be null”, state == null);
  • 21. Spusteniegcc *.c -o test./test ALL TEST PASSED Tests run: 2
  • 22. gcc - c99for (int i=0; i<42; i++) error: ‘for’ loop initial declaration used outside C99 modezmena normy parametrom: gcc -std=c99
  • 23. Check frameworkhttp://check.sourceforge.net/Inštalácia ./configure make make install
  • 24. Organizácia testovTest Case testovaný prípadTest Suite sada Test CaseTest Runner
  • 25. Test Fixturesvoid setup();void teardown();
  • 26. Kontrólne fciefail_if ( employee->age != 43, “Problem”);fail_unless( employee->age == 43,"Incorrect age.");
  • 27. Kompiláciagcc -lcheck test.c -o test
  • 28. Spustenie testu./testPríklad: Running suite(s): Employee testing 0%: Checks: 1, Failures: 1, Errors: 0 main.c:45:F:Core tests:test_age:0: Incorrect age.
  • 29. Ďalšie frameworkyC/C++ CxxTest: http://cxxtest.com/ Boost: http://boost.org
  • 30. Continuous Integration Jenkins http://ci.sinusgear.com
  • 31. Open sourceProjektyLicencie
  • 32. Code_swarmOrganic soft ware visualization ofproject repositorieshttp://code.google.com/p/codeswarm/
  • 33. Gourcehttp://code.google.com/p/gource/
  • 34. Ohloh.nethodnotenie open source projektov
  • 35. Lynda.comDobrý zdroj znalostí
  • 36. se-radio.net
  • 37. Kvalita kóduKód sa viackrát číta, než sa píše.Review kódu
  • 38. Ot vorenie kóduGitHub.com Social Coding fork
  • 39. LicencieFree soft ware GNU/GPL, LGPLOpen source BSD, MIT, Apache business friendly
  • 40. Čítajte licencieCopyright (c) 2002 JSON.orgPermission is hereby granted, free of charge, to any person obtaining acopy of this software and associated documentation files (the"Software"), to deal in the Software without restriction, including withoutlimitation the rights to use, copy, modify, merge, publish, distribute,sublicense, and/or sell copies of the Software, and to permit persons towhom the Software is furnished to do so, subject to the followingconditions:The above copyright notice and this permission notice shall be includedin all copies or substantial portions of the Software.The Software shall be used for Good, not Evil.
  • 41. Čítajte licencieCopyright (c) 2002 JSON.orgPermission is hereby granted, free of charge, to any person obtaining acopy of this software and associated documentation files (the"Software"), to deal in the Software without restriction, including withoutlimitation the rights to use, copy, modify, merge, publish, distribute,sublicense, and/or sell copies of the Software, and to permit persons towhom the Software is furnished to do so, subject to the followingconditions:The above copyright notice and this permission notice shall be includedin all copies or substantial portions of the Software.The Software shall be used for Good, not Evil.
  • 42. Objective-Cprogramovací jazyk vychádzajúci z Cobjektové princípy zo Smalltalku
  • 43. Objective-C1983 - Brad Cox a Tom Love zakladajú StepStone1988 - Steve Jobs - NeXT licencuje Objective-C od StepStone rozširuje GCC, vyt vára AppKit
  • 44. Objective-C1996 - Apple ohlásil akvizíciu NeXT 429 mil. $Cocoa framework
  • 45. Apple a CMac OS 10.7 Xcode 4 Command Line Tools for Xcode http://developer.apple.com
  • 46. Xcode 4Nutné: Mac OS X 10.7
  • 47. Objective-CSyntax: cammelCasePrefix: NS (od NextStep)
  • 48. Hello FI MUNI! Command + R
  • 49. NSStringNSString *who = @”FI MUNI”;NSLog(“Hello %@!”, who);
  • 50. BooleanBOOL isFIBest = YES;BOOL isCBoring = NO;
  • 51. Správa pamäteNové verzie Mac OS podporujú auto-garbage collection.Nespoliehajte sa na to! Naučte sa manažovať pamäť. Nefunguje na mobilných zariadeniach.
  • 52. Retain Counteralokácia - zvýšenie počítadladealokácia - zníženie počítadla
  • 53. PravidláAk objekt vlastníš, musíš ho uvoľniť.Ak objekt nevlastníč, nesmieč ho uvoľniť.
  • 54. Vlastnenie objektualloc, new, retain, copyKaždý ANRC musí mať release!
  • 55. Alokácia - new
  • 56. Alokácia a inicializácia Preferovaný spôsob
  • 57. Rozdelenie kódurozhranie (interface) - *.himplementácia - *.m
  • 58. Interface@interface Employee : NSObject {@private NSString *name; NSString *surname; NSDate *age;}@end
  • 59. Implementácia@implementation Employee- (void) myMethod { NSLog(@"Hello");}@end
  • 60. Znak pred metódou- (void) myMethodznak mínus - metóda inštancieznak plus - statická metóda
  • 61. Prístup k zdrojomNSURLNSURL *myURL = [NSURLfileURLWithPath:path];file:/ /Users/georgik/file.txt /
  • 62. Prečo používať NSURL? Pretože to tak Apple povedal. rýchlejšie na iOS zachytenie chyby v prípade zlého formátu omnoho mocnejšie
  • 63. Allegropodpora aj pre iPhone
  • 64. Ať se z kódu nepráší! Juraj Michálek 7 5. 2012 - FI MUNI - Brno . http:/ /georgik.sinusgear.com http:/ witter.com/sinusgear /t