GET /api/v2/video/366
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "PyCon US 2011", "language": "English", "slug": "pycon-2011--api-design--lessons-learned", "speakers": [ "Raymond Hettinger" ], "tags": [ "api", "apidesign", "cpython", "pycon", "pycon2011" ], "id": 366, "state": 1, "title": "API Design: Lessons Learned", "summary": "API lessons learned from a decade of core Python development.\n\n", "description": "Share the lessons learned from a decade of core Python development, what\nworked and what didn't. Look at the development process and thinking behind\nsome of Python's successful APIs and ones that leave something to be desired.\nLearn general principles for designing a good API for public consumption.\n\nHear the story and principles behind the design of Python's \"in\" operator, the\ndevelopment of deques, and the evolution of the set API.\n\nExamine the principles and story behind the development of the named tuple\nAPI. Learn about unforeseen use cases and a bug that made it to production.\n\nDiscuss the decimal module's API challenge -- adhering to a published\nstandard. Talk about the Queue module's framework style and how the API was\nrefactored.\n\nDiscuss what we've learned about naming functions and methods. Look at the\ni-naming convention in itertools, camelcase oddities, the proposed Italian\nname for enumerate, and vaguely named methods like assertItemsEqual.\n\nLearn about Guido's ideas on when to add flags to method signatures. Recap his\nthoughts on the problems with the percent formatting operator. Then hear\nRaymond's advice on packaging, hierarchies, and nested name spaces.\n\nSee how to use documentation to mitigate API problems using examples from\nregular expressions, decimal, tokenize, sorting.\n\n", "quality_notes": "", "copyright_text": "Creative Commons Attribution-NonCommercial-ShareAlike 3.0", "embed": "", "thumbnail_url": "", "duration": null, "video_ogv_length": 262408868, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": "", "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": null, "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": null, "video_flv_download_only": false, "source_url": "", "whiteboard": "", "recorded": "2011-03-11", "added": "2012-02-23T04:20:00", "updated": "2014-04-08T20:28:27.948" }