近年来,当人们为WORDPRESS,DISCUZ之类的大型网上应用难以扩展,难以维护而痛苦之时,这才深明软件架构师工作的重要性,以及好的软件架构的重要性。作为软件开发人员,也许你现在还是不架构师。但是,如果是小企业,小团队,你很可能也在起着架构师的作用。或许有一天,你也会走上架构师的位置。所以,了解一些软件架构的技术是相当重要的。看到网上一些博客中有人发文嘲讽架构技术,不够让人感到心痛。言时正传,架构师应当了解哪些技术呢?
作为一个大型WEB应用,所需要的架构技术,或者说,目前成熟的架构技术有以下这些:
AOP 面向切面编程(这是JAVA中的一个述语)
MVC——模块视图控制器架构。此架构必须是符合IOC 原则的。
module 模块
–calss 应当是完全面向对象的。
–event map or notation(action) ,基于事件映射的模块一向是保证代码可读性,可维护性以及可扩展性的基础。
view 视图
–componnent-based 作为架构师,相对于使用JSP或PHP,你必须懂得如何选用STRUTS或SMARTY模式的VIEW,还是使用基于组件模式的VIEW。但对于.NET,FLEX这一层在编程语言框架中已为你做好了,所以不需要多考虑。
control 控制器
要真正做到松耦合。可定制,特别是现在移动互联正在发展的今天,你的网站可能同时支持手机与PC浏览器。因而,快速的UA检测技术是必须要的。
DMM,DDD 领域模型,领域驱动开发模式(Domain Driven Development )
–Domain modal ,busness modal 领域模型,是指特定领域的业务逻辑模型。
–specification mode 规则模式,这是最新的技术之一,被称为领域模型中的第8种模型。
ORM 对象关系映射。DMM,DDD 均不都是直接访问数据库的。很多是建立在ORM 之上的。ORM 不仅能向您提供清析的软件架构,同时,也为您省去大量编写CRUD的麻烦。
Active Record 和 Table Data Getway 这是由ROR冲击后兴起的新型ORM模式。
DrySql 这是产生于RUBY语言的最新ORM技术。
Libraries 类库,应用程序常用的类库,包括database & other。这是一般最普通的开发框架均能提供的核心源码。但是,架构师有能力充分审视这些源码是否满足应用的需要,这一能力是必须的。比如,CodeIgniter的日志类,就不能用于大型WEB应用,因为它只有文本日志。
当然,以上这些只是WEB应用的软件架构技术,架构还与硬件架构,数据库架构,网络架构有关。这些这里就不多讲了。
分享到:
相关推荐
在技术层面,软件架构师需要掌握构件之间的通信机制,包括进程内通信(如对象访问、函数调用、数据交换和线程同步)以及进程间通信(如远程方法调用RMI、分布式组件对象模型DCOM、Web服务等)。这些机制对于构建...
2. **应用系统技术体系架构**:技术架构师则关注于技术选型和系统性能,他们掌握各种技术体系结构和设计模式,确保软件的性能、复用性、安全性和跨平台能力。 3. **规范架构师**:这类架构师致力于制定和推广架构...
软件架构师是软件开发过程中的核心成员,他们需要参与基础框架的架构设计、重构、优化,根据业务规划及技术规划制定应用架构方案。软件架构师的工作职责可以分为四个方面: 1. 软件架构设计:负责设计和开发软件...
首先,软件架构师的主要职责可以分为三个方面:行业应用架构、应用系统技术体系架构和规范架构。行业应用架构师专注于理解和解析特定行业的业务需求,将这些需求转化为可行的软件设计方案。技术架构师则关注于技术...
架构师是一个复杂的职位,需要掌握多种技术和技能。以下是通向架构师的道路的知识点总结: 一、架构师的基础知识 架构师需要具备一定的基础知识,包括但不限于: * J2EE 工程的通用架构 * 数据库管理系统(如 ...
通过学习这些文件,软件架构师可以增强自己的理论知识,掌握实用技能,并了解如何将这些知识应用于实际的项目管理中。此外,这些资料也能帮助开发者更好地理解软件生命周期的各个阶段,从需求分析、设计、实施到测试...
【优秀架构师必须掌握的架构思维】 在软件研发和系统架构领域,架构思维扮演着至关重要的角色,其中抽象思维、分层思维和分治思维是架构师的核心技能。 **一、抽象思维** 抽象思维是软件架构中最基础的能力之一。...
《RabbitMQ——高效部署分布式消息队列》这本书主要涵盖了分布式系统中消息队列的核心概念和技术,特别是关于...学习并掌握这些内容,将有助于你成为一名优秀的架构师,能够设计和构建高性能、高可用的软件系统。
在准备高级软考架构师考试的过程中,考生需要对软件架构设计、系统集成、项目管理等多个领域有深入理解和实践经验。这份“高级软考架构师模拟题”压缩包文件提供了全面的练习资源,帮助考生熟悉考试的格式和内容。...
本套高级Java软件架构师实战培训视频教程是私塾在线推出的...通过这套视频教程,学员不仅能掌握高级Java编程技巧,还能深入理解软件架构设计原则,具备解决复杂问题的能力,为成为专业的Java软件架构师打下坚实的基础。
作者在这部博士论文中详细阐述了如何基于网络进行软件架构设计,这对于开发者、架构师和项目经理来说都是宝贵的参考资料。他们可以从中学习到如何设计出符合REST原则的服务,如何优化系统性能,以及如何通过模块化...
Java架构师面试题涵盖了许多关键领域,包括J2EE开发、大数据处理、日志管理、权限分配、服务扩展性、负载均衡、性能调优、系统整合、软件开发模型、云计算理解以及框架比较与安全性分析。以下是对这些知识点的详细...
该套Java软件架构师实战培训视频教程聚焦于高级Java开发技术,特别强调了在实际项目中的应用。课程覆盖了从第18讲到第24讲的内容,共计148讲,旨在帮助学习者深入理解并掌握软件架构设计的关键技能。 在阶段一中,...
综合来看,本书为读者提供了一个全面的Linux及云计算架构学习路径,从基础概念到高阶架构设计,再到实际问题解决,覆盖了云计算架构师必须掌握的方方面面。通过学习这些内容,读者不仅可以获得扎实的理论知识,也能...
如何能抽象出一个统一的状态模型,可以使状态在留转过程中被保存和传递//最好能够用一套处理机制,能够满足WinForm程序和Web应用的需要 //用户的在一个操作流程中可能会嵌套子流程,或者会转到别的流程 //记录流程的...
在分布式系统设计方面,J2EE架构师必须了解EJB的远程接口、JMS的异步通信、RMI(Remote Method Invocation)以及JCA(Java Connector Architecture)等技术。这些技术帮助实现跨服务器的通信和系统的扩展性。 最后...
内容概要:本文详细介绍了软件架构的基本概念以及软件架构师的角色职责与所需掌握的技术技能。涉及的知识领域包括但不限于服务器端技术(如微服务架构),前端技术(如React、Vue和Angular等现代web框架),软件设计...
架构师通过设计模式、接口和组件来构建一个可扩展、可维护、高性能的系统。一个好的架构能够降低复杂性,提高开发效率,并为未来的变化和扩展留出空间。 软件架构的主要元素包括: 1. **组件**:构成系统的基本...
理解并掌握这些技术,能够帮助架构师设计出高效、可扩展的应用。 接着,"架构师课程目录.png"很可能是课程的详细大纲,列出了从基础概念到高级主题的学习路径,可能包含如下部分:Java编程基础、面向对象设计、数据...