SitePoint播客#149:与Ross Boucher一起喝卡布奇诺咖啡

Episode 149 of The SitePoint Podcast is now available! This week our regular interview host Louis Simoneau (@rssaddict) interviews Ross Boucher (@boucher), one of the co-creators of the Cappuccino Framework; to talk about his current work on a payment processing service called Stripe, as well as the current state of JavaScript web application development.

SitePoint Podcast的第149集现已发布! 本周我们的定期采访主持人路易斯·西蒙娜( @rssaddict )采访了卡布奇诺框架的共同创作者之一罗斯·鲍彻( @boucher ); 谈谈他目前在名为Stripe的支付处理服务方面的工作,以及JavaScript Web应用程序开发的当前状态。

下载此剧集 (Download this Episode)

You can download this episode as a standalone MP3 file. Here’s the link:

您可以将本集下载为独立的MP3文件。 这是链接:

  • SitePoint Podcast #149: Drinking Cappuccino with Ross Boucher (MP3, 31:12, 28.6MB)

    SitePoint Podcast#149:与Ross Boucher一起喝卡布奇诺咖啡 (MP3,31:12,28.6MB)

剧集摘要 (Episode Summary)

Louis and Ross cover how the Cappuccino framework came about, what the Stripe team faced as challenges, how they got through those challenges and how javascript debugging in browsers has and continues to move forward.

Louis和Ross介绍了Cappuccino框架的产生方式,Stripe团队面临的挑战,如何应对这些挑战以及浏览器中的javascript调试如何并且将继续向前发展。

Browse the full list of links referenced in the show at http://delicious.com/sitepointpodcast/149.

浏览http://delicious.com/sitepointpodcast/149中显示的参考链接的完整列表。

面试成绩单 (Interview Transcript)

Louis: Hello and welcome to another episode of the SitePoint Podcast, my guest on the show today is Ross Boucher; hi, Ross.

路易斯:您好,欢迎收看SitePoint播客的另一集,今天我在节目中的嘉宾是罗斯·鲍彻(Ross Boucher); 嗨,罗斯。

Ross: Hey.

罗斯:嘿。

Louis: Ross is a web developer; the co-creator of the popular Cappuccino Framework for creating browser based web applications, and is currently working at Stripe. So, do you want to talk a bit about what you’re currently working on, Ross?

路易斯:罗斯是一位网络开发人员。 是流行的Cappuccino框架的共同创建者,该框架用于创建基于浏览器的Web应用程序,并且目前在Stripe工作。 那么,Ross,您想谈谈您目前正在做什么吗?

Ross: Sure. So I’m working at a company called Stripe, stripe.com, and we are payment processors, so we try to make it easy, as easy as possible to come and signup on our site and be able to start processing credit cards on your own site right away. And at the end of the day like this is kind of similar to what a lot of other people are doing, obviously you can do this with PayPal or a number of other companies, but we think that our software is both better, it’s easier to use than a lot of these other companies, and also we place a lot of importance on eliminating the amount of sort of manual effort involved, making integration as quick and painless as possible, and, as I mentioned, making signup really easy; you can come to our site and fill out the online form in probably just about two minutes and start charging real credit cards right away.

罗斯:当然。 因此,我在一家名为Stripe, stripe.com的公司工作,我们是付款处理商,因此我们力求尽可能轻松,轻松地注册到我们的网站并开始在您的信用卡上处理信用卡马上拥有自己的网站。 最终,这类似于许多其他人所做的事情,很明显,您可以与PayPal或许多其他公司一起这样做,但是我们认为我们的软件既更好,也更容易不像其他公司那样使用,并且我们非常重视消除所涉及的手动工作量,使集成尽可能地快速而轻松,并且,正如我提到的,使注册非常容易; 您可以访问我们的网站并在大约两分钟内填写在线表格,然后立即开始向真实的信用卡收费。

Louis: Right. Having recently spent, well, I didn’t personally, but another developer on our team has spent I think more or less the last month trying to get recurring payments working with PayPal; I can say that a one day or even a few hour turnaround sounds very impressive.

路易斯:对。 好吧,最近我花钱的时候,我个人没有,但是我团队中的另一位开发人员花了一些时间,我认为上个月或多或少都在尝试使用PayPal获得定期付款。 我可以说一天或什至几个小时的周转时间听起来非常令人印象深刻。

Ross: Yeah, we’ve heard a lot of similar stories, and a lot of people here come from backgrounds were they were doing other startups or working at other companies and experienced the same problems themselves, so I think a lot of the motivation for Stripe is born out of our own internal frustration.

罗斯:是的,我们听过很多类似的故事,这里有很多人来自不同的背景,他们在做其他初创公司或在其他公司工作,并且自己也遇到过同样的问题,所以我想很多动机条纹源于我们自身的内心沮丧。

Louis: Right. It’s always interesting to me; I talked with one of the guys from Shopify on the podcast last year. For those of us who develop web applications where we might sell products or just provide an online application for people, it does seem like stepping it up to another level when you’re dealing with credit cards because you have a lot of concerns that maybe other app developers don’t have to worry about so much.

路易斯:对。 对我来说总是很有趣; 去年,我在播客上与Shopify中的一位聊天。 对于那些开发可能会销售产品或仅向人们提供在线应用程序的Web应用程序的人来说,在处理信用卡时,好像将其提升到了另一个层次,因为您担心很多其他问题应用程序开发人员不必担心太多。

Ross: Yeah, I think that’s definitely true. Stripe is even a bit different in that because we are essentially offering a piece of infrastructure for other companies, you know our primary product is our API; we’ve got an even different set of problems to worry about. I think API driven products tend to just have different problems, and, for example, reliability is paramount to us; we don’t want other people to ever have to worry about not being able to accept payments because our servers are down.

罗斯:是的,我认为那是绝对正确的。 Stripe甚至有所不同,因为我们实际上是在为其他公司提供基础架构,您知道我们的主要产品是我们的API。 我们要担心的甚至是另外一组问题。 我认为API驱动的产品往往会有不同的问题,例如,可靠性对我们至关重要。 我们不希望其他人不必担心因为我们的服务器已关闭而无法接受付款。

Louis: Yeah, absolutely. How long has Stripe been in operation?

路易斯:是的,绝对。 Stripe运行了多长时间了?

Ross: Stripe has been processing payments for just about two years now, in fact, I was the first user of Stripe at my last company, but it’s only been public for about four months now, five months, September of last year.

罗斯: Stripe现在已经处理付款大约两年了,实际上,我是我上一家公司的第一个使用Stripe的用户,但是现在它才公开上市大约四个月,去年九月是五个月。

Louis: Okay, so it’s fairly new on the market if anyone was looking for a payment gateway.

路易斯:好的,因此,如果有人正在寻找付款网关,这在市场上还是相当新的。

Ross: Yeah, it’s fairly new. And we also, I guess I didn’t mention this before, but Stripe integrates both the traditional payment gateway and merchant account features into one, so when you come to Stripe you don’t need to bring with you a separate gateway or merchant account, we just package that all into one simple product.

