架构
文章平均质量分 88
风铃峰顶
个人项目经历请搜索:
http://www.haoranhaoshi.top/
展开
-
持续集成、重构、测试驱动设计、演进式设计、处理复杂系统的方式、领域驱动设计
持续集成:合理提高团队成员的集成频率,通常每个成员每天至少集成一次。每次集成通过自动化构建进行验证,及时发现集成错误。避免长时间不集成,一集成就遭遇集成地狱。注:自动化构建:编译,发布,自动化测试。集成地狱:代码差异量过大,集成困难。重构:不改变功能,改进代码,优化性能、可读性、可扩展性。测试驱动设计:及时测试,发现问题,改进设计,确保对系统的更改不破坏现有功能。演进式设计:结合持续的需求和反馈进行敏捷开发。敏捷开发的实践:持续集成、测试驱动设计、重构。—————————————转载 2020-11-19 10:10:45 · 178 阅读 · 0 评论 -
分布式CAP、一致性模型、BASE
CAP:一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。一致性:从不同数据副本,读到的数据一致。 强一致性:读到的数据一致。 弱一致性:读到的数据可能一致。 最终一致性:一段时间后,读到的数据一致。可用性:操作是否能完成。如:发出请求后,是否能得到正常的响应。分区容错性:分区故障,系统仍能支撑运行。分布式中,想满足一致性,那么必须等待数据同步,在数据同步期间不满足可用;想满足可用性,就不能等待数据同...原创 2020-11-12 16:04:51 · 145 阅读 · 0 评论 -
高可用、高并发
高可用指标:可用性指标 计算方式 不可用时间(分钟) 99.99% 0.1%×365×24×60 525.6 100% 0.01%×365×24×60 52.56 100% 0.001%×365×24×60 5.256 负载均衡可用:单点故障(single point of failure,SPOF):单个节点故障,导致整个系统故障。解决单点故障:集群。集群负载均衡(https://www.cnblogs.com/zhangxinge原创 2020-10-30 14:29:23 · 201 阅读 · 0 评论 -
可靠协议、不可靠协议、有状态协议、无状态协议、TCP、HTTP、Cookie、Session、JWT
TCP面向连接,有确认、重传、数据排序、流量控制、拥塞控制的机制。TCP是可靠协议。HTTP基于TCP。HTTP是可靠协议。IP是不可靠协议。无状态协议:不记忆传输内容,不会被下一次传输感知。HTTP,UDP是无状态协议。TCP,FTP是有状态协议。Cookie限制4KB,无法存储过多信息。Cookie可以存储SessionId,服务端维护Session库存储Session信息,使Http避免无状态的影响。...原创 2020-10-27 15:11:57 · 2374 阅读 · 0 评论 -
企业服务总线(EnterpriseServiceBus,ESB)
企业服务总线(EnterpriseServiceBus,ESB)是构建基于面向服务体系结构(SOA)解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持SOA的一组基础架构功能。ESB支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。简而言之,ESB提供了连接企业内部及跨企业间新的和现有软件应用程序的功能,以一组丰富的功能启用管理和监控应用程序之间的交互。在SOA分层模型中,ESB用于组件层以及服务层之间,它能够通过多种通信协议连接并集成不同平台上的组件将其映射成服务转载 2020-10-27 10:26:52 · 1631 阅读 · 0 评论 -
函数式编程
函数式编程与面向对象编程(Object-oriented programming)和过程式编程(Procedural programming)并列的编程范式。最主要的特征是,函数是第一等公民。强调将计算过程分解成可复用的函数,典型例子就是map方法和reduce方法组合而成 MapReduce 算法。只有纯的、没有副作用的函数,才是合格的函数。面向对象的世界里我们是把事物抽象成类和对象,然后通过封装、继承和多态来演示他们之间的关系。函数式的世界里把世界抽象成事物和事物之间的关系,用这种方式实现世转载 2020-09-03 08:29:20 · 103 阅读 · 0 评论 -
响应式编程(反应式编程)
响应式编程(reactive programming)是一种基于数据流(data stream)和变化传递(propagation of change)的声明式(declarative)的编程范式。响应式编程会声明数据变化对应的操作逻辑(声明式),会监听数据变化(数据流);数据变化后,会执行对应的操作逻辑(变化传递)。编程范式是编程的普适性模式。响应式编程也称反应式编程。响应式编程是观察者模式的实践。RxJava、Reactor是响应式编程框架。GUI的Listener,JavaFX转载 2020-09-02 15:50:51 · 1229 阅读 · 0 评论 -
GoF23种设计模式含义、实践举例、模式对比
设计模式的应用举例: 工厂模式 BeanFactory 装饰器模式 BeanWrapper 代理模式 AopProxy 单例模式 ApplicationContext 委派模式 DispatcherServlet 策略模式 HandlerMapping 适配器模式 HandlerAdapter 模板方法模式 JdbcTemplate 观察者模式 ContextLoaderListener 工厂模式(Factory...原创 2020-08-25 08:58:54 · 304 阅读 · 0 评论 -
软件设计原则总结
七大软件设计原则(如果讨论六大软件设计原则,则不包括合成/聚合复用原则):开闭原则(尽可能扩展而非改动): 软件实体(类、接口、方法)对扩展开放,对修改关闭。 举例:课程新增了直播和录播划分,可新增直播和录播课程子类,而不改动课程类。 优点:保持代码稳定,降低维护风险。依赖倒置原则(尽可能抽象而非细节): 改高层依赖低层,为二者依赖抽象。 面向抽象比面向细节稳定。 举例:改播放课程,内部判断直播或录播,为抽象课程,播放直播或录播课程细节。 依赖注入...原创 2020-08-25 08:37:19 · 195 阅读 · 0 评论 -
约定优于配置
约定优于配置(Convention Over Configuration),也称:约定大于配置,习惯优于配置,按约定编程。比如User类对应的表为user。比如SpringBoot约定静态资源在static下,动态资源在template下,port、log、eureka等配置在application.yml里。JDK1.5开始的元数据(描述数据的数据)实践-注解也是约定优于配置的体现。...原创 2020-07-24 16:19:57 · 219 阅读 · 0 评论 -
数据、元数据、数据库、数据仓库、数据中心、数据中台、业务中台 、(垂直数据中心、全域数据中心(公共数据中心)、萃取数据中心)
数据是可电子化的记录。元数据是描述数据的数据,如数据张三 24,描述此数据的数据是name age或者A B。参考:https://baike.baidu.com/item/%E5%85%83%E6%95%B0%E6%8D%AE/1946090?fr=aladdin数据库:面向用户,用来帮助和记录用户操作,可读可写。数据仓库:面向开发者,用来帮助开发者分析和决策,只读。参考:https:/...转载 2019-08-11 21:15:18 · 1581 阅读 · 0 评论 -
书记_《微服务架构与实践》
1、(1)一层架构:表示、业务逻辑、数据访问交织在一起。(2)二层架构:独立了数据访问,表示和业务逻辑交织在一起。如Java的JDBC、IO流,.NET的ADO.NET的推动。(3)三层架构:表示层、业务逻辑层、数据访问层。2、(1)单块架构:功能集中、代码和数据中心化、一个发布包、应用程序部署后运行在同一进程。(2)单块架构的挑战:维护成本增加。持续交付周期长。新人培养周期长。技术选...原创 2019-06-09 23:02:56 · 854 阅读 · 0 评论 -
DevOps理解
DevOps(Development和Operations的组合词)即开发、运维一体化。有利于快速交付,持续创新。可以结合办公自动化系统(Office Automation System),软件过程集成框架(SPIF(Software Process Integrated Framework)),禅道开源项目管理软件等理解。DevOps概念从2009年提出已有8个年头。可是在8年前的那个时...转载 2019-05-14 19:41:13 · 331 阅读 · 0 评论 -
IaaS、PaaS、SaaS对比,简单明了
云计算的三种模式:IaaS: Infrastructure-as-a-Service(基础设施即服务)PaaS: Platform-as-a-Service(平台即服务)SaaS: Software-as-a-Service(软件即服务)举例:(1)开发一个办公管理系统,用阿里云的服务器作为存储、网络通信的硬件,系统、数据库、容器、语言环境等底层自己安装配置,业务也自己写。那么阿里云提...原创 2019-05-13 21:35:55 · 321 阅读 · 0 评论 -
Java的WebService前后台
一、开发环境搭建(1)jdk-8u60-windows-x64.exe安装;(2)mysql-5.5.20-winx64.msi安装;(3)apache-tomcat-7.0.67.exe安装;(4)eclipse-win64.zip解压;(5)navicat_trial_11.1.20.0.1449226634.exe安装。 二、Java WebService服务端搭...原创 2018-01-02 12:49:12 · 292 阅读 · 0 评论 -
servlet数据发布
一、Servlet数据发布1.新建动态网站工程ServletDemo,src文件夹的Demo包下新建Servlet类Work Center;2.doPost方法中写入:response.setCharacterEncoding("UTF-8");response.setContentType("application/json; charset=utf-8");respo...转载 2018-01-02 12:42:06 · 327 阅读 · 0 评论 -
Java框架及架构回顾
Hibernate:1、Configuration、SessionFactory、Session、Transaction、Query2、insert:session.save(student)3、select:session.createQuery(" from Student ").list()3、xml文件:类、属性与表结构的映射 数据库连接配置(驱动、数据库ur原创 2018-01-16 13:10:51 · 385 阅读 · 0 评论 -
OSGI技术小结
参考:https://blog.csdn.net/u013851082/article/details/70214829https://blog.csdn.net/u013851082/article/details/70214881OSGI技术(Open Service Gateway Initiative,开放的服务入口的初始化):目标:使模块之间真正解耦、分离。场景:灵活可控的大规...原创 2018-08-02 17:01:07 · 194 阅读 · 0 评论 -
中间件 分布式 微服务
中间件:连接独立的应用程序或系统的软件。即使应用程序或系统有不同的接口,通过中间件也能交换数据。类比主板,可沟通U盘、磁盘、光盘的不同接口,进行数据分享。分布式计算环境(Distributed Computing Environment):分布式应用程序运行的通用环境,即使机器、操作系统、网络不同。如一个负载均衡服务器Load Balance(如Nginx),多个Web服务器Web Ser...原创 2018-11-26 16:22:03 · 1660 阅读 · 0 评论 -
桌面应用嵌入H5(Node-Webkit或者Electron)
一、Node-Webkit1、简介:可将网页文件嵌入到桌面应用程序中,例如暴雪的星际争霸,腾讯的微信、QQ桌面版,酷我音乐等都采用混合桌面应用。2、使用方法(1)下载对应操作系统的Node-Webkit包;(2)编写网页文件及package.json文件(Demo是桌面应用的Title,Demo.html是第一个展示的界面);package.json基础内容:{“na...原创 2018-01-02 12:33:46 · 3739 阅读 · 0 评论 -
WebService技术(C#+IIS+Android)
一、1、WebService定义WebService是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用.Net编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。所谓远程调用,就是一台计算机A上的一个程序可以调用到另外一台计算机B上的一个对象的方法,譬如,银联提供给商场...原创 2018-01-02 12:05:21 · 1419 阅读 · 0 评论 -
Myeclipse+jax-ws搭建WebService服务端
一、MyEclipse2017CI7安装与破解参考:http://blog.csdn.net/rcnjtech/article/details/77920978?locationNum=1&fps=1二、新建WebService Project参考:http://blog.csdn.net/cai_eternal/article/details/53931257三、发布We...原创 2018-01-11 12:45:51 · 373 阅读 · 0 评论 -
阿里Java开发手册部分加注——工程结构
阿里Java开发手册个人加注Word版(同步手册2018.5.20版):https://download.csdn.net/download/haoranhaoshi/10889213六、工程结构(一) 应用分层1.【推荐】图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于 Web 层,也可以直接依赖于 Service 层,依此类推:开放接口层:可直接...原创 2019-01-01 13:33:24 · 701 阅读 · 1 评论 -
阿里Java开发手册部分加注——设计规约
阿里Java开发手册个人加注Word版(同步手册2018.5.20版):https://download.csdn.net/download/haoranhaoshi/10889213七、设计规约1.【强制】存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档。说明:有缺陷的底层数据结构容易导致系统风险上升,可扩展性下降,重构成本也会因历史数据迁移和系统平滑过渡而陡然增加,所以...原创 2019-01-01 13:35:00 · 623 阅读 · 4 评论 -
uni-app(跨平台终极解决方案)有感
2014年-2017上半年,博主技术方向在传统PC技术(swing、javafx、c#-winform、wpf)、APP技术(Android、IOS)、Web技术(ASP、JSP、PHP)。2017下半年-2018上半年,随着多端交互带来的开发、运营、维护的成本提升,传统技术都面临重大打击。博主及时转向了webservice/node.js/springboot、mui、node-webkit技...原创 2019-04-05 11:49:24 · 2723 阅读 · 0 评论 -
Nginx+Django+Docker
Django对标SpringMVCNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文...转载 2019-04-29 20:20:38 · 771 阅读 · 3 评论 -
架构小思
一、桌面应用1、Java+Netbeans或IDEA(Eclipse、Myeclipse、Netbeans、IDEA等IDE中Form编写推荐Netbeans,IDEA也很不错)2、C#+Visual Studio3、WebService服务端+Html+CSS+JS+Jquery+Bootstrap或者MUI+Node-Webkit客户端4、Html+CSS+JS+Jquer...原创 2018-01-11 16:23:50 · 176 阅读 · 0 评论