Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Removing commented out code - Yes or No?  YES!!
  • G30: Functions should do one thing
  • Creating a Coding Standard Convention Wiki
    • Find terminology used throughout the book that we want to use to identify.
    • Make sure we don't get too jargony - that it makes it hard for newcomers to come up to speed.
    • Make sure PR reviewers still continue to explain themselves rather than just throw out a term.
    • Hyperlinkable sections.
    • Create a confluence wiki - contributor guidelines.
  • Action Items:

 

March 30, 2016

Effective Python: Chapter 1 & 2

  • Item 17:
    • iter(foo) is iter(foo) – different from iter(foo) is foo?
  • Item 12:
    • Renzo disagrees
    • should we avoid else blocks.
    • "If a feature is rare and somewhat surprising, you shouldn't use it." – Akiva
    • Alternative is good: break loop out into a separate function
    • Use with comment to describe behavior.
  • Item 2:
    • double-underscore is not for private variables.
  • Item 3:
    • How to handle native strings?
      • from __future__ import unicode_literal & silence when needed (variable behavior between files (yuck))
      • lint native strings
      • have coercion functions
    • Needs engineering education
  • Item 15: Closures
    • Accessing non-locals: create a class
    • Use nonlocals as read only
  • Item 21: keyword only args
    • Nimisha does not recommend using **kwargs to enforce keyword-only args, because it makes the code ugly and hard to read
      • Sometimes it's useful anyway
  • Item 10: enumerate
    • Very useful
    • Takes initial index!  Cool!
  • Item 11: zip
    • Makes Akiva nervous, because it has weird behavior with different
    • zip_longest does the longer one (padding with Nones)
  • Item 5: slice
    • Is it bad that it is forgiving?
      • Sometimes it's useful
      • Maybe there should be a failfast version.
  • Item 14: Avoid None
    • not var is a source of bugs because None and 0 are both false
    • It's fairly useful for containers