@@ -2270,17 +2270,61 @@ <h2>Hosted CI services</h2> |
2270 | 2270 | <h2>Continuous integration resources</h2> |
2271 | 2271 | <ul> |
2272 | 2272 | <li> |
2273 | | -<p><a href="http://martinfowler.com/articles/continuousIntegration.html">What is continuous integration</a> |
| 2273 | +<p><a href="http://martinfowler.com/articles/continuousIntegration.html">What is continuous integration?</a> |
2274 | 2274 | is a classic detailed article by Martin Fowler on the concepts behind CI |
2275 | 2275 | and how to implement it.</p> |
2276 | 2276 | </li> |
2277 | 2277 | <li> |
2278 | | -<p>"<a href="http://www.rackspace.com/blog/diving-into-continuous-integration-as-a-newbie/">Diving into continuous integration as a newbie</a>" |
| 2278 | +<p><a href="http://www.rackspace.com/blog/diving-into-continuous-integration-as-a-newbie/">Diving into continuous integration as a newbie</a> |
2279 | 2279 | is a retrospective on learning CI from a Rackspace intern on how she learned |
2280 | 2280 | the subject.</p> |
2281 | 2281 | </li> |
2282 | 2282 | </ul> |
2283 | 2283 | <h3>What do you want to add to your application next?</h3> |
| 2284 | + <h1>Code Metrics</h1> |
| 2285 | +<p>Code metrics can be produced by static code analysis tools to determine |
| 2286 | +complexity and non-standard practices.</p> |
| 2287 | +<h2>Why are code metrics important?</h2> |
| 2288 | +<p>Code metrics allow developers to find problematic codebase areas that may |
| 2289 | +need refactoring. In addition, some metrics such as technical debt assist |
| 2290 | +developers in communicating to non-technical audiences why issues with a |
| 2291 | +system are occurring.</p> |
| 2292 | +<h2>Open source code metrics projects</h2> |
| 2293 | +<ul> |
| 2294 | +<li> |
| 2295 | +<p><a href="http://radon.readthedocs.org/en/latest/index.html">Radon</a> is a tool for |
| 2296 | + obtaining raw metrics on line counts, Cyclomatic Complexity, Halstead |
| 2297 | + metrics and maintainability metrics.</p> |
| 2298 | +</li> |
| 2299 | +<li> |
| 2300 | +<p><a href="http://www.pylint.org/">Pylint</a> contains checkers for PEP8 code |
| 2301 | + style compliance, design, exceptions and many other source code analysis |
| 2302 | + tools.</p> |
| 2303 | +</li> |
| 2304 | +<li> |
| 2305 | +<p><a href="https://pypi.python.org/pypi/pyflakes">PyFlakes</a> parses source files for |
| 2306 | + errors and reports on them.</p> |
| 2307 | +</li> |
| 2308 | +</ul> |
| 2309 | +<h2>Hosted code metrics services</h2> |
| 2310 | +<ul> |
| 2311 | +<li><a href="https://landscape.io/">Landscape</a> provides free code metrics for open |
| 2312 | + source Python projects. Pricing is available for analyzing private |
| 2313 | + repositories as well.</li> |
| 2314 | +</ul> |
| 2315 | +<h2>Code metrics resources</h2> |
| 2316 | +<ul> |
| 2317 | +<li> |
| 2318 | +<p><a href="http://doughellmann.com/2008/03/01/static-code-analizers-for-python.html">Static Code Analizers for Python</a> |
| 2319 | + is an older article but goes over the basics of what Python static code |
| 2320 | + analyzers do.</p> |
| 2321 | +</li> |
| 2322 | +<li> |
| 2323 | +<p>This <a href="http://stackoverflow.com/questions/1428872/pylint-pychecker-or-pyflakes">Stack Overflow question on Python static code analysis tools</a> |
| 2324 | + contains comparison discussions of PyLint, PyChecker and PyFlakes.</p> |
| 2325 | +</li> |
| 2326 | +</ul> |
| 2327 | +<h3>What's next after obtaining code metrics?</h3> |
2284 | 2328 | <h1>Configuration Management</h1> |
2285 | 2329 | <p>Configuration management involves modifying servers from an existing state to |
2286 | 2330 | a desired state and automating how an application is deployed.</p> |
|