![]() This is the right class but you're just calling a method that doesn't exist in it. You expected to have a string, you have an integer. For example, this will happen if you have the wrong class, not the one that you expected. NoMethodError is what happens in Ruby if you're trying to invoke a method on a class which doesn't have this method. As the discussion happened, the discussion was that the most common way it breaks is by seeing something called NoMethodError in production. This was a discussion about some specific user feature. In this environment, what was the problem that the type system was supposed to solve? Here's an email from Pre-Sorbet times at Stripe. Now scale of engineering at Stripe - again, hundreds of engineers, thousands of commits per day, million lines of codes. Majority of the code lives in 10 macroservices, and majority of new code goes into that. We believe that you get benefits by having a single versioning scheme while having clear notion of dependencies, and while being able to do all the changes in the same repo and the same PR. Most of our product is a monorepo, and that's intentional. We're using our own framework, our own, our own layer, our own things that we believe work best for us. We want to have our codebase be maintainable and uniform. ![]() You can use the things that we consider to be sane in a company with a lot of engineers. Now, Ruby at Stripe - Ruby is the primary language used at Stripe. Customer reports more developer productivity after deploying Stripe, and as always, we're hiring. We have hundreds of people in 10 offices around the world. There are billions of dollars processing every year through Stripe, and more than 80% of Americans adults bought something in Stripe in 2017. We run in 32 countries and millions of businesses worldwide use us. That's hard, and companies use us to solve this problem for you. You want to make sure that you're correctly doing things with credit cards them. You want to make sure that you're compliant. If you want to accept payments on the internet there are a lot of things that needs to be handled there to do it correctly. Stripe is a platform that external developers use to accept payments. We'll start with the context in which this is possible, which is Stripe. During the talk please at any moment feel free to stop me and ask questions. My work is to make sure that engineers at Stripe have the most productive years of their career there. ![]() My PhD thesis was Dotty, which is going to be called Scala 3, and now I'm working on developer tooling at Stripe, which includes everything from processes, core standard libraries, coding conventions, CI, everything. ![]() I've earned a PhD in compiler construction working with Martin Odersky. In this talk we'll discuss, why would we do that, and how did we do that.įirst of all, who am I? I'm Dmitry. Sorbet is a type system and a typechecker that was built at Stripe for Ruby. ![]()
0 Comments
Leave a Reply. |