- 浏览: 124464 次
- 来自: ...
-
文章分类
最新评论
同一个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 395那天被问道软件架构师需要了解编程语言的细节吗? 呵呵,架构是 ... -
Thinking Everyday
2004-12-11 12:01 4771,编程语言的发展趋势 ... -
糟糕命名集锦
2004-12-11 16:50 6061,公交支线,如375和375 ... -
古代的软件开发 (一)
2005-02-19 16:45 7151,额外的中间层鞋子:人类发明鞋子的意义无论如何评价都不过分, ... -
访问控制 : 语言和平台
2005-03-15 19:27 637程序逻辑上的组织方式(如名称空间,包等)可以和部署时的分发 ... -
Thinking Everyday II
2005-03-17 15:11 6371, 是业务,不是技术,傻瓜 是集成,不是编程 是使用,不 ... -
内容与标准为王:下一代互联网与下一代搜索
2005-07-25 14:53 739第一代互联网混淆了真正的数据和它的表现形式,第一代搜索无法 ... -
个性与定制为王:下一代互联网和下一代门户
2005-07-28 11:28 644看一下现在我与互联网有关的生活:我有两三个常用的Web邮箱 ... -
泛型编程 vs. 面向对象
2005-08-10 14:30 874面向对象:封装(数据抽象)是基础,继承是手段,多态是目的 ... -
函数式编程 vs. 对象式编程
2005-08-10 14:44 669<<我爱我家>>有一集和平摔成了脑 ... -
用手机从ATM取钱
2005-11-21 22:49 719手机的以下两个特性,使它潜在的可能成为统一的支付和信用平 ... -
Web 3.0 : Unified Human-like Interaction
2006-01-14 16:31 725你还在到搜索引擎的主页上去搜索吗?你还登录新闻网站查询最新比赛 ... -
软件生物学
2006-01-14 16:59 681长久以来,软件的建筑学隐喻已经深入人心,可始终无法达到建筑 ... -
广义对象论
2006-01-25 15:31 761前几天本想接着以前的思维中对“3.2 Programming ... -
Thinking Everyday III
2006-03-26 14:17 8181, RAII让我告别了delete,IoC让我告别了ne ... -
简单至及的AOP和IOC
2006-03-26 14:21 697I. AOP的例子 1, Google To ... -
TDD: Tricky Driven Development
2007-05-10 07:07 628命名 测试用例的名字应该描述需求, 不要描述实现. ... -
Thinking Everyday IV
2007-05-15 04:36 5581, 实际上 C# 2.0 已经部 ... -
迭代本质论
2008-02-14 13:58 668新年伊始, 可能你又要制定一些计划了, 实际上, 你的生活在开 ... -
建筑的永恒之道
2004-08-10 18:31 6762,质 这种特质是任 ...
相关推荐
首先,获取物理内存容量的方法通常依赖于操作系统的内核是如何组织和管理内存的。在现代操作系统中,内存管理通常分为三个层次:硬件层面的内存管理、操作系统内核层面的内存管理和用户空间层面的内存管理。硬件层面...
物理结构图通常展示了一个项目的所有文件和目录的层次关系,它帮助我们快速理解项目的组织结构。在 JForum 的物理结构中,你会看到几个关键部分: 1. **Web 应用目录(WEB-INF)**:这里包含了应用的配置文件、web....
### 如何组织代码结构——基于层次架构模式 #### 层次架构模式简介 在软件开发过程中,合理地组织代码结构是提升程序可读性、可维护性和可扩展性的关键因素之一。本文档主要探讨了“如何组织代码结构”这一主题,...
history, and philosophy”这一大类中,又细分出了多个小类,比如“01.10 Communication, announcements, news, and organizational activities”涵盖了与物理学相关的通讯、公告、新闻和组织活动等内容的代码。...
### 物理层安全 #### 多射频多信道物理层安全无线网状网 ##### WMN概论 无线网状网(Wireless Mesh Network, WMN)是一种分布式网络结构,通过节点间的多跳通信实现无线覆盖。WMN不仅能够有效解决最后一公里接入...
7. **模块化和组织结构**:为了保持代码的可读性和可维护性,代码可能遵循一定的模块化标准,如使用ES6的模块导入导出,或者使用CommonJS或AMD规范。 由于压缩包中只有一个文件名“132674348755389483”,这可能是...
- **01.10.Hx Physics organizational activities - 物理学组织活动**:指物理学领域内的各种组织活动,如学会、协会等组织的日常运作情况。 2. **01.20.+x Communication forms and techniques (written, oral, ...
"大型CCBP程序" 可能是一个较大的项目,良好的代码组织结构和详细的注释将帮助理解和维护代码。学生应学习如何编写清晰的代码,以及如何使用版本控制工具(如Git)来管理代码库。 8. **项目协作**: 作为团队作业...
8. 代码组织与版本控制:代码库中可能包含多个MATLAB文件,它们可能按照功能或实验部分进行组织,同时,如果配合版本控制系统如Git,可以方便地跟踪和管理代码的修改历史。 9. 教程与说明:提供的部署教程和说明...
例如,生成详细的统计报告,包含代码结构的图表,这有助于团队理解代码的组织结构。这些报告可以作为代码审查的一部分,帮助识别可能的重构点或优化机会。 总的来说,VB代码统计器是软件开发过程中的一个重要辅助...
1. **物理模拟**:弹球运动的物理规则,如重力、弹性碰撞等。 2. **碰撞处理**:弹球与挡板、砖块碰撞后的反弹逻辑。 3. **得分系统**:击打砖块得分,可能有额外的加分规则。 4. **游戏循环**:游戏主循环,处理...
AndEngine主要使用Java语言开发,但在大运算量的耗时功能时,AndEngine使用了C/C++本地代码进行开发。比如物理引擎或者音频处理。作为用户,你只需要关注Java端就可以了,它已经把所有的本地代码封装好了。相比于...
例如,它可以用于分析风力发电机叶片的气动弹性、模拟生物组织的热疗过程、研究海洋流动对气候的影响等。 **8. 学习与进阶** 要熟练掌握Elmer,除了学习Fortran编程外,还需要理解有限元理论、数值方法和特定物理...
由于研究内容丰富,报告或文章中可能包含了对蒙特卡洛法原理的详细解析、晶粒组织演变的模拟策略、以及代码实现的具体细节。此外,还可能对模拟结果进行了深入分析,探讨了不同参数和条件对晶粒组织演变的影响,比如...
这些工具帮助开发者高效地编写、组织、测试和部署代码。 装置,即物理设备,可能指的是服务器集群,它们运行着Web服务器软件(如Apache、Nginx),接收HTTP请求,然后生成并返回网页代码。此外,物联网(IoT)设备...
1. **学习Delphi编程**:了解如何在Delphi中组织代码结构,使用类和对象,以及如何利用Delphi的图形库(如VCL或FireMonkey)来渲染Box2D的物理世界。 2. **理解物理引擎实现**:探究Box2D的底层算法,如如何实现...
此外,CocoStudio还有动画编辑器,用于创建复杂的角色动画,以及场景编辑器,可以方便地组织游戏的各个部分。 在"DemoPhy"这个示例中,物理引擎的运用是关键。物理引擎通常用于模拟现实世界中的物理现象,如重力、...
文中还提供了具体的MATLAB和COMSOL代码片段,用于计算组织表面反射率、改进光能沉积模型和优化网格划分。最后讨论了后处理阶段的数据分析方法,如短时傅里叶变换的应用,并展望了机器学习在参数扫描中的潜力。 适用...
标题中的“毕业设计MATLAB_用于数值模拟、数值方法、物理模拟的Matlab代码”表明这个压缩包包含的MATLAB代码主要用于数值计算、数值方法以及物理模型的模拟。MATLAB是一种强大的数学软件,广泛应用于科学计算、数据...
蒙特卡洛模拟的一个关键步骤是编写相应的模拟代码,这些代码能够根据晶粒演变的物理模型,通过随机抽样和概率计算来模拟晶粒的生长和演化。模拟结果可以以图像的形式展示出来,使得复杂的数据分析变得直观易懂。这些...