Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

RDSDataSource: OCLint

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
OCLint

YouTube-Videos werden auf SlideShare nicht mehr unterstützt.

Original auf YouTube ansehen

• Что такое статический анализатор кода
• Каким образом работают анализаторы кода
• Clang static analyzer vs OCLint
• Ссыл...

Hier ansehen

1 von 36 Anzeige

RDSDataSource: OCLint

Herunterladen, um offline zu lesen

Бениамин Саркисян рассказал про устройство и принципы работы статического анализатора кода OCLint, а также показал, как можно написать свои собственные правила для него.

RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.

Бениамин Саркисян рассказал про устройство и принципы работы статического анализатора кода OCLint, а также показал, как можно написать свои собственные правила для него.

RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Andere mochten auch (14)

Weitere von RAMBLER&Co (15)

Anzeige

Aktuellste (20)

RDSDataSource: OCLint

  1. 1. OCLint
  2. 2. • Что такое статический анализатор кода • Каким образом работают анализаторы кода • Clang static analyzer vs OCLint • Ссылки
  3. 3. Что такое статический анализатор кода?
  4. 4. Каким образом работает анализатор кода?
  5. 5. while b != 0 if a > b a = a - b else b = b - a return a
  6. 6. while b != 0 if a > b a = a - b else b = b - a return a
  7. 7. while b != 0 if a > b a = a - b else b = b - a return a
  8. 8. while b != 0 if a > b a = a - b else b = b - a return a
  9. 9. while b != 0 if a > b a = a - b else b = b - a return a
  10. 10. while b != 0 if a > b a = a - b else b = b - a return a
  11. 11. while b != 0 if a > b a = a - b else b = b - a return a
  12. 12. while b != 0 if a > b a = a - b else b = b - a return a
  13. 13. while b != 0 if a > b a = a - b else b = b - a return a
  14. 14. while b != 0 if a > b a = a - b else b = b - a return a
  15. 15. while b != 0 if a > b a = a - b else b = b - a return a
  16. 16. while b != 0 if a > b a = a - b else b = b - a return a
  17. 17. while b != 0 if a > b a = a - b else b = b - a return a
  18. 18. while b != 0 if a > b a = a - b else b = b - a return a
  19. 19. Clang static analyzer vs OCLint?
  20. 20. Clang static analyzer • Отправка сообщения не проинициализированному объекту • Использование не проинициализированных переменных • Деление на ноль • Методы, в которых не вызван super метод • Не используемые ivars
  21. 21. OCLint • Пустые if/else, do/while операторы • Длинные методы • Инвертированная логика • Pointer type property с assign аттрибутом • Mutable object property с strong аттрибутом
  22. 22. Преимущества OCLint • Возможность писать свои правила • Поддержка нескольких форматов отчетов • Возможность отключения/включения правил • Анализ отдельных файлов • Подсчет цикломатической сложности проекта
  23. 23. Принцип работы OCLint?
  24. 24. Утилиты для работы с OCLint
  25. 25. • xctool/xcpretty • xcodebuild + oclint-xcodebuild • oclint/oclint-json-compilation-database • Travis, Jenkins, fastlane
  26. 26. • xctool/xcpretty • xcodebuild + oclint-xcodebuild • oclint/oclint-json-compilation-database • Travis, Jenkins, fastlane
  27. 27. • xctool/xcpretty • xcodebuild + oclint-xcodebuild • oclint/oclint-json-compilation-database • Travis, Jenkins, fastlane
  28. 28. • xctool/xcpretty • xcodebuild + oclint-xcodebuild • oclint/oclint-json-compilation-database • Travis, Jenkins, fastlane
  29. 29. Типы правил
  30. 30. • Generic • Source Code Reader • AST Visitor • AST Matcher
  31. 31. Ссылки • oclint.org • http://mgrebenets.github.io/mobile%20ci/ 2015/02/08/oclint • https://codeascraft.com/2014/01/15/static- analysis-with-oclint/ • https://gavrix.wordpress.com/2013/02/28/ integrating-oclint-in-xcode/

×