Categories
Programming

A Brief Rant about TDD

I’ve been giving this talk about unit testing UI code lately and of course when you talk about testing, TDD (test driven development) keeps coming up. The question ranges from “have you embraced TDD as the One True Way Of Testing, and if not why not because you’re doing it wrong” and “I have heard that […]

Categories
Programming

Over-Engineering Culture, Hacking, and Complexity

I was talking to a fellow escapee of The Conglomerate and we were talking about over-engineering culture. In the sense of “lol things built because it was time for someone to get promoted” and in the sense of complexity. The thing about layers and layers of (debatably necessary) abstractions is that they make things that should […]

Categories
Programming

Refactoring and Legacy Code

The first iOS project I worked on was a big mess that shipped without unit tests. It was a project that had had a number of different directions taken from a product perspective… and the code was like an archeological record of them. Since then I’ve worked on various things, most of which have been greenfield […]

Categories
Presentation Programming

Giving a Talk and a Workshop – in Two Days

Submitting I have two ways of submitting to CfPs. The first: a carefully written abstract of a talk that I have already prepped, and probably already given. The second: something that I have already been exploring in blog posts, collected into a “here is this thing that I think I could talk about, but I’m […]

Categories
Programming

Some Thoughts on Mocking

    When do we use mocks and when shouldn’t we? Some thoughts: Don’t Mock Data Structures We wouldn’t mock an NSArray or an NSDictionary, so why would we mock our own data structures? Data structures should be simple and well tested, so we can trust them to behave as they should. It will be […]

Categories
Programming WISE women in computer science

Discoveries About OSS Culture

I was hanging out with an OSS-dude (OSS = Open Source Software) for a while, and I learned a couple of things. Firstly – don’t try and buy committed OSS types books. It’s a complete nightmare. Secondly – I’ve reached a better understanding of harassment and open source. And particularly the pushback, which comes from […]

Categories
mobile Programming

Unit Testing on iOS: Beyond the Model

I want to introduce you to my app, it’s called Show and Hide. It’s an image processing app. This is V1, so the UI is pretty simple, so I think it’s a reasonable example. Briefly, what the app does is it detects the dominant color in an image, and creates these cool partially colored images […]

Categories
mobile Programming

Launching! iOS Unit Testing: Beyond the Model

I’m super excited to release something that I’ve been working on for a while. Unit testing on iOS is… not common. And part of the problem is that people don’t know where to start. It can be overwhelming. Building on my years of experience leading iOS apps with over 80% test coverage, including at Google, […]

Categories
Presentation Programming

iOSNext: Paul Ardeleanu – 10 Reasons You’ll Love Swift

My notes from Paul‘s talk at iOSNext. TIOBE Index for Nov 2014 – Swift is at #18. A language that is 5 months old – more popular than Scala, Haskell… Fortran! Proven to be quite a hit with developers, and there are reasons for that. Why do we have a new programming language? What is […]

Categories
Programming

Four Reasons Unit Testing Needn’t Be That Time-Consuming

On my mind this week because I’m giving a workshop and a talk on unit testing UI code on iOS. Tests as Documentation. You think you remember what you did and why… but you don’t. Replace debugging. I almost never use the debugger. If something isn’t working as expected, I just start writing tests and figuring out […]