This book is used as an example to discuss the learning of software thoughts.

Source: Internet
Author: User

Thoughts on software development-ThoughtWorks (first release of china-pub) (experiences from software thought leaders ). Look at the two chapters of the trial: the fifth chapter is full of shit, but the fifth chapter is invisible.

One problem in Chapter 5 is that most of the issues discussed are virtual: for example, the single-order method mentioned in the comparison between Java and Ruby. There is no truth in such a topic, but the author thinks it (yes, "it") is right. But this is not harmful. The following example shows where the shit comes from.

Take a closer look at the isBlank function in Java, including the null judgment, the length judgment, and whether each element (character here) is a special form (space here) in fact, the logic of the isBlank function can be regarded as a special version of a general logic. Therefore, from this perspective, it should not appear on the String (especially the first half of the logic ).

Although the Java version he provided does not reflect some versatility (this is his own problem ), this is not the reason [1] for the "Everything is object" method in Ruby [1 ]. This is similar to someList. length or len (someList) Debate; a person has a little experience in generics or really understands what is called abstraction (ah, it's really interesting to mention mathematics later in functional terms ), it won't be as easy as the author's conclusion.

(It should be emphasized that this post is not about which method is more correct and "true ". If anyone thinks that someList. length is the only correct abstract method, we will discuss it another day .)

What I am opposed to here is not object-oriented or anything specific. Each method that can be popular for a long time must have its own characteristics, applicable scenarios, and a set of philosophy regardless of the stream. Moreover, I firmly defend everyone's right to speak.

However, in view of some people's packaging for their own companies and employees, I seriously despise self-affirmation (essentially a kind of anesthesia), earning money (well-known to be good) and loose behavior. This is because he is pretending to be a fan of the public. A Skeptical discussion should not be regarded as an accurate knowledge. In some people's tone, it should be instilled in an inappropriate way to the beginners who want to receive all orders, just because these people think they are right. [2]

There is nothing right or wrong with the topic of multi-language programming in this chapter. However, from the perspective of Self-thinking that can guide others, there is a certain topic, repeat some things that you are not really knowledgeable about (because this is your only "Knowledge") and tell them all about the plausible ideas. This is no different from organ waste.

Let's look at the beginning of this chapter: the author's position in a company is called "Opinion Leader" (let's look at the title of china-pub, WTF ), I think it is appropriate to call this position "Dog asshole. Then I quoted the complete nonsense of the second, "after X years, everyone uses SmallTalk programming, no matter what they call it" cloud. Those who sell dog skin plaster should have a taste of city management.

Chapter 4 has made a down-to-earth, well-spoken and useful discussion. On the premise that testing is inevitable (this topic is not discussed here), this article comprehensively introduces a testing system in a short space, in addition, I clicked on what the author thinks the reader should know (in contrast, the first article deviated from the topic ). Although I personally disagree with (some specific) tests to ensure correctness, I still learned a lot. On the other hand, the author has not declared the question "who is more.

There is a big difference between the authors in the same packaging and in the same company. In our learning process, we should pay attention to it. When a person, a book, or a set of ideas are taken before us, as a vulnerable group, it is easy to be put in the shackles of many irrelevant words and preconceived ideas, from the point of view of the stupid things I have committed over the years, it is relatively difficult to get rid of these shackles.

How do I do it now? All Over-sales personnel put them on the black list; those who have not developed "really difficult" products, don't think about my white list. As for what is really difficult, it depends on your own judgment. If we open our eyes and don't write only some program for a lifetime because of the living environment, we tend to write the same program, but the guy with a higher position will know.

Note a misunderstanding: Because the guy with a higher position is engaged in the same field as himself, since I am also engaged in this field, his experience is more useful than that in another field, even if that field requires higher skills. This idea is harmful because a person with a low level of cognition is more likely to adopt a wrong understanding in any field. In a relatively easy field, wrong understanding is less harmful, it may not be recognized [3 ].

Here is another example: Michael Feathers. He is a turning point for me; dissatisfaction with the Packaged Technology stars has exploded on him. Not only is "the art of code modification" [4] an honor for putting him on the blacklist of the monks, but I also realized that building an evaluation system is necessary; this society forces us to rely on ourselves.

One method is after the first craze for someone, a book, or a method (this is sometimes inevitable and increases the learning efficiency to a certain extent) by forcible cooling, the system quickly gives a true evaluation and examines it with obvious suspicion: given the level of the learner's learning objectives, if you don't have a sense of embarrassment, it's hard to get immune to seemingly fake things.

How can this temperature decrease? The author will take into account both positive and negative aspects comprehensively and fairly, but for many "Masters", we must find the negative elements by ourselves.

Unfortunately, no matter whether we look for a specific negative factor or the ability to establish an evaluation system, there is indeed a huge difference between different people [5]; limited by the specific circumstances of each of us, it is also difficult to improve in a short time. Extensive (but not necessarily large-scale) reading is a satisfactory solution [6, for example, a short comment on the Type System on the object type system helps me establish my own views (not the same as that on the object type system.

However, we are glad that our vision will grow higher and wider through the practical process. I believe that everyone can improve to an appropriate level in the first half of their careers.

When I doubt my evaluation system, the white list is a very important stick. In my experience, there are very few white list authors who mislead people. When I first heard that Linus had targeted, I began to reflect on it, but it was not enough. At that time, I only kept a reserved attitude. However, since then, I have learned more and more about the content behind his remarks. Gradually, I have learned how to look at things such as DDD, which seems to be a bit stingy.

Sometimes, after making a judgment, we can even get the benefit of far exceeding this judgment in various forms.

For example, Uncle Bob's score has been lowered by the way I think Feathers is "not high", and even a more unappealing one: I lowered the score of Richard Gabriel and his famous works, this is because I recommend this article for the disdainful Feathers! When I review what I once liked with a new score (the original score was instilled), although it is not likely to be totally negative, I still find new gains.

This is the first line of defense, but it does not mean that we will be influenced by an emotional or cautious side: those true truths should be accepted even if pulled from a "Dog asshole. We just need to learn to judge them.

 

Note 1: even using a purely object-oriented perspective, this author's idea is not optimal: But it is covered up by some Ruby details in the original article. If a Java with Ruby extension method is used and its logical division is used, we will find that the String extension makes the commonalities of a more basic class a feature.

NOTE 2: Creating an authoritative atmosphere and publishing information in a single direction is quite different from that in the community. Community publishing is characterized by equality, two-way, or even multi-direction. Therefore, regardless of the author's perspective, it is more likely to be beneficial. This does not mean that there is no unhealthy situation in the Community (especially for beginners ).

NOTE 3: Sometimes it means that there is not much value for "Understanding" in these places. In my experience, starting from the characteristics of the business itself, we can grasp more things and even create more value in these areas. On the other hand, the limitations of understanding in a certain aspect may come from whether or not the domain really needs to be recognized.

Note 4: It doesn't mean that this book is useless, but from my personal point of view, there are more valuable places than his prejudice and wrong ideas; this seems to have been mentioned in my previous post. But you don't have to listen to what I said. Everyone should try to judge by themselves.

Note 5: I am saying that you should establish your own evaluation system; do not care about the comments of people like me on things of someone. I cannot eliminate the possibility that I am a cainiao plus 2B and have narrow prejudices.

Note 6: From the Perspective of the Community, advocating this method may not be particularly effective: on the one hand, it is because most people are unwilling or unable to do so. On the other hand, the reading is too broad, given the information disadvantage, we have a high probability of being brainwashed by different sprays, which may result in a wave of grass with different varieties in our hearts. It will take a long time to end this situation.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.