罗斯:是的,这很新。 而且,我想我之前也没有提到过,但是Stripe将传统的支付网关和商户帐户功能集成到了一起,因此,当您来到Stripe时,无需携带单独的网关或商户帐户,我们只是将它们打包成一个简单的产品。

Louis: Right, so the payment that you receive, for example, go into a Stripe account?

路易斯:对,因此您收到的付款存入了Stripe帐户?

Ross: When you get paid with us we hold your funds, actually our partner Wells Fargo holds the funds in your name, we’re never actually in control of them.

Ross:当您从我们这里获得付款时,我们会保留您的资金,实际上我们的合作伙伴Wells Fargo会以您的名义持有这些资金,但实际上我们永远无法控制它们。

Louis: Right.

路易斯:对。

Ross: And then we transfer those funds to you to any bank account after seven days, seven days after each payment is made.

罗斯:然后,我们会在每次付款7天后的7天后,将这些资金转入您的任何银行帐户。

Louis: Alright. Yeah, I mean it’s really interesting, especially in a market where I think a lot of people tend to think a big player like PayPal is sort of the only option out there, and given the experience that most people have had dealing with PayPal’s support and API, I think it’s definitely a good space to have a bit more competition in.

路易斯:好吧。 是的,我的意思是,这真的很有趣,尤其是在这个市场中,我认为很多人倾向于认为像PayPal这样的大公司是那里唯一的选择,并且鉴于大多数人都曾与PayPal的支持和服务打交道。 API,我认为这绝对是一个有更多竞争的好空间。

Ross: Yeah, we’re excited about growing and about the challenges ahead.

罗斯:是的,我们为成长和面临的挑战感到兴奋。

Louis: I’m really looking forward t seeing it grow. I guess the thing you’re probably better known for is as co-creator of Cappuccino. Now, I think Cappuccino when it was first released was probably discussed on the SitePoint Podcast, though I was not doing the show at that time, but for anyone who’s unfamiliar with Cappuccino do you want to talk about what it is and how it came about?

路易斯:我真的很期待看到它的增长。 我想您可能是作为卡布奇诺咖啡的共同创造者而闻名。 现在,我认为Cappuccino首次发行时可能已经在SitePoint Podcast上进行了讨论,尽管当时我还没有参加演出,但是对于不熟悉Cappuccino的任何人,您都想谈一谈它的含义以及它是如何产生的?

Ross: Sure. So, to start out with a quick overview, Cappuccino is, as you said at the intro, a framework for building browser based apps, and what we mean by that is what’s I think come to be now known as like single page apps, or some people call them like fat client web apps, things like that. And the idea is an application like Google Docs or our own 280 Slides, or even to some extent Google Maps, is really something that you load once and most of the logic of running the app is happening in the client and it goes to the server just to fetch new data to act on that data. So that whole model of apps which I think we’ve seen become really popular over the last two years or so is what Cappuccino is really designed to build. And Cappuccino itself was started, well, it started in our college dorm room about 2005, but that was just really a hobby for a while, and then in 2008 we started working on it full time and started a company called 280 North to do that, and then we released it to the public I believe in August of 2008. So it’s been out for just a little over three years now.

罗斯:当然。 因此,从快速的概述开始,正如您在介绍中所述,Cappuccino是一个用于构建基于浏览器的应用程序的框架,而我们的意思是我认为现在被称为单页应用程序,或者有些人称它们为胖客户端Web应用程序,诸如此类。 这个想法是一个像Google Docs或我们自己的280 Slides之类的应用程序,甚至在某种程度上甚至是Google Maps,实际上都是您一次加载的,大多数运行该应用程序的逻辑都发生在客户端,然后传给服务器只是获取新数据以对该数据进行操作。 在过去的两年左右的时间内,我认为我们已经看到了整个应用程序模型的真正流行,这正是Cappuccino真正设计的目的。 卡布奇诺咖啡本身就是在2005年左右开始在我们的大学宿舍里开始的,但这只是一段时间的业余爱好,然后在2008年,我们开始全职工作,并成立了一家名为280 North的公司,然后我们于2008年8月向公众发布了它。因此,它已经发布了仅仅三年多一点。

Louis: Right. And it’s worth mentioning Cappuccino is open sourced software.

路易斯:对。 值得一提的是Cappuccino是开源软件。

Ross: Yes, it’s open source, it’s on GitHub, it’s currently on version 0.9.5 I believe, and it’s licensed under the LGPL.

Ross:是的,它是开源的,它在GitHub上,我相信它的当前版本是0.9.5,并且它是根据LGPL许可的。

Louis: Right. So the idea behind Cappuccino was sort of from what I understand to somewhat recreate the experience of developing native apps in Cocoa and Objective-C for the desktop Mac environment —

路易斯:对。 因此,卡布奇诺咖啡背后的想法是,从我的理解中,可以某种程度上重现在桌面Mac环境中使用Cocoa和Objective-C开发本机应用程序的经验-

Ross: Yes.

罗斯:是的。

Louis: — inside the browser.

路易斯: —在浏览器中。

Ross: Right. I guess I should have mentioned that. When we were thinking about writing Cappuccino we were actually — the problem we wanted to solve was to build an app in the web browser, and we’d been working on that for a while, and as we got further along on each project we would hit these roadblocks and realize this is actually really hard, it’s really hard to build this kind of app in the browser. But the three of us that were working on it at the time also had experience writing Mac apps, and so we thought to ourselves why don’t we try to work on a framework that looks similar to Cocoa; Cocoa seems to work well in building these kinds of complex apps. So we started playing around with ideas that were modeled after Cocoa, and then eventually Francisco, one of my co-founders, had the idea that why don’t we just try to actually write Cocoa. And so he for fun wrote Objective-J, which is the language Cappuccino is written in, it’s a set of extensions to JavaScript that are compiled on the fly in your browser, so we added this set of language extensions to add certain features like code importing and classical inheritance and dynamic dispatch.

罗斯:对。 我想我应该提到这一点。 当我们考虑编写Cappuccino时,实际上是我们想要解决的问题是在网络浏览器中构建应用程序,并且我们已经进行了一段时间的研究,随着我们对每个项目的深入研究,我们将碰到这些障碍,并意识到这实际上真的很困难,在浏览器中构建这种应用程序真的很困难。 但是当时我们中的三个人也有编写Mac应用程序的经验,因此我们自己思考为什么不尝试在类似于Cocoa的框架上工作; 可可似乎在构建这类复杂的应用程序中工作良好。 因此,我们开始研究以可可为蓝本的创意,然后最终我的联合创始人之一弗朗西斯科(Francisco)有了一个想法,我们为什么不尝试实际编写Cocoa。 因此,他很有趣地写了Objective-J,这是Cappuccino编写的语言,它是JavaScript的一组扩展,它们是在浏览器中即时编译的,因此我们添加了这组语言扩展以添加某些功能,例如代码导入和经典继承以及动态调度。

