New Video: Design Mistakes We All Regret Later (Bob Keeney)

Watch the video here.

XDC 2019, speaker Bob Keeney
We all make mistakes when it comes to projects - it’s part of the learning curve and it’s completely natural, as long as you learn from those mistakes. Bob Keeney from BKeeney Software has been developing in Xojo for over 17 years. Along the way he’s made plenty of mistakes and seen even more that he’s had to fix. In this session, we’ll go over some of the most common mistakes and how to move beyond them. We’ll cover coding, design, IDE, specific platform mistakes, database mistakes, and even business mistakes.

OMG, this seems like a lifetime ago. I should have opted for a 90 minute session as I held back a lot of topics. :slight_smile:

Also interested in your 90 minutes session. Great presentation, thanks.

The 2019 Video is a little outdated as it’s using classic API so some of my major topics, like not checking for the Database.Error after every transaction aren’t true in API 2. Since I’m not using API 2.0 for any project, yet, I’m not up on those mistakes yet.

liked it ! thanks.
I make some of these mistakes, but globaly I’m confident with my programing methods.

You are making things harder for the next person though.

If you cant pepper your code with bad code how would they ever learn to recognize bad code ?
How the heck else would they learn ? :stuck_out_tongue:

Well, there is something to be said about consistency. :slight_smile:

The capability to make mistakes is infinite. At least we can’t do something like

Always something to learn Bob. As I have aged, the “later me” can be only a few days removed from when I wrote code so there is a tight feedback loop set up to reinforce the need to write clear, commented code. Enjoyed,

Write code so your future self doesn’t feel the need to invent a time machine to come back and throttle you.

Prompted by the Bob video, I used an enum for the first time in my code. Under like circumstances in the past, I have always made do with an integer. Progress.

Well some of is are still using Classic API for now and until API 2 becomes as reliable as the classic, as well as the fact I have almost 20 years worth of old code!

I mostly use Sqlite… I subclassed it to always check for errors and raise an exception if there was one… It has been many years since i checked a RecordSet for NIL in an If statement!

I also learned the hard way that single line If statements are a pain when debugging. After about the hundredth time it was an issue I stopped using them so much… I can be a slow learner! :wink:


There are time I use modules and submodules for string or other non integer constants as it lets me use autocomplete that only shows me the set of possibilities i want without getting a huge autocomplete with a lot of unrelated stuff…

I wish I could a constant goops in class like enums… Oh well.


@Bob Keeney enjoyed the video.

Great video, thanks Bob and thanks Xojo for sharing it

Enums are explicit and the compiler will help you.

Integers have to be value checked to make sure they’re in the valid range and the compiler is happy with any old integer.

Of all my gripes about API 2, one that I’m most happy is that they implemented the switchover to enums from constants.

and it is better to use enum name = 123 instead of intern hidden auto generated values.
it happen that you edit the enum later.
see screen video in 59996 - Issue with Enums

Very good, thanks for sharing!

I think this was the presentation that I enjoyed the most out of all the presentations I’ve done at various XDC’s and other Xojo events.