开发注意事项(开发前看一下,开发后看一下)
开发程序需要注意的点
1.操作删除或者不能自由的恢复的数据,都需要添加上二次确认(防止数据误删)
2.进行查询个人资料,一定要判断当前登录人是否有权限(查看,修改,删除),一般都需要配合当前登录人标识信息来判断(防止他人操作别人的数据)。
3.尽量查询数据使用Get方式,(修改,删除,添加)使用Post方式(规范)
4.程序使用异步的时候,一定要异步到底(不然没用)。
5.判断(集合,EF判断)是否存在数据不要使用Conut(),使用Any()(性能优化)。
6.系统中的(添加,修改,删除)一定要添加上对应的日志信息(可追溯性)。
7.数据库编写SQL语句(修改,删除),一定要写where条件(防止数据污染)。
8.两个表以及两个表以上的操作都需要使用事务(保证数据一致性)。
9.只要是自己写的代码都需要经过测试进行测试。(防止自己测试的不专业)、
10.编写SQL之前一定要在数据库进行测试,防止自己的SQL存在漏洞(先测试代码在去执行)。
11.时间转换的时候Tostring("yyyy-MM-dd HH:mm:ss")这个里面一定要格式(防止时间格式不一样)。
12.不要听别人说代码是这样写的,一定要自己去写一下,最好是断点分析代码(别人说不一定是对的,只有自己实践了才是耶稣!加油)
13.只要是很多代码都写了这样的写法,或者一样的逻辑,没错你可以试着去想共同点,写成自己的代码插件(不要好高骛远!!很多方法不要只会用)
14.如果一个内置的方法经常被做同样的操作,不妨试试拓展方法。(拓展方法,方便管理和维护会让你的代码美美哒)
15.数据库创建字段类型的时候使用nvarchar和varchar前者处理数据库中数据的编码问题,但是数据库中存的长度会是长一些https://www.cnblogs.com/carekee/articles/2094676.html可以看(这个可是知识)
16.当代码改的之后一定要看一下相关功能,联想一定要做好(这个重要的很,减少调试时间)
17.代码尽量使用try(){}捕获异常,写入错误日志,日志一定要写。特别是API接口(让自己的代码可读性强,质量提升)
18.自己写的每一个功能要自己测试,才能给别人看。一定要看到数据,数据对上了才算可以(避免浪费大家的时间)
19.卢明在测试的时候会使用两个浏览器同时进行提交数据。(代码很多时候不能以常人的思考去想了。)
20.在IE10一下模式,get请求最好加上时间戳,不能会有问题,要么就使用post请求。(兼容问题)
21.在修改项目的时候一定要看,这方法有多少地方调用了(防止其他地方调用)
22.一定更改了数据库的表就一定要先修改项目中的版本记录,和数据库模型(到时候上线可以让你蛋疼,主要版本的同步)
23.其实我们创建数据中一般都会有创建人ID,但是不会有创建人名称,但是我们有经常要用到,我们可以将这个名称存在这个表里面,没必要老是联合查询。
24.我们后台经常需要传递很多相同的字段,为什么我们不封装成一个基类呢?可以很好的减少函数传递参数的字段和长度,代码整洁之道里面有提到。
25.在所使用的Liqn语句的时候尽量不要讲转换放入里面(规范问题)
26.数据库中要注意nvarchar 、varchar的区别,前者不区分编码,或者区分,比如前者可以存50后者就只可以25(基础知识问题)
27.当我们的方法参数超多3位一定要,使用类来接受,方法特长可读性很不好。(规范问题)
28.当我们使用类型转换的时候int.Parse()尽可能的使用int.TryParse(),防止不必要的报错(规范问题)
29.当有一个任务来了自己先画一次流程图,会很容易的进入需求中考虑事情(自己的问题)
30.我最近我发现一个性能问题,就是虽然我们的数据在缓存中,也不要循环获取缓存获取数据因为还是很慢,缓存链接数也给挤满,内存不容易释放。解决方案是将公共数据提取出来,进行内存查询。(性能优化)
31.关于列表查询数据传入页码条件的问题。当我们修改的查询条件一定要将页码修改为1不然之前选的2然后修改的条件查询出来没有2页就会显示不出数据(注意事项bug)
32.每次修改代码都一定要测试对应代码块是否存在问题
作者:匿名
出处:https://www.cnblogs.com/chenxi001/p/11978490.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架