Appearance
工作思考
- 有种说法是“一流公司做标准,二流公司做品牌,三流公司做服务,四流公司做价格”。本质上也就是“顶层架构→实现→集成”。做产品也是类似,尽可能地去做标准,做平台,让别人集成你而不是自己苦哈哈地去做各种集成。大道至简,小而美胜过大而无当。
- 不去做所有的事,不去赚所有的钱。考虑到边际效应,合作共赢,各取所长,才是最高效的商业逻辑。避免把技术密集型的事情做成劳动密集型。
- 不要被客户第一这句口号所绑架。客户第一只是一层皮,最终一定是商业利益。为了特定需求做定制,服务于少数几个客户,这只是狭隘的客户第一,与商业利益也是相悖的。真正的客户第一,面向的客户一定是广大的群体,需求一定是通用的,这与最终的商业利益也是一致的。
- 公司层面讲究 ROI,对于自己也是如此。尽量做有价值的事情,做对自己成长或收获有帮助的事情。靠谱的事情认真做。不靠谱的事情大多是层层拍脑袋的无稽之谈,或者无价值无意义的琐事,交差即可。
优雅编码
- 尽量用 Pure Function,避免副作用。
- 避免很多个平铺参数,可以使用一个结构参数来替代,也方便后续扩展。
- 除非复用的公共变量,否则尽量就近定义。
- 合理注释,关键信息、关键逻辑一定要注释,如有必要添加相关的说明以及对应的设计文档链接。
- 可复用组件。DRY 原则。
- 避免滥封装工具 Utils。避免无效封装,例如对函数做一层不必要的包装,空字符串额外定义为 nilString 等。
- 合理组织代码结构,避免大文件、大函数。
- 在开发过程中重构,防微杜渐。不断重构本质上就是常常打扫卫生,而不是等到房间乱到不能再乱的时候统一丢弃。
- 模块化设计,高内聚低耦合。本质上就是收纳,相关物品打包放盒子里,大盒子套小盒子。
- 业务逻辑和算法逻辑分离。业务逻辑可以调用算法,算法逻辑中不要耦合业务。
关注的项目
- maybe - The OS for your personal finances.
- glance - A self-hosted dashboard that puts all your feeds in one place.
- asdf - Manage multiple runtime versions with a single CLI tool, extendable via plugins.
- lucide - Beautiful & consistent icon toolkit made by the community. Open-source project and a fork of Feather Icons.
- OpenGFW