Abstract: as a new generation of migrant workers, walks the rivers and lakes, and must have secret skills. Do you know the 18 martial arts of "code farmers"?
This article is shared from the HUAWEI cloud community " new generation of migrant workers' 18 martial arts, do you know ", author: agile Xiaozhi.
Preface
With the rapid development of the IT industry, new research and development technologies emerge in an endless stream-the development language has changed from a single Java and C++ to a mixed programming of Java, Python, Go and other languages; the technical framework has evolved from Servlet+JDBC to Spring Boot and Spring Cloud and other microservice frameworks; at the same time, there are more and more IT industry practitioners-in the 2020 Beijing New Migrant Workers Inspection Report, the information transmission, software and information technology service industry practitioners have been included in the new generation of migrant workers — Programmers have changed from high-tech talents to new generations of migrant workers. They have truly secured their status as "code farmers" and want better employment. The previous "one trick, eat all over the sky" obviously does not work. Developers need Master R&D capabilities in multiple dimensions, such as front-end development, back-end development, and mobile development, so as to ensure their own competitiveness.
As a new generation of migrant workers, walking the rivers and lakes, you must have secret skills. Do you know all the 18 martial arts of the "code farmers"?
Master multiple programming languages
Programming language is the foundation of software development. Proficiency in a programming language is the foundation of a developer, but only mastering a programming language, even if you are skilled, it is difficult to stand out.
According to TIOBE's latest programming language list for August, 11.86% of developers choose to use Python for software development, while the use rate of Java is only 10.43%, which is overtaken by Python. Due to the booming development of artificial intelligence, the rise of Python seems inevitable-Python has become one of the most popular programming languages in the world. At the same time, the usage rate of languages such as GO and PHP has been increasing in recent years.
Going back to 2012-2016, when Objective-C (OC for short) was the preferred programming language for iOS application development, it was in the limelight for a while, but in recent years, OC has almost withdrawn from the public's field of vision. Only master a programming language, it is difficult to reflect the difference with other developers, but also feel the sense of crisis brought about by the progress of the times.
As the most popular development framework at the moment, the microservice architecture has the advantage of multi-language mixed programming, and each service interacts through APIs. If you can master two languages and some mainstream frameworks at the same time, such as Java and Python, your own competitiveness will be greatly improved, and you can deal with many more business scenarios; and you can also be competent in the face of Python positions.
Follow programming specifications
To measure whether a developer is good, in addition to writing code, code execution efficiency and standardization are also crucial.
Many developers often only pay attention to the correct function of the program, and ignore other attributes of quality. As for programming specifications, many developers feel that it is unnecessary: If I don’t comply with these specifications, won’t the program execute well? In fact, the code is not only executed by the machine, it is also shown to people. Code that does not follow the specification is often poorly readable, not conducive to understanding, and therefore not conducive to maintenance. The software maintenance cost usually accounts for 40% to 80% of the entire life cycle cost. Therefore, it is important to write code in accordance with programming specifications.
Programming specifications are roughly divided into two categories: coding style and programming practice.
Code style specifications include the naming, format, and comment style of identifiers. Such specifications guide the development team to use a unified coding style for development. Consistent coding habits and styles make the code easier to read, understand, and easier to maintain.
The programming practice specification contains terms related to programming language features, such as the use of data types, constants and variables, expressions, statements, function design and use, resource management, and error handling.
Developers want to be familiar with various programming specifications, which is obviously difficult. We can use some open source code checking tools such as Huawei Cloud DevCloud's CodeCheck to spur their own code quality.
At the same time, if the company has a good code review process, try to cooperate and adapt as much as possible, and don't resist perfunctorily. This will be of great benefit to developers walking in the rivers and lakes.
Understand the concept of cloud native
The purpose of cloud native is for organizations to build and run elastically scalable applications in new dynamic environments such as public cloud, private cloud, and hybrid cloud. It contains many technologies. Representative technologies include containers, service grids, microservices, DevOps, etc. We will start with a few key technologies and have a simple understanding of cloud native.
container: The container technology originated from the process isolation virtualization technology. The container technology realizes application portability and does not depend on a specific infrastructure.
The representative of container technology is Docker. Docker can mark all the operating environment of the application into an image file and start it in a specific container. This can ensure that the environment of the host is not damaged. Docker helps build a unified development and integration environment, and is the best delivery vehicle for cloud-native applications.
In fact, as early as 2017, a large number of companies tried to use containers to replace the existing basic platforms of artificial intelligence and big data, through the smaller granular resource division of containers, faster expansion speed, more flexible task scheduling, and natural computing. Features such as a separate architecture from storage can help artificial intelligence and big data significantly improve business performance while at the same time controlling costs better.
: is a cloud-native architecture method in which a single application consists of many loosely coupled and independently deployable smaller components or services.
Each service in microservices usually has its own independent database and data model. At the same time, each service communicates through APIs, thus avoiding the sharing of databases among services.
The loose coupling of microservices allows it to split the business into smaller service units for easier delivery; at the same time, each service unit in the microservices can be updated and deployed independently, so compared to a monolithic architecture or an SOA architecture , Microservices can bring a faster delivery cadence for developers.
DevOps: The means a higher release frequency. It is difficult to respond to the high-frequency release rhythm in a timely manner by relying solely on the traditional operation and maintenance model. DevOps solves this problem very well.
DevOps, or Development and Operations, is a collective term for a set of processes, methods, and systems used to promote communication, collaboration, and integration between software development, operation and maintenance, and quality assurance departments.
DevOps takes application deployment automation as an entry point, relying on automation tools such as Jenkins to automate deployment, and push forward to force test automation and build automation; further forward, configuration management and change management are basic requirements. Frequent releases mean that each release contains fewer changes, each deployment will not have a huge impact on the production system, the application will gradually grow at a smooth rate (here involves the concept of continuous delivery), and gradually coordinate and bridge the development Skills and communication gap between operation and maintenance.
Concluding remarks
Software development is extensive and profound. In addition to the above points, there are many directions to improve personal abilities, such as soft skills, knowledge management, etc. We need to explore, learn, and practice ourselves.
Click to follow and learn about Huawei Cloud's fresh technology for the first time~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。