Weekly Dev Tips
By Steve Smith (@ardalis)
To listen to an audio podcast, mouse over the title and click Play. Open iTunes to download and subscribe to podcasts.
Weekly Dev Tips offers a variety of technical and career tips for software developers. Each tip is quick and to the point, describing a problem and one or more ways to solve that problem. I don't expect every tip to be useful to every developer, but I hope you'll find enough of them valuable to make listening worth your time. Hosted by experienced software architect, trainer, and entrepreneur Steve Smith, also known online as @ardalis. If you find these useful, you may also want to get a free software development tip delivered to your inbox every Wednesday from ardalis.com/tips.
||Clean039: Better Code Reviews||I wrote an article about a year ago about Positive Reinforcement in Code Reviews. It generated a lot of feedback (on twitter if not in the article itself), so I thought I'd dedicate a Weekly Dev Tips episode to the topic.||2/10/2019||Free||View in iTunes|
||Clean038: How do you get so much done?||Occasionally I get asked questions like this one that came from a LinkedIn connection. He wrote, "how in the world do you accomplish so much? Would love to know the strategy." I'm flattered of course, but it's not the first time someone's claimed to be||2/3/2019||Free||View in iTunes|
||Clean037: Debugging Tips||This week's tip is by request via twitter from Bernard FitzGerald (@bernimfitz) who wrote "How about an episode devoted to effective debugging? I think that would be interesting to hear your methodology of tracking down a bug." Well, Bernard, this bug's||1/27/2019||Free||View in iTunes|
||Clean036: Exceptions and Guard Clauses||This week's tip is on the topic guard clauses and exceptions. Specifically, whether and when it's appropriate to throw an exception in response to certain kinds of inputs.||12/30/2018||Free||View in iTunes|
||Clean035: Why is Immutability Desirable?||This week's tip is on the topic of immutability, and why it's often considered a good thing for your data structures.||12/23/2018||Free||View in iTunes|
||Clean034: Avoid Lazy Loading in ASP.NET Apps||This week's tip is on the topic of lazy loading using Entity Framework or EF Core in ASP.NET and ASP.NET Core apps. Spoiler alert: don't do it. Keep listening to hear why.||12/16/2018||Free||View in iTunes|
||Clean033: Use the Right Object Lifetime||This week we talk about object lifetimes, why they matter, and how to choose the right one. We'll focus a little bit on Entity Framework since it's very popular and also very frequently misconfigured.||12/9/2018||Free||View in iTunes|
||Clean032: How much do you make?||This week we talk about money. Specifically, how do you feel about discussing your salary with your coworkers and peers? Why do you feel the way you do?||11/11/2018||Free||View in iTunes|
||Clean031: Breaking Bad Coding Habits||This week guest Joe Zack talks about how to apply the power of habit to break bad coding habits.||10/21/2018||Free||View in iTunes|
||Clean030: On Code Smells||Code Smells, or bad smells in code, are discussed in the book, Refactoring. Martin Fowler and Kent Beck discuss them and how they can be used to identify potential places to refactor in your code.||10/14/2018||Free||View in iTunes|
||Clean029: Shared Kernel as a Package||Code shared between applications within an organization is typically referred to as a shared kernel in domain-driven design. This week's tip discusses this approach and how best to do the sharing.||10/7/2018||Free||View in iTunes|
||Clean028: Applying Pain Driven Development to Patterns||This week we talk about specific ways you can apply my strategy of Pain Driven Development to the use of design patterns. This is an excerpt from my Design Pattern Mastery presentation that goes into more detail on design patterns.||9/30/2018||Free||View in iTunes|
||Clean027: How Do You Even Know This Crap?||This week we have a special guest offering a dev tip - please welcome Scott Hanselman who blogs at Hanselman.com and has a great long-running podcast, Hanselminutes. Scott's going to share with us some tips on how you can leverage your experience to kno||9/9/2018||Free||View in iTunes|
||Clean026: Layering Patterns on Repositories||This week we're sticking to the patterns and repositories theme. I started down the design patterns path with Episode 17 so start at least from there if you want to listen to the sequence more-or-less in order. In this episode, we'll look at some combin||8/26/2018||Free||View in iTunes|
||Clean025: What Good is a Repository||This week I'm following up on last week's tip about the Repository pattern. A listener pointed out to me that I never directly answered the question posed in the last episode of "Do I need a repository?" I'll be sure to do so here.||7/1/2018||Free||View in iTunes|
||Clean024: Do I Need a Repository?||This week we'll answer this extremely common question about the Repository pattern, and when you should think about using it.||6/10/2018||Free||View in iTunes|
||Clean023: Domain Events - After Persistence||The previous tip talked about domain events that fire before persistence. This week we'll look at another kind of domain event that should typically only fire after persistence.||6/3/2018||Free||View in iTunes|
||Clean022: Domain Events - Before Persistence||Domain Events are a DDD design pattern that in my experience can really improve the design of complex applications. In this episode I describe specifically how you would benefit from raising and handling these events prior to persisting the state of you||4/29/2018||Free||View in iTunes|
||Clean021: Breadcrumbs and Troubleshooting||This week I'm taking a break from design patterns to talk about a useful skill to prevent you and your team having to reinvent the wheel when it comes to troubleshooting problems or working through new tools or frameworks.||4/22/2018||Free||View in iTunes|
||Clean020: Abstraction Levels and Authorization||Working at too low of an abstraction level is a common source of duplication and technical debt. A very common culprit in this area is authorization.||3/11/2018||Free||View in iTunes|
||Clean019: Learn the Strategy Pattern||The Strategy design pattern is one of the most fundamental and commonly-used patterns in modern object-oriented design. Take some time to make sure you're proficient with it.||2/25/2018||Free||View in iTunes|
||Clean018: Repository Tip - Encapsulate Query Logic||The Repository design pattern is one of the most popular patterns in .NET development today. However, depending on its specific implementation, its benefits to the system's design may vary. One thing to watch out for is query logic leaking out of the re||2/18/2018||Free||View in iTunes|
||Clean017: On Design Patterns||Design Patterns offer well-known, proven approaches to common problems or situations in software application development. Having a broad knowledge of the existence of patterns, and at least a few you're proficient in, can dramatically improve your produ||2/4/2018||Free||View in iTunes|
||Clean016: Becoming a T-Shaped Developer||It's difficult to differentiate yourself if you don't have a single area of expertise. Either you'll have difficulty landing work or you'll be forced to compete with a host of other non-specialists on rate. By becoming a T-shaped developer, you can mark||1/28/2018||Free||View in iTunes|
||Clean015: Maintain Legacy Code with New Code||Many developers work in legacy codebases, which are notoriously difficult to test and maintain in many cases. One way you can address these issues is by trying to maximize the use of new, better designed constructs in the code you add to the system.||1/7/2018||Free||View in iTunes|
||Clean014: Smarter Enumerations||Enumerations are a very primitive type that are frequently overused. In many scenarios, actual objects are a better choice.||12/10/2017||Free||View in iTunes|
||Clean013: Be Thankful and Show Gratitude||It's highly unlikely that you're a software developer who works in a vacuum. Here are a few tips for showing your gratitude to the people, companies, products, and tools that help you to be successful.||12/3/2017||Free||View in iTunes|
||Clean012: Primitive Obsession||Primitive Obsession describes code in which the design relies too heavily on primitive types, rather than solution-specific abstractions. It often results in more verbose code with more duplication of logic, since logic cannot be embedded with the primi||11/19/2017||Free||View in iTunes|
||Clean011: Encapsulating Collection Properties||Encapsulation is a key aspect of object-oriented programming and software engineering. Unfortunately, many systems fail to properly encapsulate collection properties, resulting in reduced quality.||11/12/2017||Free||View in iTunes|
||Clean010: Pain Driven Development||Many of you have probably heard of various "DD" approaches to writing software. There's TDD, or Test Driven Development. There's BDD, for Behavior Driven Development. In this tip, I want to introduce you to another one, PDD: Pain Driven Development.||11/5/2017||Free||View in iTunes|
||Clean009: Data Transfer Objects (part 2)||One classification of objects in many applications is the Data Transfer Object, or DTO. Here are some more tips that may help you avoid problems when using these objects.||10/15/2017||Free||View in iTunes|
||Clean008: Data Transfer Objects (part 1)||One classification of objects in many applications is the Data Transfer Object, or DTO. Here are some tips that may help you avoid problems when using these objects.||10/8/2017||Free||View in iTunes|
||Clean007: Prefer Custom Exceptions||Low level built-in exception types offer little context and are much harder to diagnose than custom exceptions that can use the language of the model or application.||9/24/2017||Free||View in iTunes|
||Clean006: Make It Work. Make It Right. Make It Fast.||Don't fall into the premature optimization trap. Follow this sequence when developing new features.||9/17/2017||Free||View in iTunes|
||Clean005: New is Glue||Be wary of the 'new' keyword in your code, and recognize the decision you're making by using it.||9/10/2017||Free||View in iTunes|
||Clean004: Guard Clauses||Your methods should fail fast, if doing so can short-circuit their execution. Guard clauses are a programming technique that enables this behavior, resulting in smaller, simpler functions.||9/3/2017||Free||View in iTunes|
||Clean003: Listen Faster||If you can do it without getting left behind, listen or watch educational content at a higher speed.||8/27/2017||Free||View in iTunes|
||Clean002: Check In Often||As a developer, you should be using source control. You should probably be using distributed source control. And you should check in, probably more often than you think.||8/20/2017||Free||View in iTunes|
||Clean001: Overview of Weekly Dev Tips||What is this podcast about, who is it for, and how can you participate in it?||8/13/2017||Free||View in iTunes|
Very informative and great content!
As a C# developer these tips have been extremely helpful. Steve is able to explain these concepts clearly. I recommend this podcast to any object oriented programmers!
Concice and Insightful...Consightful?
I was initially worried that this podcast would be a bit "lite" when I saw how short the episodes were, but I'm so glad I picked it up because the episodes are laser-focused and packed tight with wisdom. Big thanks to Steve for sharing his experience with us!
Simple but profound tips
Steve does an excellent job of cutting through the hundred ways of doing something to the best-practice way. I’ve got my whole team listening and I’m certain the tips learned here will keep is out of trouble down the road.