Forked from huangxinglong/gist:9e57b50d08223ff85ae3db6a78220467
Created
January 28, 2024 19:31
-
-
Save hexiyou/73b6f1a78402e8c1e2629865faaac612 to your computer and use it in GitHub Desktop.
写代码要牢记在心的规则
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
读书,先是从厚读到薄,然后是从薄读到厚;写代码也是一样一样的 | |
不停coding,但又及时回顾、提炼,总结出一些规律和方法,再从这些规律和方法出发,指导后续的工作,这是一个「从厚到薄」的过程 | |
针对其中的每个点,可以从容自得地、深入浅出地讲解、分享给其他人,可以解决一些深层次的问题,这个过程就是「从薄到厚」 | |
正所谓「厚积薄发」,「厚积」容易,「薄发」难,最近这半年在支付宝的工作,自我感觉提升非常大,但是提升的内容仅仅只能抽象出一些要点,还做不到由点及面地开展,简单记录下,希望不久将来,可以「薄发」 | |
架构层面 | |
一个好的框架、架构,不仅仅是提供方便的基础服务帮助大家快速开发,同样重要的是,提供一种开发模式方面的指导和约束;例如: 支付宝技术架构的全面SOA化,让身在其中的开发同学不得不以服务化的方式、思维进行工作,再如Ruby On Rails框架,也是提供了一整个Web开发的套路 | |
这里推荐一篇好文章: 实施微服务,我们需要哪些基础框架? | |
认真设计包结构,包结构是工程的骨架,骨质疏松的工程,一定是难以持久发力的;有了好的包结构,并行开发时分工方便、代码重构升级时迁移方便、解耦性和内聚性从框架层面可以得到支持,好处一大摞 | |
设计层面 | |
接口就是合同,要像劳动合同的条款一样,一条一条地抠: 字段、行为、语义、返回值,深思熟虑 ,接口一旦发布,就像合同生效,轻易不可变更 | |
重视接口的错误码(error code),想清楚对于这个接口什么样的行为才是错误(error),常见的一个反模式就是把正常的业务逻辑、流程分支当做错误码返回给调用方 | |
关键业务、接口,必须考虑性能,做好预案(eg: 限流) | |
编码层面 | |
代码如诗文,优质的代码阅读起来一定是清晰流畅的,是「Don’t make me think」的,不须要高深的模式,不须要牛逼的技术,只须要简明易懂,大智若愚;晦涩难懂的代码,难读、难扩展、满地是坑 | |
注重基本功,要有代码洁癖,想尽办法使代码精简,使用优质的类库(eg: guava / joda-time)提升代码质量 | |
工作方法 | |
作为一名码农必须清晰认识到这世界上从没有一锤子的买卖、从没有一次性的代码,基于这个大前提: | |
1.绝不要copy代码,copy越多坑越多,今日抄得爽,明日改得哭,现世报 | |
2.绝不要硬编码,拒绝魔法数,今日偷懒,明日采坑,现世报 | |
3.绝不要GuiTian业务方,绝不要直白地把需求一是一、二是二地赶出来,要动脑筋做归纳做抽象,要想办法沉淀代码、模块,今日无脑赶工,明日只能继续造轮子,现世报 | |
4.代码要内聚、要解耦、要分层、要权责明确,今日写大饼式的一坨代码,明日就要为如何扩展而烦恼,现世报 | |
5.设计表结构要具备一定的通用性、扩展性,为未来留下想象空间 | |
6.会说「NO」会说「NO」会说「NO」重要的事情说三遍 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment