随笔分类 - 其他
摘要:《匈奴列传》中描述的匈奴价值观 匈奴是典型的游牧民族,他们追寻有水草的地方,到处迁徙,无需城市,没有定居地,也不从事农耕,只是各个部落划分了各自的领地。 他们没有文字的书写,靠口头的说话来互相约束。 他们从小就练就了张弓骑射的本领,平时放牧,并以猎杀飞禽走兽为生,遇到特殊情况,就人人都能上场作战。
阅读全文
摘要:单体应用下,软件的问题相对比较容易定位,从界面上就能看出来,不行的话加个断点调试、输出日志等方法很容易测试到。 如果使用测试驱动开发达到100%代码覆盖率,那么更是如虎添翼。 在分布式系统环境下,相对而言测试更加难一点。 名词解释 什么是分布式系统架构? 理论上说,客户机/服务器风格(C/S)就是一
阅读全文
摘要:为学 学而时习之,不亦说乎。 我们学技术,研究新技术,学了以后可以马上使用,不也是一件快乐的事吗? 有朋自远方而来,不亦乐乎。 像我们这样的非一线城市,有志同道合的技术大拿远道而来演讲,不也是件愉快的事吗? 人不知而不愠,不亦君子乎。 别人对某方面技术不了解,我们也不生气,不正是技术者内在修养的体现
阅读全文
摘要:软件开发者最初为了做出某种功能而努力着。 当有一天,开发者们掌握了开发的门道,实现功能已经家常便饭了。 于是人们开始考虑更多问题,性能就是一个问题。 通常2-4年工作经验的开发者会很纠结这个问题,但由于基础参差不齐,对性能的理解也大不相同。 那些年也许我们过于在乎性能问题了。 误区一:O/RM工具影
阅读全文
摘要:发现许多速成软件设计师并没有研究过数据库的设计,对数据库完整性视而不见。错误观点1:开发阶段可以不建立约束与外键关系,等到开发与测试都完成,需要安装部署的时候才加上外键。认为加入了外键关系经常导致某个表无法插入数据,提示意思大概是找不到外键无法插入。错误观点2:认为可以不加外键约束,检查约束,不能为空。什么叫数据库完整性,简单说就是保证数据是有意义才能写入数据库,所以不符合完整性的数据插入了数据库也不一定有意义,既然数据没有意义,测试也就没有意义。可以不理会这些设计问题,可以在设计阶段偷懒,那么在开发阶段会有些东西让你烦的,出来混总是要还的。无视它可以,这样一来数据库可以接受程序虽然的写入,要
阅读全文
摘要:什么是Sesson? 简单说就是一个会话级的cookie,外加服务器端内存中一组散列表。 当你关闭浏览器的时候,这个cookie将消失。 这个cookie不写在磁盘上,而是存在于浏览器缓存。 关于Session的传说 传说中,Web应用程序中的Session和Application保存服务器端,而c
阅读全文
摘要:单元测试 (白盒测试)1模块接口: 内部检查:传输参数的数目、属性、单位、次序是否匹配;全程变量的定义是否一致;只做输入的变元有无被修改,等等 内部检查:打开、结束、关闭文件的操作;文件和属性;I\O错误处理;输出拼写,等等2局部数据结构: 数据说明;初始化与缺省值的设置;变量名拼写;数据类型的相容性;上\下溢出及地址异常,等等。3重要的执行通路:由于穷尽测试的不可能,故通常针对最常见的错误设计测试方案。较常见的错误有: 计算次序问题; 不同类型混合运算; 初值设置错误; 精度问题; 表达式错误 循环终止条件错误;4出错处理通路:预见出现错误的条件,设置处理。较常见的问题有: 输出的错误信息难
阅读全文
摘要:避免数据库表或字段具有多种意思。先来看一个糟糕的设计,以下将分析由数据库字段两意性引发的惨案。图1图中两张表,表示入库申请和实际入库出库,由于入库和出库行为非常相似,所以只用了一张表并用单据类别区分入库和出库。表面没什么问题,只要在程序中判断单据类别就能使用。但实际开发过程当中问题远不止这些。1.看申请单据ID由于入库时需要申请,所以这里有个申请单据ID。但出库不需要申请,入库时有特殊情况不需要申请直接入库的,所以这两种情况是没有申请单据ID的。怎么处理?有申请单据ID就插入ID这个没有问题,不需要申请时呢?将这列设置成允许为空,并设默认值为0。这时看似问题解决了,其实还差一点。如果程序中出现
阅读全文
摘要:---------------------------------------------------------------------------------------事务执行方式:事务串行执行交叉并发方式同时并发方式并发控制机制的任务:对并发操作进行正确调度;保证事务的隔离性;保证数据库的一致性;并发操作带来的数据不一致性:丢失修改,不可重复读,读“脏”数据。并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。-------------------------------------------------------------
阅读全文
摘要:规范化消除增删改查异常,降低数据冗余:1NF、2NF、3NF、BCNF、4NF、5NF1NF:基础数据不可再分。2NF:非主属性完全函数依赖于码。1NF的前提下隔离部分函数依赖得到2NF。X->Y。3NF:每个非主属性不部分依赖于码也不传递依赖于码。采用投影分解法,消除传递函数依赖。BCNF:每一个决定属性因素都包含码。4NF:不允许有非平凡且非函数依赖的多值依赖。允许有非平凡多值依赖是函数依赖。过于规范化会增加表连接,产生笛卡尔积,所以规范化要把握一个平衡点。
阅读全文