Skip to content

Instantly share code, notes, and snippets.

1703 Front End Prework

Student Prework Gists

Add your name and a link to your own prework gist as a comment to this gist.

ES6 Reading Homework

  • What is ES6?
    • ES6 is the most recent version of ECMAScript, which is a scripting language specification that JavaScript uses for implementation. ES5 was released in 2009, and ES7 is planned for the middle of 2016.
  • What is Transpilation and how does it relate to ES6?
    • Transpilation is taking source code from one language and translating it into another language. It relates to ES6 because some browsers (or versions of browsers) do not support ES6, but they do support ES5. There are tools, such as Babel, that transpile your ES6 code into ES5 so you can use ES6 immediately without fears of unsupported broswers.
  • Looking at the ES6 Features link below, discuss one update from ES5 and if it seems useful/superfluous
  • It's hard to say what is useful and waht is superfluous since I haven't used many of these tools yet... Template Strings is probably superfluous to people who have written JS for a ling time, but coming from Ruby it is obviously more natural (not so many +'s.
  1. What is an INNER JOIN?
  1. What is a LEFT OUTER JOIN?
  1. What is a RIGHT OUTER JOIN?

Asset Pipeline Overview

  • What are assets?
    • They are javascript files, css files, and images
  • Where do assets live? (app/assets, lib/assets, vendor/assets)
    • Assets can live in three different places: app/assets, lib/assets, and vendor/assets
  • Why do we have the asset pipeline?
    • To make the assets faster to use on the server
  • What is Sprokets?
  • Sprokets is a gem that is included in Rails by default (it concatenates, minifies, and then preprocesses JS and CSS files)

Setting Group Expectations

Group Member Names: Kerry Sheldon, Karina Gonzalez, Robbie Jaeger

  1. When are group members available to work together? What hours can each group member work individually? Are there any personal time commitments that need to be discussed?
  • Everyone can be at Turing until 6:00-6:30pm and then work from home individually. There are no big personal time commitments foreseen at this point.
  • If we want to leave at 6:30pm, make sure we stop development/code work at 6:00pm and then wrapup the day together and plan next steps (so we can actually end at 6:30pm).
  • Re-DTR every other day to make sure everyone is on the same page and things are going well.
  1. How will group members communicate? How often will communication happen, and how will open lines of communication be maintained?
  • Find an example commit from your Rush Hour project which was dealing exclusively with a Git problem rather than a feature or bugfix (e.g. "Fix merge commit", "Really add file...", "Merge master multiple times in a row", etc)

    • Sometimes we had to commit changes again because the person who commited wasn't on the correct branch or didn't have the right changes on their branch.
  • What do you believe the root cause of some of these issues were?

    • Possibly not looking at the branch before commiting.
  • How did they impact your ability to work on the project?

    • We were a bit unsure if we had the actual changes we wanted when we merged to master and pulled onto everyone's machine.
    • Sometimes to merge changes from multiple people we just sent changes over slack so that only one person was changing a file at a time.

Agile Manifesto Workshop

How does the Agile model compare to the Waterfall model?

Agile promotes continues and early delivery of a viable product. The process demands that you can tolerate changing requirements. In Waterfall, the final product could be developed over the course of months or years, and you would not see a working product until the end. In Agile, you want to have sprints or iterations that produce meaningful value to the customer that you can show.

Why do you think Agile is so popular in software development?

In software development, the requirements can change easily and frequently. Also, software is very easy to adapt to changing requirements compared to modifying a physical product in manufacturing, for instance.

Do you think Agile is applicable to all industries?

Agile is not applicalbe to every part of every industry, but it can be adopted by small teams. For instance, if you have an assembly line, then the line itself works on a Waterfall process. However, developing the ide

  1. Define CRUD.
  • Create, Read, Update, and Delete. This methodology gives full functionality for an object in any web application.
  1. There are seven verb + path combinations that are necessary in a basic Sinatra app in order to provide full CRUD functionality. List each of the seven combinations, and explain what each is for.
  • /tasks GET - lets the user see all of the tasks that have been created (Read)
  • /tasks/:id GET - lets the user see a single task and its contents (Read)
  • /tasks/new GET - gives the user a form to create a new task (Create)
  • /tasks POST - submits a new task to the database (Create)
  • /tasks/:id/edit GET - gives the user a form to edit an existing task (Create)
  • /tasks/:id PUT (PATCH) - submits edits/updates for an existing task (Update)