We care about writing quality code, we have read the definition of SOLID principles several times and we know how important they are for writing good OO code, but are we really following those principles? Is there a pragmatic way of following them in our day to day jobs or are they just some principles a few computer scientists wrote? Fortunately there is, SOLID principles are not just good ideas , they are intended to help us write better code, enjoy our jobs more and be happy programmers. But, where should we start? We should start where we always do. By writing tests, yes, for real. As Kent Beck says "TDD doesn't drive good design. TDD gives you immediate feedback about what is likely to be bad design", so we need to go a step further. In this talk we will see how writing tests is not just *doing TDD* is about having good test coverage, it's also about driving our code towards good design, one that follows SOLID principles.
Let's do this thing. What is pair programming? Won't software projects take twice as long or cost twice as much with pair programming? Do I pair with the same person every day? Who owns the code? How do performance reviews work? Do we pair on *everything?* What do I do if my pair goes home sick? What do I do if I can't stand my pair? What if my pair smells bad? What if my pair smells GOOD?! I've given presentations at many conferences, Meetups, and companies on topics ranging from Agile team management to Android messaging frameworks. My presentations inevitably grind to a halt once I mention that I pair program: I'm peppered with questions! I'll answer any and all questions about pair programming and remote pair programming, from the profound to the silly. I have no doubt that we will fill the allotted time with sage advice, educational anecdotes, and your own stories about pair programming.
Understanding of CRuby source code has profound effects on every Ruby developer. In my talk, I will show you how to build Ruby from source. I will explain how to install and configure your new Ruby build on Mac and Linux. I will walk you through CRuby source code and introduce you to a few of the most important CRuby files. I will show you how to hack CRuby and modify some of the fundament Ruby classes in C. I will demonstrate how to write complete Ruby classes in C. Finally, I will show you that CRuby code can run 100 times faster than Ruby code. I hope that this talk will inspire you to learn more about CRuby and hack it on your own.
As Rubyists, we see the value in refactoring. When Fullscreen started experiencing serious growth and our team started to grow with it, the excitement and glamour of being a successful startup quickly wore off as a far-reaching engineering initiative began looking insurmountable. In this talk, I will discuss how applying software development best practices to how we ran our team turned it into one that runs at scale, shipping new things more frequently than ever before with less stress than ever.
"I didn’t have time to write a short letter, so I wrote a long one instead." -Mark Twain Writing small classes is hard. You know you should, but how do you actually do it? It's so much easier to write a large class. In this talk we'll build up a set of small classes starting from nothing using a set of directed refactorings applied as we build. All while keeping our classes small. We'll identify abstractions yearning to be free of their big object cages. In the process we'll also see how basic patterns such as composition, delegation and dependency injection emerge from using small objects. We'll even write some tests too.
Despite programs like RailsBridge and RailsGirls, gender disparities remain a persistent problem in technology. In the last year the coding community has been rocked by several incidents of shockingly overt sexism. The topic is uncomfortable for everyone, and attempts to address it often create new unpleasant conflicts. We will discuss the experiences of women in our community, and address the understandable (but often unhelpful) reactions men have to the issues. We will offer practical strategies and tools to address these issues and create a healthier community. Co-presentation by Evan Dorn and Hannah Howard of Logical Reality Design, Inc.
Creating games is crazy fun and dirt simple with Ruby. You will leave this session with a working game; no previous game development experience necessary. We will introduce basic concepts of game programming and show how to implement them using the Gosu library. This includes the game loop, sprites, animation, camera movement and hit detection. We will build a complete game, so you might want to bring your notebook and follow along.
Why are so many Rubyists buzzing about Go? This hot new language that grew out of Google just a few years ago is taking the world by storm and is generating a lot of buzz in the Ruby community. In this talk we'll look at the highlights of Go and try and figure out what the hype is all about, and we'll do with a keen Rubyist eye. We'll also look at where it would make sense in our Ruby/Rails projects to extend them with this highly concurrent, and performant language. What do you say my fellow Rubyists; are you up for the challenge of learning something a bit different?