理想化编程测例子还不少,我就拿作接口这个例子说事吧!数据库
如今通常的接口都是给的json格式,Json是一种特殊的字符串(就像string是特殊的引用类型,至于怎样特殊问题留给你了)!XX提供一个接口是一个字符串,而后我问是怎么搞得,他说拼接,此时此刻,你们以为有问题嘛?编程
你拼接Json串,总有一天你会感受到日了狗。。。。(包括在js拼接json串也是同样,必定要拼json对象!必定要拼json对象!必定要拼json对象!重要的事情说三遍!而后再用JSON.parse()和JSON.stringfy()去操做。
json
XX提供的结构就是一串字符串,为何不序列化!!!!出现占位符怎么样?XX曰:咱们数据不会出现!这么确定?这就是理想化编程的可怕!后端
我跟到底层原来写的这么鬼:缓存
public string ToJson() { return string.Format("{{\"para1\":{0},\"para2\":{1},\"para3\":{2}}}", para1, para2, para3); }
此时我已无力吐槽。。。。为何不序列化(Serialization)成json?网络
下面还有关于反序列化成model。为何用强转?强转为何不加Try catch?性能
LModel codelist = (Model)JsonConvert.DeserializeObject(strJson, typeof(Model));spa
其实也不必用Try catch,用as就行.net
关于强转和as的区别:强制类型转换:转换不成功会抛出异常,对引用类型和值类型都适用。as运算符:转换不成功获得一个null值,不会抛出异常;仅适用于引用类型,不能用于值类型。code
LModel codelist = JsonConvert.DeserializeObject(strJson, typeof(Model)) as model;
这不就OK了。。。。
作接口要注意的地方(一家之言,欢迎拍砖):
1,标准的接口文档和标准的接口数据;
2,性能;
a、SQL语句性能,查询更快
b、缓存,减小数据库压力
c、数据量,能不能一次把数据拿出来
d、生成压缩gz文件,减小网络传输
先以json为例吧,像编程理想化的例子还不少,好比不写后端验证,咱们改怎么防护攻击。此恨绵绵无绝期,吾将上下而求索!我是否是有点较真了????