思考专题提供思考的最新资讯内容,帮你更好的了解思考。
前言 随着互联网时代的到来,我们发现知识的获取不再像历史上任何一个时代那么复杂,而是变得十分的简单。互联网每天都在产生巨大的信息,这些信息又多又杂,可谓是知识的海洋,太多优质的内容就这样悄无声息的被淹没了。另外一方面由于每个人的精力是非常有限的,我们不可能在有限的时间内去消化所有的知识。这就要求我们能够有选择的去消化吸收那些对于我们有帮助的知识。 互联网每天都会诞生非常非常多的优质的博客,而这些博
本文既不推销UML,也不推广DDD,更不涉及各种论战。-- 作者     某天又一次打开关于DDD(领域驱动设计)的PDF文档时,自己有了个疑问:什么是领域(Domain)?译文中是这样描述领域:银行业务被银行的内部人员和专家所熟知。他们知道所有的细节、所有的困难、所有可能 出现的问题、所有的业务规则。这些就是我们永远的起始点:领域。如果这就是领域,它似乎不是"起始点",而是“全部”--全部的业务
目前来看,推行TDD的障碍大约有如下几点: 开发人员的质量意识; 分析需求并进行任务分解的能力; 将测试作为开发起点的开发习惯; 开发人员的重构能力,包括如何识别坏味道和如何运用重构手法; 单元测试的基础设施,尤其是测试数据准备; 开发人员的质量意识 开发人员对于软件质量,常常偏重于软件的外部质量,体现在他们的工作效益上,就是被测试人员发现的缺陷数。而惯常的软件开发思想,总是认为开发人员不适合做
关联关系和依赖关系的思考 从宏观上看类与类之间的关系有关联,依赖,泛化和实现。 这其中泛化和实现很好理解,关联和依赖之间的关系不好理解。 下面详细说一下这几个的意思: 1.泛化   泛化:表示类与类之间的继承关系、接口与接口之间的继承关系。 UML图中实现使用一条带有空心三角箭头的实线指向基类,如下: 代码如下: public class father {    public father()  
之前,在用ENode开发forum案例时,遇到了关于如何实现论坛帖子的回复的统计信息如何更新的问题。后来找到了自己认为比较合理的解决方案,分享给大家。也希望能和大家交流,擦出更多的火花。 论坛核心领域问题分析 论坛领域的核心概念是:帖子、回复。大家都知道,一个帖子可以有零个或多个回复。对同一个帖子,不同的人可以并行发表回复。回复发表后,查看帖子详情时,可以根据回复的发表时间排序显示;此外,我们还关
为什么需要仓储呢?领域对象(一般是聚合根)的被创建出来后的到最后持久化到数据库都需要跟数据库打交道,这样我们就需要一个类似数据库访问层的东西来管理领域对象。那是不是我们就可以设计一个类似DAL层的东东来管理对象呢?是的,但是呢设计上有点区别,就是我们不希望上层如应用层直接访问数据,我们所有的操作应该是围绕着领域对象来的,所以我们还设计了仓储接口在领域层,然后把仓储的实现放在基础设施层。这样的设计模
我在参与的开发项目以及咨询项目中,都有实践TDD的经验。直至今日,我仍然会在某些功能开发时采用TDD的方式实现功能。虽然没有达到将TDD溶于开发血液之中形成自然而然的习惯,但至少也是我常用的编程利器之一,偶尔使用,效果还算不错。 以下内容则是我在某大型团队中推行TDD时的一些思考。当时的整个咨询过程,至少在TDD推行上可以称得上是举步维艰。如今看来,这些思考仍有现实意义。 1 开发人员的质量意识
作者:代成龙 全文共 1678 字,阅读需要 3 分钟 —— BEGIN —— 生活中总是充满惯性,无论是在物理世界中,还是思维模式中,甚至用户在产品的使用中,也存在着惯性,这都是所谓的:路径依赖。 场景 拨号与通讯录并存 不知道大家有没有想过一个问题: 手机上的拨号 icon 和通讯录 icon 实际上进入一个 APP 中,只是进入后显示不同的 Tab,那么存在两个 icon 真的有必要吗? 最
  我们回顾上一章对程序的改进。简而言之,最大的改进就是把程序结构用三个函数表达了:init(), deint()和main()。这个改动看似微不足道。但我要阐明的是整个软件工程发展的精华就凝聚于这三个函数上了。   别小看这三个函数,虽然只有三个函数,但却是整个设计理念的转变。原始程序可以说是经典的过程式设计,改进后的程序是对象式的设计。可能有读者要叫了,怎么变成对象了,这里面全是函数,没有一个
参加以下课程: class Automator def fill_specific_form(fields) fields.each_pair do |key, value| puts "Setting '#{key}' to '#{value}'" end end end a = Automator.new a.fill_specific_form :fir
我目前正忙着学习 Ruby和Rails,因为我有基于C语言的背景,所以Ruby的一些概念是新的,有点陌生.对我来说特别具有挑战性的是适应处理常见问题的“Ruby方式”,因此我经常发现自己用Ruby编写C语言,这不是我想要实现的. 想象一下这样的架构: ActiveRecord::Schema.define(:version => 20111119180638) do create_tabl
同上一个简单工厂模式一样,都是那计算器来说事,先看UML图。 在客户端(form1)中,通过对工厂子类的实现来操作具体的计算类。 Factory Method:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 和简单工厂模式不同的是这里把一个大的工厂(原先用来控制所有具体计算类)分解为了相应的小工厂,并且把实例化的过程放到了子类中来实现。 如果说在简单工
         相信用VB的朋友都知道KeyCode和KeyAscii。在KeyDown和KeyUp事件中有KeyCode参数;在KeyPress事件中有KeyAscii参数。这两个参数用的还算是比较多的。          以前也没怎么注意,这两个参数到底有什么区别也不太清楚,唯一明确的就是KeyCode的范围比KeyAscii广,因为有些按键不激发KeyPress事件。直到前几天做一个模拟按
      一个VB(Net)程序的思考        我经常会关注每月开发语言的排行榜,不是看谁最好,谁最差,只是关心VB有没有变化。每次看VB在下降,心里总是感觉很失落。不是我很爱VB ,只是怕因为我们的不关心。不使用,会被微软慢慢淘汰。       因为是VB才让我喜欢编程,从而可能喜欢其他编程语言。在网上看到大家对VB不屑一顾时,感觉自己可能是唯一个因VB而存在了。或许有一天VB没有了,我
使用asp.net core进行网站开发的时候,有很多可以选择的前端和后端安全措施,但是有一个要点也需要慎重考虑。 一个要点是网站应该都所有的post和get请求进行必要的权限验证,甚至是重复的多次验证。 很多网站因为没有对post和get请求进行有效的验证,导致了很多安全问题。