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

与 Tugdual Grall 的程序员访谈

starIconstarIconstarIconstarIconstarIcon

5.00/5 (5投票s)

2013年7月29日

CPOL

6分钟阅读

viewsIcon

13394

欢迎继续阅读我们的 CodeProject 开发者访谈系列,在此系列中,我们与开发者们交流他们的背景、项目、兴趣和令人讨厌的小毛病。在本期访谈中,我们采访了 Tugdual Grall,他是一名开发者和布道师,目前在 Couchbase NoSQL 数据库团队工作。

欢迎继续阅读我们的 CodeProject 开发者访谈系列,在此系列中,我们与开发者们交流他们的背景、项目、兴趣和令人讨厌的小毛病。在本期访谈中,我们采访了 Tugdual Grall,他是一名开发者和布道师,目前在 Couchbase NoSQL 数据库团队工作。

你是谁?

我是 Tugdual Grall,大多数人叫我 Tug。我是 Couchbase 的技术布道师。我住在法国 南特 附近。当我不出差时,我在家或当地的 联合办公空间 工作。

您做什么?

作为 Couchbase 的技术布道师,我做了很多事情,目标很简单:确保开发者理解 NoSQL 数据库(特别是 Couchbase)的好处,并帮助他们在项目中使用它。

为了实现这一点,我承担着各种责任,例如编写代码(示例代码并为 Couchbase 开源数据库项目 做贡献),以及通过在论坛、Stack Overflow 和其他社交网络上回答问题来帮助人们。

最后,工作的另一个非常有趣的部分是参加会议和聚会,我有机会在世界各地与开发者们进行面对面的交流。

所以,回到我工作的“开发者”方面,我编写的大部分代码,无论是示例代码还是对 Couchbase 客户端 API 的贡献,都基于我从社区获得的问题和反馈。

成为 Couchbase 冰山可见部分是一件令人兴奋的事情,它使我有机会与核心产品开发团队讨论并会面,向他们提供来自“真实用户”的直接反馈。

您参与过哪些项目?

我现在主要专注于 Couchbase,确切地说,作为一名开发者,我主要从事 JavaNode.js 客户端 API 以及相关教程的开发,贡献代码变更和改进。我还致力于将 Couchbase 集成到 Hibernate OGM(对象网格映射)中,这允许 Java 开发者使用标准的 JPA 注解来访问存储在 Couchbase 中的文档。

您也可以查看我的 Github 仓库我的博客,了解我正在构建的 API 和应用程序类型,以促进 NoSQL/Couchbase 的采用。

除此之外,我还为铁人三项运动员开发了一个名为 Resultri 的网站。该网站允许运动员查看他们的成绩、进行分析并与其他竞争对手进行比较。最近我没有太多时间更新它,但我有很多想法可以让它对用户更好。从技术角度来看,这个项目始于 2011 年 8 月我在意大利度假期间,是一个部署在 Google App Engine 上的 Java 应用程序,也是我的第一次 NoSQL 数据库体验,因为所有数据都存储在 Google BigTable 中。

我还进行了许多 iOS 小开发,但从未发布过任何应用程序。这更多是为了学习和玩耍……但如果我有一个好主意,我就可以开发应用程序 :)

您的开发环境是什么?

我于 2001 年转向 Mac,从那时起,它一直是我的主要开发机器。今天我有一台 MacBook Pro 15" Retina,并安装了一些 Linux 和 Windows 虚拟机。

我主要是一名 Java 开发者。我从 JDK 的第一个版本就开始进行 Java 开发,但也喜欢探索和玩弄其他语言。当我用 Java 开发时,我使用 JetBrains 的 IntelliJ IDEA,我还经常使用 TextMate,例如使用 Node.js 开发时。

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

最近我花了很多时间在 Node.js 和 AngularJS 上,并且非常喜欢!我喜欢用 Node 进行服务器端开发,因为它非常简单、快速,并且在使用 JSON 存储数据时使用 JavaScript 非常自然。而 AngularJS 给我留下了深刻的印象——它确实是 Web 应用程序开发的一大进步。

我非常想学习和使用另一种语言,那就是 Scala。基于阅读、讨论和基本测试,它看起来非常有意思。

我还需要对 .NET 平台有更多的了解,主要有两个原因:

  • 许多 Couchbase 项目正在使用 .NET
  • 我听说了许多关于 C# 的好消息,我必须对此形成自己的看法。

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

当我编写自己的项目时,我使用标准的 Java camelCase 和 K&R 缩进;我习惯于所有语言都这样做。但是,当我加入/为现有项目做贡献时,我显然会根据项目本身的命名约定来调整风格。

您是如何开始编程的?

我有一些在 HP 和 Amstrad 计算机上使用 BASIC 编程的小经验,但真正投入到开发和计算机领域是在我服兵役期间(是的,我够老了,被强制服役,但对我来说这是一次开眼界的事情)。在那一年服役期间,我有很多空闲时间,所以我参与了一些基本操作,例如备份、网络和在当地警察局进行安装。从那时起,我爱上了技术,并越来越深入地研究它,开始用 PascalDelphi……我真的很喜欢这个工具)进行编程,然后转向 C

然后我在一些邮件列表中发现一门新的面向对象语言即将问世,并且它能处理所有内存管理,于是我开始使用 Java SDK 的一个 beta 版本进行 Java 开发……

在职业生涯上,我最初担任了几年 Progress 4GL 和数据库的开发者,并试图在一些项目上推广 Java(当时没有真正成功)。这也是我转到 Oracle 的原因之一,正如你们中的一些人可能还记得“300% Java”的广告(数据库中的 Java、服务器端的 Java、客户端的 Java),起初它确实更像是“300% PLSQL” :-) 但很快就转向了 Java 团队(开发者,然后是 Java EE 容器的产品经理)。

所以,关于我的第一门编程语言,我通常回答是 Delphi 中的面向对象 Pascal,但就像许多开发者一样,你同时关注许多不同的事物。这才是真正令人兴奋的。

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

开发者社区对我编写代码有很大的影响,因为我从他人那里学到了很多:从你可以阅读的代码、你可以进行的在线讨论,以及经常进行的线下交流。

我在 Twitter 上非常活跃,因为它是一个获取有趣内容的好来源,而且我觉得我的网络是找到编程好东西的最佳过滤器之一。我尽可能多地使用并参与在线技术社区,如论坛、Stack Overflow、Quora 等。

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

简短的回答是:“开源”。

更长的回答是:成为一名“优秀”开发者的最好方法之一是为开源项目做贡献。你可以查看代码,从而向他人学习,然后你必须进入贡献者流程,在那里你必须遵守开发最佳实践,从代码格式化到测试和代码审查。这正是我每年都会对我在南特 CS 大学讲座的学生们说的话。积极参与开源,不要害羞!

© . All rights reserved.