@@ -2270,17 +2270,61 @@ <h2>Hosted CI services</h2>
22702270< h2 > Continuous integration resources</ h2 >
22712271< ul >
22722272< 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 >
22742274 is a classic detailed article by Martin Fowler on the concepts behind CI
22752275 and how to implement it.</ p >
22762276</ li >
22772277< 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 >
22792279 is a retrospective on learning CI from a Rackspace intern on how she learned
22802280 the subject.</ p >
22812281</ li >
22822282</ ul >
22832283< 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 >
22842328 < h1 > Configuration Management</ h1 >
22852329< p > Configuration management involves modifying servers from an existing state to
22862330a desired state and automating how an application is deployed.</ p >
0 commit comments