作者: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条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或…
作者:Srinath 翻译:贺卓凡,来源:公众号ImportSource Srinath通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或部门. Srinath认为架构师应该扮演的角色是一个引导者,讨论发起者,花草修建者,而不是定义者和构建者.Srinath为了解决团队内部的架构纷争和抉择,制定了以下30条原则,这些原则被成员们广泛认可,也成为了新手架构师的学习途径. 基本原则 原则1:KISS(Keep it simple,sutp…
本文作者叫 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设计的原则: 组合…
关于软件的设计原则有很多,对于设计原则的掌握.理解.实践及升华是架构师的一项极为之必要的修炼. 记得在12年前第一次阅读<敏捷开发>时,五大基本设计原则就深深地植入到我的脑海中一直影响至今,我也由此获益良多.设计原则当然不止只有五种,最主要的面向对象的设计原则有以下这些:   单一职责原则 (SRP) - 就一个类而言,应该仅有一个引起它变化的原因 开-闭原则 (OCP)- 软件实体(类,模块,函数等)应该是可以扩展的,但是不可以修改 里氏替换原则 (LSP)- 子类必须能够替换它们的基类型…
前言   本博客是长篇系列博客,旨在帮助想提升自己,突破技术瓶颈,但又苦于不知道如何进行系统学习从而提升自己的童鞋.笔者假设读者具有3-5年开发经验,java基础扎实,想突破自己的技术瓶颈,成为一位优秀的架构师,所谓java基础扎实,比如:   1.java语言三大特性.   2.java语言八大基本类型及其表示范围.   3.为什么float和double存在精度丢失?   4.publish/private/default/protected表示的范围?   5.static/final的用…
可实现的是架构,空谈是概念 So don't tell me the concepts show me the code!  “不懂编码的架构师不是好架构师” 好架构师都是超级代码控.   代码是最好的老师   从代码中学习设计的思想.方法是提升类库设计能力.印证你所了解的概念与理论这就是架构师看代码的观点.   基本准备 一个类库可能有数千个类上万个方法,应该如何去看呢? 在看代码前我们需要进行一些什么样的准备呢 ?   设计模式 - 最标准的23种设计模式基本上要有一个了解,可能一下子不能理…
程序员 程序员,英文名coder/programmer,大家常自嘲叫码农的阶段.这个角色职责是把需求或产品实现为用户可用的软件产品. 此职位为执行级别.另外因为经验较少,一般需要求助别人,或与别人一起完(ban)成(zhuan)一个任务. 此阶段大概要经历3年,程序员的职责如下: 1.负责公司运营系统的设计与开发工作 2.运营数据处理和分析 高级程序员 高级程序员学名工程师.到了这个level,英文名可改叫做engineer或developer.此时你的功力开始增强,这与你平时的积累努力是分不开…
话题背景: 首先,先科普下“数据架构师”的相关职责:数据架构师要负责建立和维持公司数据储存的技术基准,策划硬体和软体的结构,确保数据储存系统可以支持未来的数据量和分析需求. 据了解,美国地区数据架构师的薪资范围是 $65,928 到 $147,868 美元,中间值为 $105,581 美元,以目前的趋势来看,比起 SQL ,擅长 OracleDB 的人才较容易得到高薪. 曾经提到一位面试的朋友认为架构师的工作是选择某个项目是采用Hadoop还是Spark,有人证明选择这个问题比编码还简单,所以这…
一. 什么是架构师 曾经有这么个段子: 甲:我已经应聘到一家中型软件公司了,今天上班的时候,全公司的人都来欢迎我. 乙:羡慕ing,都什么人来了? 甲:CEO.COO.CTO.All of 程序员,还有会计.司机都来了. 乙:哇,他们太重视你了,人才啊,这么多人迎接你! 甲:没有啊,就一个人! 乙:靠,#%¥$%... 很多的创业公司,一人身兼数职的情形还是很常见的.至少,我是经历过的,一个人包办了所有的开发过程,连测试我都做了,绝对的一条龙,但是经常踩钢丝.骑独轮车总会有失足的时候,结果有一次…
引言 计算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到.但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c.ctrl-v用得更加纯熟了.在中国,编程人员最终的归途无外乎两条:一是转向技术管理,它的终点是CTO:二是继续深入,它的终点是首席架构师,成为CEO的人毕竟是少数.如…
在我们平常的SQL查询中,其实我们有许多应该注意的原则,以来实现SQL查询的优化,本文将为大家介绍30条查询优化原则. 首先应注意的原则 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样…
最近通读了<架构整洁之道>,受益匪浅,遂摘选出设计原则部分,与大家分享,希望大家能从中获益. 以下为书中第3部分 设计原则的原文. 设计原则概述 通常来说,要想构建-个好的软件系统,应该从写整洁的代码开始做起.毕竟,如果建筑所使用的砖头质量不佳,那么架构所能起到的作用也会很有限.反之亦然,如果建筑的架构设计不佳,那么其所用的砖头质量再好也没有用.这就是SOLID设计原则所要解决的问题. SOLID原则的主要作用就是告诉我们如何将数据和函数组织成为类,以及如何将这些类链接起来成为程序.请注意,这…
发布日期: 2007-03-29 | 更新日期: 2007-03-29   Scott Guthrie 是 Microsoft 开发事业部的总经理.他领导着负责构建 CLR(公共语言运行库).ASP.NET.WPF (Windows Presentation Foundation)."WPF/E".Windows Forms.IIS(Internet 信息服务)7.0.Commerce Server..NET Compact Framework 和 Visual Studio Web…
微软的DotNet开发绝对是属于那种入门容易提高难的技术.而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的.特别是在大 型软件项目中,架构师是项目核心成员,承上启下,因此RUP方法论也认同以架构为核心,体现4+1视图在整个软件开发过程中的重要作用.架构人员既要精通 技术,又要熟悉业务,而且基本对软件生命周期各阶段的相关技术都需要有相关的积累和知识储备,而这些不经过多年的磨练是很难达到这个高度的. 要成为一个合格的架构师首先必须是一个合格或优秀的编码人员,对于开发来讲编码…
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 软件架构有三个主要来源:拿取.方法以及直觉.拿取也就是可重用资源.对于一个标准的系统而言,可能包含80%的拿取.19%的方法和1%的直觉.而崭新的系统则包含30%的拿取.50%的方法和20%的直觉.由此可见,拿取在软件架构中的重要性,本节我来带领大家了解可重用架构资源. 一个可重用资源可以代表一个可重用需求(在不同系统里反复出现的需求).可重用的解决方案元素(一个架构模式或者可重用代码).可…
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师和架构设计等相关的概念以及关系.这是系统架构设计的基础,只有具备了此方面的知识之后,我们才能进一步了解架构师在软件开发过程中扮演的角色,架构师如何编写架构文档来满足不同利益相关者的需求等相关内容. 现在我们通过定义的概念来了解架构设计中的一些相关术语. 架构:架构是体现在它的组件中的一个系统的基本组织.它们彼…
目前众多企业都开始为自己寻找一个更加适合自身发展的服务器操作平台.微软的Windows Server 2008 R2就是可以为大家解决服务器平台问题.微软最新的服务器平台Windows Server 2008 R2已经发布了有一段时间,相比Windows Server 08,R2并不仅仅是版本号的升级,其中引入了很多新的令人激动的特性,如Hyper-v 2.0.IIS 7.5.活动目录回收站.增强的PowerShell等等. 那么,R2可以为企业带来哪些的好处,这些新的特性,是否能吸引企业升级I…
2016年11月30日13:22:26[转] CTO.技术总监.首席架构师的区别 提升自已的能力,比如专业技术,行业发展趋势,技术发展趋势,协调能力,组织能力,管理能力等[技术总监] 需要从技术总监和研发Leader身上剥离职责.让技术总监和研发Leader偏项目管理(管理族),把各个模块之间的架构设计工作,独立出一个岗位,就是架构师,来负责.[首席架构师] 真正的CTO,是软件产品和技术是统一管理的.商业.产品.技术.管理.团队相平衡的综合统管[首席技术官CTO] 一.高级程序员 如果你是一个…
从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而下层技术基础的革命必将影响上层建筑:数据模型和算法.简单地将传统基于第四范式结构化关系型数据库的模型拷贝到新的引擎上,无异于削足适履,不仅增加了大数据应用开发的难度和复杂度,又无法发释放新框架的潜能. 该如何构建基于NoSQL的数据模型?现在能供参考的公开知识积累要么是空虚简单的一句“去规范化“或粗…
Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模.团队中的架构师会通过建模确定应用程序是否满足客户的需求. 你可以创建不同级别的详细模型,并将它们彼此结合.测试然后发布到你的开发计划里. 在这个实验中, 我们将重点放在如何创建一系列简单的系统建模图形上. 每个练习应该在 30分钟内完成. Exercise 1 – 理解用户需求 绘制活动.类以及其他UML图形能帮助架构师清晰辨别客户的习惯.业务规则以及其他需求,从而使设计…
作者:江南白衣,原文出处: http://blog.csdn.net/calvinxiu/archive/2007/03/06/1522032.aspx,转载请保留. 为了2007年的目标,列了下面待读或重读的书单.    "其实中国程序员,现在最需要的是一张安静的书桌.",的确,中国架构师大多缺乏系统的基础知识,与其自欺欺人的宣扬"读书无用,重在实践变通,修身立命哲学书更重要",把大好时间用来追逐互联网上的片言只语,不如直面缺陷,系统的学习一次. 书单越读越薄,好…
大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选择合适的技术,了解大数据各种技术之间的关系,选择合适的语言.我们可以带着下面问题来阅读本文章:1.hadoop都包含什么技术2.Cloudera公司与hadoop的关系是什么,都有什么产品,产品有什么特性3.Spark与hadoop的关联是什么?4.Storm与hadoop的关联是什么? hadoo…
有些年轻的程序员向我咨询,将来的路该怎么走?俗话说,条条大路通罗马.不同的路都能走向成功,到底选择哪条路,取决于自己的兴趣.可能有程序员会问:如果还没有找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路.当你积累了一定的技术和经验之后吗,就会面临多种选择.选择哪条路,因人而异.常见道路如下: 专家级程序员 如果对某一种或几种技术非常感兴趣,并且能够持续钻研,经过一定时期的积累,你可以逐渐成长为专家级程序员.专家级程序员对所掌握的专业技术的熟练程度非一般程序员所能及,给类常见的…
android大牛高焕堂 个人介绍: Android专家顾问,台湾Android论坛主席,现任亚太地区Android技术大会主席,台湾Android领域框架开发联盟总架构师.发表100多篇Android核心技术文章,出版了6本Android专业技术书籍. 高焕堂老师最新力作---<android从程序员到架构师之路 >: 一般而言,人们大多先学开发 ( 代码 ) 的技术,随后才学 ( 架构 ) 设计的方法.然而,在实际做事时,却是先设计,随后才写出代码来.敏捷过程则让设计与写码迭代循环下去,一…
假设你对项目管理.系统架构有兴趣,请加微信订阅号“softjg”,增加这个PM.架构师的大家庭 在解说系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师和架构设计等相关的概念以及关系.这是系统架构设计的基础,仅仅有具备了此方面的知识之后,我们才干进一步了解架构师在软件开发过程中扮演的角色,架构师怎样编写架构文档来满足不同利益相关者的需求等相关内容. 如今我们通过定义的概念来了解架构设计中的一些相关术语. 架构:架构是体如今它的组件中的一个系统的基本组织.它们彼此的关系…
◇ 测试架构师的职责 测试的职业通道基本是管理线和技术线两条路. 管理线主要的职责:更多是项目管理和资源管理. 技术线主要的职责:更多是技术管理和业务知识. 软件测试架构师更多就是技术线的带头人.管理线的人更多的工作语言是:绩效,考评,时间点,质量等. 技术线的更多工作语言是:技术规划,技术可行性,技术价值,技术共享性,解决什么问题等. 软件测试架构师更多是一种角色,而不是一种title,是测试技术上和测试经验上有影响力的人.什么是有测试影响力的人呢?就是你没有任何官位,你不是任何人的行政上级,…