架构师杂志摘录

 SG:我想甚至在开始编写生产代码前的原型阶段也是有意义的。对于 ASP.NET.,那是我们成功的之处。那时我们就决定要抛掉后几个月中所要编写的每行代码。我们就此达成一致。我们不会说:“哦,留着这个做修改吧;我们可以把它整理出来”。不。我们要把它彻底抛弃。我们会在某个时候将这个子目录彻底“删除”,那样一来,我们就可以更加大胆地去尝试新事物。我们不必战战兢兢地去保证每样东西的稳定性,就因为它将进入最终版本。

事实上我们这样做了几个月,然后说:“我们做完了,把它删除;从头开始吧;现在我们来编写全部的生产代码并且要确保质量”。我想很多团队都可以从这一点上受益。保证删除原型代码是最最艰难的事。项目通常都是伴随着“嗯,有点相近”的思维而开发出来的。从原型入手并且确保可靠性是很难的。我坚定地认为应该从原型阶段入手并随后将它删除。

 

SG:每次做项目的时候,只要是重新编写,无论是否从零开始,代码都会变得更好。这在一定程度上是因为你了解了前一种方法的问题和缺陷,并且能够进行反思并做出改进。难就难在你不能一次又一次轻松地做到这一点。但是,当你最先涉足一个项目或是一个全新领域,根本不知道该如何从头开始研究出最终产品时,专门花一段时间来构建原型并不断尝试是至关重要的。

 

SG:编写代码对于架构师而言是非常重要的。你不一定要签入生产代码,但要不断尝试新技术、新方法,并体会系统的工作方式。最近我并没有编写大量的生产代码,但我每天要花一或两小时编写代码。可以是示例、原型或一些有趣的私人项目;无论什么,我都要进行尝试,思考事物的构建方式。从代码架构师的角度来说,动手实验非常重要。我的另一条建议是要研究核心系统理论,探索如何架构高度可靠的系统。想一下你要考虑的一些原则,并应用到实际工作中。这并不是说要考虑具体的代码内容,而是思考简易性、可靠性或容错性。这些因素在成功的系统中起着核心作用;无论是客户端应用程序、服务器应用程序还是游戏程序,都是如此。一个认真考虑这些原则并配以良好编码背景的架构师可以在很大程度上给团队以指导。这些原则并不是要探索出一个向导或是开发不错的新东西,而是要研究 Windows 或 Unix 应用程序中进程地址空间的工作方式。什么是线程技术?如何深刻理解它在多处理器或多核系统上的工作?要消化吸收这种类型的知识、考虑由此衍生的结果,花些时间专门研究未来的趋势(即从硬件和软件角度研究技术未来的走向),并考虑如何进行修改并为我所用这就是我的建议。

 

SG:从开发的角度讲,我想我们现在所处阶段的发展速度比那个时候更快。要跟上时代的脚步当然十分困难。你必须找时间去不断充电你必须腾出时间专门关注业界的动态。我想就这点而言博客是一个很好的机制。我订阅了 Bloglines,这是一项不错的免费服务。我大概订阅了 300 或 400 个博客,我尽量每天早晚花 20 到 30 分钟阅读所有人的帖子。这样可以很好地了解当今的热门话题和有趣的想法。

在某种程度上,为了跟上发展的脚步,还要每天花几小时专门构建原型自己的产品或其他技术来进行各种尝试充分掌握现有的组件并知道如何使用它们。在研究任何新技术、API、方法或编程手段时,还有一项重要的工作,那就是不仅要仔细研究有趣的事物本身,而且还要尽量推演出其有用的原则,以便你能够在别处加以应用。因此,如果你研究的是一本有关 Java 重构的书,很好。书中会讲到许多具体的 Java 重构技术,但有哪些更为广义的重构概念是你能够消化理解并应用于 VB 或 C# 的?如果是针对某项专门任务的非常理想的 AJAX JavaScript 框架,也很好。现在,回想一下,尽量找出它的哪个方面可以应用于其他 JavaScript 框架。架构师应当善于研究某些事物并推演事物本身及其中蕴涵的有趣方面,而不是仅仅关注于某个个别的技术元素

 

SG:我认为好的框架并不体现在人们按你的预想在上面构建应用程序,而在于客户和开发人员能够将它的作用发挥到超乎你想象的程度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值