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

1,452 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,452
On SlideShare
0
From Embeds
0
Number of Embeds
773
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \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áší!

    1. 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. 2. Niečo o mne
    3. 3. Čo nás čakáTestovanie v CKvalita kódu, open source a projektyC vo svete Applu, Objective-C
    4. 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. 5. Háá! Chybáá!
    6. 6. Testovaniežiadnemanuálneautomatické
    7. 7. Žiadne testovanie
    8. 8. Ľudová múdrosťBez testů do vývoje nelez!
    9. 9. Manuálne - black boxSpustíme a aplikácia ...
    10. 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. 11. Prečo automatizovať?Som vývojár alebo debuggrista?
    12. 12. Automatizované testy Záchranná sieť pre vývojárov Živá dokumentácia Lepší dizajn Viac času na vývoj
    13. 13. Typy testovUnit testing - jednotkové testyIntegračné testyAkceptačné testyRegresné testy
    14. 14. Test Driven Devel.Testy prvéPotom kód
    15. 15. Unit Testingizolácia setUp - príprava prostredia test - samotný test tearDown - upratanie prostredia
    16. 16. Príklad testuint a=41;a++;assert( a == 42, “Universe should be ok”);
    17. 17. MinunitMinimalist Unit Testing Framework for Chttp://www.jera.com/techinfo/jtns/jtn002.html
    18. 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. 19. mu_runtestmu_runtest( test_currency );mu_runtest( test_accounting );
    20. 20. mu_assertmu_assert(“Should not be null”, state == null);
    21. 21. Spusteniegcc *.c -o test./test ALL TEST PASSED Tests run: 2
    22. 22. gcc - c99for (int i=0; i<42; i++) error: ‘for’ loop initial declaration used outside C99 modezmena normy parametrom: gcc -std=c99
    23. 23. Check frameworkhttp://check.sourceforge.net/Inštalácia ./configure make make install
    24. 24. Organizácia testovTest Case testovaný prípadTest Suite sada Test CaseTest Runner
    25. 25. Test Fixturesvoid setup();void teardown();
    26. 26. Kontrólne fciefail_if ( employee->age != 43, “Problem”);fail_unless( employee->age == 43,"Incorrect age.");
    27. 27. Kompiláciagcc -lcheck test.c -o test
    28. 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. 29. Ďalšie frameworkyC/C++ CxxTest: http://cxxtest.com/ Boost: http://boost.org
    30. 30. Continuous Integration Jenkins http://ci.sinusgear.com
    31. 31. Open sourceProjektyLicencie
    32. 32. Code_swarmOrganic soft ware visualization ofproject repositorieshttp://code.google.com/p/codeswarm/
    33. 33. Gourcehttp://code.google.com/p/gource/
    34. 34. Ohloh.nethodnotenie open source projektov
    35. 35. Lynda.comDobrý zdroj znalostí
    36. 36. se-radio.net
    37. 37. Kvalita kóduKód sa viackrát číta, než sa píše.Review kódu
    38. 38. Ot vorenie kóduGitHub.com Social Coding fork
    39. 39. LicencieFree soft ware GNU/GPL, LGPLOpen source BSD, MIT, Apache business friendly
    40. 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. 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. 42. Objective-Cprogramovací jazyk vychádzajúci z Cobjektové princípy zo Smalltalku
    43. 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. 44. Objective-C1996 - Apple ohlásil akvizíciu NeXT 429 mil. $Cocoa framework
    45. 45. Apple a CMac OS 10.7 Xcode 4 Command Line Tools for Xcode http://developer.apple.com
    46. 46. Xcode 4Nutné: Mac OS X 10.7
    47. 47. Objective-CSyntax: cammelCasePrefix: NS (od NextStep)
    48. 48. Hello FI MUNI! Command + R
    49. 49. NSStringNSString *who = @”FI MUNI”;NSLog(“Hello %@!”, who);
    50. 50. BooleanBOOL isFIBest = YES;BOOL isCBoring = NO;
    51. 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. 52. Retain Counteralokácia - zvýšenie počítadladealokácia - zníženie počítadla
    53. 53. PravidláAk objekt vlastníš, musíš ho uvoľniť.Ak objekt nevlastníč, nesmieč ho uvoľniť.
    54. 54. Vlastnenie objektualloc, new, retain, copyKaždý ANRC musí mať release!
    55. 55. Alokácia - new
    56. 56. Alokácia a inicializácia Preferovaný spôsob
    57. 57. Rozdelenie kódurozhranie (interface) - *.himplementácia - *.m
    58. 58. Interface@interface Employee : NSObject {@private NSString *name; NSString *surname; NSDate *age;}@end
    59. 59. Implementácia@implementation Employee- (void) myMethod { NSLog(@"Hello");}@end
    60. 60. Znak pred metódou- (void) myMethodznak mínus - metóda inštancieznak plus - statická metóda
    61. 61. Prístup k zdrojomNSURLNSURL *myURL = [NSURLfileURLWithPath:path];file:/ /Users/georgik/file.txt /
    62. 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. 63. Allegropodpora aj pre iPhone
    64. 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

    ×