分类

架构设计

百度不限速下载器 BND2 技术架构简介

BND2 简介 BND2 是一款图形界面的百度不限速下载器,支持 64 位 Windows 和 Mac,仅提供给黑客派会员使用,下载地址:https://share.weiyun.com/5Z32JP8 高速下载原理 通过 PCS API 获得文件、下载链接通过 Aria2 实现高速下载 和百度网盘下载相关的内容我们就介绍到这里。下面我们主要介绍框架和实现相关的东西,如果你刚好想做一个桌面软件,可以参考借鉴一下。 技术架构 BND2 基于 Electron、React、golang 实现,通过主框架 - UI - 内核的分离实现 UI 以及内核的自动更新。 主框架:Electron 主进程,负责版本检查、账号登录以及管理内核UI:React 实现主界面,编译后上 CDN,通过 Electron <webview> 加载内核:golang 实现的 HTTP 服务,负责响应 UI 请求,管理 Aria2 进程。 编译后可执行二进制上 CDN 提供给主框架拉取更新 为什么选 Electron、React 和 golang 在选择 Electron 之前,我们大致看了下 NW....

More...

呼叫中心架构设计

从呼叫模式上看,目前业界大多数采用的是“回拨”模式,即由呼叫中心发起两路呼叫,然后将两路进行连通。

More...

基于数据库复制的技术架构讨论

背景 这里的数据库复制指的是将 业务数据库实例上的库通过同步机制(比如 MySQL binlog)实时(比如最大延迟为 3s)复制到其他数据库实例上,这些实例库只做查询,不做数据写入。 这套架构设计的主要优势: * 各业务应用能够方便地在自己的 DB 实例上进行业务查询,比如通过 join 主业务库 * 在不明确业务边界、没有梳理好业务对应技术模块时可以最小成本进行变更或扩展 * 实现读写分离,提升性能 ### 一些问题 实际在实施过程中主要遇到两个问题: 1. 不可能实时完成数据同步,将造成业务上面的不一致,比如调用主库服务更新数据后,在业务库上不能实时查询到已更新的数据 2. 很难保证高可用(在使用阿里 DTS 时出现过多次问题,自己做主从可能会好一些) 为了满足业务发展,复制库的数量会逐步增多(比如新开一个产品可能就需要多复制一套库),以上两个问题可能会导致严重的故障, [CAP] 不能兼得。 ### 服务化 基于数据库复制架构的核心理念是将数据源暴露给应用,开发者直接针对数据源进行开发,是一种非常直接的方式。 但随着业务的逐渐清晰,一些业务逻辑是可以抽....

More...

敏感数据处理

背景 大多数应用或多或少都会涉及到敏感数据处理,比如用户的手机号、身份证号,甚至银行卡账号。作为应用的开发者,如何 安全地 维护这些敏感数据呢? 这里讨论的安全不是指服务器如何保护,而是在数据库层面做敏感数据的分离: * 业务库中不保存敏感数据,只保存混淆过的数据,比如电话字段保存的是 133****9961,在数据层面就进行脱敏 * 敏感数据统一保存在另一个库中,有应用调用一个服务来建立原值和混淆值的映射关系 * 业务库中因为保存的是脱敏过的数据,通过只读复制镜像可以很方便地提供给其他服务使用,比如 OLAP * 除了技术开发上方便,运维上也方便了很多,降低了敏感数据被暴露到外部的可能性 ### 技术设计 提供服务接口给应用存取敏感数据,本质上是一个 KV 存取服务。 1462956107181 一些细节: * 表 protyle 的 domain 字段用于标识该记录的作用域,在一个作用域上相同的值要保证唯一 * 表 protyle 的 ha....

More...

