218

Hello again, I'm in a situation where the one the senior devs on my team just isn't following best practices we laid out in our internal documentation, nor the generally agreed best practices for react; his code works mind you, but as a a team working on a client piece I'm not super comfortable with something so fragile being passed to the client.

He also doesn't like unit testing and only includes minimal smoke tests, often times he writes his components in ways that will break existing unit tests (there is a caveat that one of the components which is breaking is super fragile; he also led the creation of that one.) But then leaves me to fix it during PR approval.

It's weird because I literally went through most of the same training in company with him on best practices and TDD, but he just seems to ignore it.

I'm not super comfortable approving his work, but its functional and I don't want to hold up sprints,but I'm keenly aware that it could make things really messy whenbwe leave and the client begins to handle it on their own.

What are y'alls thoughts on this, is this sort of thing common?

you are viewing a single comment's thread
view the rest of the comments
[-] undefined@programming.dev 3 points 1 year ago

I've been dealing with similar things over the last few months.

Went through an org restructure, joined a different team and our tech lead was relatively new to the company but has 20yrs experience, sounded good!

Wrong.

Poor communication skills, endless pointless wrappers over everything and even simple things are wildly over-engineered with zero documentation, poor naming and zero tests to verify his homebrew solutions actually work or not.

We go live in 2 months for a nation-wide release. Send help.

I wonder, what kind of wrappers? I have seen some wrappers that seem useless at first, but they shine when we do a refactor because the wrappers concentrate logic in one place.

[-] undefined@programming.dev 2 points 1 year ago

the pointless and poorly named kind.

Here's one example of many:

class Group extends StatelessWidget {
  final CrossAxisAlignment crossAxisAlignment;
  final List children;

  const Group({
    super.key,
    this.crossAxisAlignment = CrossAxisAlignment.stretch,
    required this.children,
  });

  @override
  Widget build(BuildContext context) => Column(
        mainAxisSize: MainAxisSize.min,
        crossAxisAlignment: crossAxisAlignment,
        children: children,
      );
}

For those unfamiliar with Flutter, Column is your go-to out of the box widget that's already flexible and simple enough to implement and customize. Group exists purely to set a cross axis alignment value, and by name provides no indication as to what it does or how it lays out its children.

All that just to save one line to override the default cross axis alignment...

this post was submitted on 01 Aug 2023
218 points (98.7% liked)

Programming

16968 readers
269 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS