- glen - chess - multi player
- peter - printing website - order
- kat - flat ui colors - firebase
- kevin - react dashboard - pwa
- shailesh - recipe app - search dish name or ingredients - save - api
- tim - portfolio - wii theme
- ben - chat app of sort - chat room
- debbie - custom bag - built your own bag
- hailey - online garage sale - gumtree
- kee - note taking
Note: This can be a pair programming activity or done independently.
Developing web apps requires a degree of comfort navigating and interacting with your operating system through the command line, and similar to how you'll be practicing writing and running Ruby and JavaScript later in the course, we'll be practicing creating, modifying, and moving files and folders in your terminal to get you practicing Unix commands.
For your first lab, you're going to create files and folders to organize your favorite books, movies, and music - then, you're going to reorganize them.
You should have the following completed on your computer before the workshop:
- Install the AWS CLI.
- Have Node.js installed on your system. (Recommended: Use nvm.)
- Install
yarn
withbrew install yarn
.
- Install
- Create an AWS account. (This will require a valid credit card.)
- Create a Travis CI account. (This should be as simple as logging in via GitHub).
// shorter console.log | |
const log = (...args) => console.log(...args) | |
// arrays | |
const ingredients = ['bread', 'cheese', 'tomato'] | |
// shallow clone using slice | |
log(ingredients.slice(0)) |
The purpose of design is to allow you to do design later, and it's primary goal is to reduce the cost of change.
- Single Responsibility Principle: a class should have only a single responsibility
- Open-Closed Principle: Software entities should be open for extension, but closed for modification (inherit instead of modifying existing classes).
- Liskov Substitution: Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
- Interface Segregation: Many client-specific interfaces are better than one general-purpose interface.
This a collection of interesting links found in The Imposter's Handbook by Rob Conery.
Content:
class Dashboard extends Component { | |
constructor(props) { | |
super(props) | |
// bind? slows down the initialization path, looks awful | |
// when you have 20 of them (I have seen your code, I know) | |
// and it increases bundle size | |
this.handleStuff = this.handleStuff.bind(this) | |
// _this is ugly. |
Should be work with 0.18
Destructuring(or pattern matching) is a way used to extract data from a data structure(tuple, list, record) that mirros the construction. Compare to other languages, Elm support much less destructuring but let's see what it got !
myTuple = ("A", "B", "C")
myNestedTuple = ("A", "B", "C", ("X", "Y", "Z"))
using mocha/chai/sinon for node.js unit-tests? check out my utility: mocha-stirrer to easily reuse test components and mock require dependencies