Categories
technology|技术 中文

程序员的进阶思维

这篇文章写给有1年以上工作经验的开发人员。

  • 检验每一个输入参数的合法性
  • 考虑逻辑判断的边界条件
  • 对代码进行合理的封装,提高代码的复用性
  • 站在用户的角度考虑问题

对于游戏产品中出现的兑换码,用户输入兑换码可以领取奖励。 为了方便用户的识别,兑换码中,我们需要去掉哪些容易混淆的字符,如:数字1和字母I, 数字9和字母g。

  • 对于脚本代码,重复执行也不会出现问题

在线上运行时间足够久,我们可能会遇到需要批量修复线上数据的需求。通常我们需要写脚本来进行处理,这个时候一定要考虑到这样的问题:脚本执行可能会中断,或者运维不消息多次执行这个脚本。

  • 学会异常情况:异常情况可考虑加入日志跟踪

对于上线运营的产品,对于异常情况进行汇总分析&重要异常的报警,可以让开发团队先于客服团队发现问题,避免问题上报到高层领导并由高层施压处理问题。高层频繁收到问题的汇报,是研发团队失信的开始。

  • 站在运维部署的角度思考问题

举个最简单的例子:数据库的配置需要放在运维控制的配置文件里,生产环境的数据库配置信息是不能放在代码的配置文件中。

要想成为一名优秀的后端开发工程师,必须是要熟悉运维的,从熟悉linux系统开始,学会用户权限、磁盘管理、网络配置、防火墙、端口等基础知识,然后在单台服务器上下载、编译、按照各种工具,搭建数据库、缓存、web server等基础设置,最后还需要懂得如何搭建集群、监控、备份、安全等。

  • 对新老版本的兼容性

例如:对于某个API,需要调整它的参数格式。这个时候通常是新加一个API,前端的老版本还是访问老的API,新版本访问新的API,等到确认所有的用户都更新到老版本,才可以把老的API下线。

  • 安全性

API中只返回必要的信息,非必要信息不必返回,更不能向他人暴露用户的隐私信息。

  • 对于代码执行结果的线上跟踪方案

笔者在实际工作中遇到了一个需求:原来的用户表的主键是username,其它用户相关的信息都是用username进行关联的。后来发现用户有修改username的需求,这样就需要加入数字uid,并对关联的表数据用id进行重新关联。

相关的执行步骤如下:

1.给每个老用户生成唯一的数字uid,创建新用户的时候自动生成uid(生产环境验证:所有的老用户都加入了uid,所有的新用户创建的时候都会加上新的uid,而且所有的uid都是唯一的)

2.在db的关联记录中都加入加入uid,cache里面用uid关联生成原来一模一样的数据,这样既可以用username,也可以用uid获取数据(生产环境验证:所有的新老信息都有uid关联)

3.代码中逐步切换成用uid获取数据,如果uid获取不到,就用username获取(生产环境加入日志,如果用uid无法获取到信息,就记录日志,直到稳定运行一段时间,无任何相关的日志产生)

4.修改外部依赖于username获取数据的系统

5.确认所有的代码都是用uid关联获取数据之后,方可失效username关联的数据。

Leave a Reply

Your email address will not be published.