273: Off the Topic of My Jammies
Embedded11 Tammi 2019

273: Off the Topic of My Jammies

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:

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)

Jaksot(567)

512: What if I Didn't Stop?

512: What if I Didn't Stop?

Katherine "Smalls" Connell spoke with us about making thin and flexible circuits, making stretchable electronics, and running a successful Kickstarter. Katherine's Kickstarter: Sprite Lights LED Body...

16 Loka 20251h 5min

511: Forty Trillion Divides

511: Forty Trillion Divides

Chris and Elecia talk about the show overflowing to another bit, fight over vim vs nano, consider awards, discuss writing (and self-motivation), consider linear algebra on AI cores, encourage remote d...

2 Loka 20251h 22min

510: The Secret Chip

510: The Secret Chip

Christina Cyr spoke with us about building cell phones, entrepreneurship, social purpose corporations, awards, lithium recycling, and her interesting career path. We talked about Christina's Cyrcle P...

19 Syys 20251h 4min

509: Swarmed by Engineers

509: Swarmed by Engineers

Steve Hinch wrote a book about engineering, innovation, and business. He shares decades of wisdom gleaned from his career at Hewlett-Packard and Agilent as an engineer, manager, marketing director, an...

5 Syys 20251h 13min

508: Descartes' Demon

508: Descartes' Demon

William Griffin spoke to us about hardware-in-the-loop testing, simulation, terminology, learning complex topics, and books. We don't usually expand upon the show title but Wikipedia has a rabbit hole...

21 Elo 20251h 22min

507: Turn Our Data Into Predators

507: Turn Our Data Into Predators

Chris and Elecia chat about books, courses, alternate podcasts, electronics, statistics, kidnapping Roo, and journaling failures. The Embedded Patreon book club is reading Data-Driven Science and Eng...

7 Elo 20251h 14min

506: How Do I Fit a Whale Into an Apartment Building?

506: How Do I Fit a Whale Into an Apartment Building?

Dmitry Grinberg joined us to talk about running Linux on small microprocessors (physically small and/or 4-bit). Dmitry does this by emulating a MIPS processor. Boot times vary between minutes and days...

25 Heinä 20251h 2min

505: Potato in a Number Field

505: Potato in a Number Field

We spoke with Peter Griffin about Jumperless Breadboards, no-install GUI development, Excel, and puppies. Jumperless Breadboard at CrowdSupply Colab GUI for Jumperless Breadboard Website GUI for ...

10 Heinä 20251h 18min

Suosittua kategoriassa Tiede

tiedekulma-podcast
rss-mita-tulisi-tietaa
rss-poliisin-mieli
docemilia
radio-antro
utelias-mieli
filocast-filosofian-perusteet
rss-sosiopodi
ihanat-ipanat
mielipaivakirja
rss-bios-podcast
rss-duodecim-lehti
rss-ammamafia
rss-laakaripodi
rss-opeklubi