Become a technology boss, technical management chapter 2-technical selection

  Each system will have its life cycle, from birth to death, going through three stages of youth, middle age, and old age. The management of complexity runs through the entire life cycle of the system, just like the natural selection of evolutionary theory, constantly optimizing the system, constantly breaking and discarding, and maintaining the vitality of the system.

  The initial stage of system construction is mainly to complete the construction of 0 to 1, which is used to verify the business model or make the smallest demo product. The priority at this stage is time and cost, that is, to be fast. Therefore, the technology selection at this stage is very important. If the selection is incorrect, it will introduce unnecessary complexity and reduce R&D efficiency. I think there are two dimensions to consider.

  The first dimension is the familiarity of team members with the chosen technology. In the early stage of the project, the number of people that can be found is limited. If the members are very familiar with a certain technology, it will indeed shorten the cost of learning and avoid the problems that have been committed in the past.

  The second dimension is the suitability and cost of various technical solutions. We have to know that there is no one-size-fits-all technical solution, all technical solutions have their suitable fields, and the cost of each solution is also different. The options for several technical solutions are described below.

  Let’s talk about the choice of development language first. I have no intention of arguing about which language is better, and the language is constantly changing, just to illustrate the applicable scenarios of various languages. In fact, various languages ​​have their suitable places, and each company will use more than one language to solve different problems of the system. But in the early days of the system, the choice of language is still very important. For Android and IOS clients, there is no choice, just choose the official recommendation.

  The background development language selection is relatively wide, C/C++/Java/Php/Python/.Net/nodeJs, etc., dazzling, in general, try to choose an open source language platform, the community support will be better, the architecture is relatively More mature, all kinds of incurable diseases can get free support. I have no malice towards .Net. In fact, I also started from .Net development, and .net has also been open sourced, but it is too late. There are indeed many companies in the industry who have switched from .Net to other languages ​​after their business has grown. . Because C/C++ has more flexible control over memory, it is more suitable for high-concurrency but simple logic services or middleware. If it is a system with complex business logic, it is not recommended to use it initially; Java is currently a very widely used language. , community support is rich, and it can almost support full-stack applications. At the same time, the object-oriented design pattern is very suitable for dismantling complex business, and it is easy to expand and maintain. However, there are too many choices and too complex frameworks. It is not easy to use well, and there are certain thresholds for entry; Php/Python/nodejs are all dynamic languages, and the development is very flexible and simple. Although object-oriented is also supported, it is not mandatory. Suitable for initial use. However, once the complexity of the system becomes high, it will become a problem if it is too flexible, that is, everyone develops too freely, and often they have to pay for it in the later stage; which language to choose, I think it is a matter of opinion, there is no standard answer, and the tools are not good or bad. , only fit does not fit.

  In terms of system operation and maintenance, I think the biggest change in recent years is the rise of cloud technology. The availability of cloud has exceeded the availability that an average single company can achieve by setting up its own operation and maintenance team, and it has made operation and maintenance simple enough. Even operation and maintenance personnel are not required. After the business scale grows, only business operation and maintenance personnel can be retained, and at the same time, they can pay as needed, which greatly reduces the operation and maintenance cost.

  Moreover, cloud technology is not only about operation and maintenance. It actually provides various service capabilities through more flexible cloud APIs, allowing us to access quickly and flexibly to achieve our own business needs. Such as audio, video, live broadcast, file storage, data storage, etc., it is like an API resource library. This has fundamentally changed the business development model. In the early stage of the business, it is very important to use the power of the cloud to access existing services and rapidly develop the business. Try not to reinvent the wheel.

  Of course, there are always two sides to gold coins. Cloud technology is also in the process of development, and data security is an issue that needs attention. In the event of an operation and maintenance accident, the response speed of cloud service providers is also a test. In addition, with the rapid development of business As it grows, the cost of pay-as-you-go will become higher and higher until it exceeds the cost of self-built computer rooms; at the same time, the availability required by the business may also become higher and higher, and whether the third-party response support is timely is also a problem. At this time, it is inevitable to develop a private cloud, and the cost is also very high. Of course, in the early days of the system's establishment, I felt that the public cloud could be used.

  To sum up, in the early stage of the system, technology selection is very important. First, it depends on what the team is familiar with. Second, it depends on the advantages, disadvantages and costs of various technical solutions. Finally, it is necessary to be good at leveraging cloud technology to avoid repeated wheel building.

If you have any questions, welcome to add QQ group test entry God 755431660 to learn together ~

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325454370&siteId=291194637