当前位置:网站首页>Notes on software development
Notes on software development
2022-07-06 07:41:00 【Wang Chongwei】
This is not a note , Want to write something casually , It can be regarded as an essay . I haven't written for a long time , Maybe the logic will be confused , Write what you think .
Explain , My technical level is not very good . It's just a temporary thinking record .
What happened :
- Recent work , The program needs to add standard communication and functions . When adding and designing relatively large programs , Need to design program structure , Will consider a lot , How to decouple , Layer to layer interface , Between modules , Parameters ,ram,flash, Running speed .
- Last week, I got up A video of Wang Mu learning science .
- These two days , I also discussed with a big man , Some of my own in programming , framework , restructure .
- Recently began to learn about aoutosar The hierarchical structure of .
- A new project , It takes a short time , Complete coding from zero , To delivery .
To sum up, I have produced some programming , Maybe it has nothing to do with programming .
One . Software Engineering
I majored in mechanical and Electrical Engineering , There is no theory course of software engineering . It can only be said that in the project , In the learning process of programming , More or less contact .
What is software engineering . I highly recommend you to see “ Wang Mu studies science ” This up A video of 《 How does the idea behind software engineering affect programming 》. The following points , I also intercepted it from the video .
1. Software engineering is highly complex .
This complexity refers to the high internal coupling .
Triple coupling : Coupling between functions , Coupling between people , The coupling of the past and the future .
Coupling between functions : Software development , How to design and divide levels and modules , This is all done by people .
Coupling between people : The trouble caused by the cooperation of many people .
The coupling of history and future : The new functions are updated on the basis of the original , It is not only influenced by history , Also consider the update iteration of this module in the future , Change and uncertainty .
2. The idea of decoupling
Without losing function , Exchange performance and resources for lower complexity .
modularization : Decoupling between functions
High cohesion and low coupling .layered : Decoupling between requirements and implementation
such as : operating system ,autosar. It mainly supports and completes the upper level . Layering is more business driven .Patternization : Decoupling for the future
Design patterns 、 Basic paradigm 、 Programming principles . I don't know what to do , These rules are the bottom line . The uncertainty of the future is decoupled , Avoid a lot of holes .
For these , Most of the time, I feel deeply . For example, I need to add standard communication and functions to the existing foundation , The protocol stack needs to be introduced , Object dictionary . The meaning of dozens of objects needs to be set to specific functions , The infrastructure cannot be used directly , Need to do conversion . Most parameters also need default values , Parameter setting , It can be saved . Function requires timing , performance , wait . Other code needs to be optimized to , Provide flash, and ram.
Thinking about fighting the uncertainty of the future , And reduce some complexity , Do some interface modules , Unrelated agreements , Irrelevant hardware . This decoupling will be a little thorough . But often performance , Efficiency is getting lower , More resources .
The coupling brought by history , When you add it, you don't want to be really coupled , Some layers are more inclined to refactor , Refactoring needs to be considered , Future modifications and uncertainties . Task time node , No more refactoring is allowed .
Not much collaboration with colleagues , Otherwise, the complexity is many times more .
Think about how to do less coupling , More efficient , Entangled to the end can only choose how to choose .
Two . Engineering compromise
The compromise here , It is also the choice mentioned above many times . This word is in my impression , Or undergraduate junior 《 Automatic control principle 》 Teacher Ju , The compromise of control in class . About , Controller design , Adjusting the speed , And no overshoot .
And want to adjust quickly , It is contradictory not to overshoot . Think low complexity , Less coupling , Also want high performance and efficiency , It is also contradictory to occupy less resources . This kind of thing that you can't have both fish and bear's paw , Engineers face many . Every time I face , We need to consider all aspects , Make a choice , Make a choice , Make a compromise .
It's an ability 、 Experience , This ability also needs to be consciously exercised , Analyze in every compromise 、 experience .
The charm of the project is also reflected in this way . A lot of time is often urgent , With limited resources , In the process of many compromises . Sometimes it's compromise , More often than not, it's a trade-off .
3、 ... and 、 Against complex 、 Adapt to complex
Complexity is something we don't want , It's also inevitable . Human brain is very powerful , As long as we accept , And training , Our brain will become complex .
I work with a colleague , Yesterday I looked at my computer book , say , I don't know why it was so simple in College , Just don't understand . It looks so simple now .
Because the brain is trained to work , The complexity of the brain is increased , Looking back , Natural and simple . It's like doing linux Classmate , Suddenly I have to do something rtos, That's also a dimension reduction blow . How many levels of complexity have you directly reduced .
The complexity of confrontation , Improve the complexity we can face , It is also resisting the complexity of the future , uncertainty .
Reading also increases the complexity of our hearts , Before brushing the video , See a sentence from teacher Dong : Books cannot solve problems , But books can stop you from worrying about some problems . It may not make you a very successful person , Books often make you a more profound and comprehensive person .
If you see the last , Thank you for taking these two minutes .
边栏推荐
- How to estimate the number of threads
- QT color is converted to string and uint
- Transformer principle and code elaboration
- Database addition, deletion, modification and query
- Wonderful use of TS type gymnastics string
- word中如何删除某符号前面或后面所有的文字
- Bit operation XOR
- The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
- Relevant introduction of clip image
- Leecode-c language implementation -15 Sum of three ----- ideas to be improved
猜你喜欢
word中如何删除某符号前面或后面所有的文字
合规、高效,加快药企数字化转型,全新打造药企文档资源中心
esRally国内安装使用避坑指南-全网最新
Basics of reptile - Scratch reptile
qt颜色与字符串、uint相互转换
Compliance and efficiency, accelerate the digital transformation of pharmaceutical enterprises, and create a new document resource center for pharmaceutical enterprises
软件测试界的三无简历,企业拿什么来招聘你,石沉大海的简历
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Document 2 Feb 12 16:54
[1. Delphi foundation] 1 Introduction to Delphi Programming
随机推荐
qt颜色与字符串、uint相互转换
opencv学习笔记八--答题卡识别
Position() function in XPath uses
Simulation of Michelson interferometer based on MATLAB
(lightoj - 1410) consistent verbs (thinking)
If Jerry's Bluetooth device wants to send data to the mobile phone, the mobile phone needs to open the notify channel first [article]
word中把帶有某個符號的行全部選中,更改為標題
Typescript function definition
word设置目录
Emo diary 1
[MySQL learning notes 30] lock (non tutorial)
[cf gym101196-i] waif until dark network maximum flow
Generator Foundation
word怎么只删除英语保留汉语或删除汉语保留英文
Memory error during variable parameter overload
Helm install Minio
861. Score after flipping the matrix
Typescript void base type
Iterator Foundation
解决方案:智慧工地智能巡檢方案視頻監控系統