1.反思代码2.收藏精妙代码3.debug反思
一个优秀的工程师应该具备的能力
-
对业务的理解,产品的设计不只是产品经理的事情,你要从你的角度理解用户最想要什么,而不是产品需要什么你就做什么
-
学会把握大势
-
学会借力使力
-
研究和创新,如何分析和解决新的问题,独立思考而非照本宣科
-
九零后非常封建,见到经理就发抖,见到权威就胆怯
-
项目的管理和设计能力
好代码的要求: 鲁邦,高效,简洁,简短,共享可重用,可测试,可移植,可监控,可运维,可扩展(性能和功能)
先搜,能搜到就不自己写
需求要先明确好,一旦错了调试测试上线的时间要再来一遍
软件最应该避免的是耦合性
命名规范
常量要定义含义
注释写好
函数功能单一
函数能提取的尽量提取,后面就可以拿来复用节省时间和测试难度
函数是一屏到两屏内完成
函数的返回值有三种类型:逻辑判断真假,操作成功失败,获取数据类型
做到代码一看就明白
读代码读注释就能懂
危险的错误在于过于自信
空行表示逻辑
先写注释再写代码
思考的重点概念,模型,数据结构,模块划分,算法
脱离代码细节函数和语言
模块的设计能力
代码能抽象出图像来
接口决定了外部关系,内部可以变,外部很难改
代码可读性差是写的有问题,不是智商有问题
有时间一定要读 <代码大全> 和 <重构 改善既有代码质量>
- 代码要一步步写 一步步试,而不是写了一堆再去运行,不然出错了不好定位bug
- 需求一定要定清楚了再写代码,尤其是尽量不要改动底层pojo,不然代码要翻新好多
- list,map这种数据结构尽量不要超过两层,不然就会很难想;可以用新建一个类来代替多层的关系
- if(a==1)与if(1==a)的区别是 为了防止写成a=1,而不报错;"abc".equals(str)与str.equals("abc")的区别是可以避免空指针异常
- 可以用三元表达式来代替简单if else 语句
- 可以用提前return来简化if else结构
- stringbuilder在循环中的字符串拼接性能远高于 +号的字符串拼接,因为stringbuilder始终只创建了一个字符串,而+号是在不断地创建