软件工程师不可不知的10个概念
上一篇 /
下一篇 2008-07-28 22:37:45
/ 个人分类:测试技术
查看( 834 ) /
评论( 2 )
出色的
软件工程师善用
设计模式,勤于
代码重构,
编写单元测试,并对简单有宗教般的追求。除了这些,优秀的软件工程师还要通晓10个
概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这些道理。
10. 关系
数据库(Relational Databases)
关系
数据库因为在大规模
Web服务上缺乏可扩充性而颇受微词,然而,关系数据库仍然是近20年来计算机
技术中最伟大的成就。关系数据库对处理订单,公司数据方面有着出色的表现。
关系数据库的核心是以记录表示数据,记录存放在数据库表,数据库使用查询语言(
SQL)对数据进行搜索与查询,同时,数据库对各个数据表进行关联。
数据库的标准化技术(normalization)讲的是使用正确的方式对数据进行分存以降低冗余,并加快存取速度。
9.
安全(Security)
随着黑客的崛起与数据敏感性的上升,安全变得非常重要。安全是个广义的概念,涉及验证,授权与信息传输。
验证是对用户的身份进行检查,如要求用户输入密码。验证通常需要结合 SSL (secure socket layer)进行;授权在公司业务
系统中非常重要,尤其是一些
工作流系统。最近
开发的 OAuth 协议可以帮助 Web 服务将相应信息向相
应用户开放。Flickr 便使用这种方式
管理私人照片和数据的访问权限。
另外一个安全领域是
网络设防,这关系到
操作系统,配置与监控。不仅网络危险重重,任何软件都是。Firefox 被称为最安全的浏览器,仍然需要频频发布安全补丁。要为你的系统编写安全代码就需要明白各种潜在的问题。
8. 云计算 (Cloud Computing)
RWW 最近的关于云计算的
文章 Reaching For The Sky Through Compute Clouds 讲到了云计算如何改变大规模 Web 应用的发布。大规模的并行,低成本,与快速投入市场。
并行算法发明以来,首先迎来的是网格计算,网格计算是借助空闲的桌面计算机资源进行并行计算。最著名的例子是 Berkley 大学的 SETI@home 计划,该计划使用空闲的 CPU 资源分析太空数据。金融机构也大规模实施网格计算进行风险分析。空闲的资源,加上 J2EE 平台的崛起,迎来了云计算的概念:应用服务虚拟化。就是应用按需运行,并可以随着时间和用户规模而实时改变。
云计算最生动的例子是 Amazon 的 Web 服务,一组可以通过 API 进行调用的应用,如云服务(EC2),一个用来存储大型媒体文件的数据库(S3),索引服务(SimpleDB),序列服务(SQS)。
论坛模式
推荐
收藏
分享给好友
管理
TAG:
-
allanhtt发布于2008-07-29 13:59:58
-
云计算也听好几次了,之前李开复也谈及此事。但都感觉一头雾水,呵呵
-
vivuzhan
发布于2008-07-31 08:27:22
-
软件工程师不可不知的10个概念----> 这里不够十个呀????