- 浏览: 74338 次
- 性别:
- 来自: 成都
最新评论
-
wwccss:
我好久没有上javaeye了。但这个帖子要顶!
我宁愿相信人 ...
对”为什么Scrum不行?“的评价 -
grandboy:
本来看到书名,还想去搞一本呢,听楼主这么讲,还是算了吧。哪天去 ...
《设计原本》书评 -
1000copy:
zlx19900228 写道sql的艺术,个人觉得是永无止境的 ...
古旧的sql应该有点新样子 -
1000copy:
shiren1118 写道针对第三点,我觉得你了解的是不是太少 ...
古旧的sql应该有点新样子 -
shiren1118:
针对第三点,我觉得你了解的是不是太少了,关联一个元数据的表就可 ...
古旧的sql应该有点新样子
文章列表
这一块小文字,在我的笔记内多时了,近半年来我一直在编码中体会和验证它们。
面向对象含含混晦涩,不容易理解,说实话,我现在也没有看到一本书让我很快的明白的——总是需要长期的摸索和体会才慢慢的得到精髓。
------------------
对象健身操——九步迈向优秀软件设计2010年03月12日 星期五 来自《thoughtworks文集》
1.方法只使用一级缩进。
2.拒绝使用else关键字。
在演示passalert函数的抽取的时候,有人提出了这样的意见:
“我更加喜欢所有和这个功能有关的代码放到一起。这样看起来一目了然,而且调试的时候不需要跳来跳去的”。
抽取函数后,一个函数等效于一个代码块。就是说一个代码块变成了一行语句,显然看一行比看一块代码更加一目了然吧。
至于调试的时候跳来跳去的,这是事实,如果可以不跳当然对调试来说更加方便。可是在TDD开发中,更加强调测试,少用调试。就是说,丢进去参数,看结果对不对,如果对了,就不说了;如果不对,那么因为经过重构的代码逻辑清晰,应该是只要静态看代码就可以解决问题;如果不能的话,那么需要继续重构。通过重 ...
我听过很多关于标注的看法了。
比如jf说,“我发现我们都不太写标注,我们新来的,看起来比较困难”。那么,让你看不懂的真的是因为没有标注吗?在我的经验中,大部分原因在于:首先是因为代码本身不够清晰 ...
2010年6月12日
9:29
我超爱这个函数 ,它真是讲解重构的极品。这段代码意图是比较容易看得到的,因为它就写在alertword变量内——检查密码如果符合以下其情况,就返回提示文字
1.
一个同事维护delphi代码的时候发现原来 的软件内有很多with。过多的with让代码难以调试。
引入with的本意在于节省重复出现的对象名。比如说,如果有这样的调用:
Function
foo ()
begin
ObjectA.Prop1 = "a";
ObjectA.Prop2 ="b";
ObjectA.Run();
end
那么可以采用with让代码显得简洁:
With
ObjectA do
Begin
深度.net——成都2010年仲夏.NET社区精英活动
Visual Studio 2010的发布意味着大量新产品特性的全新亮相,更重要的是——行业巨人微软优雅转身,全面应用敏捷编程到日常工作中。那么我们程序员如何学习微软,让敏捷成为自 ...
1. 数据结构初体验
在大学期间学习数据结构时觉得很优美,因为选择一个好的数据结构可以让代码更加简短、容易阅读。并且很快也有了一个实践机会,就是自己决定做一个LISP 解释器。这个软件的代码总共花了3周写完,但是设计时间很长。实际上,其中的LISP的语法非常简单,而实现
* 测试,当on的条件为false的时候,join是否会被优化?
-- 插入测试表
CREATE TABLE person (id INT NOT NULL ,NAME VARCHAR(20));
CREATE TABLE bill (id INT NOT NULL ,NAME VARCHAR(20),personId INT );
-- 插入测试数据
DELETE FROM person;
INSE
报表众多的系统,不仅仅是where子句存在拼接,join子句也可能需要拼接。还是看代码:
String sql=" select * from bill ";
if (queryParams.pTypeId != null)
{
dbHelper.AddParameter("@ptypeid", ptypeid);
sqlWhere += " and p.typeid like @ptypeid ";
sqlJoin += " inner join ptype p on a.ptypeid ...
报表众多的系统,“多个可选条件拼接”就会大量存在。因为程序员需要根据条件录入框的的值是否存在来决定是否拼接这个对应条件。有点抽象,还是看代码。
string sql =
@"select n.vchcode,n.summary,n.Comment,e.fullname efullname
from dlyndx n left join employee e on n.etypeid = e.id
where n.draft=0 ";
if (queryParams.vchCode != " ...
所谓的动态sql,就是在t-sql字符串内的sql,而静态sql就是直接写在t-sql 存储过程内的。动态sql的好处是可以写出非常复杂的,表达能力很强的sql,并且,因为某些条件下sql更简单,因此号称效率更好。而静态sql的好处在于可以调试,可以代码提示。不管怎样,我发现我们的sql很多都是动态的。尤其是在
编写了n年的T-SQL,一回头,发现这门语言居然缺少很多基本的类型。
1.枚举
虽然枚举看起来就是数字,但是枚举比起数字来说更加好读。mysql有enum,比如billtype(单据类型)把它定义为枚举,从而在编写sql的时候更加方便。
mysql支持枚举案例:
mysql> CREATE TABLE enum_test(
某天早晨,我和一个程序员随便谈谈,他说,我们的系统变成假3层了。语气中看来非常寥落。我脑中便一下子跳出这个“龙位”的故事:
“民国14年,费孝通到湖南永顺考察,当地人问他:‘如今谁坐龙位?’,14年光 ...
代码的价值不在本身大小和复杂度,而在于多少其他代码在用它。
我们的一个产品依然有很多代码采用了“点连接的长行代码”,比如权限检查代码:
// 检查当前用户是否有对象搜索的权限
AppUtils.UserInfo.CheckLimit(CarpaServer.Common.OperatorLimit.LIMIT_OBJECT_HISTORY_SEARCH) ;
这样的代码,尽管只有一行,但是冗余非常的多——每次都要重复的加入
AppUtils.UserInfo
上回书 Tony says:
“看起来它似乎并没有改善不同层次代码的耦合关系,以前例看,所有的针对数据库的调用都是通过C#层的RunProc实现的,似乎它本身就充当了隔离层的作用,为什么还要增加一个无用的层delete_dept(1)呢? ...