refactoring
"This code is already clean enough, so there's no need to refactor it (although you can add comments)."" It doesn't seem to get along with me refactoring all my life.
Kumappus However, I don't think I'll be able to get along with the person who wrote this note... I'm afraid I'll break their mentality if I'm not a little more flexible in the middle... I'm afraid I'll break their mentality if I'm not a more flexible person... voluntas Seriously, I wish I had started writing tests first. I guess I didn't know that testing and refactoring requires political power ... . voluntas and if you want to change something, get power. Since it is all about .... voluntas I think people often react harshly because even if there is trust, it is not directly related to profits. belpstw Personally, I remember reading this before. I can see both sides of the argument, but at the end of the day, it's a stand-up fight.
hrjn I've done endless refactoring discussions in my life, but I sometimes wish that conservatism extensibility would consider whether conservatism extensibility is really the issue. I'm not sure how much utility I get from refactoring code that I will rarely tinker with.
hrjn I think it would have been nice to have a proper discussion around this. hrjn It is easy to say that these people are not suitable for this kind of venture, but I think it is mostly due to the fact that they are not capable enough to discuss it properly. I don't think it's a good idea to call them incompetent. hrjn Rather, they should reflect deeply on their own costs when the people they hire, whatever they are, don't work. Because we're talking about failure to use money and human resources properly, that's it. That doesn't qualify you to hire or use people.
hrjn If you're at the member level, or if you're at the management level, let's say at the senior level, it's pointless to say, "He's not suited for venture business. If that's the case, it should be "I regret that I and the organization failed to recognize that the person was not the right person for our company. Even then, you should be able to explain at least, "We have budgeted for a certain level of retirement.
hrjn In the end, senior management's job is to "ensure that there are no problems" by taking into account all of these factors and comprehensively considering the company's hiring brand strength and salary competitiveness. I don't think it's the job of the senior management to ensure that there are no problems, but rather to make sure that there are no problems by comprehensively considering the company's hiring brand and salary competitiveness. yuiseki_ refactoring suddenly in a newly joined team, I want to play around and destroy software that I deeply don't know how to work right! It's like saying, "I don't know how to work properly! It's like saying "I want to play around and destroy software that I don't know how to work properly! yuiseki_ I feel that there is a major problem on the team's part in not showing one of the Good first issue to a new team member. The most recommended way to get around this is to try to understand the expected behavior of the software by touching it thoroughly, while looking for obvious bugs, summarizing and reporting the steps to reproduce them, and then fixing them so that they do not reproduce. tadsan I try to learn an unfamiliar code base by refactoring it as much as I like and breaking it down to see why it doesn't work the way I want it to (I don't expect it to be merged). I try to learn an unfamiliar code base by refactoring and breaking it down as much as I like until I'm comfortable with it, and then I try to figure out the distance between the ideal and the reality (I don't expect it to merge). tadsan Except for that kind of learning purpose, refactoring can end up being self-indulgent if you don't clarify the purpose of what you want to improve instead of just doing it out of the blue. There is a point. @zick_minoh: "I don't understand the source code and I want to refactor it" is a danger signal, and if someone who doesn't understand it well does it, it's a bad idea. It won't turn out well if someone who doesn't know better does it. It may reproduce the awfulness in a different direction. I hope you understand the source code well and can explain in detail which parts are particularly bad and what the benefits will be if you fix them. wtnabe Talking about small fry engineers, it seems like a lot of people think "first refactoring is a bad idea", but the situation where "it takes time to read what you are doing" is definitely "the I think it's the boss's negligence not to separate whether the jamming situation originates from the person himself or from the code. wtnabe It can be something like a dictionary or catalog without modifying the code. I think it is the responsibility of the organization and the bosses to leave the situation where there are elements in the product that worsen the development lead time. If you can call it a mega-venture, you can no longer rely on the memory of an individual. wtnabe It's a typical story of a good player and a good manager. Of course, there are some cases where two people are not a good fit for each other, but if it is a mega-venture, there should be some kind of effort on the part of the organization and human resources to discuss the aptitude of the people in this area. I think it is more common in small and medium-sized companies than in venture companies. wtnabe I guess my boss doesn't have a mentor or coach (I want one so badly). I think it's possible that if you're silenced by your arms, you can't separate and transfer this area well. sugimoto_kei If I joined an existing project, I would first think about how I could contribute to the existing members. If I don't know anything at all, I'll be a stipendiary or a chore person. Then I would increase the areas of contribution. If you are fixing code that others can read because you can't read it, it's normal to be let down. sugimoto_kei That has nothing to do with whether the idea of a clean fix to existing code is good or bad, does it? sugimoto_kei I think "learning" is a bit off as well. Internal politics and trust building skills... View more sugimoto_kei I sympathize with the situation, but if we don't think a little more about how it would have looked from their point of view, I think we're going to be repeating the same thing. I think it is likely to repeat itself. For example, when the senior said, "I don't have a sense of purpose," what was the "purpose"? I think it's obvious that it's not this person's purpose, but the team's purpose.
@kumagi: I don't understand the source code because I didn't know the context behind it and failed to build a mental model of the writer in my mind. The reason there is no understanding of refactoring is because we failed to take the step of gaining agreement on the changed structure.
I came to quit because I mistakenly thought I was the reason things weren't going the way I wanted them to.
@tanakahisateru: I've often said that no matter how many experienced people you hire with good general skills, their ability to read business-specific circumstances from uncommented code is only as good as the newbie. I often say that it's a waste of money to hire such a person with high general skills, but the ability to read the code without comments is only as good as a newcomer, so the cost of hiring such a person with the treatment as a good person is disappearing. It is a failure of organizational management to put an engineer in a superior position who is indifferent to this problem. @yseeker0: You know too much, 90% of ML related OSS is like this. "Hardly any comments are seen in the SQL or Python code." No proper granular function cutouts." No docstrings or type hints in the Python code."
@kiyuzu: this is a very common pattern for people who have walked the research field, around Fortran, R and Python. In most cases, the original paper or book is in README or git or another level, and it assumes you've read it.
I won't write it because I don't think I could come up with it from the code if I hadn't read it backwards.
If you ask, it will come up.
Polis for any thoughts that might be useful regarding the refactoring article.
---
This page is auto-translated from /nishio/リファクタリング using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I'm very happy to spread my thought to non-Japanese readers.