- 绑定某个手机终端
- 解绑某个手机终端
- 解绑某个用户的所有手机终端
- 查询某个用户的绑定设备信息
已经给了你这样的需求,那么接下来要做什么?PM当然会询问排期。如果让你排期,你会给几天时间?你怎么考虑的排期?
反正让我排期,我排不出来。于是接下来我要做的是拿出我的xmind软件,在跟PM确认需求,定方案。最后用了两个小时,把需求再次确认,并给出了如下的排期:
后来我又问了一个细节,新域名service.xx.com是否已经有了?PM告知无,所以需要走申请流程1d。——最后的时间定位1周(5天)时间。

编码是个细致活,那么在编码开始阶段你要做什么?不会是着急把代码写好吧?
我考虑的是:
第一、干净的代码;
框架:能让你的代码结构很整齐,我用的是Thinkphp,也是第一次使用。先找到官方的文档,记住不要一次性想把整个文档看完,我是边用边看的方式进行的。开始阶段主要看的地方是:mvc结构;
好的命名:不要用自己习惯的命名方式,要以框架的命名方式去编码,要不然其他coder也习惯用自己的命名方式去coding,那么代码看起来就没那么干净了。
第二、传入参数的校验;
通过业务,你要确认,你的系统将会接受什么样的参数?
int型的是最让我舒服的,不会引起什么SQL注入,XSS问题,直接用intval强类型转换。
最让人头痛的就是字符型,考虑很多方面,SQL注入,XSS攻击等。对于SQL注入,我仔细看了一下Thinkphp的文档,只要你用数组传递参数给指定的类,你就不用担心SQL注入的问题(这也是用框架的好处)。xss攻击:利用php的htmlspecialchars, 把字符转成html结构的字符。
第三、更新、插入操作;
1、事务:优点是插入和更新时保证数据的一致性、原子性、隔离性、持久性;但是也有一个问题,会有锁行记录的问题。
2、在更新和插入之前,你做了查询吗?就是判断是否有这条记录。
第四、日志;
1、线上代码出问题,你是怎么定位问题的?很多时候,有些问题,你是无法在开发机和测试机器上复现出来的。我的办法就是日志。
2、安全性:你的日志是否有安全漏洞(把公司内部的信息暴漏到日志里)?那你怎么控制的?——一个办法就是设置日志级别,thinkphp框架自身就有日志级别。
3、方便性:你的日志打出来之后,你能找到问题吗?
原来的做法:程序读到日志断点的位置的时候,就把日志追加到日志文件里。——问题来了,当有一些并发的时候,日志里会把很多请求的日志交错的打到文件里,查询问题非常不方便。
thinkphp给出的做法(不错的做法):本身也有上面的做法(原来的做法);新学到的招数是,把日志内容一行一行的放到内存里,最后结束的时候,一次性打到日志文件里。
4、错误码;
你的错误码是什么样的?你设计过吗?是否成功就0,错误就<0,错误码挨着往下出溜。最好有个统一的规范。
5、开发文档
你有写文档的习惯吗?很多程序员跟我说,写文档太费时间了,我个人是习惯边写代码边写文档.你的文档用什么写?我早期习惯在公司的系统上写,但是发现速度很慢,而且查某个点的时候,比较麻烦,所以我习惯用word编写。
文档有什么用?
1>是容易让我理解代码;
2>是后期维护方便;这系统不是写完了就了事的,后期还需要你维护,或者给别的程序员维护。
我经常接手别的程序员写的代码。出了问题,问他怎么回事?每次回我的话就是看代码啊!这时候我就要从内心骂人了!
3>是你写的接口是给人调用的,你怎么告诉调用者你的接口形式?我比较懒,直接把文档交给他,省事了。如果他有些地方看不懂,那就说明,你没理解或者你没写清楚,一方面加深你对系统的理解,另一方面也能增加你写文档的功底;

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库