bmrxntfj
bmrxntfj 专注DDD
最新评论
Re:javascript中instanceof是如何工作的 Johnny_Z 2012-03-02 21:43
由于某个技术问题看到了博主的文章,虽说是很早的文章但是也留个评论以便后人参考。我主要说一下后三行代码,博主最后三行代码即:
alert(obj instanceof class3);//true;
alert(obj instanceof class2);//false;
alert(obj instanceof class1);//true;//这个有我想不明白
在这之前先说instanceof到底比较的是什么,我觉得比较的就是原型(prototype)!所以只要原型相等结果就为true。只要弄明白当前对象的原型是谁问题就迎刃而解了。
我们先来看obj,它是class3的实例,class3的原型指向了class2而class2的原型指向了class1(这时class2还并没有指向class4),所以说obj的原型指向class1。虽说代码的后面class2确实指向了class4,但obj的原型对象是在class2.prototype=new class4();这步之前就已经分配好,它不会动态更改。
好,来看class3,它也是指向class1,所以class3的原型指向class1,那么alert(obj instanceof class3);//true;没错!
再看class2,由于代码中已经更改,所以class2的原型指向class4,而obj指向class1,那么alert(obj instanceof class2);//false;没错!
最后看class1,它一直就没有更改过,它的原型就是它自己class1,所以alert(obj instanceof class1);//true;没错!
问题的核心是弄明白instanceof的作用,一味的拿继承概念去解释这段代码行不通的。
Re:javascript中instanceof是如何工作的 tobethe2th 2012-01-13 16:43
我想说的是我在windows7 chrome17 下没有报false。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Re:统一的仓储接口 str.chan 2011-11-09 16:58
MARK下回家继续看,终于发现全是DDD的博客
Re:ddd分层感想 FreezeSoul 2011-08-07 00:23
哪里有使用dao方式作为infrastructure持久方式的例子呢,我想如果考虑性能优化,可能会在所难免的遇到这样的问题,请问有没有好的想法。
Re:规格模式(Specification) wlf 2011-06-03 09:09
多谢 学习了 能否提供个demo 感激~~
Re:规格模式(Specification) 比尔锅盖 2010-11-11 14:32
谢谢 学习了。。。
Re:javascript中instanceof是如何工作的 peizhibi@yahoo.com.cn 2009-12-23 14:16
1 function class1(){};
2 function class2(){};
3 class2.prototype=new class1();
4 function class3(){};
5 class3.prototype=new class2();
6 function class4(){};
7 var obj=new class3();
8 class2.prototype=new class4();
9 alert(obj instanceof class3);//true;
10 alert(obj instanceof class2);//false;
11 alert(obj instanceof class1);//true
第一,Javascript继承的是类的实例,而非类,所以当类改变,并不影响已经创建过的实例。
第二,在第3行后面,插入一句:var obj2 = new class2();在最后面一行插入:alert(obj2 instanceof class2);//false
re: ddd官方终于发布了一个完整的示例 五味子 2009-07-02 13:31
3D容易混淆
还是叫D3吧
还是叫D3吧
re: ddd官方终于发布了一个完整的示例 五味子 2009-07-02 13:31
什么是3D?
re: 论软件的价值 jacob Lai 2009-05-10 01:25
你這種思想可能只能讓你的程式人生都成窮光蛋了。因為軟件的價值只有客戶才知道,所以我們問客戶要錢要針對我們所付出多少時間和難度,客戶可以隨時提更改,不過你要讓客戶知道,這些修改是要代價的。這樣才是正確的價值觀。
re: 反思自己 下饭菜 2009-05-04 22:35
呵呵
re: 反思自己 下饭菜 2009-05-04 22:34
@喝醉的咖啡
自知的人,不需要别人给自己“信心”,不需要对比别人获得自信,不需要别人的评价来肯定或者否定自己,因为他很清楚他是什么,要什么,如何去实现自己的愿望,在干什么
这句我记下了。。。
自知的人,不需要别人给自己“信心”,不需要对比别人获得自信,不需要别人的评价来肯定或者否定自己,因为他很清楚他是什么,要什么,如何去实现自己的愿望,在干什么
这句我记下了。。。
re: javascript中instanceof是如何工作的 sswhsz 2009-03-29 01:47
songzz 解释的很好,谢谢!
但是instanceof采用这种判断方法有巨大的缺陷,比如:
var base = {};
function class1(){};
class1.prototype=base;
function class2(){};
class2.prototype=base;
var obj = new class1;
alert(obj instanceof class1);//true
alert(obj instanceof class2);//true:
//obj莫名其妙成了class2的实例,仅仅因为class1和class2的prototype相同
但是instanceof采用这种判断方法有巨大的缺陷,比如:
var base = {};
function class1(){};
class1.prototype=base;
function class2(){};
class2.prototype=base;
var obj = new class1;
alert(obj instanceof class1);//true
alert(obj instanceof class2);//true:
//obj莫名其妙成了class2的实例,仅仅因为class1和class2的prototype相同
re: ddd分层感想 Jacky.W 2009-02-23 22:10
请问现在都有哪些方法实现Meta Mapping Layer?
1.NHibernate?编写负责的xml映射文件?
2.使用Attribute标记和不成熟的Aop框架?导致领域模型类中都是Attribute标记?
3.不使用框架,直接把领域模型打散成基本元素,手动编写有很多基本参数的持久化方法?
1.NHibernate?编写负责的xml映射文件?
2.使用Attribute标记和不成熟的Aop框架?导致领域模型类中都是Attribute标记?
3.不使用框架,直接把领域模型打散成基本元素,手动编写有很多基本参数的持久化方法?
re: 分层随想 bmrxntfj 2008-11-14 13:23
以下再次补充第二点:
2、确定以某一层为中心。
就是以这一层的数据为标准,其它任何层的数据对系统来说都是不可信任的,
反之,从这一层出去的数据都是绝对可信任的。
2、确定以某一层为中心。
就是以这一层的数据为标准,其它任何层的数据对系统来说都是不可信任的,
反之,从这一层出去的数据都是绝对可信任的。
re: 分层随想 金色海洋(jyk) 2008-11-11 16:55
感觉你是在为了分层而分层,遇到了问题就改变了一些原则。
其实还是没有深入理解分层。
其实还是没有深入理解分层。
re: 反思自己 kay 2008-11-01 16:38
其实我也有这样的烦恼,不过前几天刚好想通了,,在公司就当这个时间不是的,只为老板想,不求技术,晚上回家那就是我的时间了,追求技术方面的。
不过问题也就来了,有了技术一定要找地方发挥吧。。所以我想就往”hack“这方面去了,。。。。。
不过问题也就来了,有了技术一定要找地方发挥吧。。所以我想就往”hack“这方面去了,。。。。。
re: javascript中instanceof是如何工作的 kay 2008-11-01 16:26
明白了其实alert(obj instanceof class1);//true;他作比较的时候只是做了一个链点的比较,所以就判断为正确了,而对于class2他作了二个链点的比较,不过他的第二个链点已经改变,所就不false了,
re: 反思自己 喝醉的咖啡 2008-10-15 12:00
〉那些个面试题也就算了。重要的是当你进去之后,人家明知道你有点设计方面的能力,但人家就是不给你机会。
愤青到不至于,帽子也别太大,这个行业的确很多“程序员”——编程爱好者
重点在于心态平衡,或者说先贤所强调的自知——自省固然重要,但别省错了方向,呵呵
1. 我是谁?——我的属性有哪些?值是多少?——规格如何,能力如何等等
2. 我的愿望是什么?我期望自己现在或者将来是什么样子?
3. 如果要实现我的愿望,我需要去做些什么?
那么,我现在在干什么?
——A. 我知道自己在干什么么?符合第一条么?
——B. 我现在做的事情符合第三条么?
知己,那么也许“我很清楚我现在只是在发发牢骚——我很清楚我在干什么,而且我要做的事情也没有放下”,那就不是什么大问题。
然后知彼:周围环境是什么样的属性和规格?我是不是要换个地方?
心理不平衡的时候,往往是对自己的认知或者对周围环境的认知出了问题。如果这方面没有问题,那就很可能是自己与这个环境不太合适,不妨考虑换个环境吧。
当然,咱们东方人更强调遇到问题从来都先自省,呵呵
我只是提醒你自省未必只有 jillzhang 的方式罢了
最后,想告诉你,很多人都经历过类似的阶段,而且在之后的人生中时不时会出现类似的情况:清楚是什么情况,那就没什么大不了,毕竟一切尽在“掌握之中”,了然于胸。
自知的人,不需要别人给自己“信心”,不需要对比别人获得自信,不需要别人的评价来肯定或者否定自己,因为他很清楚他是什么,要什么,如何去实现自己的愿望,在干什么。
愤青到不至于,帽子也别太大,这个行业的确很多“程序员”——编程爱好者
重点在于心态平衡,或者说先贤所强调的自知——自省固然重要,但别省错了方向,呵呵
1. 我是谁?——我的属性有哪些?值是多少?——规格如何,能力如何等等
2. 我的愿望是什么?我期望自己现在或者将来是什么样子?
3. 如果要实现我的愿望,我需要去做些什么?
那么,我现在在干什么?
——A. 我知道自己在干什么么?符合第一条么?
——B. 我现在做的事情符合第三条么?
知己,那么也许“我很清楚我现在只是在发发牢骚——我很清楚我在干什么,而且我要做的事情也没有放下”,那就不是什么大问题。
然后知彼:周围环境是什么样的属性和规格?我是不是要换个地方?
心理不平衡的时候,往往是对自己的认知或者对周围环境的认知出了问题。如果这方面没有问题,那就很可能是自己与这个环境不太合适,不妨考虑换个环境吧。
当然,咱们东方人更强调遇到问题从来都先自省,呵呵
我只是提醒你自省未必只有 jillzhang 的方式罢了
最后,想告诉你,很多人都经历过类似的阶段,而且在之后的人生中时不时会出现类似的情况:清楚是什么情况,那就没什么大不了,毕竟一切尽在“掌握之中”,了然于胸。
自知的人,不需要别人给自己“信心”,不需要对比别人获得自信,不需要别人的评价来肯定或者否定自己,因为他很清楚他是什么,要什么,如何去实现自己的愿望,在干什么。
re: 论软件的价值 喝醉的咖啡 2008-10-15 11:37
呵呵,尽管是一个过期的讨论,俺也来唠唠
1. 衡量软件的价值是由客户所获得的利益决定的。
没错,严格来说是客户“预期”能够获得的利益决定的。
2. 因此我们要根据客户所获得的利益跟客户要钱。
问题出来了:首先,不是项目收尾了才跟客户要钱,而是在报价的时候,根据“对实现客户预期的功能的承诺”来报价。换句话说,客户愿意付款来让我们实现他预期的功能,从而实现他预期的价值。
所以,问题到这里很明朗了:
1. 客户预期的功能 未必符合 客户预期的价值:因为客户预期不正确或者不恰当?
总而言之,
2. 我们的承诺——也是预期——未必能100%兑现:
A. 客户的预期没有充分和准确地表达出来?或者我们的理解能力不够?导致对客户的预期的理解有偏差;B. 我们的项目控制和软件实现能力与我们对自己的承诺的预期不符
3. 客户的预期变化——这很正常。但糟糕的,而且非常常见的结局是:我们和客户之间没能对这些变化以及由此带来的后果达成一致,blah blah blah——具体原因,则又可能重复以上可能,总之导致我们未能充分理解变化并随之调整,或者我们成功地拥抱了变化,却达不到客户自己的预期
于是,无论售前还是项目过程中,以及验收各个环节,“客户教育”是一个很重要的概念。一定要主动帮助客户明确地知道自己的预期,帮助客户提高其预期的可行性,帮助客户提前了解可能的后果——风险以及规避风险的办法、风险管理的基本概念,帮助客户知道如何配合我们的工作以提高项目成功的可能性
等等
简单来说,我们要对客户进行教育、帮助和支持,以便提高他们作为“合格客户”的能力。当然,对我们自己的能力要求是最起码的要求。
例如:我们应该把客户可能的问题作为项目管理中最大的风险,并采取相应的措施:对“客户教育”,帮助客户调整其预期,帮助客户更清楚地认识事情的本质;售前或项目过程中需求变化时,尽可能提高沟通效果达成共识,尽可能帮助客户提供并选择更有效的方案,尽可能对可能的后果提前提出解决方案并达成谅解。
尽可能帮助客户理解软件开发,如何配合软件开发,成为一个“有丰富的、高明的信息化经验的客户”
国内的客户往往都比较“弱”,他们在信息化建设方面的经验固然很差,但很多客户无法准确表达自己的想法,甚至很搞不清楚自己的预期,不清楚自己在干什么。其实这是普遍情况,因为我们身边也有很多这样的人。而且糟糕的是,还有很多掌握一定权力、在社会上有一定身份的人也是这样稀里糊涂的——比如你的同事或者boss,呵呵
抱怨现实不解决问题,认清现实,争取掌握主动权,降低对自己的影响 ^oo^
1. 衡量软件的价值是由客户所获得的利益决定的。
没错,严格来说是客户“预期”能够获得的利益决定的。
2. 因此我们要根据客户所获得的利益跟客户要钱。
问题出来了:首先,不是项目收尾了才跟客户要钱,而是在报价的时候,根据“对实现客户预期的功能的承诺”来报价。换句话说,客户愿意付款来让我们实现他预期的功能,从而实现他预期的价值。
所以,问题到这里很明朗了:
1. 客户预期的功能 未必符合 客户预期的价值:因为客户预期不正确或者不恰当?
总而言之,
2. 我们的承诺——也是预期——未必能100%兑现:
A. 客户的预期没有充分和准确地表达出来?或者我们的理解能力不够?导致对客户的预期的理解有偏差;B. 我们的项目控制和软件实现能力与我们对自己的承诺的预期不符
3. 客户的预期变化——这很正常。但糟糕的,而且非常常见的结局是:我们和客户之间没能对这些变化以及由此带来的后果达成一致,blah blah blah——具体原因,则又可能重复以上可能,总之导致我们未能充分理解变化并随之调整,或者我们成功地拥抱了变化,却达不到客户自己的预期
于是,无论售前还是项目过程中,以及验收各个环节,“客户教育”是一个很重要的概念。一定要主动帮助客户明确地知道自己的预期,帮助客户提高其预期的可行性,帮助客户提前了解可能的后果——风险以及规避风险的办法、风险管理的基本概念,帮助客户知道如何配合我们的工作以提高项目成功的可能性
等等
简单来说,我们要对客户进行教育、帮助和支持,以便提高他们作为“合格客户”的能力。当然,对我们自己的能力要求是最起码的要求。
例如:我们应该把客户可能的问题作为项目管理中最大的风险,并采取相应的措施:对“客户教育”,帮助客户调整其预期,帮助客户更清楚地认识事情的本质;售前或项目过程中需求变化时,尽可能提高沟通效果达成共识,尽可能帮助客户提供并选择更有效的方案,尽可能对可能的后果提前提出解决方案并达成谅解。
尽可能帮助客户理解软件开发,如何配合软件开发,成为一个“有丰富的、高明的信息化经验的客户”
国内的客户往往都比较“弱”,他们在信息化建设方面的经验固然很差,但很多客户无法准确表达自己的想法,甚至很搞不清楚自己的预期,不清楚自己在干什么。其实这是普遍情况,因为我们身边也有很多这样的人。而且糟糕的是,还有很多掌握一定权力、在社会上有一定身份的人也是这样稀里糊涂的——比如你的同事或者boss,呵呵
抱怨现实不解决问题,认清现实,争取掌握主动权,降低对自己的影响 ^oo^