zoukankan      html  css  js  c++  java
  • 编程习惯

    1、接口

    接口路由和参数格式:

    路由以    https://xx.xxx.com/xxx/xx/is-bind-card 形式对外,后面的形式统一以 - 连接字符,参数以  access_token 形式对外,小写加下划线

    2、代码格式

    每进去一个公司在编写代码前,都必须要询问公司的代码格式是怎样的,路由形式、参数格式、变量格式、代码风格等,保持一致美观。。。如无,则按照上面的形式。。。

    3、返回接口格式:

    借鉴下大公司代码的返回格式,尽量json,一个值的情况也用 object 形式

    4、检查写的每个接口的执行时间,尽量优化,减少IO、数据库连接、减少内存消耗等

    5、日志

    任何接口、重要位置都要留下执行日志:

    任何接口调用的参数和返回值、功能函数执行的重要步骤、脚本执行的重要步骤、出错记录的错误

    日志规范,标准定义等:FATAL、ERROR、WARN、INFO、DEBUG

    日志不要有过多无效的、没用的,无法定位问题的,需优化更新

    debug.log:业务调试信息。

    info.log:业务关键步骤信息。

    warn.log:业务的警告信息,例如超过临界值。

    error.log:业务发生的错误以及堆栈信息。

    sql_info.log:超过10ms的SQL调用。

    api_info.log:api调用的关键信息。

    rpc_info.log:rpc调用的信息。

    日志格式参考:

    traceId,日志追踪使用的唯一ID

    UID

    请求客户端IP(rpc日志中记录目标服务端IP端口)

    请求路由

    请求方式

    请求参数

    请求body

    请求头信息

    响应状态

    响应body

    处理耗时

    日志的参数一定要带有能够标识用户的唯一ID,uid、phone或者其他都可以,不要用会失效或变化的值,如:token

    6、任何代码都要有 try...catch...,正式环境绝对不要输出错误,PHP的内置函数记得在前面加 @

    7、php 换行不要再用 ,一律用 PHP_EOL

    8、类名、函数名用小驼峰写法,变量名用小写加下划线(go是小驼峰),常量名用大写加下划线(go无下划线)

    9、接口超时记得设置重试策略,重试再报错就放进缓存,缓存一定要容易辨识和使用,由脚本或人工解决

    10、调用第三方接口防范不稳定的风险,可以将不是实时更新的信息保存一份到缓存,获取接口失败时就用缓存的数据,但是数据比较重要的就还是实时报错

    11、使用消息中间件,提高使用体验,其他处理丢给后续任务处理,即异步处理

    12、接口的幂等性很重要,特别只要是更新、插入、删除操作都应当是幂等性

    13、能同步的尽量同步,可以异步的分开异步

    14、避免多个if-else:

      1、if 直接 return

      2、确定值变成数组或map,取值返回

    15、优化旧业务时要使用配置,并在配置里设置开关,可起到不更新代码实时切换新旧业务的作用

    16、能设置成配置的一定要设置成配置,不要写死在代码里,可随时切换或更改变量

    17、上线三把斧:可灰度、可回滚、可

    18、http连接应考虑连接数、请求超时、连接释放等

    19、对应并发量很低的业务或者后台管理的简单请求,可直接查库;但是假如连接几个表的,或者运行很久的,或者数量级很高的,要使用缓存

  • 相关阅读:
    HDU 4118:Holiday's Accommodation 简单树形DP(2011 Asia ChengDu Regional Contest )
    HDU 4276:The Ghost Blows Light 树形DP(2012 ACM/ICPC Asia Regional Changchun Online )
    HDU 3586:Information Disturbing 树形DP+二分
    HDU 4044:GeoDefense 树形DP+分组背包
    HDU 4003:Find Metal Mineral 树形DP+分组背包
    HDU 2196:Computer 树形DP
    Codeforces 681D:Gifts by the List (dfs+topsort)
    Codeforces 681C:Heap Operations
    跨浏览器注册事件和移除事件方案
    jquery 清空表达内容
  • 原文地址:https://www.cnblogs.com/linguoguo/p/7878504.html
Copyright © 2011-2022 走看看