思考
wanxiangming1994
这个作者很懒,什么都没留下…
展开
-
格物致知2
作者在阐述自己的观点,但他没有给出与这个观点相异的其他观点,此时如果读者没有其他相异观点的知识储备,也没有主动去思考其他相异观点,那读者就会有一种将所见之观点当做常识的倾向,此时读者对这个观点其实是没有辨识能力的,因为他的大脑只认识与这个观点正相关的特征,而这些正相关的特征并不能回答否定命题。比如一个小孩如果只见过猫,那么他在看到猫的时候能确定那是猫,但在看到狗的时候,他却不能确定那不是猫。要想正确认识一个观点或者结论,我们需要寻找与其有差异甚至是对立的观点或结论,否则我们就只是把自己泡在知识里,却原创 2020-09-13 23:07:57 · 120 阅读 · 0 评论 -
理解解耦的一种思路
大家肯定听说过程序要具有金字塔结构,也听说过IOC。问问大家,“解耦”这个词,更能让你联想到IOC,还是程序的金字塔。我觉得大多数人的答案应该是IOC,为什么IOC这个词和解耦的相关性更高呢?我猜测是大家在阅读文章的时候,特别是讲语言,讲编程思想的文章时,你大概率都会听到多态,面向接口编程,设计模式这些概念,以及它们在解耦方面的建树,而IOC使用到了开发语言的多态特性,也是面向接口编程的绝好案例。但是,大家思考过“为什么IOC能解耦”这个问题吗?在思考这个问题前,要先思考“什么是耦合”。耦合原本是机械和电学原创 2020-07-07 19:05:23 · 357 阅读 · 2 评论 -
格物致知1
有一个问题经常会浮现在我脑中——为什么有的产品能给人这种感觉:它很美,它和谐一致,它不浮夸也不浪费;而有的产品却会给人这种感觉:它不靠谱,它没人爱,它的设计复杂又隐晦。苹果公司的产品就能给人前一种体验,而华为公司的产品我却隐约有后一种感觉。我很不喜欢消费的时候将钱花在某件我往后有可能不喜欢或者有可能弃用的对象上,所以我给自己列了一个简短的清单,当我想要购买某件东西的时候,我会拿出这个单子核对一...原创 2019-11-09 13:10:42 · 205 阅读 · 0 评论 -
耦合的形式(对以往思路的纠正)
耦合的形式不透明耦合(或者叫浑浊耦合)部件A直接驱动部件C,C对A不透明透明耦合部件A驱动代理B,代理B驱动部件C,C对A透明纠正曾经我将耦合的形式区分为:不透明耦合,单边透明耦合,双边透明耦合。其中双边透明耦合的定义是,驱动方对被驱动方透明,被驱动方也对驱动方透明。这个定义存在瑕疵,被驱动方对驱动方透明这一点是合理的,但驱动方对被驱动方透明则存在逻辑缺陷。被驱动方是被使用...原创 2019-07-23 15:21:26 · 157 阅读 · 0 评论 -
如何判断你该不该抛出异常,以及抛出什么异常?
前情最近在完成公司的一个上报征信数据的项目,项目不大,所以开发人员就我一个人,但是工期挺紧,所以每天都写代码写到起飞。项目到尾期后,有一些闲暇可以 review 一下代码。结果发现,我所有的参数校验都是在 controller 层完成的,service 层没有校验。思索了一下,发现一个有趣的之前我没有主要到的事情。问题所在controller 层校验后,可以通过返回字符串的形式,提示前端异常...原创 2019-06-28 12:38:04 · 2466 阅读 · 0 评论 -
如果DAO,Service,Controller返回的数据实体结构一致,我们该怎么办?
如果DAO返回的实体结构,刚好也符合Service想要返回的实体结构,刚好也符合Controller想要返回的实体结构。我们该怎么办?按照较为规范的开发流程,我们会通过需求分析出Controller返回实体的结构,根据“下层为上层服务,以目标为导向”的原则,设计出Service层返回的实体结构,同理设计出DAO层返回的实体结构。三个实体结构一致,说明我们只是简单的返回数据库数据。DAO层和Se...原创 2019-07-02 14:00:33 · 459 阅读 · 0 评论 -
代码是如何生长的
2014年,我还是一名大学生,在兴趣的驱使下走上了编程的道路。后在各种洪荒之力的推动下于2016年7月开始耗费半年多时间编写了一个叫做miniqueue的网站,项目虽然是失败的,不过经验是宝贵的。完成这个网站后,我写下了下面这些文字,它本已被我遗忘在脑海,今天整理电脑才又发现了它,读之,感觉颇有受益,在此分享,给学习编程的新手们,或是如我一般在个中摸爬滚打过的猿们。代码是如何生长的这是一篇对m...原创 2019-06-18 14:15:37 · 224 阅读 · 0 评论 -
通过设置虚拟机固定IP地址学到的知识
这篇博客全文出自我个人的理解,不是严谨的理论认知,但符合我的实验过程,并有效的指导了我的预测。此前我不明白存在于windows系统中的“网络适配器”这一概念的含义,但经过一次设置虚拟机固定IP地址的实践和学习,我对它有了自己的认识。过程我就不赘述了,直接上结果。VMWare安装后,它会在你的计算机上建立3个虚拟网络(可以建立更多,默认初始3个),这时你打开“控制面板-网络和共享中心-更改适配器...原创 2019-06-18 14:08:52 · 1024 阅读 · 0 评论 -
突然明白了如何看待细枝末节
周末看某直播平台主播玩游戏,这是一种RPG游戏,有天赋点这样的东西,为了3%的命中率他研究了很久怎么点天赋,我就想,3%的命中率会影响多少战斗力呢?它会决定一场战斗的胜负吗?我觉得答案是明显的,不会。既然不会,何必浪费这么多时间精力纠结于此呢?有了这个问题,我继续往下想。如果这一个3%不重要,那另一个3%也不重要(也不足以影响战斗的胜负),没有任何一个3%是关键先生。也就是说你永远无法找到一个带...原创 2019-06-14 10:29:35 · 290 阅读 · 0 评论 -
耦合的三种形式
耦合的三种形式不透明耦合,部件A直接或通过代理B驱动部件C,部件A知道部件C的存在单边透明耦合,部件A驱动代理B,代理B驱动部件C,部件A不知道部件C的存在,部件C知道部件A的存在双边透明耦合。部件A驱动代理B,代理B驱动部件C,部件A、C相互不知道对方的存在此处解释一下“驱动”这个词。系统运作一定是有一个动力源的,同一时刻A,C两个部件协作,其中一方一定是驱动方...原创 2019-06-14 10:20:50 · 5508 阅读 · 0 评论 -
关于解耦方式的思考
解耦都是需要代理的。本质上并不存在没有代理就发生两个部件之间解耦的情况。耦合,指的是两个协作的部件的关系。A和B发生了协作,则A和B的关系是耦合。如果A和O,P,Q,S…(简称集合F)协作,则A就和集合F发生了耦合,如果A发生了变化,想要维持系统正常,那么集合F就需要顺应A的变化而变化,以保持协作有效。同样的,集合F中的任何一个发生了变化,A也需要发生变化(至少是局部的变化),以保持协作有效...原创 2019-06-14 10:19:11 · 244 阅读 · 0 评论 -
关于耦合
耦合,是程序员面对的最主要的编程问题之一。无数编程技术的诞生其目的就在于为程序解耦。比如面相对象中的多态,解决了对功能的需求与特定实现紧耦合的问题。MVC的框架模式解决了数据与视图紧耦合的问题。工厂设计模式解决了功能使用者与功能提供者紧耦合的问题。MQ解决了请求与答复紧耦合的问题。耦合原本是机械和电学领域的概念,用以形容多个组件或元件相互影响,相互配合,相互制约。比如传动轴与齿轮的耦合,放大电路...原创 2019-06-14 10:16:36 · 307 阅读 · 0 评论