在设计的问题上我陷入了封装陷阱,粒度划分陷阱
功能以*
逻辑功能完成划分 不能以部件构成*来划分
功能有实现所需要的*
部件, 可以单独封装部件, 但是不能在部件内出现外层逻辑功能*
| #include <stdio.h> | |
| int main(void) | |
| { | |
| printf("hello world!"); | |
| return 0; | |
| } | |
| #test |
| function Iterator(start, end) | |
| { | |
| this.range = []; | |
| for (var i = start; i <= end; i++) { | |
| this.range.push(i); | |
| }; | |
| console.log(this.range); | |
| this.start = start; | |
| this.end = end; |
| <?php | |
| /** | |
| * 从二维数组中选取指定列组成新数组 | |
| * @param array $dd_array 二维数组 | |
| * @param string | int $column_key 选取作为值的列的列名 index | key | |
| * @param string | int $index_key 选取作为键的列的列明 | |
| * @param string $flag 列名的形式 | |
| * @return array 返回新的一维数组 | |
| */ | |
| function array_column($dd_array, $column_key, $index_key = 0, $flag = 'INDEX') |
| /** | |
| * 活动持续时间 | |
| * 计算两个时间差 | |
| * @param {string} start 时间 格式:2015-09-07 15:53:00 | |
| * @param {string} end 时间 格式:2015-09-07 15:53:00 | |
| * @return {string} 相差的时间戳 | |
| */ | |
| function countContinuTime(start, end) { | |
| var startStamp = Math.floor(new Date(start).getTime() / 1000); |
| // 匹配console | |
| /console\.(log|error)*\(.*\);$/ | |
| // 匹配整行console | |
| /\n *console\.(log|error)+\(.*\); *$/ |
在设计的问题上我陷入了封装陷阱,粒度划分陷阱
功能以*
逻辑功能完成划分 不能以部件构成*来划分
功能有实现所需要的*
部件, 可以单独封装部件, 但是不能在部件内出现外层逻辑功能*
| <?php | |
| class PictureTaobaoModel extends TaobaoModel | |
| { | |
| /** 初始化方法 */ | |
| protected function _initialize() | |
| {} | |
| /** | |
| * 功能:检测用户图片空间是否有指定的图片分类 | |
| * @param session 用户session |
| // Array.prototype.range(start, end) | |
| Array.apply(null, {length: end - start + 1}).map((v, i) => i + start) |
| <?php | |
| /** | |
| * 过滤 XML 中不合法的字符 否则将无法正常解析XML | |
| */ | |
| function XmlSafeFilter($s) | |
| { | |
| //XML标准规定的无效字节为: | |
| /* | |
| 0×00 – 0×08 0 - 8 | |
| 0x0b – 0x0c 11 - 12 |