- 浏览: 112493 次
- 来自: ...
文章分类
最新评论
同一个Feature的代码要放在一起(IDE里单独的一个工程, 或者工程里单独的一个文件夹), 这些代码要么全有要么全无的, 它们合作完成一个Feature, 如果用户不再需要这个Feature了, 可以把它们整个的痛快的删掉, 不会留下谁也用不到的代码成为系统的垃圾. 如果想看一个Feature是如何实现的, 那所有相关代码都在一起, 不需要在庞大的代码库中跳来跳去.
那么理想的情况就是: 你看看源代码树里所有工程文件的名字, 或者文件夹的名字, 就知道系统提供了哪些功能, 它可以跟你的需求描述对应起来, 无论用User Story还是Use Case, 都可以用它们的名字作为工程名或者文件夹的名字, 方便维护
流行的MVC框架缺省的物理文件组织并不是这样的, Controller, Model, View分别在不同的文件夹里面. ASP.Net MVC提供了VirtualPathProvider以及ViewEngine, 可以让我们把一个Feature的Controller/Model/View统统打包到一个project或者文件夹而运行时依然能够找到对应的action和view, 这是我们正在利用的特性
这种代码组织方式对架构的影响是什么?
这基本会导致基于插件/扩展点的体系结构. 放到更大尺度上, 就是SOA. SOA才是王道. 这个词太大了, 还是先聚焦到一个进程的应用....
- UI如何聚合? 最终用户看到的UI, 是一个聚合的结果, 可能来自系统的不同部分. 解决这个问题的扩展点技术有客户端的Ajax, 或者服务端的RenderAction. (问题: Css应该如何处理? 不同部分的显示顺序, 布局如何确定?)
- Feature如何沟通? Feature之间不可能一点依赖没有, 比如可能会用到相同的数据, 相同的业务逻辑. 解决这个问题的方法有Bounded Context, Context Mapping, DCI...都是一回事
- 数据库如何划分? 不同的Feature使用自己的独立定义的数据表, 做映射和同步, 也是同样的方案
- 如何把这些Feature组装在一起? Java平台有OSGi, .Net目前没有看到跟OSGi类似的方案. 基本是注册或动态发现的路子, 遵循开闭原则...
发表评论
-
Architecture is layered
2004-12-11 11:57 348那天被问道软件架构师需要了解编程语言的细节吗? 呵呵,架构是 ... -
Thinking Everyday
2004-12-11 12:01 3981,编程语言的发展趋势 ... -
糟糕命名集锦
2004-12-11 16:50 5471,公交支线,如375和375 ... -
古代的软件开发 (一)
2005-02-19 16:45 6511,额外的中间层鞋子:人类发明鞋子的意义无论如何评价都不过分, ... -
访问控制 : 语言和平台
2005-03-15 19:27 584程序逻辑上的组织方式(如名称空间,包等)可以和部署时的分发 ... -
Thinking Everyday II
2005-03-17 15:11 5961, 是业务,不是技术,傻瓜 是集成,不是编程 是使用,不 ... -
内容与标准为王:下一代互联网与下一代搜索
2005-07-25 14:53 624第一代互联网混淆了真正的数据和它的表现形式,第一代搜索无法 ... -
个性与定制为王:下一代互联网和下一代门户
2005-07-28 11:28 552看一下现在我与互联网有关的生活:我有两三个常用的Web邮箱 ... -
泛型编程 vs. 面向对象
2005-08-10 14:30 767面向对象:封装(数据抽象)是基础,继承是手段,多态是目的 ... -
函数式编程 vs. 对象式编程
2005-08-10 14:44 618<<我爱我家>>有一集和平摔成了脑 ... -
用手机从ATM取钱
2005-11-21 22:49 671手机的以下两个特性,使它潜在的可能成为统一的支付和信用平 ... -
Web 3.0 : Unified Human-like Interaction
2006-01-14 16:31 669你还在到搜索引擎的主页上去搜索吗?你还登录新闻网站查询最新比赛 ... -
软件生物学
2006-01-14 16:59 619长久以来,软件的建筑学隐喻已经深入人心,可始终无法达到建筑 ... -
广义对象论
2006-01-25 15:31 653前几天本想接着以前的思维中对“3.2 Programming ... -
Thinking Everyday III
2006-03-26 14:17 7541, RAII让我告别了delete,IoC让我告别了ne ... -
简单至及的AOP和IOC
2006-03-26 14:21 616I. AOP的例子 1, Google To ... -
TDD: Tricky Driven Development
2007-05-10 07:07 560命名 测试用例的名字应该描述需求, 不要描述实现. ... -
Thinking Everyday IV
2007-05-15 04:36 4931, 实际上 C# 2.0 已经部 ... -
迭代本质论
2008-02-14 13:58 591新年伊始, 可能你又要制定一些计划了, 实际上, 你的生活在开 ... -
建筑的永恒之道
2004-08-10 18:31 6172,质 这种特质是任 ...
相关推荐
AndEngine主要使用Java语言开发,但在大运算量的耗时功能时,AndEngine使用了C/C++本地代码进行开发。比如物理引擎或者音频处理。作为用户,你只需要关注Java端就可以了,它已经把所有的本地代码封装好了。相比于...
4、物理应用 仿真:导航、地震、电磁、电路、电能、机械、工业控制、水位控制、直流电机、平面电磁波、管道瞬变流 光学:光栅、杨氏双缝、单缝、多缝、圆孔、矩孔衍射、夫琅禾费、干涉、拉盖尔高斯、光束、光波、...
1.3.3 组织管理上的可行性 4 1.4 数据流程图 4 第2章 系统设计 5 2.1 代码设计 5 2.2 数据库设计 5 2.2.1 概念结构设计 5 2.2.2 逻辑结构设计 7 2.2.3 物理结构设计 7 2.3 功能模块设计 11 2.4 输入输出设计 11 ...
说明和导航所有代码都组织在文件夹中。 每个文件夹均以数字开头,后跟应用程序名称。 例如,Chapter02。 该代码将如下所示: #ifndef _H_MATH_VECTORS_#define _H_MATH_VECTORS_// Structure definitions// Method ...
由于这些示例最初托管在 JSFiddle.net 上,因此源代码组织得不好。 我希望随着时间的推移清理这个存储库并使代码现代化。 目录结构 每个目录代表一个物理主题。 只有一个示例的主题将在{folder}/index.html包含该...
物理体系结构是指某个系统的组织结构,可以被递归地分解为若干部分,各个部分之间通过接口、用来连接各部分的关联和用来组合各部分的约束来进行交互。物理体系结构是从系统中所包含的硬件和软件两个方面来对系统进行...
光线散点代码马特奥的电生理学 用于我的电生理数据分析的脚本和辅助函数。 组织 事物通常根据其用途进行组织,例如处理 LFP 振荡的事物的“振荡”,或用于感受野映射的“RF”等。请注意,并非所有代码都是功能性的或...
matlab如何敲代码Matlab心理物理学代码 彼得·梅斯特鲁普 该存储库收集了我在实验控制以及视觉幻象和演示开发中使用的代码。 它包含一个用于心理物理和动眼神经实验的高级,事件驱动框架,该框架建立在Psychtoolbox...
类似 DAW 的结构组织(稍后解释)迫使用户以特定方式组织他们的代码——使其更具可读性和模块化。 5 层 DAWPL 抽象层次结构 编曲:曲目的组合,作曲的“大画面” Track:按时间顺序排列的一系列剪辑 Clip:信号的...
Mybatis的自带分页方法只是逻辑分页,如果数据量很大,内存会溢出, 不知道为什么开源组织不在里面实现类似Hibernate的物理分页处理方法。 在不改动Mybatis源代码的情况下实现Mybatis支持物理分页
深度学习,量子宇宙学,信息处理中的自由度通过最优,非对映体,球形代码的自组织序列共享和发展。 这个Tribonacci量子宇宙学模型调用四个代码:1-顶点,3-顶点(大圆等边三角形),4-顶点(球面四面体)和24-顶点...
AndEngine主要使用Java语言开发,但在大运算量的耗时功能时,AndEngine使用了C/C++本地代码进行开发。比如物理引擎或者音频处理。作为用户,你只需要关注Java端就可以了,它已经把所有的本地代码封装好了。相比于...
crc编码代码matlab 劳拉 LoRaPHY是物理层的完整MATLAB实现,包括基带调制,基带解调,编码和解码。 LoRaPHY被组织为单个文件LoRaPHY.m以易于使用(将其复制并在任何地方运行)。 可以通过访问基于GNU Radio的实时SDR...
3.7 数据库的物理结构设计 23 第四章 详细设计说明 29 4.1 程序系统的组织结构 29 4.2 模块描述 29 4.3 代码设计模式 30 4.4 登录设计说明 31 4.5 主界面设计说明 32 4.6 系统管理模块设计说明 36 4.7 采购管理模块...
开放天体物理学书架 它是什么? The Open Astrophysics Bookshelf 是一套天体物理学教科书,这些教科书是开放许可的,可以为他人贡献。 书籍是用 LaTeX 编写的,... 有了可用的源代码,我们还可以生成针对平板电脑、
理解二级目录的文件系统的组织;掌握常用的数据结构;系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件;使用文件来模拟外存,进行数据结构设计和操作算法的设计,实现一个文件系统并实现...
该资料是《Oracle SQL高级编程》的源代码 对应的书籍资料见: Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐) 基本信息 原书名: Pro Oracle SQL 原出版社: Apress 作者: (美)Karen Morton Kerry ...
数据结构描述了非数值问题的数据元素及组织关系,包含逻辑结构、物理结构与数据运算。
3.2 数据库物理设计 30 3.2.1 设计选择: 30 3.2.2 数据库表的设计: 33 3.2.2.1 图书基本表:BOOK 33 3.2.2.2 出版社基本表:PUB 34 3.2.2.3 登录用户信息表:YH 34 3.2.2.4 管理员信息表:AD 35 3.2.2.5 借阅图书...
arm 版本的4G虚拟地址是如何组织的; 2. 内核空间如何获得虚拟/物理空间,并使用它们; 3. 用户空间如何获得虚拟/物理空间,并使用它们; 4. 内核空间和用户空间如何交互; 5. 整体的介绍一些Linux的缺页处理主流程...