工作三年了,你还在写增删改查,怎么面对面试官的质疑

工作三年了,你还在写增删改查,怎么面对面试官的质疑
2018年07月12日 19:33 天高思越_86925

引言:今天跟一个学弟聊天,觉得现在做产品研发都是增删改查,一做好多年,没含量在身边,不知道未来产品方向的路在何方,我想跟他想法相同的大有人在,我面试别人的时候也会问对方,你这不就是增删改查吗?那你的成长在哪里呢?随便聊聊自己的观点,把今天的额度用掉。

写程序最像打怪升级,表面上枯燥无聊,成长却不知不觉,程序员分为码畜、码奴、码农、高级码农、资深码农、架构师,这多少有点自黑的意思,每一个级别跃迁都有一定门槛。

程序员开始写程序逃不过拿来改改,是站在别人肩膀上,也是入门第一步。无可厚非但是工作3年了问下自己是不是至少还总结过:

1.dont repeat youself

《重构》这本书是程序员必读。或者说读多少遍都值的,其中DRY原则就是指当你写程序的时候,如果发现逻辑似曾相识,如果两遍勉强可以接受,如果三遍就要extract,这也是最早重构的雏形(这里不包含方法提取、转移那种)。提取公共方法、提取公共类、封装抽象,这是最简单的一步了。

2.抽象代替条件噩梦

重构的技巧有很多,二八原则如果真要找最重要的两条,我觉得就这两条了,这也是面向对象编程类代替分支的最常用方式,用烂了,不细讲了

3.基本的设计模式

设计模式不是为了用而用,理解本质,关键场合自然会水到渠成。我不方便暴露构造细节,那就builder模式,java编程你想不了解工厂、单例、动态代理、Facade、装饰者太难了,因为你要用Spring,你去看部分源码的时候,或者使用相应框架的时候,自然会遇到。

4.数据库最佳实践

如果工作多年你就知道很多数据库范式是停留在理论阶段。你会发现数据表主键大部分都是自增的,表中都会有冗余字段,即使这些字段在其它表中已经有了,因为便于统计啊,你还会发现表和表之间不用外键,因为影响更新。你还会发现业务上比较少用触发器,总之就是:没有最好的设计,只有合适的设计

5.面向对象原则

你渐渐发现,好的设计一定是简单的、美的,如果你用很复杂的方案解决一个问题,那一定有更简单的方案。你会每个函数或者类都是单一职责,你会定义接口和抽象,因为对修改封闭对添加开放啊,并且很少用new而对框架了如指掌。

6.领域模型

最简单的增删改查业务是怎么实现呢?事务脚本啊,能不用领域驱动设计就不用啊,为什么呢,还是因为能简单就不要复杂,到现在我还在用事务脚本模式开发业务。前端的每次请求对应到后端

controller service dao, 可能当请求太复杂的金融业务采用领域驱动模型设计吧,改天问下同事是不是。

7.RPC

rpc 同步调用,异步调用,满足不了了就上消息队列,现在kafka包括百度自己的bigpipe,发布订阅topic partition,你总会遇到,跟游戏中打怪升级没啥区别

.....

关键还是总结自己的成长。写CRUD并不可怕,因为你并不是只在写CRUD,从框架到技巧,从单语言到多语言,从单一业务到部署模块,到微服务。

表面上你都在不停打怪,但是姿势已经不同了

表面上你都在不停打怪,但是你已经不是码农了。

作者文章

新浪首页 语音播报 相关新闻 返回顶部