以图明志

软件架构技术

Web研发模式演变史

从架构改进看思维变化
前不久徐飞写了一篇很好的文章:Web 应用的组件化开发。本文尝试从历史发展角度,说说各种研发模式的优劣。Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 3-5 人搞定所有开发。页面由 JSP、PHP 等工程师在服务端生成,浏览器负责展现。基本上是服务端给什么浏览器就展现什么,展现的控制在 Web Server 层。

软件架构技术

列举一些常见的系统系能瓶颈

Common Bottlenecks
Russell Sullivan 提出一个很有趣的设想:一共有20种经典的瓶颈。这听起来就像只有20种基本的故事情节(20 basic story plots)那样让人怀疑。不过基于每个人不同的分类方式,这个说法或许是对的,但是在现实中,众所周知,瓶颈是无穷无尽的而且涉及方方面面。

软件架构技术

谈谈对一些软件架构设计箴言的理解

对软件的过早地优化是万恶的根源
在做项目的时候,有些同事总是提前考虑性能优化,需求变更又是一大堆的重写,让我想起了Donald Knuth 提到的:对软件的过早地优化是万恶的根源。这里就简单的说几条重要的软件名人哲学。在软件开发过程中需求是不停的变化的,随着客户对系统的认识,和现有开发功能和软件的认识,也许一开始他提出的需求就是背离的。

软件架构技术

开发人员练就百般武艺为了啥?

业务领域,是软件的核心价值所在
无论是买成型的软件产品,还是出资开发项目,客户投资的是软件的业务价值。项目经理直接为这个目标负责,尽量少的成本,尽量短的时间,生产出高业务价值的软件产品。架构师则是跨越单个项目,长期为这个目标负责。项目经理与架构师是天生的敌人,短期看这是对的,长期来看,他们是真正的朋友,是战略朋友。没有项目经理项目会死得很快;还而没有架构师,公司会死得很惨。

软件架构技术

Google的分布式计算模型Map Reduce

map函数将输入分割成key/value对
计算机的早期阶段,程序都是serial(连续的),类似于批处理程序。并行计算的程序中,进程将一个任务分割成多个部分parts,每个“部分“都是能够并行处理的,每个“部分”可以同时运行在不同的cpu上,这些cpus可以是同一台机器上,也可以是通过网络运行在不同机器的cpu上。

软件架构技术

大规模分布式数据处理平台Hadoop的介绍

一种可靠、高效、可伸缩的处理方案
Hadoop原来是Apache Lucene下的一个子项目,它最初是从Nutch项目中分离出来的专门负责分布式存储以及分布式运算的项目。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。

软件架构技术

软件项目开发没规划好就注定会失败

软件项目开发与管理的一些原则
软件项目的开发与管理是一门复杂的学问,不是简单地需求来了就动手编码,编码完了就算项目完工那么简单。一个项目如果没有好好规划,那么就很容易会失败。同样,我们在做一个软件项目的时候,需要注意的东西很多,下面总结一下一些容易视而不见但又非常重要的软件开发指导原则。

软件架构技术

系统架构39问

架构视角面面观
架构一个系统不是一件简单的事,需要考虑到的事情也特别的多。下面我列举一些常见的问题,以抛砖引玉。是否在不断的学习新技术、新名词、生怕落伍?(WCF、WF、WPF、MVC、EF、WebApi、Spring、Castle、Unity、Autofac、NInject、AOP等)

软件架构技术

什么样的应用才算是RESTful?

读 《REST in Practice》
尽管 REST 这个概念 2000 年就被提出来了,但到了2007 年才成为了一个热词,随后越来越多的服务都宣称自己是 RESTful 的,但是到底真么做才是真正的 REST 我从来没有自习学习过。由于 2007 年的时候 Ruby on Rails 也十分热门,所以我以为 Rails 风格的 CRUD API 就是 REST 了,同时对于外界关于「什么算是 REST 什么不算是 REST」的争论没怎么关心过。

软件架构技术

根据自己的需要适度使用Web开发框架

取自己需要的,做适合自己的系统
软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。Web开发框架能够帮我们大大减少工作量,但是我们应该如何正确看待Web开发框架,并且如何去使用他们呢?从做网站到现在做Web端的应用,我度过了三个时期:使用框架来搭建自己需要的系统。一开始是大框架如drupal,后来觉得过于笨重。于是改用codeignitor等小框架。

软件架构技术

在系统设计中,如何控制层次的问题

设计的核心任务之一:层次的控制
对于软件而言,层次是让人又爱又恨的东西。很多问题是通过增加层次解决的,但另外一部分问题也是因为层次而导入的。通过加入层次解决问题的同时,新的问题也随之发生。在眼前蒙上一层薄纱可以防止眼睛被风沙所伤害,但如果蒙上十层,那更严重的后果将会出现——你看不到路了。

软件架构技术

软件系统架构中的分层思想

关于分层结构
众所周知,经典的三层结构包括数据访问层、业务逻辑层和表示层。当然,如果继续扩展下去,还可以分为4层、5层……我相信很多人都用过,很多人都写过,但是为什么要这么做,还是有一部分人是不能够说清楚的,这不是我猜想的,而是遇见过很多想分层但是分的乱七八糟的层次结构。

软件架构技术

编码工作也是一种设计

【设计 = 编码】 VS 【设计 ≠ 编码】
这篇文章的核心观点是:编码也是设计,而软件开发中与建筑行业中的施工所对等的工作,已经被编译器代理了。这是几近20年前的文章,但时至今日,类似的争论仍未休止。好像是在《软件架构设计》里,在讨论架构设计时,作者就点了一句:这总不能说是设计就是编码了吧。

软件架构技术

网站性能优化策略的选择

性能优化到何处为止?
人生三苦:选择,后悔,绝望。为了避免后两项,所以才绞尽脑汁去做出明智的选择。人人都无时无刻不面临选择。做软件开发的,从初级,到中级,到高级,所掌握的知识和技术越来越多,面临的选项越来越多,对选择进行评估也越来越困难和复杂,一项选择所造成的影响也越来越大。所以,做软件做到架构师,就是和人生三苦之一的“选择”整天打交道的职业。

软件架构技术

ECMALL的登录过程机制解析

这个过程程序执行效果非常的好
在ecmall.php文件中实例化控制器类,每一个控制器类,必须继承admin\app\backend.base.php文件。在继承中调用方法是谁先被继承谁的方法被先调用。继承其实结果就是为增加代码的可重用性,也就是你定义一个方法如果他有一定的共性可以被多个新增加的效果所调用。程序结构给人感觉似乎挺乱的,但是如果细心研究执行效果非常的好。

软件架构技术

简单谈谈Web Service概念的理解

云计算、云服务与Web Service
传统上,我们把计算机后台程序(Daemon)提供的功能,称为“服务”(service)。比如,让一个杀毒软件在后台运行,它会自动监控系统,那么这种自动监控就是一个“服务”。通俗地说,“服务”就是计算机可以提供的某一种功能。
1 / 3 首页 < Prev 1 2 3 Next > 尾页 页码: