We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Migrating existing codesbases to using type annotations

00:00

Formal Metadata

Title
Migrating existing codesbases to using type annotations
Alternative Title
Type annotations with larger codebases
Title of Series
Number of Parts
132
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
You've heard about type annotations, you know they help reduce bugs and improve documentation especially for large codebases, and you've attended an introductory talk or read a tutorial about using them. But how do you get started using them with your big, existing codebase? How do you make sure your colleagues will be annotating new code they write - or existing code they're changing? And how do you get around some of the issues you might run into when using the still-beta type checker mypy on your codebase? This talk will start where the typical introductory Python type annotation talks end and discuss the real-world challenges when starting to annotate types with an existing codebase of tens or hundreds of thousands of lines of code. I'll walk you through best practices learned from doing just that at Yelp, telling you about some of the roadblocks we hit (and how we got past them). We'll also take a look at: - how you can get the most out of type annotations even with non-annotated third-party libraries - how to deal with code patterns that currently don't always work well with annotations - when the only way to get proper type checking is through refactoring your code.
Service (economics)Error messageParameter (computer programming)CodeFunction (mathematics)Run time (program lifecycle phase)Software bugComputer configurationMereologySource codeError messageFormal languageException handlingIntegerFunctional (mathematics)CodeSoftware testingBoundary value problemHookingSuite (music)Matching (graph theory)Configuration spaceBitService (economics)SoftwareDifferent (Kate Ryan album)Parameter (computer programming)CASE <Informatik>Product (business)Multiplication signSoftware developerDefault (computer science)String (computer science)FacebookGoodness of fitInheritance (object-oriented programming)Content (media)Military baseLevel (video gaming)Computer fileOpen sourceDigital photographyHypermediaFile formatAreaAttribute grammarCore dumpObject (grammar)Standard deviationFront and back endsQuicksortRevision controlMobile appSlide ruleExpert systemScaling (geometry)WordWebsiteLocal ringElectronic mailing list2 (number)1 (number)Installation artComputer animation
MassMereologySuite (music)Software testingCodeRun time (program lifecycle phase)Digital photographyError messageFunction (mathematics)Parameter (computer programming)TupleStrut2 (number)MereologySoftware testingInformationInstance (computer science)Function (mathematics)Suite (music)String (computer science)Software developerForm (programming)Software bugMultiplication signCodeBitResultantTupleSource codeGoodness of fitData structureRun time (program lifecycle phase)Social classLine (geometry)WhiteboardData dictionaryConfiguration spaceComputer configurationMappingField (computer science)Address spaceFunctional (mathematics)Fluid staticsSound effectFigurate numberHash functionDigital photographyDifferent (Kate Ryan album)FrustrationProduct (business)Message passingFormal languageInsertion lossSlide ruleCASE <Informatik>Logic gateKey (cryptography)Inheritance (object-oriented programming)Exception handlingParameter (computer programming)Similarity (geometry)Dynamical systemOnline helpComputer fileTable (information)Generic programmingArrow of timeProjective planeComputer animation
Variable (mathematics)StrutError messageInterior (topology)Price indexTupleDescriptive statisticsRecursionService (economics)Artificial neural networkSoftware testingParameter (computer programming)Social classClient (computing)CodeData structureTelecommunicationComputer networkBoundary value problemCodeIntegerSoftware bugQuicksortBit rateEndliche ModelltheorieNetwork topologyString (computer science)CASE <Informatik>SoftwareCategory of beingSlide ruleContext awarenessArrow of timeConstructor (object-oriented programming)Communications protocolField (computer science)Object (grammar)Functional (mathematics)Revision controlSoftware testingError messageInformationBitInheritance (object-oriented programming)Client (computing)System callSocial classDampingCasting (performing arts)Insertion lossDynamical systemAttribute grammarGraph (mathematics)Data structureMereologyParameter (computer programming)Service (economics)Web serviceInstance (computer science)Library (computing)Interior (topology)Multiplication signBusiness modelOpen sourceWrapper (data mining)Open setNumberUniform resource locatorDependent and independent variablesTypprüfungBlogHypermediaBusiness objectRight angleLatent heatCartesian coordinate systemRecursionLine (geometry)CountingTelecommunicationSubject indexingTupleDataflowBoundary value problemGodOnline helpHoaxFlow separationMessage passingComputer animation
Musical ensembleSlide ruleComputer animation
Transcript: English(auto-generated)