NetBeans 时事通讯(刊号 # 294 - Jul 31, 2014)

NetBeans Logo现在的 netbeans.org 瞬息万变。为了帮助您快速的获得最新消息,一个由志愿者组成的团队会每周收集与 NetBeans 相关的时事通讯,包括文章,教程,重要事件等等。

刊号 # 294 - Jul 31, 2014

More...

系统健康状态管理设计思路

系统健康状态管理设计思路。

More...

应用开发积累

开发、设计时思考的一些零碎。

More...

吐槽 Tapestry

吐槽 Tapestry——组件化、模版、IoC。

More...

分布式事务原理

本文是对分布式事务原理、规范的科普,主要围绕两阶段提交协议展开。最后描述了在应用框架层面模拟两阶段提交协议的简化设计。

More...

GAE 调价对 Web 架构的将来揭示了什么?

GAE logo当我还是一个孩子的时候,我像孩子一样说话,像孩子一样理解,像孩子一样思考:但是当我成为一个成年人的时候,我收起了那些幼稚的东西。--Corinthians

随着GAE新的定价模式调整,开发将会由成本驱动。为了使我的应用更好更快,我喜欢去优化它们,但是仅仅为了成本的便宜而去优化无疑是一种时间的浪费。-- Sylvain on Google Groups

当 GAE 摆脱幼稚,成长为一个真正的产品的时候,"pay for what you use"的美梦破了。价格改变,体系随之改变,用户随之改变,理想随之改变,但 GAE 将继续存活。

Google正在关闭很多它的项目。GAE没有被关闭。我们应该感谢由于它定价的调整而让它在更残酷环境下依然可以存活吗?如果没有迅速地向盈利转向,GAE毫无疑问仅仅将会成为诸多想法长卷中一个历史性的脚注。其涉及的迫切性由GAE提供定价百分之五十的优惠以及在多线程版本的Python铺开之前转向新的定价模式所清晰的反映出来。

More...

JPA 缓存与应用集群

本文主要介绍了 JPA 缓存体系结构以及在集群环境下 JPA 二级缓存的问题及应对策略。

More...

应用 memcached 提升站点性能——减少读自数据库和数据源

开源 memcached 工具是一个用来存储常用信息的缓存,有了它,您便无需从缓慢的资源,比如磁盘或数据库,加载(并处理)信息了。该工具可部署在专用的情况下,也可作为用完 现有环境内的多余内存的一种方法。尽管 memcached 十分简便,但有时它仍被不当使用,或被用在错误的环境类型中。在本文中,了解使用 memcached 的最佳时机。

More...

SCA的简介

SCA基础 什么是应用程序?一种结论认为它是由一组在一起协同工作的软件组件集合构成。所有的这些软件组件可以 用相同的技术当然也可以由不同的技术创建。它们可以运行在同一机器的同一进程中也可以在不同的进程中,当然也可以跨越多个机器。然而应用程序要正常工作, 需要两样东西:一、有一个创建组件的方式;二、有一个描述这些组件如何交互工作的机制。 SCA就定义了这么一套通用的解决方案。SCA起先是由一组开发厂商(包括BEA、IBM、Oracle、SAP等)创建的,现在归OASIS 所有。SCA规范给出了如何创建组件和如何将这些组件装配成一个完整的应用程序的定义。SCA应用程序中的组件可以由java或其他....
More...

设计演化与设计

转载请保留作者信息: 作者:88250 Blog:http:blog.csdn.netDL88250 MSN Gmail QQ:DL88250@gmail.com 我认为,要成为优秀的软件设计者,学习软件设计的演化(尤其是设计演化)比学习软件设计更为重要。只有从演化的过程中才能看清设计的本质。 以往,我们只注重设计,认为设计是优质软件制造的必要条件。但好的设计往往是依靠设计者多年从事此行的经验,特别是所谓的大规模软件,此类软件的设计过于依赖于经验,过于依赖于人的个体行为。这样的依赖过于具体。 记得OO原则中有一条 Dependence Inversion:抽象不应该依赖于细节,细节应....
More...

OSGi Bundle的构建策略及实践

软件编程发展到今天可以看作是一个量变引发质变的过程。最初,程序开发面向过程,开发人员需要编写大量的过程代码,随着过程代码的不断积累(量变产 生),从代码维护和重用的角度,过程开发变得越来越不适应,质变产生,面向对象的开发逐渐被采用。由于面向对象的开发很好的封装了过程,而且从面向对象的 角度可以很好的描述实际应用中的需求模型,因此面向对象的开发逐渐成为主流。同样,随着面向对象开发的不断应用(量变产生),出现了大量的可复用的类及 包,维护这些类包变得越来越困难,而且,尽管面向对象的编程机制可以很好的适应小规模应用的开发,但随着应用系统的规模越来越大,如同用细小的沙粒构建 堤坝,面向对象的机制难于适....
More...

SEBank银行项目体系结构设计报告

SEBank银行项目架构设计图:文档贴出来的话格式太乱了,下面是PDF格式的文档:《SEBank银行项目体系结构设计报告》
More...

从分布式系统的角度看REST

我们说REST架构风格,从REST具备的内在特征来说,它包括了这些特征: 1、基于HTTP的资源 2、以HTTP协议去操作 3、数据和表象分离 但是如果我们换一个角度,即分布式应用系统的角度来看,我们会有一些更有意思的结论: 分布式应用系统的架构,经历了好几代的变迁,我们来简单回顾一下: 1、基于CORBA协议的C++中间件时代 CORBA时代我还在上学,基本上没有怎么接触过Corba编程。曾经有一次我提供EJB培训的客户,正在进行传统Corba架构向EJB2架构 迁移,通过和他们的交流,对Corba多了一些了解。当时就感叹,和EJB2相比,Corba实在太难用了。Corba时代在19....
More...

REST介绍

REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌。随着REST架构成为主流技术,一种全新的互联网网络应用开发的思维方式开始流行。 REST是什么 REST是英文Representational State Transfer的缩写,中文翻译为表述性状态转移,他是由Roy ThomasFielding博士在他的论文 《Architectural Styles and the Design of Network-based Software Architectures》中提出的一个术语。REST本身只是为分....
More...

怎样成为优秀的软件模型设计者

1. 人远比技术重要 你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯 将主要精力都集中在技术上。显然,构件(components),EJB(Enterprise Java Beans)和代理(agent)是很有趣的东西。但是对于用户来说,如果你设计的软件很难使用或者不能满足他们的需求,后台用再好的技术也于事无补。多 花点时间到软件需求和设计一个使用户能很容易理解的界面上。 2. 理解你要实现的东西 好的软件设计人员把大多数时间花费在建立系统模型上,偶尔写一些源代码,但那只不过是为了验证设计过程中....
More...

构架师已死

2006年的职场出奇的冷清,相比前几年,简历的数量和质量都大为不如,很难得找到三年工作经验以 上的人,有一个不是特别笨,就是特别怪。就是么,干得好谁没事换工作啊!Simon是一家外企软件公司的总经理,最近给这个问题愁坏了。项目一个接一个的 接下来,人手越来越紧张。虽然Simon是个极限编程的粉丝,但也不得不批准了一份又一份的加班申请。HR经理把这个问题归结到房价上,他的妙论是怕失 业了还不上房款,不敢跳槽。 这天,K项目组长Allen终于忍不住了,带了一个只有一年工作经验的小伙子要Simon面试,很聪明!经验少了点。 Simon皱了皱眉毛,说:你不知道这个职位最低要求是三年工作经验吗? Al....
More...