Skip to content

Instantly share code, notes, and snippets.

@tjlytle
Last active April 19, 2018 17:11
Show Gist options
  • Save tjlytle/ff24a86829670fae7a0e63391703509b to your computer and use it in GitHub Desktop.
Save tjlytle/ff24a86829670fae7a0e63391703509b to your computer and use it in GitHub Desktop.

Hands On API Design

Tutorial Requirements

Don't stress over this. Even if you come without a laptop, you should be able to learn from the tutorial.

  • A laptop with an internet connection, pen, and paper will be all that’s needed to activly participate in most of the tutorial.
  • If you want to follow along during the coding, any modern(5.3+) PHP development environment will work.
  • A docker image and associated configuration will be provided as well (have the latest docker and docker-compose installed if you want to use this).

Example Source: https://github.com/tjlytle/api-example/

Example Data Below (add to ./conference_data/) 👇

day start stop room title name company description keywords type level bio location Twitter Facebook Linkedin
04/19/2018 9:00 AM 12:00 PM Longhorn Start Testing Your PHP Code Jason McCreary In this workshop we’ll cover different ways to test your PHP code. Our focus will be the tools and writing tests – we won’t get caught up in all the testing dogma. Instead, we’ll create a foundation in tools like PHPUnit, Mockery, and Codeception so you can make the decisions about what testing tools and strategies work best for you and your code. So if you’re looking to start testing your PHP code, or learn other PHP testing tools, this workshop is for you. Workshop gonedark
04/19/2018 9:00 AM 12:00 PM Stadium Pentesting For Developers Chris Cornutt While secure development practices are an important part of keeping your application and its data protected, you also have to prove your defenses are working. Developers are used to things like unit testing and even functional testing but some feel out of their depth when it comes to security testing. Effective security testing, or pentesting, is easier than you might think. We’ll start by introducing some of the techniques and tools you can use to test your own applications and finish with a contest to see how much you’ve learned. Workshop
04/19/2018 9:00 AM 12:00 PM Bevo Better and Faster: TDD-ing a Ride-Hailing Application w/PHPUnit, Symfony, and Doctrine Chris Holland Imagine building an application without having to mess with a Web Browser, a REST client or a MySQL client. What if you could build full-blown functionality with realistic data operations within the comfort of a Unit Test Harness? What if this meant shipping code earlier and more frequently than you ever have before? Building upon concepts outlined in this talk: http://bit.ly/tdd-talk-2 , and leveraging an evolving “Kata” for building a “Ride-Hailing Application”, this exercise will walk thru a rapid-development example from a “clean-slate” Symfony3 project, with just enough bootstrapping to enable Test-Driven Development with PHPUnit & Doctrine. Workshop chrisholland
04/19/2018 1:00 PM 4:00 PM Bevo Deep Dive into Codeception Testing Michael Bodnarchuk Codeception is a powerful framework for testing. It allows you to test your application on all levels: unit, functional, acceptance; it can also handle API tests as well, and be used as part of the BDD process. Codeception testing is neither hard nor time-consuming, but it has so many features that it is easier to see them all at once than to learn everything from the documentation. Spend a few hours learning it and start writing tests effectively! In this tutorial, we will cover all the most interesting gems of Codeception. * Functional testing with framework (Laravel), working with Database * REST API tests inside a framework * Acceptance tests with Selenium WebDriver * Using PageObjects to refactor tests * And using BDD practices to make meaningful tests. * Extending Codeception Workshop
04/19/2018 1:00 PM 4:00 PM Stadium Hands On API Design Tim Lytle PhoneBurner Building your next mobile app, SaaS product, or web app using an API first philosophy? Already maintain an API and want to step back and think about API design? In this tutorial we’ll build and iterate over a simple API, exploring concepts that give your API a solid foundation: authentication, REST-based design and workflows, practical hypermedia, versioning, API request/response formats. Because your API may start out serving the needs of internal mobile clients, or single page web apps, but one day (sooner than you think) you’ll be turning it into a public API. Get ready to attend here: https://gist.github.com/tjlytle/ff24a86829670fae7a0e63391703509b api,design Workshop intermediate Tim likes making things, is a lover of well built APIs, and hates the top reply. A former mercenary developer, he's built numerous applications specializing in API consumption and creation. He tweets sporadically from @tjlytle. tjlytle
04/19/2018 1:00 PM 4:00 PM Longhorn Practical hands-On Accessibility Testing Nic Steenhout Testing for web accessibility can feel daunting when you aren’t used to it. But with the growing requirements for sites to meet accessibility guidelines, it has become an unescapable part of a developer’s life. Accessibility should be seen as a challenge, rather than a chore. This workshop will demonstrate an accessibility testing workflow that can be integrated in coding workflow, and will include a review of automated testing, and hands-on manual testing using a variety of tools, from using the keyboard to using a screen reader application. We will work on real life sites, as well as some code snippets. Participants will leave the workshop with a solid understanding of common accessibility barriers and methods to test for, and remediate, these barriers. Workshop vavroom
04/20/2018 9:00 AM 9:55 AM OpenShift Stop Doing It Wrong Boyd Hemphill You don’t have an Agile Engineer, so why do you have DevOps Engineers? Are they supposed to engineer the DevOp? Why is it that your DevOps engineers look like a less angry systems administrator? Is Jenkins really that awesome? Has Docker sprinkled Unicorn droppings on the infrastructure? You’ve had DevOps Engineers for a couple years now, but the number and complexity of problems is still increasing. Is DevOps just a scam? Start with a simple comparison: Developers solve problems by writing many lines of code. Ops solve problems by reading about settings for hours and making a single change. What are the other personalities required to make successful systems? These personalities belong on the same project at the same time, not in some sequence that absolves previous steps from downstream responsibility. What does DevOps really look like in a successful software organization? Keynote
04/20/2018 10:00 AM 10:50 AM OpenShift Understanding Docker for Development Jessica Mauerhan Docker is often lauded as a tool for deploying and running applications – but it’s also extremely useful for your local development process. Whether you’ve never used Docker, or you’ve been using it for a while but aren’t quite sure how it all actually works, this talk will give you an in-depth understanding of Docker and how to use it locally. We’ll cover creating your own Dockerfiles, building, tagging and pushing images, running containers, networking multiple containers with Docker Compose and debugging your setup. Talk jessicamauerhan
04/20/2018 10:00 AM 10:50 AM Balcones Essential AWS for PHP Applications Michael Moussa Have you ever thought “I’d like to use AWS for my PHP application, but it’s so complicated!”? With over 70 distinct services available, how can you possibly learn them all or even decide which ones you need in the first place? Join me in this session as we grow a simple LAMP server into a scalable, fault-tolerant, highly-available, secure application stack on AWS. Whether you’ve already got some experience with AWS, or all you know so far is how to spell it, you’ll walk away from this talk armed with the essentials for running PHP workloads on AWS! Talk michaelmoussa
04/20/2018 10:00 AM 10:50 AM Stadium Open Source Commerce Melee Ben Marks Aimeos (Laravel). Drupal Commerce. Magento. OSCommerce. PrestaShop. Shopware. Sylius. WooCommerce. Bespoke. SaaS. It’s no doubt that when a website needs a commerce component, open source provides the most control – but how do you know which one is the best choice? While it’s easy to go with a system built on your favorite framework, it may not be the best choice based on business needs. This talk takes an objective look at the open source commerce ecosystem and provides a set of questions and guidelines to use to find the right system for your application. Talk
04/20/2018 11:00 AM 11:50 AM OpenShift Yak Free API Tip & Tricks You Can Use Right Now Tim Lytle PhoneBurner API tools, services, and techniques abound, but in this 99% Yak-Shaving™ Free session, we’ll focus on the ones that require little (or no) setup, and that you can be using before I stop talking. Whether you’re building or consuming APIs, there will be something for you. If you’re new to APIs, you’ll leave with a bunch of things you can use right now. If you’ve been doing this for a while, you’ll probably see a new way to simplify something that’s bugged you in the past. api,tools Talk beginner Tim likes making things, is a lover of well built APIs, and hates the top reply. A former mercenary developer, he's built numerous applications specializing in API consumption and creation. He tweets sporadically from @tjlytle. tjlytle
04/20/2018 11:00 AM 11:50 AM Balcones Introduction to PHP Extensions Derick Rethans In this presentation, we take a first look at writing PHP extensions. Using step-by-step examples, we’ll take a function written in PHP and convert them into a loadable extension using C. We’ll then test both versions and compare the results. After seeing the size and scope of the benefits that can be realized with only a few minor changes, you’ll want to try it out for yourself. You’ll also understand why we start with simple things, and not try to rewrite all of Symfony in C. Talk derickr
04/20/2018 11:00 AM 11:50 AM Stadium The Container is a Lie! Larry Garfield Containers are all the rage these days. They’re fast, they make deployment easy, they handle dependencies, they slice, they dice, they make julienne fries! But… what are they? What exactly is a container and how does it work? Just how does a container differ from the “old” silver bullet, virtual machines? Here’s a hint: It has nothing to do with boats, or whales, or shipping. That’s all marketing fluff. Containers are simply a shorthand name for leveraging newer features of operating system kernels that let the OS lie to programs about how they’re running. In fact, all of modern software is built on lies. That’s what’s useful about it! To understand how that works, why it’s so useful, and where it’s not, let’s dive into how software actually works on a modern Linux system to see how those kernel features fit into the big picture, building up to “containers” along the way. Pull back the veil of lies and see how your computer really works. Talk Crell
04/20/2018 1:00 PM 1:45 PM OpenShift Friday Afternoon Keynote Samantha Quinones Afternoon keynote Keynote
04/20/2018 2:00 PM 2:50 PM OpenShift Lessons Learned Building the Composer Internals Jordi Boggiano This session will dive into Composer’s guts to see which choices we made worked and which ones did not. After seven years and a few hundred thousand users, the Composer code has been through many iterations, problems and successes. Let’s have a retrospective to see what we can learn from it. Talk seldaek
04/20/2018 2:00 PM 2:50 PM Stadium MySQL Without The SQL -- Oh My! Dave Stokes MySQL can now be used as a NoSQL, schema-less document store. The MySQL Document Store was introduced with MySQL 5.7 along with a new shell and API to make life for developers easier. This means no more embedding ugly SQL code in your beautiful code, having to normalize data, or setting up tables before you can start using the most popular database on the web. You no longer need DBA-level skills to set up your database – just open a document collection and start coding. This session will cover what you need to start today! Talk
04/20/2018 2:00 PM 2:50 PM Balcones Go Fast with PHP Prepared Statements Ed Barnard With high-volume data wrangling, it pays to remember the fundamentals with PHP prepared statements. We walk through my benchmark showing techniques leading to 10X performance improvements. Meanwhile, when MySQL tables quickly grow by millions of rows, table storage space becomes an issue. Our table design must focus on keeping these tables compact and efficient. Here, too, prepared statements simplify both coding and table design. This talk uses CakePHP 3’s excellent support for PHP prepared statements, but all concepts are native to PHP and apply to any project striking this use case. Talk ewbarnard
04/20/2018 3:00 PM 3:50 PM OpenShift Writing Code That Lasts… Jason McCreary “Clean Code” is code that communicates. But how do we write clean code? In this talk we’ll look 9 simple practices that will help you write clean code. We’ll see how each one reduces complexity and improves readability. Don’t worry though, we’re not just going to “talk”. All of these practices will be shown with live coding demos to reveal all of the little steps involved so you can go and start cleaning up your own code. Talk gonedark
04/20/2018 3:00 PM 3:50 PM Balcones Succeeding as a Freelance Programmer Stefka Newman How to get paid? Should I charge per project or hourly? How much to charge? Where to find clients? How to get the project done? Which programming field to choose? I started freelancing since I was 18 and I grew into creating a company with a steady revenue stream. Starting out can be a daunting task and many give it up because they can’t find clients or get paid too little, or worst – get stifled! I will talk about the most serious problems I stumbled upon and how to overcome or better yet, avoid them! Talk
04/20/2018 3:00 PM 3:50 PM Stadium Securing Legacy Applications Chris Cornutt It’s common to hear people preach “plan in security from the start” and in an ideal world, you can. Here in the real world, though, we have legacy code that’s gathered over time and comes with a host of problems – (in)security included. What do you do when you’ve been commissioned with securing an application that’s showing its age? Follow along with me as I step you through a list of tips and tricks you can use to discover security issues in your application and effectively fix them and secure your application. Topics will include some of the most common vulnerability types, key places to look for potential issues and arm you with the tools and knowledge you’ll need to refactor that legacy application into something secure. Talk
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment