最近也在面试,同时将之前记录的零零碎碎整理了一下,软硬技能都有。曾经一腔热血认为专心做技术就行,进了公司才发现这尼玛有人的地方就有江湖,保持初衷吧!
开发篇
-
除了POJO对象中可以定义set/get方法,其他一律不准定义set/get方法,包括Spring的Bean对象; 因为set/get会导致序列化和反序列化,可以使用build/init/from方法代替;Spring源码中方法命名通常是doXxxx().
-
方法调用要显示 什么是非显示: BeanCopyProperties方法就是对set/get方法非显示调用;反射就是非显示;千万不要使用配置的方式非显示调用方法;我们之前领导要求将方法的签名配在配置文件中,通过反射的方式执行,对此表示很不认同;因为这个方法在项目中没有显示调用,很多人误认为是一个无用方法,很有可能被删除,不曾想还有个配置文件在读取这个方法进行反射调用。
-
业务主流程不能断
保证整个业务主流程正常是首要前提,对于其他的分支业务可以使用异步执行,如果是同步的话一定要加上try-cache,保证异常不要影响主业务。当然具体还是取决于对应的业务,如果业务要求任何一个分支业务出现问题,都要对所有的数据回滚
-
定义对象中的集合可以初始化一个empty集合,如果要求final修饰该字段的话就不行了;
-
[编码规范] 对于三方的接口要考虑是否要搞一个接口进行继承;
-
[编码规范] 易发生循环依赖的Bean尽可能往后注入,也就是写在类中的最后面,目的是为了尽可能对的填充半成品Bean的属性。易发生的Bean: List
xxxHanders; -
[编码规范] 方法的入参尽可能抽象。例如:getByEmails(List
emails)没有getByEmails(Collection emails)好。因为后者对于Set也可以传入,对于前者的话,就需要讲set转成list。 -
[编码规范] 如果单元测试不好写时,思考代码的结构是否合理。之前
-
[MySQL] 在使用联合索引进行范围查找时最好使用带等号的。例如: where a >= 1 and b = 2 优于 where a > 0 and b = 2,前者使用了a和b的联合索引,但是后者只是用到了a,主要体现在对于第一条记录的定位。 MySQL的between是包含边界的。
-
[MySQL] 建立联合索引时,结合具体的业务需求,尽可能把区分大的字段放在前排。
-
[MySQL] 经常更新的字段不用创建索引,例如库存或者余额;
-
[MySQL] 数据库字段尽可能设置成not null,除了节省空间,对于数字这种也减少判空;
-
[MySQL] 产线执行sql语句,满足业务要求的同时尽可能带上limit关键字[尤其是delete],你会感谢我的;
-
[MySQL] 事务中存在锁的语句,要把锁冲突,影响并发读的锁尽量往后放; 因为在执行这条语句时候就会持有该锁,直到commit后才会释放;
-
[MySQL] 不建议使用关键字作为库名、表名、字段名或索引名。 比如: like,key;
做事篇
- 凡事都得有个总结,比如看完一个视频,看完一篇文章;
- 工作中即使再简单的都需要做个记录,再简单的流程可以通过截图方式记录,方便后期回顾;
- 不要漫无目的开会,会议后需要有相应的结论,没有结论的会议就是浪费时间;
- 在跨职能团队中,会议结论十分重要,在会议的最后一定要和各方将结论达成一致,并将结论同步到群里;
- 和自己有重大关系的,一定要好好确认,反复确认,不要别人说去做,你就放心了,你得确认结果,以及是否符合预期;
- 做事情有始有终,比如做一个功能优化,版本A到版本B,不能只增不减,我们需要在增强的方案B中看到对于版本A的下线计划。如果只增不减只会导致项目更加臃肿,代码更加混乱。你可能会觉得版本A下线遥遥无期,但是得有方案。这能体现做事的风格,而不是因为时间就可以不做。
- 提供给别人的文档尽量方便简洁,站在对方角度思考。例如你需要给对方看某个文档中的主要内容,那么直接给他一个链接显然不合适,因为对方需要找,可以在链接中添加锚点的方式让对方打开后直接定位到该位置,如果没有的话,可以再截个图圈出来和链接一起发送给对方。
- 及时反馈做一件事的状态,如果没有做完,也要采用部分更新的方式,可以在某个单子下面提醒相关人员,也可以将相关人员拉到群组里,及时获取相关事情的状态,这样的做法是为了说明你已经介入而没有不闻不问。
笔记篇
- 建立互相之间的连接,通过A找到B,通过B也能找到A;
- 用图表的形式清晰明了去记录,包括和其他人的交流;
- 将关联的数据通过超链或者关键字相互关联,方便后期追踪;
- 笔记是为了回顾不建议大家使用手写去记笔记,尤其是工作笔记。因为笔记的目的不仅仅是回顾,还要查找搜索。比如我对某件事只有一点点印象,只是个大概,这时我们需要使用搜索的方式
为人篇
- 评价一个人的善恶,不要看他对他喜欢的人有多好,要看他对他讨厌的人有多恶;
- 只和亲人分享公司琐碎,同事局限分享时事新闻;
- 公司领导偏爱某些人是符合人性的,要接受。但是在某个方案绝对错误的情况下还在袒护他反对你的话,其实这时候你可以选择换个环境了(已经和指鹿为马没啥区别了);
- 如果领导区别对待你和别的同事,总是针对你的一些小错误开口大骂批评,可以考虑换公司和换组了(有个同事就transfter到国外混了)。如果一直待着其实恶心不到领导,并且下一批裁员(裁员风气如日中天,当然如何裁员赔偿丰富可以申请自裁)一定是你;
//todo 不间断更新