Skip to content

Instantly share code, notes, and snippets.

@BrandonBoone
Last active June 4, 2016 12:25
Show Gist options
  • Save BrandonBoone/2c9bd286441976377479e775ce8ad79f to your computer and use it in GitHub Desktop.
Save BrandonBoone/2c9bd286441976377479e775ce8ad79f to your computer and use it in GitHub Desktop.
My notes from the Buzz JS conference

BuzzJs

People

Quotes

  • Software is eating the world! - Marc Andreessen
  • Daniel Zen
    • JavaScript is eating the world!
    • Separating HTML and JS is separating technologies. It is not separation of concerns
    • Apple is purposely slowing down their browser so that it doesn't compete with their app store?
  • Sandro
    • Successful APIs are about grammar - sandro
    • Standards and patterns are an anti-bikeshedding tool
    • Maybe the web eats its own tale. Automate everything. Apps should build themselves.
  • Andres Dominguez
    • Shipping quality software is your most important job
  • if you wish to make apple pie from scratch, you must first create the universe - Carl Sagan
  • Alex Castillo
    • I build software to help understand human behavior

Tools

Embedded Systems

  • Espruino
  • V7
  • DukTape
  • JerryScript (Pebble)
  • MuJS

New Stuff in JS

Single Threaded JS

Apps

Client Side Caching of Data

  • Data does not change between the reloads
  • I do not interact with the data in the first 500ms
  • Cache HTML and re-load on page. Re-use on load vs Isomorphic/Universal JS?
    • Service Worker is Better: Bottle-service
  • Serverside rendering is overrated?

Data Synching & Offline Web Apps

  • PouchDB
  • Hoodie API

Functional Reactive Programming

Realtime

Things to look for when building web apps

  • DOM abstractions
  • Modular design for smaller size
  • Hydration for quick start ups
  • Offline support
  • Reactive streams
  • Functional purity
  • Real time support
  • Simple to try

JSON Schemas

MetaData

  • formats: Example: Date-Time RFC 3339
  • regex: acceptable data

JSON Validators

Mocking

API Versioning

Schema validation is very fast. Version inference if the schema passes instead of rigid API version URLs

Schema Delivery

via OPTIONS tag vs CORS requests.

I'm busy building a REST API (in php as it happens) and ended up adding OPTIONS support for resources because it's required by CORS (Cross Origin Resource Sharing). My API responds to OPTIONS requests with both "Allow: (method list)" and "Access-Control-Allow-Methods: (method list)" headers in the response. So it can handle REST style OPTIONS requests and CORS OPTIONS requests. To support CORS I also had to tweak things so that OPTIONS requests don't require http authentication (which I do require for other methods)..

UI Generation

Hyper Schemas

  • Uber Schemas
  • Response schema validation
  • RAML by swagger
  • schema comparisons
  • JSON-LD (Linked data)

Free(ish) APIs

  • Filesystems S3
  • Databases Mongolab
  • Email Sendgrid | mandrill
  • SMS Twilio
  • Transactions Stripe

Testing

Unit Tests

  • Test in isolation
  • Fast
  • Stable
  • Easy

E2E Tests

Testing the entire app / all of the glue.

Options:

e2e tests are not free. If you spend more time on maintenance vs testing then you need to rethink your strategy.

Write the minimum amount of tests that will allow you to go to production.

Dependency flow (Test independence)

Create -> Search -> Read -> Update -> Delete

Where

  • Locally
  • Continuous Integration
  • Run on pre-submit
  • How often?
  • Who is going to clean up?

Recommendations

  • Make your tests independent at the suit level
  • Make them small
  • Use Page Objects
  • Don't set something you can test with a unit test
  • Every test has a cost.
  • Test the minimum amount that will give you confidence

Neuro Tech

React Native

  • Layout Options: Absolute and Flexbox
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment