简明现代魔法 -> 软件架构技术

理解并架构优秀的系统与软件

学习这些经验能够有立杆见影的成果

你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们 那时侯将主要精力都集中在技术上。显然,构件(components),EJB(Enterprise Java Beans)和代理(agent)是很有趣的东西。

发布于 2011-01-13 分类:architecture

对系统架构的一点思考

重用、扩展、变化、分离、简约、一致、间接

从严格意义上讲,软件设计也可看做是架构的一部分。从marco-architecture到micro-architecture,再到nano-architecture,是一种设计粒度的自上而下。但在架构过程中,我们并非一定要从宏观到微观,再到更为具体的细节,这些架构其实是平等的。这几种粒度的架构,似乎存在某些玄奥的原则与设计精神,贯穿其中。

发布于 2010-10-15 分类:architecture

UML图中的符号说明

加深对UML图的理解

虚线箭头表示“依赖关系”,依赖有“使用”的语义,比如患者与医生的关系。实线箭头表示“带了导航行的关联关系”,从一个类到另一类。使用实线箭头时通常会带上“多重性”的表达方式。如:一对多,一对一,多对多等等。

发布于 2010-10-08 分类:architecture

使用memcached显著提升站点性能

memcached可以将频繁的数据库读取的信息缓存起来

所有的应用程序,特别是很多 web 应用程序都需要优化它们访问客户机和将信息返回至客户机的速度。可是,通常,返回的都是相同的信息。从数据源(数据库或文件系统)加载数据十分低效,若是每次想要访问该信息时都运行相同的查询,就尤显低效。

发布于 2010-09-10 分类:architecture

敏捷开发的一些规则

4条核心价值观与12条敏捷软件开发的规则

敏捷开发,Agile Development,就是指能够在需求迅速变化的情况下快速开发软件。我们接触最多的和敏捷相关的名词是:极限编程(XP)、结对编程、测试驱动开发(TDD)等。追究敏捷的历史,就必须要提到著名的敏捷开发宣言,2001年,17位业界专家(其中包括我们非常熟悉的Martin, Martin Fowler)组成了一个敏捷联盟。

发布于 2010-08-21 分类:architecture

如何做需求分析

分享一些做需求分析一点心得

在软件开发过程中,需求分析可以说是核心任务之一,就像一支将要远航的船队,要在指定时间内到达目录地,他们需要一条正确的航线,才能到达目的地,如果航线有误,他们将会误时到达,或是不回到原位将永远到达不了,这么重要的东西,但在国内很多团队中缺少,虽然我也做了一些,但在项目完成的时候,回头看看,其实我们做了很多不必要的事,浪费了很多时间、人力和物力。

发布于 2010-08-05 分类:architecture

用REST实现优雅的URL显示

RESTful的一个应用介绍

以前就是觉得 /nowamagic/article/article_id 这样的地址非常的漂亮,但是那只是表象罢了,了解深入以后,发现必须有一个客户端的Ajax Engine和Server端的服务配合,才能实现一个REST风格的应用。要对外提供哪些服务。服务器端的服务可能会被众多的浏览器请求,也可能被第三方应用程序所调用。

发布于 2010-07-12 分类:architecture

大象与猴子:传统开发与敏捷

解释传统与敏捷方法最贴切的故事

很久以前,在一片充满隐喻的土地上,住着一头大象(喻传统开发方法)。很多年来,这头忠实的大象一直都是他所居住村庄主要的食物采集者,并且非常清楚这个村庄需要什么(喻工程前的事先计划性)。他在丛林中修建了一条路(喻最佳实践),这条路总是能指引他找到最好的根茎、蔬菜、坚果和水果等食物(喻项目的功能)。

发布于 2010-07-05 分类:architecture

软件的生命周期

了解软件产品的开发流程

软件项目的来源一般有两个渠道,一是自主研发的“非订单软件”,二是为用户开发的“订单软件”。前者需要立项,后者需要签订合同。所以“立项”和“合同”是IT企业软件项目(或产品)的两个源头。一旦立项或者签订合同成功,企业领导或软件管理部门就要下达“任务书”。

发布于 2010-06-16 分类:architecture

图解面向对象中的一些艰涩概念

通俗地解释面向对象

包和类的关系是包含关系,将类拖入包的文件夹之后,关系就建立了,二元关联符号可以设置为:聚合、合成。接口:空心圆 直线(唐老鸭类实现了‘讲人话’);依赖:虚线 箭头(动物和空气的关系);关联:实线 箭头(企鹅需要知道气候才迁移);聚合:空心四边形 实线 箭头(雁群和大雁的关系);

发布于 2010-05-15 分类:architecture

MVC架构的原理

MVC设计模式可以带来更好的软件结构和代码重用

大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。

发布于 2010-05-14 分类:architecture

五分钟把UML说清楚

图文并茂的讲解,让你迅速了解UML

最近一段时间做项目,需要做机能模块的设计。客户方指名要用UML图作设计资料。但是跟日本人打了这么多年交道,UML图是什么东西,我早就忘记光了,没办法,只好从头查资料。于是做出来了这样一个资料,把我学习UML的方法和结论告诉大家,让大家在5分钟之内都能学会UML。

发布于 2010-05-10 分类:architecture

单元测试实践指导

单元测试可以有效提高代码质量保证

单元测试是开发人员对其所实现功能的代码进行的另外编写的测试,用于检测其代码功能的完整性、正确性和其运行效率,从而提高代码质量,并且在写单元测试时发现功能代码间的依赖等设计问题,从而提高产品的可扩展性。

发布于 2010-04-29 分类:architecture

IBM 教程:UML 统一建模语言简介

一个全面的UML介绍

UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划--就像建筑工人多年来所使用的建筑设计图一样。

发布于 2010-04-27 分类:architecture

IBM 教程:Ajax 和 REST,Part 1

认识Web架构风格REST

在短短 15 年中,World Wide Web 已经从一项研究实验成长为现代社会的技术支柱。最初发明 Web 的目的是使人们可以轻松发布和链接信息,现在它已经发展为软件应用程序的可行平台。但随着应用程序通过使用富应用程序模型和生成个性化内容而获得了更多的融入性,它们的架构对 Web 架构风格 REST(Representational State Transfer)的违背也越来越多。

发布于 2010-02-08 分类:architecture
 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们