I no longer mantain this list. There are lots of other very comprehensive JavaScript link lists out there. Please see those, instead (Google "awesome JavaScript" for a start).
Hello, visitors! If you want an updated version of this styleguide in repo form with tons of real-life examples… check out Trellisheets! https://github.com/trello/trellisheets
“I perfectly understand our CSS. I never have any issues with cascading rules. I never have to use !important
or inline styles. Even though somebody else wrote this bit of CSS, I know exactly how it works and how to extend it. Fixes are easy! I have a hard time breaking our CSS. I know exactly where to put new CSS. We use all of our CSS and it’s pretty small overall. When I delete a template, I know the exact corresponding CSS file and I can delete it all at once. Nothing gets left behind.”
You often hear updog saying stuff like this. Who’s updog? Not much, who is up with you?
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft
,elem.offsetTop
,elem.offsetWidth
,elem.offsetHeight
,elem.offsetParent
#Intro to Meteor JS
- A very brief intro to Meteor
- QuickVote Demo App
- Meteor Growing Pains Example: Main router package not being maintained
This table was created in 2015 so may be quite outdated today.
Feature | Meteor Solution | Alternative Solutions | Description |
---|---|---|---|
Live DB Sync | [livequery][lq] ([mongo-oplog]), [ddp] | RethinkDB, Redis, ShareDB, [npm:mongo-oplog], [firebase], etc. | Push DB updates to client/server. |
Latency Compensation, Optimistic UI | [minimongo][mm] | [RethinkDB][lcr], [mWater/minimongo] (fork, not ws but http, browserify) | Imitate successful db query on client before it is done. |
Isomorphic Code | [isobuild] & isopacks | browserify | Write one code for server/client/mobile. |
Isomorphic Packaging | [isobuild], atmosphere | No more separate packages for server & client. Get bower + npm + mobile. |
var gulp = require('gulp'); | |
var browserSync = require('browser-sync').create(); | |
var setupWatchers = function() { | |
gulp.watch(['./app/views/**/*.erb', | |
'./app/assets/javascripts/**/*.js'], ['reload']); | |
gulp.watch(['./app/assets/stylesheets/**/*.scss'], ['reloadCSS']) | |
}; | |
gulp.task('reload', function(){ |
.PHONY: dev dev-all dev-build dev-build-all prod prod-all prod-build prod-build-all | |
# Dev | |
# Runs the built image with dev settings. | |
dev: | |
@export METEOR_SETTINGS='$(shell cat ./app/settings.json)'; \ | |
docker-compose up --no-deps -d app | |
# Runs all built services. |
Picking the right architecture = Picking the right battles + Managing trade-offs
- Clarify and agree on the scope of the system
- User cases (description of sequences of events that, taken together, lead to a system doing something useful)
- Who is going to use it?
- How are they going to use it?