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. |