设计思想
部分优秀的设计思想
来了就走下去
生活不止有远方,还有代码
展开
-
阿里云App性能优化实践
超级App运维体系监控度量指标(性能,电量,流量,内存,稳定性)覆盖率,极端闪退、启动卡死实时查找用户出错信息问题归纳到模块中问题指标化分布(如启动时间的区间分布情况)诊断诊断方式(推拉结合、白名单)推拉结合:下指令可以得到用户的诊断信息,或用户主动上传诊断信息诊断成功率:(性能稳定性100%)修复多种手段(在线配置,自动熔断原创 2016-08-30 21:10:51 · 542 阅读 · 0 评论 -
驴妈妈旅游网技术架构发展
1技术架构发展 1 基本完成第三阶段SOA服务分拆和高可用治理2 向弹性计算,云服务发展 服务拆分:垂直线拆分:业务线拆分水平拆分:业务流程拆分 2数据库架构业务分库读写分离异构复制 读写分离关键问题:主备分离,主备同步 多机房的主备同步问题:在这中情况下,可能多个机房分配一定的资源,达到总的资源分配问题原创 2016-10-07 23:24:04 · 3979 阅读 · 0 评论 -
服务治理
http://blog.kazaff.me/2015/02/02/dubbo%E7%9A%84%E6%9C%8D%E5%8A%A1%E6%B2%BB%E7%90%86%E7%BB%86%E8%8A%82/ 如果说单单只完成远程调用的话,dubbo还算不上是一个合格的SOA服务架构,而它之所以那么碉堡,是因为它还提供了服务治理的功能,今天就让我们来研究一下关于服务治理,dubbo都转载 2016-10-07 23:17:51 · 814 阅读 · 0 评论 -
JDK的SPI机制
SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下java spi机制的思想。我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程转载 2016-10-07 23:06:28 · 8294 阅读 · 0 评论 -
微服务架构的优势与不足
原文链接:http://blog.daocloud.io/microservices-1/?utm_source=tuicool&utm_medium=referral编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。作者介绍:Chris Richardson,是世界著名的软件大转载 2016-09-29 22:13:25 · 1626 阅读 · 0 评论 -
伸缩立方
在这个模型中,通过在负载均衡器之后运行多份拷贝来伸缩应用的方式叫做X轴伸缩。另外两种伸缩方式叫Y轴伸缩和Z轴伸缩。微服务架构是Y轴伸缩的,让我们也同时认识下X轴和Z轴伸缩。X轴伸缩X轴的伸缩,由负载均衡器后运行的多个拷贝构成。如果有N份拷贝,每份拷贝处理1/N的负载。这是个简单常用的伸缩应用的方式。这个方法的缺点是,由于每份拷贝潜在地访问所有数据,缓存需要更多内存才能更加有效。另一转载 2016-09-29 21:57:51 · 420 阅读 · 0 评论 -
模块化设计
编程中,我们都在想自己需要实现什么功能,其实我们每时每刻都在想着怎么进行模块化,但自己的模块总是难以扩展与维护,为什么会这样呢?总的来说是:没有实现高内聚、低耦合的模块,为了实现这种模块其实是有理论依据的,只是很多时候我们并没有按照理论依据去设计,导致设计出的接口其实并不满足要求,所以从现在开始,要求自己设计一个理论上高内聚、低耦合的模块。除了通过模块化理论去实现,我们还可以通过将模块分类来达原创 2016-10-13 21:02:17 · 782 阅读 · 0 评论 -
接口的设计应该从小到大,还是从大到小?
最近在编写一个功能的时候,把整体思路理清了以后,开始设计接口,我的做法是先设计一个一个小的接口,后面再将这些接口整合成所需要的功能(ps:其实我也不知道自己的方法对不对,但先这么做了),后来整合功能的时候,有一些接口的参数需要进行调整,导致之前的接口设计文档需要修改,不过前期这些修改都是必须的,那么我这里纠结的是如果我一开始将大的方向确定下来,再通过分支去实现,这样会不会减少这种返工。目前在我原创 2016-10-10 21:57:16 · 444 阅读 · 0 评论 -
设计的过程思考
最近在设计读取Excel的功能,一开始我考虑的很全面,各个点都涉及到了,考虑了很多,然后在这些考虑下开展代码的编写,发现写着写着就有问题,最终因为很难去修改导致原来的代码很难理解和维护。总结:有些时候前期过多的考虑会影响你的设计的复杂度,我认为的设计是一个迭代的过程,一开始可以考虑的很简单,后来在实现的过程中可以扩展自己的设计,通过实践来完善自己的设计,通过可扩展接口来完成扩展功能。总之,设计原创 2016-08-23 22:26:01 · 342 阅读 · 0 评论 -
支付宝App无线网络性能该何如保障
App : 树服务:树叶无线网络: 树干无线网络的挑战:设备首先,高延时,低宽带,劫持,篡改,高丢包率核心目标:稳定,可靠,快速网络基础设计统一网络库:连接管理及网络IO;协议处理;安全传输接入网关:连接保持服务网关终端网络监控:HTTPDNS全网调度多维度策略控制独立通道,安全校验请求优化,快速生效原创 2016-08-31 20:44:58 · 1305 阅读 · 0 评论 -
前后端接口设计疑惑
如何做到前后端并行开发呢?大部分人的答案是:设计前后端交互接口。在真实的场景中,我接触到的大部分都是通过控制器来实现前后端交互,那么真正的前后端分离是怎样的呢,设计的接口又体现在哪方面呢?现状:控制器中定义一个方法与前台请求进行交互,交互所需要的信息通过对象进行封装,但大部分时候前台往后台传递的时候只会传递对象的部分字段的值,那么作为一个控制器读者,我完全不知道,接收前台传递信息的原创 2016-12-01 22:27:01 · 1140 阅读 · 0 评论