本文作者叫Srinath,是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员. 他是Apache Axis2项目的联合创始人,也是Apache Software基金会的成员. 他是WSO2流处理器(wso2.com/analytics)的联席架构师. Srinath撰写了两本关于MapReduce和许多技术文章的书. 他获得了博士学位. 来自美国印第安纳大学. Srinath通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或…
作者:Srinath 翻译:贺卓凡,来源:公众号ImportSource Srinath通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或部门. Srinath认为架构师应该扮演的角色是一个引导者,讨论发起者,花草修建者,而不是定义者和构建者.Srinath为了解决团队内部的架构纷争和抉择,制定了以下30条原则,这些原则被成员们广泛认可,也成为了新手架构师的学习途径. 基本原则 原则1:KISS(Keep it simple,sutp…
作者:Srinath 翻译:贺卓凡,来源:公众号 ImportSource Srinath 通过不懈的努力最终总结出了 30 条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或部门. Srinath 认为架构师应该扮演的角色是一个引导者,讨论发起者,花草修建者,而不是定义者和构建者.Srinath 为了解决团队内部的架构纷争和抉择,制定了以下 30 条原则,这些原则被成员们广泛认可,也成为了新手架构师的学习途径. 基本原则 原则 1:KISS(Keep it si…
本文作者叫 Srinath,是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员. 他是 Apache Axis2 项目的联合创始人,也是 Apache Software 基金会的成员. 他是WSO2流处理器(wso2.com/analytics)的联席架构师. Srinath 撰写了两本关于 MapReduce 和许多技术文章的书. 他获得了博士学位. 来自美国印第安纳大学. Srinath 通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专…
转自:http://mobile.51cto.com/design-309719.htm 1.操控便捷 iOS应用的控制设计应该具有圆润的轮廓和程式化的梯度,操作便捷. 2.结构清晰.导航方便 充分利用iOS导航栏.尽量将所有的导航都安排在一个分层格式中,方便显示应用内的当前位置. 3.微妙清晰的用户反馈 使用动画显示用户的操作结果.一个经典的例子是:当用户长按进入“重新排列模式”时,应用会抖动. 4.确保外观和功能协调 如果是生产力类型的应用,可在背景中加入与之协调的装饰,注重最大限度地发挥功…
前面的话 实际上,html5并不是由w3c直接制定的,w3c的方向是xhtml2,而不是html5.当xhtml2脱离现实,无法付诸实践时,w3c工作组才将研究方向转向html5.为什么xhtml2从未落到实处?因为它违反了一条设计原理,这条设计原理就是著名的伯斯塔尔法则——发送时要保守:接收时要开放.而在html5设计过程中遵循了一系列原则,才使得html5得以快速推广.本文将介绍html5遵循的5个设计原则 原则一:避免不必要的复杂性 html4 <!DOCTYPE html PUBLIC…
首先要回答一个问题,为何要使用HBase? 随着业务不断发展.数据量不断增大,MySQL数据库存在这些问题: MySQL支持的数据量为TB级,不能一直保留历史数据.而HBase支持的数据量为PB级,适合存储久远的历史冷数据 新增列的代价较高,数据量越大耗费时间越长.而HBase可以随意增加列,空列不占据空间,业务模型可以灵活变化 要使用HBase,最重要的一点是rowkey行键设计,如果设计不妥,后续要改的代价非常大. HBase行键设计原则 下面列几个HBase rowkey设计的原则: 组合…
引言 计算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到.但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c.ctrl-v用得更加纯熟了.在中国,编程人员最终的归途无外乎两条:一是转向技术管理,它的终点是CTO:二是继续深入,它的终点是首席架构师,成为CEO的人毕竟是少数.如…
前言   本博客是长篇系列博客,旨在帮助想提升自己,突破技术瓶颈,但又苦于不知道如何进行系统学习从而提升自己的童鞋.笔者假设读者具有3-5年开发经验,java基础扎实,想突破自己的技术瓶颈,成为一位优秀的架构师,所谓java基础扎实,比如:   1.java语言三大特性.   2.java语言八大基本类型及其表示范围.   3.为什么float和double存在精度丢失?   4.publish/private/default/protected表示的范围?   5.static/final的用…
关于软件的设计原则有很多,对于设计原则的掌握.理解.实践及升华是架构师的一项极为之必要的修炼. 记得在12年前第一次阅读<敏捷开发>时,五大基本设计原则就深深地植入到我的脑海中一直影响至今,我也由此获益良多.设计原则当然不止只有五种,最主要的面向对象的设计原则有以下这些:   单一职责原则 (SRP) - 就一个类而言,应该仅有一个引起它变化的原因 开-闭原则 (OCP)- 软件实体(类,模块,函数等)应该是可以扩展的,但是不可以修改 里氏替换原则 (LSP)- 子类必须能够替换它们的基类型…