×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
foolab.ca | @foolabca Cyclomatic Complexity Bulgaria PHP, Sofia - October 8, 2016
Slide 2
Slide 2 text
Execution Paths public function getShipping() { if ($this->subtotal >= 40) { return 0; } return $this->standardShipping; } 2
Slide 3
Slide 3 text
Execution Paths public function getShipping() { if ($this->subtotal >= 40) { return 0; } return $this->standardShipping; } 3 Path 1 Path 2
Slide 4
Slide 4 text
Decision Branches 4 start product loop free shipping? end
Slide 5
Slide 5 text
Decision Branches 5 start product loop free shipping? end
Slide 6
Slide 6 text
Cyclomatic complexity = edges − nodes + 2 * connected components
Slide 7
Slide 7 text
Decision Branches 7 start product loop free shipping? end ◦ Edges ◦ Nodes ◦ Connected components.
Slide 8
Slide 8 text
Decision Branches 8 start product loop free shipping? end ◦ Edges ◦ Nodes ◦ Connected components.
Slide 9
Slide 9 text
Decision Branches 9 start product loop free shipping? end ◦ Edges ◦ Nodes ◦ Connected components.
Slide 10
Slide 10 text
Cyclomatic complexity = 9 − 8 + 2 * 1 = 3
Slide 11
Slide 11 text
Zero Times foreach ($products as $product) { $total = $product->price * $product->quantity; } $tax = $total * ... 11
Slide 12
Slide 12 text
Multiple Times $total = 0; foreach ($products as $product) { $total = $product->price * $product->quantity; } $tax = $total * ... 12
Slide 13
Slide 13 text
Multiple Times $total = 0; foreach ($products as $product) { $total += $product->price * $product->quantity; } $tax = $total * ... 13
Slide 14
Slide 14 text
@afilina afilina.com