后端设计中的总结
后端设计中的总结
总结
数据处理
数据处理,可以从来源到输出的方向,进行思考。主要分为以下几个流程。
- 数据库进行处理。
常见的,如增加一个字段,而此字段可以是常量,或经计算所得。进行排序等。
- 后端语言进行处理。
如果在数据库端处理,不太方便。可以使用在后端的php语言进行处理。常见的有,排序、增加额外的计算字段等。
- 前端Ajax请求后,对数据进行处理。
在Extjs框架下,数据load之后,可以使用fields字段的convert设置进行处理。此种方法,比较好,不会污染原有的变量。
- 前端渲染到模板内处理。
Extjs的columns设置renderer(v,metaAttr,record)函数。但是,请注意,如果此值不需要在后续再使用,可以这么干,如果此值还需要再使用,那么这样做,就污染了原有的变量。
加锁机制
对于一些竞争的资源,需要对数据库的访问,需要作为一个原子操作过程,进行加锁处理。
设置flag,标志
在一些常见前端的场合,可能增加flag进行处理。伪代码如下。
<script>
var flag=0;
//需要判断flag是否允许执行
if(flag===1){
{
//系列的操作
}
//操作结束后,需要将标志复位
flag=0;
}
//在其他地方,进行开启。
/flag=1;
</script>
flag不一定总是0跟1。可以根据情况,为详细的id。一个例子是,之前设计的模板编辑器。flag为详细的操作id。还有,保存上次操作的模板。如果用户手动更换了模板,然后执行下一步的时候,清空数据,更换模板。
巧用if-return提前结束函数
我们知道,if如果嵌套比较深的话,理解起来非常的困难。如果是自己写的代码还好说,如果是别人写的代码。理解起来,难度确实较大。在这个时候,可以利用
if(条件不符合)
return 错误值;
来提前结束掉函数。有多个这样的if-return,将原有的嵌套if变成了线性的if了。理解起来,难度会小很多。
深入理解if
- if的嵌套
- if的条件组合
if的条件其实相当于切片一样(概率论也有)。条件是否是同一方面,如果是同一方面的话,是否能用数组组合。
<?php
$roleId=4;
if(in_array($roleId,array(1,2))){
//对于特殊的角色id进行处理
dosomething();
}
另外如果条件是值同一方面,有的时候else不要省略,这样来减少无效的判断。如下:
<?php
if(条件1){
echo '小屁孩';
}
if(条件2){
echo 'xxxxxx';
}
像上面,及时从逻辑上判断,如果条件1成立了,条件2根本就不会再成立,也要加上else。这样能减少判断。有的时候,if-elseif 没有else。这也是有的。
深入理解循环
循环其实是常见的语法。必须深入理解循环。for(起始条件;终止条件;步进)这个是常用的循环结构。有些语言有高级的抽象。比如Ext.Array.each(list,function(){//代码;})等。