273: Off the Topic of My Jammies episode artwork

EPISODE · Jan 11, 2019 · 59 MIN

273: Off the Topic of My Jammies

from Embedded · host Logical Elegance

Chris and Elecia chat with each other about the new year. All is fine until she starts quizzing him about some language details of his new project. Many object-oriented resources suggest using composition (has-a) over inheritance (is-a-type-of) (wiki). Where do swift extensions fit in? It seems to me (Elecia here) that extension is invisible composition that allows adding of functions. For example, say you want a TiltSensor and you already have an ImuSensor object so  you need to add a function for TiltComputation. You could make the TiltSensor contain an ImuSensor (composition). You call the ImuSensor functions to check the readings when running TiltComputation function. You don't need to know what is in ImuSensor, only what the API is. You could have TiltSensor be a child class of ImuSensor (inheritance) so that TiltSensor responds to all ImuSensor functions as well as its new TiltComputation function. You could use the variables in ImuSensor directly for TiltCompulation but you will need to know what is in ImuSensor for that to work. Or, in Swift, you could have TiltSensor be an extension of ImuSensor. Except it wouldn't be called TiltSensor, it would be part of ImuSensor: any file that had access to your extensions would be able to create an ImuSensor instance and call TiltComputation as if it was part of the original ImuSensor API. The TiltComputation function would only have access to its extension's variables and ImuSensor's API. You get to add new functionality without breaking backward compatibility. Some more resources on this topic: Composing Types in Swift Swift Language Guide: Extensions Swift Programming: The Big Nerd Ranch Guide by Matthew Mathias and John Gallagher iOS Programming: The Big Nerd Ranch Guide by Christian Keur and Aaron Hillegass LinkedIn Learning Courses Blender Beta with EEVEE renderer The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin Code Complete: A Practical Handbook of Software Construction by Steve McConnell Gelly Roll Glitter Pens (by Sakura) Google Podcast Link (or see the Subscribe page)

Episode metadata supplied by the publisher feed · Published Jan 11, 2019

Embed this episode

NOW PLAYING

273: Off the Topic of My Jammies

0:00 59:47

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

No similar episodes found.

Frequently Asked Questions

How long is this episode of Embedded?

This episode is 59 minutes long.

When was this Embedded episode published?

This episode was published on January 11, 2019.

Can I download this Embedded episode?

Yes. Use the download control on the episode player to save the publisher-provided media file.
URL copied to clipboard!