Louis: Right.

路易斯:对。

Ross: The same set of features that Objective-C added to C. And so after he’d done that we set to work on porting a lot of the actual Cocoa framework, and so that’s where Cappuccino is today.

Ross: Objective-C添加到C中的功能相同。因此,在他完成之后,我们开始着手移植许多实际的Cocoa框架,这就是今天的Cappuccino。

Louis: Right. And you said that the compiling happens in the browser, happens on the fly, something like CoffeeScript where you put it through a pre-processor.

路易斯:对。 您说编译是在浏览器中进行的,是即时进行的,就像CoffeeScript一样,它是通过预处理器进行的。

Ross: It’s actually extremely similar to CoffeeScript. We have the capability to do it both in the browser or ahead of time on the command line, which is something CoffeeScript has as well, I believe. And so typically the development cycle for a Cappuccino app will be to make changes to your .j files and refresh your browser just like you would normally and those changes will be compiled on the fly in your browser. But then when you deploy we recommend compiling ahead of time and running all of our various optimization scripts to get stuff as tight and fast as possible so that you’re not doing repetitive work every time one of your users loads your app.

罗斯:实际上,它与CoffeeScript非常相似。 我们可以在浏览器中或提前在命令行中执行此操作,我相信CoffeeScript也具有此功能。 因此,通常,Cappuccino应用程序的开发周期将是像平常一样对.j文件进行更改并刷新浏览器,并且这些更改将在浏览器中即时编译。 但是,当您部署时,建议您提前编译并运行所有各种优化脚本,以使内容尽可能的紧凑和快速,以免您的用户每次加载应用程序时都不必进行重复的工作。

Louis: Right. And this is — because it’s running in JavaScript and it’s compiling down to more or less straight up JavaScript, what’s the level of browser support that you get out of that?

路易斯:对。 这是-因为它在JavaScript中运行,并且正在或多或少地直接编译为JavaScript,您从中获得的浏览器支持级别是多少?

Ross: So, officially I believe we’re supporting pretty much any browser, IE7 or newer. I think Cappuccino works in IE6 as well, but we don’t really support it because we used a lot of transparent PNG’s and not really interested in that problem.

Ross:所以,正式而言,我相信我们将支持几乎所有的IE7或更高版本的浏览器。 我认为Cappuccino也可以在IE6中使用,但是我们并不真正支持它,因为我们使用了很多透明的PNG,对这个问题并不感兴趣。

Louis: It’s weird; it’s been long enough that until you brought that up right now I had forgotten that IE6 didn’t do transparencies.

路易斯:很奇怪; 已经足够长的时间了,直到您立即提出为止,我才忘记IE6没有透明胶片。

Ross: Yeah.

罗斯:是的。

Louis: And it was just like oh, wow, that thing was really archaic.

路易斯:就像哦,哇,那东西真是过时的。

Ross: Yeah. Yeah, when we actually released, or when we wrote our first Objective-J, IE6 was the newest Internet Explorer, so we spent a lot of time figuring out how to make compiling this language in IE6 fast enough to be realistic.

罗斯:是的。 是的,当我们实际发布时,或者当我们编写第一个Objective-J时,IE6是最新的Internet Explorer,因此我们花了很多时间来弄清楚如何使IE6中的这种语言的编译速度足够快,以使其成为现实。

Louis: Right. I mean that sounds — so, to me telling the story of how you came up with the idea on how you started working on it, it sounds totally like one of those things where oh, wow, it’s hard to write complex applications in JavaScript, it’s really easy to write complex applications in Cocoa, we should just rewrite all of Cocoa in JavaScript, and then you’d spend like a day trying to do that and then realize that that was really hard and stop

路易斯:对。 我的意思是说-因此,对我来说,您是如何提出想法的故事,这听起来像是其中一件很难用JavaScript编写复杂应用程序的事情之一,用Cocoa编写复杂的应用程序真的很容易,我们应该只用JavaScript重写所有的Cocoa,然后花一天的时间尝试这样做,然后意识到那真的很困难,并且停止

Ross: (Laughs)

罗斯:(笑)

Louis: So big props to you guys for not doing what I think I would’ve done in your shoes.

路易斯:你们这么大的道具,因为他们没有做我想我会在你的鞋子上做过的事情。

Ross: Yeah. It was definitely fun and interesting and challenging and probably harder than any of us thought, but it was also a really good learning experience, I know a lot more about how JavaScript works and about how Cocoa works as a result, and I definitely enjoyed that aspect of it.

罗斯:是的。 这绝对是有趣,有趣,富有挑战性的,而且可能比我们所有人想象的要难,但这也是一次非常好的学习经历,我对JavaScript的工作原理以及可可的工作原理了解得更多,我当然很喜欢方面。

Louis: Are you still working with Cappuccino in your day-to-day work or on any of your projects you’re working on at the moment?

路易斯:您是否仍在日常工作中使用卡布奇诺咖啡,或者目前正在从事的任何项目中?

Ross: I keep active on the Cappuccino mailing list and with some of our bug and pool requests, but I haven’t really had a lot of time in the last year or so to do Cappuccino development myself. At Stripe I’ve been working on a lot of different things, including a lot of backend code, but we also re-wrote our front-end recently, and we chose to go with CoffeeScript and Backbone, and then a custom framework that we built on top of that.

Ross:我一直在Cappuccino邮件列表以及一些我们的bug和池请求方面保持活跃,但是在过去的一年左右的时间里,我实际上没有很多时间自己开发Cappuccino。 在Stripe,我一直在从事许多不同的事情,包括许多后端代码,但是最近我们也重新编写了前端,我们选择使用CoffeeScript和Backbone,然后选择一个自定义框架,建立在此之上。

Louis: Right.

路易斯:对。

Ross: So, I’m not actually developing Cappuccino stuff at Stripe.

Ross:所以,我实际上不是在Stripe开发卡布奇诺咖啡的东西。

Louis: Right. I was actually going to ask you how you felt that Cappuccino played against or sat in relation to something like Backbone, because it seems like they’re both sort of in a way trying to solve a similar problem, although I guess Cappuccino has a lot of UI components that Backbone doesn’t really concern itself with.

路易斯:对。 我实际上是想问您,您觉得卡布奇诺与诸如Backbone之类的游戏有什么冲突或坐立不安,因为似乎他们俩都在设法解决类似问题,尽管我猜卡布奇诺有很多Backbone并不真正关心的UI组件。

Ross: Right.

罗斯:对。

Louis: But the idea of dealing with sort of more complex apps that run in the browser.

路易斯:但是处理浏览器中运行的更复杂的应用程序的想法。

