昨天看到rails类型框架的原理和思想,包括了解到RoR、Trails、Grails等基于动态语言的全栈式框架(Full-Stack)实现的开源产品,同时包括Appfuse等统一SSH企业级框架的构建出发点或者说应对现实需求的含义,再想到无论是当前软件工程、设计模式、企业级开发、计算机基础算法等的实现,无非都离不开变与不变,静与动的关系,并且随着其领域的发展,变化会转化为不变,静态会转换动态,即随着设计和开发的技术不断进步,同时用户需求不断提高,转换将是一个基本不变的原则,其过程应该是一个不断迭代发展的过程。
一、如快速排序算法的设计考虑:从一堆待排序的数据中随便选择一个数作为标准,比其大的放一边,小的放另一边,之后对两边各自进行递归重复这一过程,这其中不变的是进行分割的过程,具体体现在程序中为一个函数体的定义,变的是待排序的数据集合本身的因素包括数据集合大小(如果是向量类型则是索引的上下标)。
另外,现在大肆流行的所谓函数式编程语言,DSL(领域特定语言),个人认为归根结底还是归功于面向对象语言的发展成果,因为面向对象的特点是能够以快速应对需求的方式解决本来很繁琐、很问题,并给能够利用程序语言中的天生的接口隔离和对象封装来降低系统的耦合从而降低系统实现的难度,大部分系统应该说是面向对象实现成为事实的情况下,函数语言简练和干脆的优点立刻突显,函数式编程在实际上也是基于接口继承实现的思想,只是它背后隐藏了太多细节即用所谓规约优于配置的方法,实现了很多默认的配置,用groovy的语言来编写一个排序,一个简单的语法就搞定,不用像JAVA那些必须显示的实现一个compare接口,即去除了一些代码坏味(Bad Smell)。
二、Google提出的MapReduce框架思想,其封装分布式的实现细节,只要用户实现Map和Reduce两个方法即可,其他一切Google全给你办妥。因为Google的工程师看到,所谓分布式其实只有两件事是必须的:分割任务、归并结果,这就是整个框架中不变的东西,变的是分布式计算实现的细节,比如操作系统平台差异性屏蔽、网络通信、数据分块等。
三、领域模型驱动的提出者,他们看穿了所谓企业级开发的基础都是CRUD操作,这都是通用不变的,什么数据库缓存、ORM、底层并发和基础操作的事务控制都是通用的哥都给你封装好了,你只要照着哥的框架规范,然后干好你属于你领域的事就一切都OK了,其他的你大可视作浮云,还有比这更和谐的吗?如此一来,有了领域模型框架,你只用关注你所开发的系统中所涉及的企业需求问题或者业务逻辑,领域模型框架的建立者真是广大企业级Coder的解放者。
分享到:
相关推荐
Hadoop介绍,HDFS和MapReduce工作原理
MapReduce是一种分布式计算模型,由Google开发,用于处理和生成大量数据。这个模型主要由两个主要阶段组成:Map...在云计算和大数据领域,MapReduce已经成为一个基础概念,对于理解和开发大规模数据处理系统至关重要。
实验项目“MapReduce 编程”旨在让学生深入理解并熟练运用MapReduce编程模型,这是大数据处理领域中的核心技术之一。实验内容涵盖了从启动全分布模式的Hadoop集群到编写、运行和分析MapReduce应用程序的全过程。 ...
5. 基于MapReduce的决策树算法的应用:基于MapReduce实现决策树算法可以应用于数据挖掘、机器学习和推荐系统等领域,例如可以用于用户行为分析、推荐系统和风险评估等。 6. 决策树算法在MapReduce中的实现细节:在...
(2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行命令 (1):把linus下的文件放到hdfs上 (2):运行MapReduce (5):查看运行结果 ...
Hadoop MapReduce是一种分布式计算框架,是Apache Hadoop生态系统的核心组成部分,主要用于处理和存储大规模数据集。这个项目是一个学习Hadoop MapReduce的实践项目,利用Maven构建,无需单独安装Hadoop环境,只需在...
### Hadoop+HDFS和MapReduce架构浅析 #### 摘要 本文旨在深入剖析Hadoop中的两大核心组件——HDFS(Hadoop Distributed File System)和MapReduce的工作原理及其实现机制。首先,我们将介绍Hadoop NameNode与...
MapReduce是大数据处理领域中的核心组件,尤其在处理大规模分布式数据集时,它的重要性不言而喻。本书以实例驱动的方式,将复杂的理论知识转化为可操作的代码,使学习过程更加生动有趣。 首先,我们要理解MapReduce...
MapReduce是由Google提出的一种分布式数据处理框架,它被广泛应用于工业界和学术界,用于解决大规模数据集上的复杂问题。MapReduce的核心思想是将大规模数据集分割成多个小块,并将处理任务分布到大量计算机上执行。...
大数据处理是现代信息技术领域的一个重要概念,它涉及到海量数据的存储、管理和分析。Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大规模数据集。Hadoop的核心组件包括HDFS(Hadoop Distributed...
在大数据处理领域,MapReduce是一种广泛使用的编程模型,主要用于处理和生成大规模数据集。本资料主要探讨了如何利用MapReduce实现两种经典的机器学习算法:K近邻(K-Nearest Neighbors, KNN)和K均值(K-Means)。...
MapReduce是一种分布式计算模型,由Google在2004年提出,...随着资源获取的逐渐平等,包括数据和计算资源,MapReduce等分布式计算模型将使更多人能够参与到数据驱动的研究中,进一步推动学术界与工业界的交流和合作。
**MapReduce** 是一种编程模型,最初由Google提出并在Hadoop中实现,用于处理大规模数据集的分布式计算问题。该模型的核心思想是将复杂的大型计算任务分解成较小的任务,然后通过多台计算机(节点)并行处理,最终...
MapReduce是一种广泛应用于大数据处理领域的分布式编程模型,最初由Google提出并在其内部系统中得到广泛应用。随着开源社区的发展,尤其是Apache Hadoop项目的兴起,MapReduce成为了分布式计算领域的一个重要组成...
本文档中提到了《MapReduce设计模式》这本书,由Donald Miner和Adam Shook所著。书籍的标题说明了其主要内容是针对MapReduce编程模式的深入探讨,意在帮助读者更好地理解和利用MapReduce模型来处理实际问题。这本书...
MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。它将复杂的并行计算任务分解成两个主要阶段:Map(映射)和Reduce(化简)。在这个"MapReduce项目 数据清洗"中,我们将探讨...
除此之外,可能还会有驱动程序(Driver)代码,用于配置和提交MapReduce作业。 在MapReduce中,数据通常存储在HDFS(Hadoop Distributed File System)上,而JobTracker和TaskTracker负责作业的调度和任务的执行。...
Hadoop MapReduce 是一种分布式计算模型,由两部分组成:Map(映射)和 Reduce(归约)。Map 阶段并行处理输入数据,Reduce 阶段整合 Map 阶段的结果。这种设计使得 Hadoop 能够处理大规模的数据集,且具有容错性和...