软件系统架构是什么?软件开发架构有哪些?

开课吧开课吧锤锤2021-03-29 14:53

    什么是软件系统架构?

    软件架构(softwarearchitecture)是一系列相关的抽象模式,用于指导大型软件系统的各个方面的设计。软件架构是系统的草图。软件架构描述的对象是直接构成系统的抽象组件,每个组件之间的连接清晰详细地描述了组件之间的通信。在实现阶段,这些抽象组件被细化为实际组件,如特定类别或对象。在对象领域,组件之间的连接通常通过界面(计算机科学)来实现。

Java

    软件开发架构有哪些?

    Spring:从工作开始就使用;是J2EE框架,对IOC有很好的支持,对AOP技术也有很好的封装;

    SpringMVC:也是Spring的子项目,实现了MVC设计模式,目标是解耦;

    MyBatis、Hibernate:两者都是ORM框架,现在Hibernate使用较少的SpringDataJPA也被使用,这可以看作是更高级的封装,用方法命名SQL语句

    可见,上面是SSM框架,现在还是比较流行的。

    当今互联网企业开发时,软件架构哪些是主流框架?

    Maven以Maven为基础,是一种项目管理工具,主要功能有:项目构建;Jar包依赖管理;版本管理;持续集成等;

    JUint:单元测试工具;也是老朋友;还有很多测试框架,比如SpringTest,JMock等等。

    Shiro、SpringSecurity:用户身份认证、权限认证、加密、会话管理等安全认证框架

    CxforAxis:旧项目WebService使用较多;历史问题,还是要了解的;

    Quartz:定时服务框架,通常是单机应用;

    Elastic-job:分布式定时服务框架,产品;

    log4j,logback:各种日志工具;现在会有一些日志收集分析的框架,比如ELK;

    Ehcache:缓存框架也用于单机项目;

    Redis:说到缓存,现在Memcached,Redis;当然,Redis也不限于缓存;

    SpringBoot:一个用于处理其他框架的框架,主要提供各种启动器,简化各种配置,方便与其他框架集成,开发人员可以快速上手。

    Dubbo:一个微服务框架,阿里制作;

    SpringCloud:还有一个微服务框架,比如:Config(配置管理中心),NetflixEureka(服务注册,服务发现),Hystrix(断路器),Hystrix(断路器使用了,还有新的),Feign(声明服务调用组件),Ribbon(客户端负载平衡),Zuul(网关),Bus(信息总线)等等。

    DubboorSpringCloud:这取决于公司的技术栈,用哪一个学哪一个,都没用,建议学SpringCloud。

    RestfulAPI,RPC:服务风格各异;

    Swagger:RestfulAPI自动生成工具;

    消息队列:常用的RabbitMQ和Kafka,一个保存消息的容器,也用于系统系统;

    MongoDBSON(类似JSON)格式;

    Zookeeper:分布式协调服务;

    Nginx:或其他负载平衡软件;

    容器技术:容器技术。

    在项目中使用的技术不仅仅是框架,还有以下几点

    1.spring:低侵入对象管理容器,提供大量注释,方便开发,宣传事务,集成其他框架变得简单!

    2.springboot:微服务框架,大量现成库的集合,提供模板配置和开发,简化初始建设和开发!

    当今互联网企业开发时,Java使用哪些主流框架?

    3.springcloud:企业级微服务框架集成了大量微服务所需和可直接使用的库,如服务注册和发现、jvm运行参数获取、安全认证、断开器等。

    4.mybatis:持久层框架,轻量级,解耦sql和代码,支持动态sql,可以支持强大复杂的sql句子,查询结果可以自动映射到JAVA对象!

    5.druid:连接池,可以监控sql执行次数、效率等,可以监控web请求数等,提供可视化页面!

    6.redis:key-value内存缓存,可以支持多种数据结构的访问,单线程保证线程安全,可以用来锁定业务数据,计数,生成全球唯一的key,设计秒杀系统等等!

    当今互联网企业开发时,Java使用哪些主流框架?

    7.docker:微服务集成部署容器的首选,占用资源少,可以建立一套独立的环境镜像,避免各种环境复杂的影响!windows可以下载boot2docker体验,非常好用!

    8、mycat:分库分表框架,有多种分库分表策略可供选择,简单配置就能得到优秀的数据库超量数据读写!

    9.mysql:开源数据库,性能强!

    10.mongodb:非关系数据库,热数据存储在内存中,读取非常快,文档存储(大对象特别方便),支持自动分片!

    AOP:面向切面编程,可以抽出非业务的公共部分,如日志、安全验证等!

    12.logback:日志工具,简单配置就可以获得全面的日志打印和日志文件管理!

    当今互联网企业开发时,Java使用哪些主流框架?

    13.jenkins:连续集成部署工具,通过简单的配置,可以实现自动部署!

    14.ons、rabbitMq等消息组件:异步处理,最终一致解决方案!

    15.nginx:负载平衡的不二选择,极其稳定,性能极佳,配置简单,有多种平衡方式可供选择,可以轻松实现前端跨域访问!

    16.SVN/git:版本控制工具,是团队并行开发的保证!

    17.putty/secureCRT:远程连接工具,方便远程执行命令,查看日志等!

    18.javamelody:集成在代码中,可以在网页上查看实时内存、CPU利用率等性能监控指标!jmap:性能分析工具!

    文字是否不能解决你的疑惑,那么现在开始有这样一次机会你是否想想把握,那就是赠送你一节免费的体验课,点击下方图片免费领取。

框架

    文字的介绍再全面,没有一个人深入的为你解答,你可能始终停留在表面,这样一堂课就是你最需要的。

有用
分享