Ross: In some ways they’re trying to tackle a similar goal, in some ways they’re actually kind of complimentary. Backbone doesn’t really make any attempt to do anything on when it comes to the view layer, there’s, you know, a few handy little functions in there to help define events, but there’s not really a whole lot going on there. And the real strength of Backbone, I guess, is just making it easy to tie models and collections together with like a restful backend, and with as little code as possible; I see that as probably Backbone’s strongest point. And Cappuccino actually as it stands now doesn’t really try to do much about that, it tries to be pretty backend agnostic, our goal was really, you know, we want to write this front-end, front-end focused thing, and then however you want to get data back and forth will be up to you. On the other side of the spectrum, Backbone is a really tiny — I think it’s 10k of JavaScript, or something, framework, and Cappuccino without images I think approaches some 300k or possibly more. So there’s definitely a size difference there, Cappuccino has a lot of functionality built into it, a lot of different view components, a lot of image resources, because as you said, you know, we have sort of our own full style that you can use.

罗斯:在某些方面,他们正在努力实现类似的目标,在某些方面,它们实际上是一种互补。 当涉及到视图层时,Backbone并没有真正尝试做任何事情,您知道那里有一些方便的小功能来帮助定义事件,但是实际上并没有很多事情要做。 我想,Backbone的真正优势在于,它可以轻松地将模型和集合与类似的后端绑定在一起,并且使用的代码尽可能少。 我认为这可能是Backbone的最强项。 Cappuccino实际上并没有真正尝试做很多事情,它试图成为一个与后端无关的人,我们的目标确实是,您知道,我们想要编写这个专注于前端,专注于前端的东西,并且那么您想要来回获取数据将由您决定。 另一方面,Backbone确实很小—我认为它是10kJavaScript,或者没有图像的框架,卡布奇诺咖啡,我认为它接近30万甚至更多。 因此,那里肯定存在大小差异,Cappuccino内置了很多功能,很多不同的视图组件,很多图像资源,因为正如您所说,您知道,我们拥有自己的完整样式,您可以用。

Louis: Right. And does Cappuccino work in a way that’s similar to say jQuery UI where you’ve got this set of interface components but they can be switched out with whatever other custom set you might come up with?

路易斯:对。 卡布奇诺咖啡的工作方式是否类似于jQuery UI,即您拥有这套接口组件,但是可以用其他可能想到的自定义设置将它们切换出来?

Ross: In some ways it does, yes, so, but in other ways it’s actually pretty different. So, one of the things that jQuery UI is focused on, and Backbone and really all the other frameworks are doing that kind of thing, is that they still want to be using HTML and CSS to define sort of the individual style of things and the organization of their elements. Cappuccino takes I guess some might call it a radical approach of not using CSS or HTML at all, so you’re never writing CSS or HTML code when you interact with Cappuccino, everything’s a JavaScript object; in Cappuccino it’s called a CP View, which obviously sort of maps to the NS View hierarchy. And so, you know, in some ways I actually think Cappuccino makes it much easier to share components with other people, because one of the problems with traditional web apps and with sharing your view components is that everything in CSS and HTML is really tied together, the structure of your CSS can be broken really easily if you change the layout of your HTML; you have to have a lot of knowledge about how the HTML is ordered and nested and how the CSS applies to that, and you have to carry a lot of these sort of dependencies across with you, across different places. And Cappuccino doesn’t really have that problem because everything is written in code.

罗斯:从某些方面来说,是的,所以是这样,但是在其他方面,它实际上是完全不同的。 因此,jQuery UI所关注的事情之一,而Backbone和所有其他框架实际上都在做这种事情,就是他们仍然希望使用HTML和CSS来定义某种形式的事物,并且元素的组织。 卡布奇诺咖啡需要我猜一些人可能会称之为根本不使用CSS或HTML的根本方法,因此当您与卡布奇诺咖啡互动时,您永远不会编写CSS或HTML代码,这都是JavaScript对象。 在卡布奇诺咖啡中,它称为CP视图,它显然是到NS视图层次结构的映射。 因此,您知道,在某些方面,我实际上认为Cappuccino使得与他人共享组件变得更加容易,因为传统Web应用程序和共享视图组件的问题之一是CSS和HTML中的所有内容实际上都捆绑在一起,如果您更改HTML的布局,则可以很容易地破坏CSS的结构; 您必须具有许多有关如何排序和嵌套HTML以及CSS如何应用于CSS的知识,并且您必须在不同地方随身携带许多此类依赖项。 卡布奇诺咖啡实际上并没有这个问题,因为所有内容都是用代码编写的。

Louis: Right.

路易斯:对。

Ross: And Cappuccino does lose some flexibility there because you lose the expressiveness of CSS to declare like static visual style, which can be nice, but Cappuccino does have a theme system that we added that lets you do — that adds some of those features back in so you can use standard view components but modify the way they look with our theme system.

Ross: Cappuccino的确失去了一些灵活性,因为您失去了CSS的声明性,例如静态视觉样式,这可能会很好,但是Cappuccino确实有一个主题系统,我们添加了该主题系统,您可以使用它,其中有些功能因此,您可以使用标准视图组件,但可以通过我们的主题系统修改它们的外观。

Louis: Right, yeah. You mentioned that in your work at Stripe you’ve also been doing some backend stuff, what sort of server side code are you working with at Stripe?

路易斯:对,是的。 您提到在Stripe的工作中,您还做了一些后端工作,那么您在Stripe使用哪种服务器端代码?

Ross: Most of code is written in Ruby, usually on top of Sinatra, though not always. And I’ve been doing a lot of work on our API and designing sort of the structure of the API and the actually interface that we expose to the users, not so much the implementation of specific functionality, I’ve done some of that, but a lot more of that was there before I started.

Ross:大多数代码都是用Ruby编写的,通常不是在Sinatra之上。 我已经在API方面做了很多工作,并设计了API的结构以及我们向用户展示的实际接口,而不是具体功能的实现,我做了一些工作,但是在我开始之前,还有更多的东西。

Louis: Right.

路易斯:对。

Ross: The most recent thing that I’ve been working on is we just released this week a new Webhook feature which works pretty similarly to GitHub’s post-receive hooks, if you’re familiar with that. So you can just signup and arbitrary number of URLs in your Stripe account, and we’ll send events to those URLs anytime something interesting happens, so you can, without having to pull us, track the history of changes across all your Stripe objects.

Ross:我一直在研究的最新内容是我们本周刚刚发布了一项新的Webhook功能,如果您熟悉的话,它的功能与GitHub的接收后挂钩非常相似。 因此,您只需在您的Stripe帐户中注册和任意数量的URL,我们便会在发生任何有趣的事件时将事件发送到这些URL,因此您无需拉我们,就可以跟踪所有Stripe对象的更改历史记录。

Louis: Can you give an example of what kind of thing that would be used for or how that plays into a regular use case?

路易斯:您能举一个例子说明将要使用哪种东西或如何将其用作常规用例吗?

Ross: Sure, so one of the things that people use it for most commonly is we have a recurring billing system, and a lot of people will want to add usage charges at the end of the month, so you charge your user for some month, let’s say you’re charging cell phone minutes, and then they use all of their cell phone minutes plus another 60 minutes, so you want to add an additional charge based on that extra 60 minutes, so we will send you a web hook telling you that their billing period is over, we’ve created an invoice for them, and all the details about that invoice and sort of the dates that it’s affected for, and we give you an opportunity to send a message back to us saying, okay great, add this amount of money to the invoice before you try and pay it.

Ross:好的,所以人们最常使用的事情之一就是我们有一个循环计费系统,很多人都希望在月底增加使用费,因此您要向用户收取一个月的费用,假设您要为手机分钟收费,然后他们使用了他们所有的手机分钟加上另外60分钟,因此您想在这60分钟的基础上增加一笔额外的费用,因此我们将向您发送网络提示信息您,他们的帐单期已结束,我们已经为他们创建了一张发票,以及有关该发票的所有详细信息以及受影响日期的种类,我们为您提供了向我们发送信息的机会,好的很好,在您尝试付款之前,将这笔钱添加到发票中。

Louis: Right. Yeah, that sounds really good. And so in your work with Ruby you said you’re working a lot with Sinatra, and I guess because you don’t have to deal with as much of a full ViewStack as a traditional web app because you’re working more with an API, or since your main product is an API, as you were saying earlier, it made sense to go with something light like Sinatra instead of a fuller framework like Rails?

路易斯:对。 是的,听起来真的很好。 因此,在使用Ruby的过程中,您曾说过您正在与Sinatra进行很多工作,我想是因为与API相比,您不必像传统的Web应用程序那样处理完整的ViewStack。 ,或者因为您的主要产品是API(就像您之前所说的那样),所以选择像Sinatra这样的轻巧的东西而不是像Rails这样的更完整的框架是有意义的吗?

Ross: Yeah, I mean I think that’s an accurate description. Rails definitely has some nice features I think even if you’re writing an API, but for us, both in terms of what we’re working on and our own needs, it just wasn’t the direction we wanted to head in. So we used Sinatra for our API, and we also use it for our website, our management website, and we actually use our API for that management website, so, as I said, it was written in Backbone, Backbone is actually just calling out to our regular API, the same API that our customers use. So, most of the features that we expose on the website we expose in a way that would let users build their own competing dashboards if they wanted to, and that’s actually been really helpful for us in understanding the right features to build in the API, and also where the biggest performance problems are.

罗斯:是的,我的意思是我认为这是准确的描述。 我认为,即使您正在编写API,Rails肯定也具有一些不错的功能,但是对于我们来说,无论是从我们的工作范围还是我们自己的需求来看,这都不是我们想要去的方向。我们将Sinatra用于我们的API,也将其用于我们的网站,我们的管理网站,并且实际上将我们的API用于该管理网站,因此,正如我所说,它是用Backbone编写的,Backbone实际上只是在呼唤我们的常规API,即客户使用的相同API。 因此,我们在网站上公开的大多数功能都会以某种方式公开,使用户可以根据需要构建自己的竞争性仪表板,这对于我们了解在API中构建正确的功能确实非常有帮助,以及最大的性能问题所在。

Louis: Right. I actually thinks that’s a really interesting approach, and it’s something that I haven’t heard of anyone doing before. I guess most people’s approach to building a Web app that includes an API is to build the app with some views and then do the API that renders out XML or JSON, or what have you, but I guess if you’re building an app or a dashboard that is entirely sort of like one of these one page JavaScript apps, then simply consuming your own API is first of all a great way of ensuring that the design or your API is sensible and that’s it’s easy for other developers to use, and as you said, to pinpoint any problems that might exist in it.

路易斯:对。 我实际上认为这是一种非常有趣的方法,而且这是我以前从未听说过的任何事情。 我想大多数人构建包含API的Web应用程序的方法是先构建具有某些视图的应用程序,然后执行呈现XML或JSON或您所拥有内容的API,但是我想如果您正在构建应用程序或一个完全类似于这些一页JavaScript应用程序之一的仪表板,然后简单地使用自己的API首先是确保设计或API合理且其他开发人员易于使用的一种很好的方式,以及如您所说,以查明其中可能存在的任何问题。

Ross: Yeah, that was our goal, the first verson of the site was not written that way, it was a much more traditional website, and when we did this rewrite as a single page app one of the things we thought we could really win out of doing that, on top of just sort of the standard, you know, make it more responsive, make it faster loading, etcetera, was this ability to communicate directly with the API and use the same JSON data exchange to really make sure that our users would have a good experience using the API.

Ross:是的,这是我们的目标,网站的第一个版本不是这样写的,它是一个更为传统的网站,当我们将其重写为单页应用程序时,我们认为我们可以真正赢得胜利的一件事除了这些标准之外,您还知道可以使它具有更高的响应速度,更快的加载速度等,是这种直接与API通信并使用相同的JSON数据交换来真正确保我们的用户将拥有使用该API的良好体验。

Louis: Yeah, that’s really good, I’ll definitely keep that in mind the next time I’m working on something like this. So, in the kind of situation where you’ve got your entire front-end is built on Backbone and you’re consuming an API, does that mean you’ve sort of abandoned the non-JavaScript support for your dashboard?

路易斯:是的,这真的很好,下次我要进行此类工作时,我一定会牢记这一点。 因此,在这种情况下,您的整个前端都建立在Backbone上并且正在使用API​​,这是否意味着您已经放弃了对仪表板的非JavaScript支持?

Ross: We have, yeah. I think you could build the site in such a way without changing much from what we have now that it would work without JavaScript. All of our stuff is written in the front-end with Eco, which is the CoffeeScript templating language, and we could run that in Node on the backend and generate first page and send you that HTML if we wanted to. We decided that based on our users, based on the functionality we wanted to offer it really wasn’t going to be that big of a deal to require JavaScript, in terms of SEO it’s not a problem because the site is behind a login wall, so for us we decided it wasn’t really worth the development time, but I think you could build a similar system and have it still render if JavaScript is disabled.

罗斯:是的,是的。 我认为您可以以这种方式构建站点,而无需像我们现在所做的那样进行很多更改,因为它无需JavaScript就可以工作。 我们所有的东西都是使用EcoScript(这是CoffeeScript模板语言)在前端编写的,我们可以在后端的Node上运行它,并生成第一页,如果需要的话,可以将HTML发送给您。 我们决定基于用户,基于我们想要提供的功能,实际上不需要JavaScript并不是一件大事,就SEO而言,这不是问题,因为该网站位于登录墙后面,因此,对于我们来说,我们认为这确实不值得花时间开发,但是我认为您可以构建一个类似的系统,并且在禁用JavaScript的情况下仍可以呈现它。

Louis: Right. So how do you feel about that in the broader Web, I know you were mentioning specifically relating to your users and the type of service you’re creating, but do you feel the trend is moving towards whereas a few years ago most people who were web developers who were blogging about this would’ve said you have to make a site that works with JavaScript disabled, it’s an accessibility concern, it’s all these things; do you think that that has changed significantly or is changing? Do you think that there will be a time when every website will assume JavaScript all the time?

路易斯:对。 因此,您如何看待更广泛的Web,我知道您提到的是与您的用户和所创建的服务类型有关的特定内容,但是您是否认为趋势正在向前进,而几年前,大多数人对此写博客的Web开发人员会说,您必须创建一个禁用JavaScript的网站,这是一个可访问性,这就是所有这些。 您认为这已经发生了重大变化还是正在发生变化? 您是否认为每个网站都会一直使用JavaScript?

Ross: Uh, that’s a good question. Right now I would say it’s definitely not — the thing is it depends a lot on what you’re building, if your site is primarily content and it’s primarily about getting people to link to you and have Google pick up your content, you know you really do need to run without JavaScript. To some extent the browser, the search engine’s going to get better at that, right, and so if Google was able to really accurately pull pages that had JavaScript required apart and get the right content, maybe that’ll even become a non-issue; I’m not really sure if that’s a problem they’re working on. But, in terms of other concerns like accessibility, you know the screen reader software and really all the browsers have gotten so much better at that kind of problem, all the mobile browsers that are coming out these days support JavaScript really well, so I think it’s less of a technical concern, it’s less of a concern from a usability standpoint. Some people may choose to run with JavaScript disabled, and for some, for a lot of websites it probably still makes sense to offer them some experience, but I do think right now the real motivator between working without JavaScript is search engines and sort of the ability to index content.

罗斯:嗯,这是一个很好的问题。 现在,我要说的绝对不是-问题在于很大程度上取决于您所构建的内容,如果您的网站主要是内容,并且主要是让人们链接到您并让Google提取您的内容,那么您知道吗确实需要在没有JavaScript的情况下运行。 在某种程度上,浏览器会对此做得更好,因此,如果Google能够真正准确地将需要JavaScript的页面分开并获得正确的内容,那也许就成了问题了。 ; 我不确定这是否是他们正在解决的问题。 但是,就可访问性等其他问题而言,您知道屏幕阅读器软件以及实际上所有浏览器在此类问题上都变得更加出色,这些天来出现的所有移动浏览器都很好地支持JavaScript,所以我认为从可用性的角度来看,这不再是技术上的关注,而是更少的关注。 有些人可能选择在禁用JavaScript的情况下运行,对于某些网站,为许多网站提供一些体验可能仍然很有意义,但是我确实认为,目前在没有JavaScript的情况下工作的真正动机是搜索引擎和某种索引内容的能力。

Louis: Right. It’s probably also fair to say that you’re reaching a point when if you had JavaScript disabled on your browser a lot of the Internet would be frustrating to you.

路易斯:对。 可以公平地说,如果浏览器禁用了JavaScript,那么很多Internet会让您感到沮丧。

Ross: Oh, yeah. I’m pretty sure Facebook doesn’t really work that well without JavaScript, I’m not sure how well new Twitter fares. But, yeah, I mean it’s definitely the case that a lot of major sites would not work very well without JavaScript.

罗斯:哦,是的。 我敢肯定,如果没有JavaScript,Facebook真的无法正常工作,我不确定新的Twitter票价如何。 但是,是的,我的意思是,如果没有JavaScript,很多主要站点肯定无法正常运行。

Louis: And so you mentioned in there accessibility and screen reader software getting better, is that something you guys have played around with and tested a bit?

路易斯:因此,您提到那里的可访问性和屏幕阅读器软件越来越好,你们在玩弄并测试了一些东西吗?

Ross: It’s not really something we’ve played around with at Stripe, though it was something I paid attention to when I was working full time at Cappuccino; as you can imagine because Cappuccino is not even using HTML, it’s doing everything in JavaScript, it gets particularly difficult to interact with screen readers, they have a pretty difficult time because of some of the tricks that we’re doing. And one of our goals was to make that as good as possible, unfortunately back then when I was working on this about two years ago, the accessibility spec ARIA was just sort of getting started to be implemented in browsers, and so it wasn’t a ton that we were able to make happen. But I’ve talked to some people recently, and my understanding is that they’re working on some newer features in ARIA, or in the next version of an accessibility spec that could be really interesting for frameworks likes Cappuccino that want a lot of control.

罗斯:这并不是我们在Stripe玩过的东西,尽管我在卡布奇诺咖啡全职工作时一直在注意这件事。 可以想象,因为Cappuccino甚至没有使用HTML,而是使用JavaScript来完成所有工作,因此与屏幕阅读器进行交互变得特别困难,由于我们正在做一些技巧,因此他们的生活非常艰难。 我们的目标之一就是尽可能地做到这一点,不幸的是,大约在两年前,当我从事此工作时,可访问性规范ARIA只是在浏览器中开始实现的一种方式,因此并不是我们能够做到的一吨。 但是我最近与一些人进行了交谈,我的理解是他们正在ARIA或下一版本的可访问性规范中开发某些新功能,这对于像Cappuccino这样需要大量控制的框架可能真的很有趣。

Louis: Right. Yeah, I did have a look at ARIA when I was working with SitePoint on the HTML5 and CSS3 book, and it seemed like it was definitely a really good step in that direction, of course it remains to be seen how quickly browsers and screen readers are able to adopt that.

路易斯:对。 是的,当我在HTML5和CSS3书上使用SitePoint时,确实查看了ARIA,看来这绝对是朝着这个方向迈出的非常不错的一步,当然还有待观察浏览器和屏幕阅读器的速度如何能够采用。

Ross: Yeah, I’m not sure what the state of adoption is, but I definitely know that it’s getting better than it was two years ago.

罗斯:是的,我不确定采用的状态如何,但是我绝对知道它的进步比两年前要好。

Louis: Yeah, and I think with all of the browsers moving as quickly as they are now it’s something that’ll really be moving along a lot faster than those of us who’ve been working in the Web for any length of time are accustomed to.

路易斯:是的,我认为所有浏览器的移动速度都比现在快,这确实比我们习惯了任何时间长度的浏览器的移动速度要快得多。至。

Ross: Yeah, actually I’m really excited about the pace that things are moving in the Web, you know IE6 is pretty much a non-factor for most people these days, even IE7 seems to be pretty low traffic on most sites, probably unless you’re doing something like explicitly corporate Internet or targeting specific countries it won’t be very long before IE7 isn’t a major concern for most people. And you know IE10 I think is the next one coming out, and it’s supposed to have really good JavaScript performance, and they’ve got Canvass support now, and so I think we’re moving a lot faster in the Web world than we had been for a really long time.

Ross:是的,实际上,我对Web上的事物移动的速度感到非常兴奋,您知道IE6如​​今对大多数人来说几乎是一个无关紧要的因素,即使IE7在大多数站点上的访问量也很低,可能除非您正在做明确的公司Internet之类的工作或针对特定国家/地区做某事,否则IE7并不是大多数人关注的主要问题。 而且您知道IE10是我的下一个产品,它应该具有非常好JavaScript性能,并且他们现在已经获得了Canvass的支持,所以我认为我们在Web世界中的发展速度比以前快了很多已经很长时间了。

Louis: Yeah, finally. Yeah, I mean that’s been sort of the opinion of everyone I’ve spoken to on the podcast over the past year is just that level of excitement about not only the movement in the browser space, but also in the specifications and in the kind of playfulness in general experimentation that’s going on in the Web.

路易斯:是的,最后。 是的,我的意思是,过去一年来,我在播客上与之交谈的每个人都认为,这不仅对浏览器领域的发展,而且对规格和种类都充满了兴奋。网络上进行的一般实验中的玩味。

Ross: Yeah, and at the same time I think we may be headed for some rocky times ahead because there’s a lot of fragmentation I think going on, not necessarily in a bad way, but like you said, playfulness, there’s a lot of experimentation with things that Google’s putting into Chrome and stuff that Firefox is putting into Mozilla, and those don’t always match up. And I think that there’s been more sort of negative opinion of standards bodies, which I can’t really blame people for because they are part of the reason why things move so slowly, though I guess there’s pretty good reasons for why they move so slowly. But, yeah, I don’t want to — I worry a little bit that we’ll end up in a world where the Web will go back to a sort of ‘works best in this browser’ mode, and I definitely don’t want to see that happen.

罗斯:是的,与此同时,我认为我们可能会遇到一段艰难的时期,因为我认为正在发生很多分裂,不一定是坏事,但就像你说的那样,好玩,有很多实验包括Google在Chrome中使用的功能以及Firefox在Mozilla中使用的功能,而这些功能并不总是匹配的。 而且我认为标准机构存在更多的负面意见,我不能真正责怪人们,因为它们是事物如此缓慢地移动的原因的一部分,尽管我猜想它们如此缓慢地移动的原因很充分。 但是,是的,我不想-我有点担心,我们最终会陷入一个网络将回到某种“在此浏览器中运行最佳”模式的世界,而我绝对不会希望看到这种情况。

Louis: Yeah.

路易斯:是的。

Ross: But there’s a lot of pressure obviously from native apps on mobile platforms like iPhone and Android, so, it’ll be an interesting next few years.

Ross:但是显然,来自移动平台(如iPhone和Android)上的本机应用程序会承受很大的压力,因此,未来几年会很有趣。

Louis: Yeah, definitely. Although it feels to me like there’s some movement towards that kind of thing on the more experimental edge, you know people will make a demo of something that only works in Firefox, only works in WebKit, because they’re using some new feature that’s just been added. But it doesn’t seem like it has the potential to spread out into the broader Web in the same way you saw those kinds of built for Netscape Navigator 4 banners on actual clients’ sites, right?

路易斯:是的,当然可以。 尽管在我看来,正在朝着更加实验性的方向发展这种事情,但是您知道人们会制作一个仅在Firefox中有效,仅在WebKit中有效的演示,因为他们使用的仅仅是一些新功能。已添加。 但这似乎没有潜力像在实际客户的站点上看到的为Netscape Navigator 4标语所构建的那种方式一样,扩展到更广泛的Web中,对吗?

Ross: Yeah. Yeah, hopefully not. You know the biggest potential things I worry about are sort of the future of JavaScript, you know Google’s working on their Dart effort, the next version of ECMA is sort of making its way through committee and there’s still a fair amount of disagreement about what features to put in, yeah, (laughter). But, you know, yeah, I’m pretty optimistic, it seems like — I’m sure everyone remembers the past, it wasn’t really all that long ago, so I don’t think people will be rushing into the same mistakes.

罗斯:是的。 是的,希望不是。 您知道我担心的最大潜在问题是JavaScript的未来,您知道Google正在努力进行Dart工作,下一个ECMA版本正在通过委员会审议,关于功能的问题仍然存在很多分歧是的,(笑) 但是,您知道,是的,我相当乐观,好像-我确定所有人都记得过去,那不是很久以前,所以我认为人们不会急于犯同样的错误。

Louis: Yeah, definitely. Speaking of the speed of browser releases, as we record this the latest release of Firefox came out yesterday; have you had a chance to look at the new developer features in it?

路易斯:是的,当然可以。 说到浏览器的发布速度,正如我们所记录的那样,昨天发布了最新版本的Firefox。 您是否有机会查看其中的新开发人员功能?

Ross: I actually have not looked at it at all.

罗斯:我实际上根本没有看过它。

Louis: Alright.

路易斯:好吧。

Ross: Truthfully I haven’t.

罗斯:真的,我没有。

Louis: I only ask because it happened to come out yesterday and I happened to have you on the line, and it’s a big leap because previously there were no built-in, or very few built-in developer tools, and it was sort of relying on Firebug to provide that.

路易斯:我之所以问是因为昨天碰巧出现了,而我碰巧让你上线了,这是一个很大的飞跃,因为以前没有内置的或很少内置的开发人员工具,而且依靠Firebug来提供。

Ross: Yeah, I know they’ve been away from the Firebug model I think for a lot of reasons, one is that all these other — or a lot of other browsers are coming with built-in tools that are really good, and I think Firebug was also having trouble sort of getting resources to keep working on it.

Ross:是的,我知道我已经离开了Firebug模型,原因很多,原因之一是所有其他这些-或其他许多浏览器都带有非常好的内置工具,我认为Firebug在获取资源以继续进行开发方面也遇到了麻烦。

Louis: Yeah, and keeping up with the faster release schedule.

路易斯:是的,并且要跟上更快的发布时间表。

Ross: Right. Truthfully, though, I haven’t been a big Firebug user since Chrome came out, and in particular I think the developer tools in Chrome are really great, I’m really impressed with how far they’ve come in the last few years. I can remember a time when there was no other option but alert to bugging, and now I think Chrome is really a better debugging experience than Ruby, and then really most of the things I’m doing on the server side.

罗斯:对。 坦白说,自Chrome问世以来,我一直不是Firebug的大用户,尤其是我认为Chrome的开发人员工具确实很棒,我对它们过去几年的发展印象深刻。 我记得有段时间没有别的选择,只能发出bug警报,现在我认为Chrome确实比Ruby更好,而且实际上是我在服务器端所做的大部分事情。

Louis: Hmm, yeah, that’s a valid point, working on the server side you often wind up with almost the equivalent of alert debugging in the sense of just dumping something out and refreshing a page. Whereas working in JavaScript you really do have the power of the console, and that’s one of the things I find interesting about the new Firefox tools is with the addition of syntax highlighting and coding in the new scratchpad thing, it looks like it really has the potential, and they’re taking it in a different direction, not really just copying Firebug or copying the Web Inspector. Obviously it’s only been out 12 hours, and I was sleeping for most of those, so I haven’t actually played with it very much, but it does look promising, so.

Louis:嗯,是的,这是正确的一点,在服务器端工作时,您经常会得到几乎等同于警报调试的效果,即只是转储某些内容并刷新页面。 尽管使用JavaScript确实具有控制台的功能,但是我发现新的Firefox工具有趣的一件事是在新的暂存器中添加了语法突出显示和编码功能,看起来它确实具有潜力,并且他们正朝着不同的方向发展,而不仅仅是复制Firebug或复制Web Inspector。 显然只有12个小时了,我大部分时间都在睡觉,所以我实际上并没有玩太多,但是看起来确实很有希望。

Ross: Yeah, I’m actually definitely interested in looking at it because definitely more competition in the tool space is what’s helped us to get as far as we’ve come now, so it definitely will be exciting to see that pick up.

Ross:是的,实际上我确实对它感兴趣,因为在工具领域绝对更多的竞争是帮助我们达到现在的目标,因此看到这一点肯定会令人兴奋。

Louis: Yeah, absolutely.

路易斯:是的,绝对。

Ross: I’ve always actually been really surprised by how little people know about the tools that are available in the Chrome debugger and the general Web Inspector; people have been using Firebug for so long I think they may not have been looking at how much stuff has happened in Chrome and Safari, and they’ve got a keep analyzer, they’ve got all kinds of tools to tell you about memory problems that you’re having, to tell you about performance problems, it’s sort of like a YSlow equivalent that’s sort of built-in, and you know you’ve got the CPU profiler, there’s really just actually a lot of great stuff in there.

Ross:几乎没人知道Chrome调试器和一般的Web Inspector中提供的工具,我实际上一直感到非常惊讶。 人们使用Firebug已有很长时间了,我认为他们可能没有看过Chrome和Safari中发生了多少事情,他们拥有一个Keep分析器,他们拥有各种工具来告诉您有关内存问题的信息告诉您有关性能问题的信息,就像是内置的YSlow等效项,并且您知道您拥有CPU探查器,实际上那里确实有很多很棒的东西。

Louis: Yeah, I remember again back working on the HTML5 book for SitePoint that I was using Chrome a lot because at that point Firebug didn’t have any way of looking at local storage, or is it the — does it have Web DB access in the Web Inspector, I think it does.

路易斯:是的,我还记得我曾经为Chrome编写过很多SitemapHTML5书,因为那时候Firebug没有任何查看本地存储的方法,或者-它是否具有Web DB访问权限在Web检查器中,我认为确实如此。

Ross: I think they do, yeah, and you can inspect definitely all of local storage and session storage if that’s still in there, and cookies; you can also set like breakpoints on events now, like on DOM events, so you can say like break on events of this type, or break on like HXR’s to this URL, it’s really flexible.

Ross:我认为他们确实可以,如果您仍然可以在其中查看,则可以肯定地检查所有本地存储和会话存储; 您还可以像现在在DOM事件上一样在事件上设置断点,因此您可以说像此类事件上的断点,或者像此URL上的HXR那样断点,这确实很灵活。

Louis: Hmm, yeah, it’s fantastic. And although I haven’t been working — I’ve been working exclusively on the server side for some time, I’ve been sort of looking enviously over into the JavaScript camp watching things like Backbone come onto the scene, and as the debugging tools become so much better, and then sort of getting a little bit itchy to maybe get back on the front-end at some point.

路易斯:嗯,是的,太棒了。 And although I haven't been working — I've been working exclusively on the server side for some time, I've been sort of looking enviously over into the JavaScript camp watching things like Backbone come onto the scene, and as the debugging tools become so much better, and then sort of getting a little bit itchy to maybe get back on the front-end at some point.

Ross: Yeah, you should.

Ross: Yeah, you should.

Louis: Well, it’s been a pleasure having you on the show, Ross.

Louis: Well, it's been a pleasure having you on the show, Ross.

Ross: Yeah, it’s definitely been great to talk to you.

Ross: Yeah, it's definitely been great to talk to you.

Louis: And so if listeners want to find you online what are the main points of contact?

Louis: And so if listeners want to find you online what are the main points of contact?

Ross: You can find me on Twitter at my last name, so that’s @boucher, if you can’t spell it it’s b-o-u-c-h-e-r.

Ross: You can find me on Twitter at my last name, so that's @boucher , if you can't spell it it's boucher.

Louis: (Laughs)

路易斯:(笑)

Ross: I don’t know if you want to put that in at all. I have a website, rossboucher.com, I don’t really put very much up there but I’m working on rebuilding that, so hopefully some day I’ll do that. So, yeah, I guess Twitter is the main way, my email address, and any multiple ways of getting in touch with me are on my website.

Ross: I don't know if you want to put that in at all. I have a website, rossboucher.com , I don't really put very much up there but I'm working on rebuilding that, so hopefully some day I'll do that. So, yeah, I guess Twitter is the main way, my email address, and any multiple ways of getting in touch with me are on my website.

Louis: Alright, well, thanks very much, again, we look forward to seeing what comes out of Stripe, and I’m very excited about having other alternatives for payment online because it’s as I mentioned something that we’ve definitely struggled with, so yeah, best of luck going forward with that, and I look forward to seeing what comes out of it.

Louis: Alright, well, thanks very much, again, we look forward to seeing what comes out of Stripe, and I'm very excited about having other alternatives for payment online because it's as I mentioned something that we've definitely struggled with, so yeah, best of luck going forward with that, and I look forward to seeing what comes out of it.

Ross: Thanks.

Ross: Thanks.

Louis: Cheers.

Louis: Cheers.

Ross: Cheers.

Ross: Cheers.

Louis: And thanks for listening to this week’s episode of the SitePoint Podcast. I’d love to hear what you thought about today’s show, so if you have any thoughts or suggestions just go to Sitepoint.com/podcast and you can leave a comment on today’s episode, you can also get any of our previous episodes to download or subscribe to get the show automatically. You can follow SitePoint on Twitter @sitepointdotcom, that’s sitepoint d-o-t-c-o-m, and you can follow me on Twitter @rssaddict. The show this week was produced by Karn Broad and I’m Louis Simoneau, thanks for listening and bye for now.

路易斯:感谢您收听本周的SitePoint播客。 我很想听听您对今天节目的看法,因此,如果您有任何想法或建议,请访问Sitepoint.com/podcast ,您可以对今天的节目发表评论,也可以下载我们以前的任何节目或订阅自动显示节目。 您可以在Twitter @sitepointdotcom (即站点点dotcom)上关注SitePoint ,也可以在Twitter @rssaddict上关注我。 本周的节目是由Karn Broad和我是Louis Simoneau制作的,感谢您的收听和再见。

Theme music by Mike Mella.

Mike Mella的主题音乐。

Thanks for listening! Feel free to let us know how we’re doing, or to continue the discussion, using the comments field below.

谢谢收听! 欢迎使用下面的评论字段让我们知道我们的状况,或者继续讨论。

翻译自: https://www.sitepoint.com/podcast-149-drinking-cappuccino-with-ross-boucher/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值