zoukankan      html  css  js  c++  java
  • 常见问题整理

    一、代码规范

    1. 1.     命名及书写规范

    1)驼峰式命名 例如:SalaryPayingId

    尽量使用英文单词,不要使用拼音(让人一眼就能看懂)

    表的主键最好使用Guid.

    2)字段长度定义

    定义string类型的字段长度。

     

    3)数据库表名及字段名称说明

    数据库字段和表名定义的时候需要加上注释,我们当前的数据字典模块会读取当前的注释,

     

    表结构之间不能有太多依赖,新表的设计最好不要影响基础表的操作。

    更改新的功能时,如果对原有数据有影响,需要提前制定处理方案。

    原表字段的删除要慎重

    1. 2.     代码存放路径规范

    1) 每个模块分文件夹存放

    当前有很多模块在设计的时候,创建的文件都是在一个文件夹里面,找起来特别的麻烦,最好是不通过的模块分开单独存放,便于之后的使用及查找

     

    例如:我们问题点这里的模块,其实是有分很多的小模块,但是现在所有的代码都是放到这个里面,每次找起来就很麻烦。

    我们对于的web层,application层,等这种相关的最好都是对应的。

     

    1. 3.     代码重写、循环调用、循环嵌套调用数据库

    1) 如果一段代码重复出现3次以上,那么你的代码就需要优化了。

    2) For循环里面调用数据库查询,会多次连接数据库,造成资源的消耗。可先批量从数库进行读取(需要条件过滤),然后再去循环,降低数据库的连接次数。

    调整前:

     

    调整后:

     

    3)忌:for循环里调用UnitOfWork  非常耗资源

    using (var uow = UnitOfWorkManager.Begin(TransactionScopeOption.RequiresNew)){}

    1. 4.     接口及接口文档的书写

    1)接口 以后是否会拓展 是否要进行token验证

    提供接口文档,是否可以做一些公用的接口,不要只针对当前这个需求,以及之后的拓展

    对外接口,最好能够整理对应的接口文档进行详细说明。

    例如:计税相关接口2020-05-20.docx

    1. 5.     代码注释

    1)遇到比较复杂的逻辑,可采用清晰的注释来辅助说明。但大的原则是尽可能的让你的代码看起来一目了然,无需注释也可以轻松看懂。

    1. 6.     大数据量操作

    1) 如果遇到数据量比较多的,可采用多线程分批处理

    2) 大数据量的定时任务最好放在使用时间最少的时候执行

    3) 涉及到查询的地方,最好限制一下查询的最大范围,避免一次性查询太多数据。

    1. 7.     日常问题点记录

    1)平时遇到问题,处理之后,可将问题点记录下来,分类进行整理。可以有自己的博客,或者自己整理的文件夹来进行记录

    二、数据库

    1. 1.     Sql查询优化

    1) 如果linq查询比较复杂,可采用sql脚本的方式查询。需要注意的是我们传入list类型的参数时,如果数据量过多,在执行数据库的时候会超过长度,sql语句会被截断,此时可以采用字符串拼接的方式来查询。(但字符串拼接的方式尽量要少用,防止注入)

    2) 复杂逻辑,可先在本地打开执行计划,看是否需要创建索引。

    选择筛选度高的字段创建索引

    尽可能的使用索引字段作为查询条件,尤其是聚集索引(比如id)

     

    3) 排查本地问题时,可采用SQL Profiler来进行脚本的监控。

    SQL Profiler: https://www.cnblogs.com/luoxiaoxiao102/p/15169920.html

    1. 2.     基本sql书写(基本的语句要会)

    1) 简单数据库查询及修改,数据库小工具的使用,针对测试。

    Sql常用查询:https://www.cnblogs.com/luoxiaoxiao102/p/15169780.html

    1. 3.     数据库小工具的使用

    1)接口测试,Postmen的使用,针对测试。

    简单用法:https://www.cnblogs.com/luoxiaoxiao102/p/15169842.html

    定义环境变量:https://www.cnblogs.com/luoxiaoxiao102/p/13217633.html

    一个接口调用多次:https://www.cnblogs.com/luoxiaoxiao102/p/13335907.html

    模拟多线程调用接口:https://www.cnblogs.com/luoxiaoxiao102/p/13335975.html

  • 相关阅读:
    RocketMQ性能压测分析(转载)
    利用Fiddler或Charles进行mock数据
    Linux中buffer/cache,swap,虚拟内存和page ++
    AVA 8 :从永久区(PermGen)到元空间(Metaspace)
    jstat 监控调整GC很好用
    Jmeter常用函数
    关于Oracle新建表空间,添加用户及新建表数据
    关于Oracle增加表空间大小方法
    关于手动删除Oracle数据数据,导致Oracle无法连接处理过程
    解决jquery easyui combotree(下拉树)点击文字无法展开下级菜单的解决方法
  • 原文地址:https://www.cnblogs.com/luoxiaoxiao102/p/15109326.html
Copyright © 2011-2022 走看看