Advantages of using a boring stack

Why I think choosing a boring stack is important in programming

Someone asked me a question a few days ago. This person wanted to start a blog, and they decided to use the front-end Angular to write their own platform for it.

My answer is that if the goal is to blog, then they must abandon the idea and use off-the-shelf solutions.

That must be very unpopular because I didn't get an answer, but what I mean is: if you want to create a blog and take it seriously, then please use the most boring and bulletproof thing you can find. indeedIf you want to do any serious blog writing, please do not use it on your blog infrastructure.

Technology must go away, You should onlyFocus on content.

Otherwise, you will spend most of your free time adjusting your blog platform (please note-Except the people you don't care about) Instead of writing content. No one cares about this infrastructure.

If you want to make a video, do you have to write a YouTube clone file first? Can it receive 100 million tourists at the same time? It reminds me of some people who want to write video games and start building physics engines first, but they never stop the process.

I use Hugo, a static website generator.

Hugo is the best for me because it focuses on blogging and price reduction promotions. it isboring. Its template language is boring. It was so boring that I fell asleep when I had to adjust something. I like it.

The biggest feature of Hugo isquickly, I think this is mainly due to the use of Go under the hood. Features that look like boring these days.

"Look at Gatsby, it's so peculiar and shiny!"

Gatsby(For example only, there is no objection) It is too fancy for me, even though it is a great technology. why? It makes you pay too much attention to the technology and not the result. As a developer, you might find it great, but it is not. React, GraphQL, this is so exciting.

This reminds meRedux, People are excited about the "time travel" demo, which is really useful for everyday coding [joke end]. People are happily making their applications too complicated just to use shiny technology.

Let's talk about prefetching for example. Do we really need to prefetch when the static site is already as fast as possible? Do our blog visitors ask for it? What are the disadvantages? Any questions?

Remember Murphy's Law: "Anything that can go wrong will go wrong"

I once talked to a person who used Gatsby to create a blog, only to realize that they did not enable server-side rendering even if server-side rendering was enabled, which made the blog almost invisible to Google (yes, I know they execute JSsometimesBut please bear with me,Stick to boring server-side rendering).

In an ordinary blog, the average page views per user is 1.1 / 1.2. This means that the vast majority of your users may enter your website through Google, then quickly browse and leave. Do you really need to prefetch all links? Why waste all this data and power?

Let's stop opposing Gatsby, I really like it as a tool for making websites and apps.

My point is that creating a simple blog may not require 80% of the work. Use a simpler tool, which is only for blogging, and never write it yourself.

This is suitable for more complex applications. Should you use technology that has been in use for 10 years, or should you jump on cool technology that you don't know about, but everyone talks about it well? Should you use Rails or Elixir? Should I write my next application belowTypescriptOr is it the reason? C, to go or rust?

As we collectively transition from the old library to the new library, from the old framework to the new framework, many, many working hours have disappeared forever. Think of jQuery, Backbone, and Ember, and all the specializations before or after. Think about AngularJS vs Angular. Think about all the PHP frameworks that existed before Laravel swept the PHP world. Remember the "revolution" of NoSQL that made us all reconsider using MySQL to support more advanced and flexible database systems? It turns out that SQL is still very powerful.

“Just use MySQL, the boring tech revolution is here” Marty Weiner, Reddit CTO, 2016

Developers believe that most of the industry-standard tools are built by large companies such as Google and Facebook, and are very suitable for their needs. A small team or a single developer may happen to have the same needs, but is this possible? Or is it all driven by peer pressure and hype? Or through marketing?

What you want to achieve perfectly with pure JavaScript and Java isDOMAPI, or do you really need to rewrite all applications?reactionSpend a few days tryingWebpackwhat you up to? Sometimes this is a good choice, sometimes it is not a perfect choice. It’s boring to use the DOM API, but it might make your application faster, and everyone else in the engineering world says it’s going to be a mess, you can reduce the time it takes to deliver it by 10 times, and the work speed might increase 10 times.

One rule is that you know the trap of the platform, the grass on the other side of the fence is always green, and you imagine that the new platform is 100% perfect. That will never happen, the devil is in the details.

You may have mastered these details in many years of investment, but now it seems to be boring for you, because you are an engineer! You like challenges! You don’t want to miss the opportunity to learn new things!

You can still do it.

I think you should always experiment and create auxiliary projects, but when it comes to key platforms (such as your blog platform, which is critical if you take it seriously), boring technology is better. Understanding this concept is part of becoming a senior developer.


More experimental tutorials: