写点什么

Chris Eargle 谈如何更好的管理应用

  • 2013-02-18
  • 本文字数:1719 字

    阅读完需:约 6 分钟

Chris Eargle 是 Telerik 公司的技术布道师和微软 C# MVP,他最近向开发者们分享了一些求生技巧。首先,他建议开发者们不要使用奇怪的代码构想,从而对寻找影响软件正常工作的bug 造成困难。

Chris 强调了使用专业的版本控制软件的必要性,它能够帮助开发者毫不费力地恢复旧版本的源代码。同时,他建议开发者确保版本控制服务运行在独立的系统上。

Chris 谈到了性能问题会以多种不同形式和程度出现,而它们都将消耗用户大量的时间。因此,最好是引入一个分析器来识别最需要优化的目标

Chris 探讨了使用异步调用的必要性,它可能长期运行并避免锁死用户界面。这些异步调用包括使用 finally 块或使用可销毁的模型来清理托管资源。如果你不能够捕捉到内存泄露背后的原因,那么使用第三方内存分析器可以帮助你来寻找导致这一问题的根本原因。

Chris 认为,鉴于火灾或其他自然气候灾害随时可能发生,备份应采用异地分离的方式,与源服务器分开。尽管如此,他认为备份不应存储在那些在线文件托管网站中,因为这种方式也有其固有的风险。

在 InfoQ 的一次采访中,Chris 针对自己分享的观点进行了更多的阐述。

InfoQ:在你日常编程工作中,是否也遵循了上述技巧?

在涉及到专业软件时,我遵循这些建议。我将其限定在这个范围内,因为在进行那些为自己编写或仅用于验证某项技术的项目时,我不会那么严格。

InfoQ:能否为开发者们推荐一些无故障的备份服务?

备份服务有多种类型,如何选择取决于需要何种基础架构。例如,我使用 GitHub 的付费账户来维护我的私人代码库,因为它很好地满足了我的需求。当我为一个保险公司工作时,我们在现场将服务器备份到磁带,并将旧的备份存储到异地物理存储设备上。这样做能够在需要的时候进行快速恢复,同时防止我们的数据在物理灾难中受到损害。

有许多很棒的专业存储服务,适用于各种类型的商业需求。我会在下面的分享中介绍一些小型的服务提供商。

我认为,在考虑何种形式的备份时,你必须对“无故障”这一想法非常谨慎。备份服务既有显而易见的风险,也有暗藏的风险。你必须非常谨慎的将整体风险降低到可接受的水平,并为之付出相匹配的成本。

这是一个暗藏风险的例子:许多人选择 MegaUpload 作为在线备份服务提供商。当它(现在叫做 MEGA )因侵犯版权的指控被政府停止服务时,大量用户从未预见他们的合法数据也会被停止。更糟糕的是,政府拒绝释放这些数据,所以每一个只将信息存在这一家服务商,而没有同时存储在其他系统的用户都损失了他们(备份的)全部数据。

InfoQ:对于使用 SkyDrive 作为备份存储,你怎么看?

SkyDrive 及类似的云存储,对于较少量的数据而言是非常好的选择。SkyDrive(为付费用户)提供的最大容量是 100GB,这并不适合企业级应用。

InfoQ:你为 Telerik 工作并推荐了 JustDecompile。能推荐一些其他的反编译工具吗?

其他的.NET 反编译工具与我所代表的产品是竞争关系,对我而言,支持另一个是一种利益冲突。

InfoQ:你是否认为,Visual Studio 2012 安装在比较旧的计算机上会存在性能问题?

我的经验是, Visual Studio 2012 在比较旧的计算机上,表现比其早期版本要好。

InfoQ: 在今天,开发者们在开发他们的应用中使用多种第三方工具。在选择 .NET 组件工具方面,你能够为他们分享一些应遵从的技巧吗?

你永远应该选择那些最能够提升你的生产效率的工具,而这一点受许多方面因素的影响,例如特性、用户体验以及是否会抑制开发者当前的环境(例如,造成阻碍)。选择组件与此类似,但关注焦点一般从它如何影响开发者转移到它如何影响最终用户。如何选择组件是一个技术问题。

例如,自从我尝试使用 ASP.NET MVC 编写网站,对我而言我更倾向于选择 Kendo UI ,而不是 ASP.NET AJAX RadControls。尽管如此,使用 APS.NET WebForms 的人可能会觉得后者( RadControls )是更好的选择。你可以使它们同时工作在上述两种环境中的任何一个里,但代码必须是可维护的,而整洁的实现对于这一点有很大帮助。

查看英文原文 Chris Eargle Talks on Better Application Management


感谢杨赛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-02-18 08:101091
用户头像

发布了 256 篇内容, 共 74.6 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

循序渐进的中台研发

理帆

中台 业务中台

设计模式之单例模式和组合模式

dapaul

极客大学架构师训练营

MySQL InnoDB存储引擎 - 事务

Axe

基于业务表 Binlog 的事件驱动设计

理帆

MySQL 事件驱动 Binlog

设计原则与设计模式

dapaul

极客大学架构师训练营

十五年后苹果再次变心

池建强

apple 苹果 芯片 wwdc

RabbitMQ跨机房迁移数据零丢失

心平气和

RabbitMQ 消息队列

好奇心, 优秀软件工程师的内核品质

亚伦碎语

读书感悟 随笔杂谈

【在云端 002】云时代,何以安放我的个人数据

Bora.Don

云计算 云存储

别兜售你自己不会购买的东西

Neco.W

创业 销售管理 销售

wee1作业总结

牛珈羽

极客大学架构师训练营

centos7 操作

InfoQ_1c4a1f813eb1

【极客大学】【架构师训练营】【第二周】依赖倒置原则和接口隔离原则

NieXY

极客大学架构师训练营

区块链目前实际的应用场景汇总

CECBC

区块链技术 去中心化 应用场景

【极客大学】【架构师训练营】【第二周】总结:设计原则

NieXY

极客大学架构师训练营

辟谣:程序员不配谈恋爱?你错的可以!真相来了

码农神说

程序员 漫画 相亲

工作那么久,才知道的 SOLID 设计原则

闻人

架构师 极客大学架构师训练营

食堂就餐卡系统设计

John

极客大学架构师训练营

查找算法系列文(一)一文入门二叉树

淡蓝色

Java 数据结构 算法 二叉树

Redis系列(三):缓存过期该如何剔除?RDB和AOF又是什么?

z小赵

Java redis 高并发 高并发系统设计

SpringBean的生命周期

编号94530

Java spring Spring Boot 生命周期

线性表(数组、链表、队列、栈)详细总结

淡蓝色

Java 数据结构 算法 链表 线性表

架构师训练营 - 第三周学习总结

清风徐徐

多个maven项目启动顺序

terrytian

maven

第四周 学习总结

冯凯

每日一题-翻转字符串里的单词

程序员老王

LeetCode

就餐卡系统架构设计文档

牛珈羽

极客大学架构师训练营

iOS & Android 去马赛克处理

liu_liu

ios android 去马赛克

LeetCode 655. Print Binary Tree

liu_liu

算法 LeetCode

游戏夜读 | 《老残游记》很有趣

game1night

ARTS Week5

丽子

Chris Eargle谈如何更好的管理应用_语言 & 开发_Anand Narayanaswamy_InfoQ精选文章