Alchemy (5): distinguishing front-end development / client development / rear development / core developer

Front-end development, refers only had HTML, CSS, JavaScript and the ability to use built based on various types of Web UI framework developed, e.g. React, Vue, Elm other Web framework, while the next Gulp NodeJS ecological Webpack and other packaging tool chain, somewhat familiar. Front-end developers also need the PC side page rendering, mobile side page rendering, or rendering somewhat familiar response. Essential, front-end developers also need to be familiar with the development of micro-channel, H5 develop micro-channel environment, and the development of a variety of small programs and so on.

Client development, refers to the complete development through the PC-side program, developers end mobile (Android, iOS, or ReactNative and other cross-platform development framework) program. Client development complexity index to be treated higher than the front end of the developer. The client will generally develop an understanding of the UI layer, logic layer and data layer separation architecture, and can take the initiative to do this classification. The client may also need to develop multi-threading to read and write local files, network communications, multi-process architecture and other issues.

Relatively speaking, a skilled front-end development could have an advantage on the ability of the skilled Web-frameworks and tool chain. But another aspect, front-end development with respect to client development, it may not have any awareness of the layered architecture within the end of the common OOP package also no concept, because they consume a lot of energy in how to adjust Web Components how do styles, how to write the interaction. So how do they stratification, how do the package, how do statute experience slower growth.

Background development, need to master all the basic commands on Linux, and on this basis the ability to master these series: gateway configuration, such as nginx, need to be familiar with the service gateway routing allocation strategy, the reverse proxy strategies; static routing guides static websites , it may reverse proxy internal Web-oriented services, such as Java, nodeJs from other internal Web services; Web services might be behind a series of Rest interface or implement RPC interface; further layer might be behind caching, database CRUD read write layer. But this is only the most basic form, the background will be a step by step evolution of the architecture, the evolution of the final turn into developers only need to write business code, through a deployment tool chain.

In fact this part of the background mix of developed and developing basic business logic components. Technical requirements and technical requirements of the business logic underlying component surface is not the same. Basic component parts, the need is to make cloud resources resource abstraction, virtualization technology to master the components, scheduling, messaging middleware, etc. distributed components, and business-oriented, it is the most conventional to the design of the cache, the database have a good grasp of business processes as well as a complete whole process, all the ends of the timing of the event, the data stream grasp.

The last one is the core of development. In fact, the word has a core role deceptive, like other developers have become insignificant, it is not. Generally it refers to the development of the underlying core technology development Kill certain level, such as Google's web QUIC protocol design and develop a system to meet the specific requirements of the storage / database, a vehicle identification system and the like. A typical example is Microsoft's browser team to develop an independent browser core engine, but ecology is not to build a good, original Edge browser does not succeed, on the contrary, based on Chromium version of Edge is but there with the original Chrome on the market a indisputable potential, this paper is on the Edge browser-based version of Chromium written.

Understand and distinguish between these different types of development, for a project staffing and scheduling is necessary. I deeply understand the delay time a project is basically determined by the end of the longest. Can someone put the fly end, end put some people do not fly it? risky. Basically, in order to make high-quality project, we need to put the right people at the right end. If there is no way to meet the people above, means that that person can not end on that side Hold live independently, this time it must be on the whole there is a framework has been designed for that end, the risk to the Statute of the framework, and I think architecture role at this time will be revealed the nature of the need, rather than decorative.

Full stack is a lie, fists face four hands, TeamWork should not be a person to do everything, it is not right. Good software development process, if a person appears to do too much work role, it must be a warning signal that the software process, not a good thing.

Technical staff can have a lot more capacity technology stack, with the wealth of training and experience of the project, there will be such a natural process. But still the ability to distinguish between different needs from different locations on the role, this is a problem the way of thinking. For example, a common problem is "doing too UI headache, aesthetic is flawed."

First of all, this way of thinking is the problem, not to do their own design, UI development to do, technically pure interface need to know is how the layout (based on the layout coordinates based typesetting or layout), how to configure the style (direct way of drawing or CSS adjust the style of the way), how modular UI (component-based, combination), how to route (Jump, forward, backward), how to handle the events. Further UI layer is how to do, the logic control layer, the data layer is separated and the like.

The art aspect, you should rest assured to graphic designers to design, you need to do is to design a prototype graphic designer, you have mastered the above techniques are presented. You just think about graphic designer can not do your job, but also a part of the TA doing the [UI].

Secondly, the aesthetic will with experience and a little bit of change, it is not static, so do not sell ourselves short, the aesthetic does not mean merely "good-looking", also contains a "reasonable", "user-friendly" and so on ... .

--end--

Guess you like

Origin www.cnblogs.com/math/p/rule-005.html