Abstract: There is no technology superior points, do a good product is king.
Many developers love to compare technologies: is Angular better than vue.js? Can Node.js replace Java? Should YOU choose MySQL or MongoDB?
It is very valuable to carefully compare the pros and cons of different technologies to deepen our understanding of the technology and choose the technology that is more appropriate for the business scenario.
However, the choice of technology is too serious, contend red-faced, for products or individuals, are not necessary. Because technology choice really doesn’t matter that much.
Technology is just a means to the realization of the product
For a product, technology is just a means of implementation. In other words, all roads lead to Rome. If the product can be implemented with Angular + Java + MySQL, it can be implemented with Vue. Js + Node.js + MongoDB. Angular and Vue.js are front-end frameworks, Java and Node.js are programming languages, and MySQL and MongoDB are databases.
The product is for the user, not the developer, and it may be important for the developer to choose a technology stack, but for the user, I’m sorry, they don’t care! What users care about is: Do I have the features I want? Is the UI design sound? Are bugs fixed in time? In life, we are all users. Every day, we chat on wechat, check Douyin, browse JINGdong and play King of Glory. Do you care whether their background is Java or Node.js?
If the technology stack of the product is not yet determined, it is good to choose a technology that is currently used by enough people and is kept up to date. The technology that is used by many people is not too bad, and there is no need to worry about bugs that are still being updated. If the technical stack of the product has been determined, it is even simpler, directly push the code ah; Even if there are some issues with the technology choice, it is useless to complain, and no one wants to change the technology stack for your personal preference, unless the product needs it.
As a developer, we should use the technology we have mastered and need to learn to achieve a user-friendly product to meet the needs of users. If the product is not successful, there may be a problem with the demand of the product, there is no market; It’s possible that the market is large, but the promotion is not successful enough; It may be well promoted, but there is a problem with the business model and it cannot make money… Of course, it could be the technology, the technology is not good enough, rather than the wrong choice of technology.
Fundebug’s technology stack
When we decided to do Fundebug, we were not familiar with the technologies we were using, and we were completely ignorant of their equivalents. So, there is no choice here, we use the technology we know: Angular + Node.js + MongoDB. They’re used enough and kept up to date to meet the standards I’m talking about. For this seems to be a somewhat rash choice of technology, basically no trouble to our product development, users need features we can try to meet. Or rather, what really bothers us is never the problem of technology choice, but the problem of product design, marketing, user communication, etc.
I will be responsible for some back-end development. For our stack, I love Node.js because of its concise syntax, clear documentation, simple asynchronous programming mode, and rich NPM ecosystem. I also like MongoDB because its data model is flexible, and its documentation is detailed and easy to operate. No offense to Java and MySQL here, because I have almost no experience with them, so I can’t compare them. I also believe that Java and MySQL are excellent and would have been fine if we had chosen them.
One of the things I always like about Niu’s Fundebug stack is that all of our applications including MongoDB run in Docker containers, which greatly simplifies our operations. After packaging the application into the Docker image, we only need to install Docker on the cluster without installing any application, so we can run any application on any node. We can move applications between any node at any time as needed (reallocating CPU and memory resources or expanding multiple copies). When a new node needs to be added to the cluster, you only need to install Docker, which can be used to run any application. I’ve been thinking about the value of Docker and found it really useful. As the saying goes, “If you have a hammer in your hand, everything looks like a nail”, I have used Docker for nearly 4 years, and I am very familiar with it and like it very much. Then OF course I think Docker is a good thing. What if we don’t use Docker? Of course operations will be a pain, but we should be ok. A lot of companies haven’t docker-ized yet, they’re alive and well.
My myth about technology
With a lot of developers, I’ve had my fair share of tech superstitions. Who hasn’t been young?
In the summer vacation of my junior year, I learned a course called “Large-scale Data Processing/Cloud Computing”, which sounded very cool. In fact, I mainly learned Hadoop and realized PageRank and other algorithms with Hadoop. PageRank is a web page sorting algorithm proposed by the founder of Google, which is the basis of Google search engine. Hadoop was so powerful that it was able to build Google. I was so young and ignorant that I thought learning Hadoop was enough. In fact, there is a similar question on Zhihu: What is the employment prospect of Hadoop? But what about now? Hadoop has long since lost its luster as a general tool for batch processing large amounts of data, with no barriers to entry. There are many other tools in the Hadoop ecosystem such as Spark and HBase, and Hadoop alone is not enough to deal with various complex business scenarios.
When I was in graduate school, I got to know Docker for the first time and was deeply attracted by it, because Docker can perfectly solve the problems of software installation and configuration. In my graduation project from university, I spent at least one week to configure a Hadoop cluster composed of four physical machines (I was not familiar with Linux at that time). However, with Docker, it can run directly without installation. My open source project hadoop-cluster-Docker is to run Hadoop clusters into multiple Docker containers. This project has accumulated nearly a thousand stars, so it can be seen that everyone is very recognized for using Docker to simplify hadoop installation. I have been in touch with Docker for a long time. When Docker was most popular, I received relevant job offers from large companies. Therefore, I feel very good to be familiar with Docker. And now? Docker has become ubiquitous! Because Docker is not sophisticated, very fast. Many large domestic companies, such as Tencent and JINGdong, have already been docker-oriented.
Hadoop and Docker, both of which were more or less world-changing technologies that were once big and still are, but have lost their halo effect. This is also the objective law of technology development, new technologies constantly appear, they solve some problems, become popular, and then gradually replaced or annihilated by newer technologies.
In fact, I have never relied on Hadoop or Docker to work, and they are unreliable. Technology is moving so fast that it’s impossible to be a one-size-fits-all, and it’s only a matter of time before hot technologies cool down or even become obsolete. Moreover, technology is for jobs, not for jobs that are structured around technology stacks; When it comes to work, it’s dangerous to learn whatever skills you need and stay in your comfort zone forever.
reference
About Fundebug
Fundebug focuses on JavaScript, wechat applets, wechat mini-games, Node.js and Java real-time BUG monitoring. Since its launch on November 11, 2016, Fundebug has handled over 500 million error events and has been recognized by many well-known users. Welcome free trial!
Are your users experiencing bugs?
Experience the Demo
Free to use