
4、学习笔记
文章平均质量分 63
广州接入
毕业于北京交通大学计算机系,一直从事企业应用开发,有十多年的SaaS平台产品研发经验。擅长系统架构,需求分析。
展开
-
关于数字孪生的一点理解
最近这个概念很火,当然,这也与IT技术的发展有关,随着技术的成熟,很多东西到了可以落地的时刻,火起来也可以理解。这几年也在接触这些概念,也在技术落地一些功能,下面内容是我对这个技术的理解,欢迎交流并指正:1、什么是数字孪生?数字孪生就是将真实世界的事物进行数字化建模,投射到信息虚拟空间中,并实时进行状态映射和虚实交互。数字孪生的三个基本要素分别是物理空间、虚拟空间和映射。数字孪生是将物理空间事物通过数字技术映射到信息虚拟空间,并建立起双向的实时交互。正常情况下,数字空间仅对...原创 2021-01-18 15:00:19 · 2665 阅读 · 2 评论 -
程序的组织(2)
既然程序的组织目的是为了组织和协调程序对象,那么分类就是基础,而分类的维度很多,如何分类,从何种视角去看待程序系统,都是可以考虑的,因此我们也可以创造出适合我们自己系统的组织方法。我们没有必要教条的认为程序的组织就是书上说的那样。程序本质上也是一种规则,规则当然是人为的,因此如何定义规则和利用规则其实也是编程的一大基本能力。例如,面向对象的继承就有多继承和单继承,而继承如何实现,本质就是一套规则。不过我觉得规则的制定要遵循简单原则,多继承就太复杂了。程序也一样,我们在程序设计的时候也一样需要简单化。原创 2020-09-06 07:22:37 · 1132 阅读 · 0 评论 -
浅谈百年变局下的中国IT走向
在目前的局面下,中美脱钩论很有市场,中国对于被美国卡脖子的技术进行重构掌握也是一种趋势,但其本质并不是大家看到的美国禁用,我们无法获取到产品和技术才进行自主创造。核心的原因是利益和安全。安全的因素大家强调的比较多,也是显然的,但这个主要因素是核心原因中比较外层的,更核心的原因还是利益。大家知道,数字化和信息化是未来的趋势,IT软硬件是其载体,其重要性不言而喻。因此为了利益,中国或者中国的企业也必须掌握更底层的硬件或软件,否则,拿不到市场的超额利润,那么在以后的竞争中就会日渐趋弱。因为数字化和信息化的趋势原创 2020-07-13 08:46:02 · 1262 阅读 · 0 评论 -
Spark学习(权限错误)
在集群的master上执行spark-shell时出现如下错误:16/09/09 15:42:14 ERROR spark.SparkContext: Error initializing SparkContext.org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WR原创 2020-06-12 08:33:52 · 830 阅读 · 0 评论 -
产品设计质量的思考(2)
不同的产品有不同的特征,需要用不同的策略。toB的产品就需要满足业务、IT技术和企业管理这三个维度,好的产品就是在这三个方面取得平衡。这也是toB产品对设计人员要求更高的一个核心原因,因为设计人员必须对这三个方面都具有一定的功底,同时还需要做出平衡。业务肯定要满足,但满足的时候其灵活性和自由度需要收到管理需求的制约,举个简单的例子,开单开错了能不能删除?不能想当然的说可以,因为在管理需求中对单...原创 2020-01-17 08:14:04 · 1052 阅读 · 0 评论 -
产品设计质量的思考(1)
产品质量的发展从质量是检测出来的,到质量是制造出来的,到现在质量是设计出来的,经历了3个阶段,现在质量处于新全面质量阶段,这个阶段的特征是质量已经从最初的从属地位到了哲学高度。当然,产品质量到了现在阶段也不是说质量的检测和制造保证就不重要,而是对于质量的保证要更多的从设计(甚至是需求阶段)就要开始,而且要作为重点考虑的阶段。产品设计阶段的质量对于产品整个研发的成本来说至关重要,传统的产品设计质...原创 2020-01-01 11:01:06 · 1622 阅读 · 0 评论 -
模式学习总结
模式的产生: 人类在劳动过程中,有很多事情都会重复的出现,而处理这些事情的方法也比较相近,于是人们开始总结,形成一种对这类事情进行处理的经验,并以某种形式(书,口述等)在人们之间进行传递,这样其他的人或后来人可以在处理这类事务的时候有所借鉴,这样就大大的提高了劳动的效率,其实这种解决某些特定的、会重复出现的一套处理事务的经验方法就是模式。 模式,有的时候也是经验的代名词,在人类的生活,劳动原创 2005-04-05 10:52:00 · 2806 阅读 · 0 评论 -
设计模式之-工厂方法模式
从简单工厂模式我们可以看出,在简单工厂模式中,增加新的产品类,是需要修改工厂类的,这不符合开放-封闭原则.而且在写工厂类的时候必须知道具体产品类的细节.也不符合由上相下的设计原则,如果要延后关注细节,则必须利用继承或者接口的技术来实现.将简单工厂模式中的工厂抽象,增加抽象工厂角色原创 2011-07-21 07:35:21 · 4393 阅读 · 0 评论 -
CS与BS技术的融合--业务系统开发的趋势
对于业务系统的开发而言,特别是大型的业务系统开发,利用CS架构开发,无论是用户体验还是开发速度上都有着很大的优势,但部署、应用范围及带宽都存在着很大的局限,虽然cs三层架构的引入,多多少好解决了一些问题,也还是存在着一些问题,特别是在界面美观上,CS理论上在UI上可以做得很好,但原创 2011-07-21 13:44:55 · 4943 阅读 · 0 评论 -
设计模式之--简单工厂模式
角色:用户,工厂,产品.目的是使得用户将产品的消费和生产分开.在编程中就是将类的创建和使用分开.从而达到责任分离,其实这也是所有创建模式的目的之一.做法是工厂类根据用户的要求(参数)来返回不同的类的实例.工厂实现:采用参数化的静态方法为用户提供类实例的创建,如下所示:public原创 2011-07-21 07:27:13 · 6446 阅读 · 0 评论 -
设计模式-单例模式
单例模式的目的是保证类在系统中只被实例化一次,由该唯一的实例来为系统提供服务.单例模式主要用于保证服务的统一,比如获取统一的编号服务,模仿Oracle的序列生成等.但单例的使用需要谨慎,特别是在需要作负载均衡的地方,因为这种程序级的单例模式实际上只能保证在一个应用中为单例.如果被原创 2011-07-22 20:03:23 · 5164 阅读 · 1 评论 -
设计模式之-生成器模式
在产品结构比较复杂,构造过程比较繁琐,一次性构造比较难的时候,我们可以采取分而治之的原则,将产品组件化,每个组件由专门的厂商来生产,最后的产品指派给制定的车间进行最后装配.这种方式其实是现代制造业的一种典型的模式.比如汽车,飞机的制造等.这样做的好处是: 1.产品的部件由专原创 2011-07-22 20:09:27 · 3677 阅读 · 0 评论 -
设计模式之--生成器模式与抽象工厂模式的比较
从形式上来讲,通过角色合并,方法功能的转变,抽象工厂可以和生成器模式形式上取得一致(比如抽象工厂只处理一个产品族,工厂方法都处理同一个产品)。但注意,这仅仅是形式上的,实际上,抽象工厂和生成器模式有着本质的区别:1、生成器模式是为了构造一个复杂的产品,而且购造这个产品遵循一定的规原创 2011-07-22 20:12:53 · 8025 阅读 · 3 评论 -
设计模式之-原型模式
原型提供了另外一种创建对象的方式:通过已有的对象的自身提供的克隆功能来创建新的对象。这样做的好处很明显:1.使用克隆来创建对象的用户不需要知道对象的构造细节;2.性能上有利。但采用克隆来生成对象也要注意需要克隆的内容,如果采用全复制的话,有些业务上可能会产生逻辑错误,比如对象ID原创 2011-07-22 20:19:34 · 3071 阅读 · 0 评论 -
设计模式之-策略模式
如果一个类(CA)的方法存在不同的算法(F),而这些算法用户都可能用到,那么就可以将这种算法独立出来自我演变,既提供一个算法的抽象接口,再定义具体的算法类,而CA保持对算法的一个引用,CA中的方法不直接实现算法,而是调用用户所选的算法类中的算法来实现,这就是策略模式。也既定义一系原创 2011-07-25 22:16:46 · 3258 阅读 · 0 评论 -
设计模式之-桥模式
顾名思义,桥的作用就是将两条相互独立的路桥接到一起,而两条路可以保持各自的相对独立。在程序设计中,“桥”模式中的桥只是一种形象的比喻。根据桥模式的定义,桥模式实现了一个主题(可以是一个类,也可以是一中设计上的概念)的抽象部分和实现部分的分离(有的地方定义为抽象与具体行为的分离)。原创 2011-07-24 21:11:20 · 3644 阅读 · 0 评论 -
设计模式之-装饰模式
装饰的含义就是在原有的物件上增加饰品,使得物件能呈现出不同的特征。当然在类设计中,采用装饰模式,是用来为类增加新的特征和行为。结构如下: * * | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|原创 2011-07-25 22:27:31 · 3355 阅读 · 1 评论 -
设计模式之-代理模式
代理模式(Proxy) ,英文又叫Surrogate。 代理在日常生活中很普遍,比如办身份证代理,产品销售代理,通信收费代理等,在计算机中也普遍存在,比如上网代理,远程调用代理,注册申请代理等。在代理过程中主要涉及的角色包括代理者,被代理者和事务,通过代理者和被代理者在是否原创 2011-07-26 20:43:45 · 2323 阅读 · 0 评论 -
设计模式之--组合模式
有时候我们需要维护一些对象,这些对象具有一定的层次结构,它们之间虽然差异很大,但在使用的时候我们希望能构一致的对待,比如Windows控件,绘图中的图形等,这个时候我们就可以采用组合模式来进行管理。组合模式就是将要管理的对象按树型结构来进行组织,表示成一种“整体-部分”的层次结构原创 2011-07-26 20:52:16 · 4056 阅读 · 0 评论 -
设计模式-门面模式
就象字面含义一样,门面模式的作用是为了简化用户对一系列相关对象及操作的使用。比如用户买包子,馒头一样,用户并不需要知道包子,馒头的制造过程和细节,也不需要进入厨房,而只需要在门面,向服务员进行购买,拿包子,找钱,打包的事情都有服务员来完成,用户最后只需要得到要买的东西和找零的钱即原创 2011-07-28 08:10:02 · 5115 阅读 · 0 评论 -
设计模式之--访问者模式
《设计模式》一书对于访问者模式给出的定义为:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必须条件,而且这个结构对象必须存在遍历自身各个对象的方法。设想一个场景,就是学校,学校里有老原创 2011-07-28 09:18:49 · 4388 阅读 · 1 评论 -
WCF RIA Services---学习记录(1)
客户端得实体能否进行插入,修改和更新,在于对应的services服务端是否有对应的函数,可用Delete,Insert,Update元属性标签来指定对应方法。这种控制,估计是WCF RIA services安全的一部分。实际上,也只是简单的标签化,至于你的实际插入,修改和删除采不原创 2011-07-28 11:23:43 · 2504 阅读 · 0 评论 -
设计模式之--适配器模式.
在日常生活中,我们时常会遇到一些兼容性的问题,比如我的笔记本的电源插头就是欧标的,在很多场合我都没法用,买一个可以用的插座当然是可选手段,但到那里去都拿这么大个家伙一是不方便,二也未必有地方可以插,所以我只好买个电源适配插座带在身上。再比如电脑的输入电压一般都只有20伏左右,而日原创 2011-07-26 21:00:57 · 3796 阅读 · 0 评论 -
设计模式之--命令模式
命令模式的意图一是将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;二是对请求排队或记录请求日志,以及支持可撤消的操作。简略图如下:命令模式通过对命令的封装,将命令的请求(调用者Invoker)和执行(接收者Receiver)进行了责任分离,委派给不同的对象,不仅原创 2011-07-28 08:42:13 · 3789 阅读 · 4 评论 -
设计模式之--中介者模式
在很多情况下对象之间的交互是很复杂的,在开始设计的时候,你根本不知道它需要交互的对象是谁,是什么类型。我们知道如果要对象A与对象B之间能相互交互,A与B就会构成相互依赖,如果对象一多,这种依赖就会很复杂,况且很多时候我们都不知道需要互相交互的对象有哪些,因此,在设计的时候也没办法原创 2011-07-29 14:25:57 · 5335 阅读 · 1 评论 -
设计模式之--观察者模式
在日常生活中,有很多需要我们关注的事务(比如,股市,楼市等),这些事务我们可以称之为主题或者叫信息发布者,观察主题的目的是想了解主题的变化(消息)。一种方法当然是采用盯人策略,但这种方法有个固有的缺点,就是你盯住主题的时候,无法干其他事情,如果需要了解的主题比较多,这种办法就很麻原创 2011-07-29 14:20:29 · 5629 阅读 · 3 评论 -
对使用通用框架的一点看法.
现在业界充斥着各种各样的框架,有持久层的,也有业务逻辑层的,在一些项目上应用这种框架,就短期成本而已,应该是一个很好的选择,但框架毕竟是框架,有利也必然有弊。框架的学习其实并不难,但我觉得作为程序员,应该不仅仅停留在使用这个层面,还应该更深入的了解一下这些框架的基本原理和机制,以原创 2011-08-03 12:10:59 · 3263 阅读 · 0 评论 -
WPF属性绑定测试(索引器方式)
小结: 如果属性绑定路径上的任何可通知变化属性发生改变,其路径及以下路径都视为发生了变化,不管是否是可通知变化属性,都会重新绑定新值。看来微软对于绑定的机制是下了功夫的,如果采用简单的反射,路径寻找的方式,如果页面元素比较多,层次比较多,效率肯定有问题的,看来有时间得反编译原创 2011-09-02 21:39:36 · 5256 阅读 · 0 评论 -
对ADO.Net Entity Framework的了解总结
因为数据持久层选型,这段时间查阅了很多资料,也做了很多实验,感觉这个东西虽然很强大,但在做大型项目时还是缺少灵活性,主要在以下几个方面:1、实体缓存支持不够灵活,虽然支持缓存,但必须对ObjectContext进行单例或多例管理,而且哪些缓存,哪些不缓存,缓存多少,如何刷新,原创 2011-08-04 22:39:46 · 3430 阅读 · 0 评论 -
silverlight学习日记--第一个试水架构
采用微软提供的silverlight+wcf ria service+ado.net entity或者是linqtosql对于开发小的,且业务逻辑不太复杂的系统来说确实很简单,也很快,在这两天的学习中,有些小体会,但采用已有的框架(比如,nhibernate,sprint.net原创 2011-07-22 20:59:05 · 2638 阅读 · 0 评论 -
解剖实体框架(4)--实体的管理
实体的管理主要包括如下功能: A) 实现实体的缓存; B) 实现实体的新增,修改,删除,查询等功能; C)刷新缓存与数据库同步 D) 将缓存语句与数据库同步上面是一些基本的功能,下面是一个基本示例:public enum EntityState原创 2011-08-05 21:21:03 · 3810 阅读 · 0 评论 -
解剖实体框架(5)--给实体管理类增加一点特色
/// /// 扩展实体管理类 /// public static class EntityMgmtExtension { public static IEnumerable Select(this EntityMgm原创 2011-08-05 22:01:33 · 2999 阅读 · 0 评论 -
解剖实体框架(6)---总结
1、实体应该要简单,层次最好平面化,这样有利于实体在各种通信中穿越(比如Webservices,WCF,Remoting,WCF RIA等);2、虽然实体应该平面化,但并不代表不能有继承层次,因为这种层次可以获得很多管理和架构的好处。3、采用根据实体(包括配置文件)动态构原创 2011-08-05 22:34:53 · 3312 阅读 · 0 评论 -
给动态数据集的字段值变化加事件,更好的模拟DataTable
在前面的Silverlight实战示例7(兼集合属性的妙用)系列中,我们模拟了一个复杂实体的处理,这个复杂实体类似于aspnet的Datatable,但不是很完全,这里我们增加一些代码,使得这种模拟更纯粹:1、在DynamicDataField里增加public Dynami原创 2011-09-02 22:19:13 · 3468 阅读 · 1 评论 -
常量系数多项式除法(Delphi版)
最近研究二维码时发现有的地方需要进行多项式除法,于是自己写了一个算法,以活动一下脑子。//初始化数组,赋值0.procedure InitArray(var bb : array of double);var a : integer;begin原创 2011-08-07 19:39:20 · 2870 阅读 · 0 评论 -
面向对象编程--我的虚函数实现方法
如下图所示: 类,即代表类也代表函数表,我们看是怎么调用的.注意如下规则:1、每个类的信息都保存在内存里(类型加载后);2、每个类都会保存其继承的父类或实现的接口的类型指向。3、每个实例都保持一个对实例实际类型(类类型)的指向(指针), 还保持原创 2011-08-07 20:05:22 · 1835 阅读 · 0 评论 -
面向对象与面向过程
看了很多书,其中大部分书在讨论面向对象和面向过程编程时都喜欢把这两种编程思想对立起来,我个人觉得不妥,实际上它们之间并不对立,那么它们之间的关系是什么呢?我认为面向对象是对面向过程的一种发展与补充,同时也是对同一个事务两种不同的看法,面向过程将研究对象的功能和数据分开,以功能为主原创 2011-08-07 19:47:50 · 2014 阅读 · 0 评论 -
学习JQuery后的一个实际应用--页面表单验证(适合大规模应用)
该表达验证的功能如下:1、针对每个表单输入控件,用户可设置自定义级别和基本级别的匹配表达式和相应的提示信息;2、用户离开表单输入控件时会自动校验,如果校验非法,该控件的边框底色会变红3、如果在保存按钮上注册检查所有表单输入控件的代码,则会在点击按钮保存时检查所有输入表原创 2011-08-07 20:14:11 · 2853 阅读 · 0 评论 -
设计模式之---非虚模式
非虚模式的是将调用接口与实际执行函数分离,调用接口不支持继承(没有多态功能),而将实现多态的功能交给具体的保护性执行函数,这样就使得调用接口统一,同时不损失多态的好处。具体做法如下: /// /// 基类 /// public clas原创 2011-08-09 19:57:47 · 1776 阅读 · 0 评论 -
WCF RIA Service实体嵌套问题(更正一下前面的动态数据集模拟)
至少在目前为止,经过测试,我发现一个实体A引用了另外一个实体成员B,如果另外一个成员B又引用实体成员A,如果A为null,没问题,如果A不为空,与B形成实例上的循环引用,就会导致客户端访问提示找不到调用方法的错误,我觉得应该是这个循环引用导致返回客户端时进行序列化时,导致无限循环原创 2011-09-08 22:19:53 · 2725 阅读 · 0 评论