Electronic components to avoid in a product

In this latest video from John Teel, electronic components to avoid in a real product:

  1. USB Micro-B Connections → use USB-C instead
  2. Through-Hole Components → use SMD instead
  3. Barrel Jack Power Connections → use USB-C instead
    • Note: 5.5 × 2.1 mm (5.5×2.1mm) is the common DC barrel jack size, 5.5 × 2.5 mm (5.5×2.5mm) is less common
  4. Unshielded DC-DC Converter Inductors → use shielded inductors instead
  5. Cheap No-Name Electrolytic Capacitors → buy from reputable brand instead, or, better, switch to ceramic or polymer aluminium capacitors
    • If you want no surprises, stick to: Nichicon, Rubycon, Panasonic, Nippon Chemi-Con (aka United Chemi-Con), Elna
    • For professional/industrial designs, also consider: KEMET, Vishay, TDK
  6. Bare Pin Headers as Production Connectors → use connectors rated for your application instead
  7. Mechanical Relays → use solid state instead, for DC consider MOSFET
  8. Single-Source or End-of-Life Components → use widely available components instead
  9. Counterfeit of Clone ICs → buy from authorized distributors instead:
  10. Hobby-Grade Sensors → look for higher grade instead with I2C or SPI digital interfaces

I figured out how to avoid connascence of position

Instead of passing positional arguments to constructors (or functions), instead pass a list of value objects. The type of the value object will tell you the type of the value, so you don’t need to worry about the position. This is a super powerful means of supporting back-compat within your code base so you can move ahead at speed. Having value objects instead of simple types (bools, ints, floats, strings, etc) might have performance implications, but it also can be quite handy. So far so good for my use cases.