65.9K
CodeProject 正在变化。 阅读更多。
Home

与 Michael White 的程序员访谈

starIconstarIconstarIconstarIconstarIcon

5.00/5 (12投票s)

2013年6月26日

CPOL

7分钟阅读

viewsIcon

19008

欢迎继续收看我们的 Code Project 开发者访谈系列,在此系列中,我们将与各位开发者探讨他们的背景、项目、兴趣和最头疼的问题。在本期访谈中,我们将与 Visa 的系统工程师 Michael White 进行对话。

欢迎继续收看我们的 Code Project 开发者访谈系列,在此系列中,我们将与各位开发者探讨他们的背景、项目、兴趣和最头疼的问题。在本期访谈中,我们将与 Visa 的系统工程师 Michael White 进行对话。要了解更多关于 Visa 技术的信息,请查看 Visa 开发者计划

你是谁?

我叫 Michael White,在位于 加州福斯特市Visa 的系统部门工作。我也住在福斯特市,所以通勤非常方便。

您做什么?

我负责 Visa 集成支付 (VIP) 系统。这是一个处理 Visa 实时授权消息的主机系统。它处于 Visa 处理平台的中心,是 Visa 提供的所有不同银行卡授权平台的基础系统。

VIP 系统并不起眼,甚至大多数持卡人并不了解它,但他们很多人每天都会使用好几次。全球几乎所有的 Visa 交易都实时经过这个系统,因此确保其安全、健壮和高效至关重要。

交易通过消息处理(每笔交易通常有两条消息,请求和响应),去年在我们最繁忙的季度高峰期,VIP 系统每秒处理的消息量超过 11,500 条。

我以前在 VIP 应用开发组工作,但后来转到了 TPF 系统组。TPF 是 Transaction Processing Facility(交易处理设施)的缩写,它是 VIP 应用程序运行的主机操作系统。我们组的主要职责是确保 VIP 系统的可用性和性能,以及为系统容量规划,以适应交易量的增长。

我参与的主要项目之一是 年度 VIP 压力测试。每年,Visa 都会在我们“高峰期”(11 月 1 日至圣诞节期间,Visa 交易量最高)之前进行 VIP 压力测试,以确保 VIP 系统已准备好应对预期的消息量,以及任何意外的硬件或网络故障。在高峰期之前进行的任何硬件或软件更改,或计划进行的更改,都会经过测试,以确保它们能让我们拥有一个能够处理高峰期交易量的系统。我们还确保即使失去整个数据中心,我们也能应对高峰交易量。

这种准备工作和抗故障系统配置使我们连续 20 年实现了“完美”的高峰期,这意味着 VIP 系统的可用性达到了 100%。

我们还利用 VIP 压力测试来评估新硬件和主要的软件更改,然后再将它们部署到生产环境中。

能够为一个被如此多人用于购物,并且对全球商业如此重要的系统工作,我感到非常充实。

您的开发环境是什么?

在工作中开发时,我使用 IBM 开发的名为 TPF Toolkit 的 IDE。Toolkit 是基于 Eclipse 构建的,所以如果你想象一下没有 Java 开发的各种实用插件的 Eclipse,你就能大致了解 Toolkit 的样子。

我主要使用 C++ 进行开发,但也有一些遗留代码仍然是 汇编语言,我偶尔会接触。C++ 是我最喜欢的语言;这是我学的第一门语言,我总觉得它像家一样熟悉。

尽管听起来可能有些奇怪,但我多年来也逐渐喜欢上了汇编语言。我一直喜欢尝试让代码尽可能高效,并且用尽可能少的指令用汇编语言编写复杂的东西,这总是一件有趣的事情。

您对哪些新工具、语言或框架感兴趣?

我一直想开发一些 Android 应用。Visa 有其他团队在移动开发方面做得很好,但这并不是我的领域。我的女儿是一位崭露头角的艺术家,我们一直在谈论合作开发一款互动式儿童故事或游戏应用,以展示她的艺术作品。

您最讨厌的编码习惯是什么?

我最头疼的问题是代码注释差或缺失。当你为一个庞大的应用程序工作,与全球各地的大批开发者一起工作,处理基于国家和地区广泛的变体时,你会非常感激清晰、简洁、详尽、并且得到更新和保持准确的注释。

我喜欢驼峰式命名法,保持清晰SimpleAndToThePoint();

对于缩进,我偏好 K&R 风格。

您是如何开始编程的?

我上四年级时,学校开始使用 Commodore PET。我学会了编写一个能播放声音的程序,这在当时被认为是“酷”的。我的老师把全班带到计算机实验室,让我展示它并讲解非常简单的代码(毕竟我才四年级)。

那个夏天,校长打电话给我的母亲,问我是否愿意来帮助为即将到来的学年设置计算机。我花了好几天时间用磁带(是的,磁带!)加载程序,一个计算机迷就此诞生。

后来我玩过 Commodore 64,但之后我从计算机领域淡出了相当长一段时间。

在我重新开始编程大约是 Windows 95 发布的时候,我主要玩 DOS 和 Windows。多年来,我一直是我的朋友和家人的“电脑专家”,直到后来实在忙不过来,我不得不开始限制我提供技术支持和计算机组装服务的人数。

最终,我进入了 加州大学伯克利分校 的电气工程与计算机科学专业,毕业后不久就去了 Visa 工作。

开发者社区是如何影响您的编码的?

如今,开发者社区可以获得如此多的在线资源,我认为它们几乎不可避免地会影响到几乎所有的开发者。有个快速的语法或 API 问题?搜索一下 Google,几秒钟内就能得到答案。在家编写一个实用工具?很有可能网上已经有一个解决方案的想法(甚至代码已经写好了)。

我非常支持开源,有时我也会上传一些我在家编写的小程序。

在社交网络方面,我有点像个恐龙;我甚至没有 Facebook 账号!不过,我的女朋友在我身上花费的 Facebook 时间足够多了,所以我觉得这算是扯平了。

当我在论坛上看到我能回答的问题时,我会尽力帮助并回馈。在家玩的时候,我会在一台 Linux 电脑上运行自己的 Subversion 服务器,而不是使用在线服务。

您会对一个新兴的程序员提供什么建议?

伪代码,伪代码,伪代码!

我们都在教育初期就学到“抵制立即开始编写代码的诱惑”,但这是一种我们大多数人在职业生涯中都会与之斗争的冲动。事实是,任何能够使用键盘的人都可以编写代码,但只有真正的开发者才能编写健壮、可扩展、清晰且高效的应用程序。

弄清楚设计、布局以及什么样的 API 是最好的,这才是真正有趣的部分,而且这些技能比记忆语法或快速敲出小段代码更有价值。市面上有很多编码员,但那些懂得如何设计、组织以及解释为什么选择的方案是最佳方案的开发者却稀少得多。提升这些技能,你就能立即在开发的应用程序中看到成果。

几乎可以肯定的是,你最终会在你的薪资或其他从你开发的应用程序中获得的福利上看到差异。

在 Visa 开发者 博客 上阅读更多开发者访谈。

© . All rights reserved.