Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Čtvrtkon #1 - Refactoring

Čtvrtkon #1 - Refactoring

Václav Novotný

June 07, 2013
Tweet

More Decks by Václav Novotný

Other Decks in Technology

Transcript

  1. Příklad špatného kódu <?php $articles = $articleRepository->findAll(); foreach ($articles as

    $article) { echo $article->getTitle(); echo $article->getText(); }
  2. Trochu vylepšený kód <?php $articles = $articleRepository->findAll(); foreach ($articles as

    $article) { printArticle($article); } function printArticle(Article $article) { echo $article->getTitle(); echo $article->getText(); }
  3. Další příklad <?php // ArticleController.php if ($article->getPublishingDate() == date('Y-m-d') &&

    $article->getStatus() == 2 && count($article->getComments()) > 0) { $article->setScore(10); }
  4. Další příklad <?php // ArticleController.php $articlePromoter->promoteArticle($article); // ArticlePromoter.php const TOP_ARTICLE

    = 10; public function promoteArticle(Article $article) { if ($article->isPublishedToday() && $article->isPublished() && $article->hasComments()) { $article->setScore(self::TOP_ARTICLE); }
  5. Code Size Rules • Cyclomatic complexity • N-path complexity •

    ExcessiveMethodLength • ExcessiveClassLength • ExcessiveParameterList • ExcessivePublicCount • TooManyFields • TooManyMethods • ExcessiveClassComplexity
  6. Pamatujte #2 • bez testů se refactoruje těžko • jde

    o nedílnou součást vývoje • refactorovaný kód co nejčastěji začleňujte zpět do hlavní vývojové větve