============================ Confessions of Joe Developer ============================ Presented by Daniel Greenfeld ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. I'm stupid: * Can't figure things out * If I get stuck for more than 30 minutes: * Find libraries that do it for me. * Ask on Twitter for answers. * SO is good, but watch out for trolls. * IRC can be good, again, trolls. * Can't remember things * Documentation makes me look good. * Docstrings are awesome. * Learn you some REStructuredText * Write down even the slide bullets. * Sphinx makes me and my code look good. * Ask the dumbest questions 2. I'm lazy: * Don't want to do anything twice * If I write the same code twice, I stick it in a method. * Then stick the function into a utils module. * Then I put it up on Github so I don't lose it. * Don't want to debug code that worked before * Manually testing code by watching it run is hard... * ... and boring ... * ... and hence is error prone. * Meaning you have to do more work. * **Are you testing enough?** * coverage.py is great * django-coverage runs coverage.py for Django * But you only want to test your own apps. Refer to code on Github for how. * Look at how he does INSTALLED_APPS * Don't want to upload ZIP files per documentation change 3. Don't be smart and lazy 4. Technical Debt * Postponed activities: * Documentation * unshared knowledge * Tests * attending to TODO statements * Code too confusing to be modified easily .. A positive trait good tech leads often look for is the ability to ask questions. Links ----- * http://bit.ly/audreyr-sphinx * https://github.com/pydanny/django-party-pack/ Q&A --- 1. Do you try to understand the 3rd party code or isolate it? * Pip & Virtualenv to isolate it.