Software engineering

Definition 1.

Try every means to avoid the risk of the project, and can complete the delivery and maintenance of the software project faster and better.

Software engineering is the study and application of how to develop and maintain software in a systematic, normative, quantitative and procedural way, and how to combine proven management techniques with the best available techniques.

The theory part is interesting, like the cultural desert meets water.

2. End game

How fast, how cheap – To complete software engineering (project, system) delivery quickly and with high quality.

The longer the lead time, the greater the likelihood of change and the higher the probability of risk the project may face.

3. Evolution

A. Waterfall flow [omitted]

B. Agile Development [Design-Development-Test]

Emphasis on small steps (repeated iteration, delivery), short product delivery cycle.

C. DevOps [Design-Development-Test-Deployment]

Similar to Agile, the emphasis on development and operational deployment is more intimate (the pursuit of extreme efficiency and automation).

DevOps is the agile development upgrade.

Software engineering evolution process and ultimate goal, think of my motto: the world’s martial arts, only fast can not break.

Elements of the Overall Architecture Diagram

Front-end r&d specification Front-end application Front-end standard R&D process generation: engineering template generation, code fragment generation construction: testing framework, packaging framework access: specification inspection, automated test deployment: service deployment, multi-environment management CI/CD: Jenkins Git/Github, code (template) generator, Webpack, Babel, Pretier Nginx Docker

Front-end engineering

Software Engineering + Front-end = Front-end engineering

Front-end engineering is a way to improve the efficiency and quality of front-end projects in the stage of R&D, operation and maintenance by means of standardization, modularization and automation.

Front-end engineering
methods The canonical R&d specification Standardization process: standard specifications for each link of precipitation research, unified R&D process and specifications, providing possibilities for scale and automation.
modular Based on module (component) development Reuse module: divide and develop each function on the basis of independent module, as far as possible to achieve the module level, thus greatly improving the overall efficiency and reducing the research and development cost.
automation CI/CD Automatic processing: Based on the defined R&D process, an automatic pipeline is established. When a specific action occurs (periodic trigger, Git Push), the pipeline is automatically triggered to execute CI/CO tasks.
concept DevOps [Design – Development – Test – Deployment]

CI/CD

Continuous Integration/Continuous Delivery(Deployment)

It is an engineering methodology, that is, by means of automation, the realization of continuous construction, delivery, deployment of the project, so as to achieve high efficiency, high quality delivery goals.

I have to say, the teacher drew a really good picture, good vivid image ah

CI/CD is too good

CI/CD Continuous Integration/Continued Delivery (Deployment)
Continuous integration Automatic build: When new code changes are submitted (uploaded to a repository git push), the project is automatically built, integrated, tested, and produced as a final release.
Continuous delivery Automatic storage: Build records, integration records, test records, and product releases of each continuous integration can be saved and saved for follow-up tracking, monitoring, and deployment.
Continuous deployment Automatic deployment: The automatic deployment of a specified end product (a continuous integration product) into a production environment.