见字如面,我是 coderlang,34+ 程序员,CTO,全站工程师,搬砖 11 年,薪资翻 20 倍,公众号 coderlang 主理人。
了解我的朋友都知道,我这11 年,从嵌入式到 C++,从 C++ 转到 iOS,从 iOS 到 PHP,从 PHP 到小程序,从小程序到 golang,从 go 到安卓,从开发到管理,从程序员到 CTO,做到了真正意义的全栈。
最近,正好在知乎看到“后端开发就是增删改查?”这样一个话题,分享一下,我做后端的经历。
主要分为 2 个阶段:
我做后端,就不是这样,我是做 iOS 时,需求少了,就让后端,教我写接口。
就有一种欲望,想去了解后端是怎么写接口的,从此我就开始写 PHP,前后端接口都是我写的,我就清晰的知道了,客户端和服务器的处理全流程了。
就拿一个登录来说,我以前在面试时,很多一直做后端的,都做不好。
给我的回答基本是:电话号码登录,先查询电话号码是否存在,不存在则新建,存在则返回。
如果你做后端,你觉得没有问题,那你就有问题,这就是后端,要思考的问题,并发问题。
我们的做法是,数据库电话号码建唯一索引,登录时先写入,再查找,依靠数据库的唯一索引保证,同一个电话号码,不会分配多个 UID。
除了这些问题,还有幂等,原子,服务间通信,等等,都是做业务时需要思考的。
还有最关键的,你是根据页面写接口,还是根据逻辑写,我做后端,包括我现在带的团队,可以 1 个后端支撑 9 个客户端,还很轻松,而有些团队,需要 9 个Java 支撑 3 个客户端,累死人,就是根据页面提供。
我们在用 PHP 和 go 做后端时,用到的框架都是自己写的,每一行代码都是自己写的,没有用第 3 方框架,没有选择Java 是太臃肿了,而我参与了实现底层框架全部过程,还是 2 次。
举个例子,很多写后端的,纠结于遵循 restful 接口,严格区分 GET、POST、PUT 等,我们做的框架就很简单,一个 PHP class 或者 go 方法,就是一个接口,全部统一用 POST,对于上层,写业务接口的同学来说,根本不用思考。
实现接口的同学,只需要把接口名字取得有意义就行,比如:GetUserInfo,GetL3TxInfo,SetUserName 等等。
这个过程,我分别在 PHP 和go 上,经历过 2 次,而且都是千万级别的应用,边做业务,边完善底层框架,还边从 PHP自升级为 go,自然理解更加深刻,在这个过程,更是夯实了代码功底,才有现在的融会贯通。
全文完,欢迎关注交流,朋友圈更精彩~