《这就是软件工程师》笔记

第一部分 行业地图

选择:一线和次一线城市机会巨大

第二部分新手上路

1.入行前
正式入门语言:Java;

操作系统:Linux;

编程IDE:IntelliJ IDEA;

数据库设计工具;

编程框架(Spring Framework)

离散数学中的数理逻辑和集合论 (数学建模、图论、抽象代数、拓扑学、运筹学、博弈论(机器学习、AI的基础))

选择平台:去面向未来、技术驱动的公司

这家公司做的事情,要适应未来的发展
技术驱动、以技术文化为主导的公司
需求分析——>设计(技术调研、原型设计、架构设计等)——>编码——>测试

新人阶段:1.养成良好的工作习惯 2.培养自己的执行力
2.编码
代码规范、设计模式、架构模型、运维和开发的最佳实践

(1)编码规范

行业规范:《代码大全(第二版)》、《代码整洁之道》、《重构:改善既有代码的设计》、《程序员修炼之道:通向务实的最高境界》

(2)设计规范 (API接口规范、设计模式、架构规范)

《设计模式:可复用面向对象软件的基础》、《架构整洁之道》、《微服务设计》、《数据密集型应用系统设计》、《Web API的设计与开发》

(3)生产规范(一套标准化的上线流程)

《人月神话》、《SRE:Google运维解密》、《持续交付:发布可靠软件的系统方法》

优质代码:

(1)初级:可读

命名有意义;布局清晰;注释明确……

(2)中级:可扩展

可维护(面向对象和函数式的设计模式,比如状态机、声明式编程、SOLID、IoC/DIP)

(3)高级:可重用

代码可以用在很多场景(轮子可以用在马车、汽车、飞机上)

DSL、面向对象的设计模式、Web Service、”Codeless”

复杂度一般由业务逻辑、控制逻辑和数据逻辑组成,业务逻辑决定了复杂度的下限,控制逻辑决定了复杂度的上限。 分开è 解耦

设计模式、函数式编程、DSL、状态机、插件、依赖倒置和反转控制等

整洁代码:不是写出来的,而是读出来的(方便他人阅读)

代码注释:像说明书一样清晰(函数的功能以及如何使用它,example)

编程原则:

(1)避免重复原则(DRY, Don’t Repeat Yourself)

抽象成数学模型,数学建模;用一种方式解决多种问题

(2)单一职责原则

一个类或者模块应该只有一个职责(各司其职)

简单化、模块化、让你的组件不断复用

(3)高内聚、低耦合原则

内聚:一个模块内各个元素彼此结合的紧密程度

耦合:不同模块之间的依赖程度

让每一个模块做到独立,做到精益求精,同时把模块间的耦合降到最低,不会因为动了一个模块,而导致其他模块出现问题。(没有依赖就没有伤害)

(4)开闭原则

对修改是关闭的,对扩展是开放的。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容