Skip to content

Instantly share code, notes, and snippets.

@aackerman
Last active October 19, 2015 14:30
Show Gist options
  • Select an option

  • Save aackerman/7d06d07aa700839998b5 to your computer and use it in GitHub Desktop.

Select an option

Save aackerman/7d06d07aa700839998b5 to your computer and use it in GitHub Desktop.
Front-end application parts
  • Application specific components

  • Application specific business logic modules

  • Declarative Router

  • Global application events - logout, deauthorization, theme change, etc.

  • Stores/Collections/Caches - Objects in memory that are global application state

  • Backend/Storage/Persistence Abstraction - Rest adapter, Models, JSON serializers

  • Actions - socket events, taps, clicks, keyboard events all need to be able to perform the same action

  • Feature compilation abstraction - Dead code elimination, minification

  • Module compilation abstraction - Webpack, Browserify, Native ES6 modules

  • DOM and event binding abstraction - Ember, Angular, React

  • Utility libraries

    • lodash/underscore
    • moment
    • bluebird
    • logging
    • cookie handling
    • document/window abstraction
    • setTimeout/setInterval abstraction
    • Translation/Internationalization/Localization
    • Accessibility
  • Shared Components

    • Dropdown
    • Datepicker
    • Buttons
    • Form Fields
    • Autocomplete
    • Select
    • Modal
    • Progress/Loading
    • Confirmation
    • Navbar
    • Breadcrumb
    • Pagination
    • Media Object
    • Tabs
    • Wizard workflow
    • Error handling visuals
  • Visuals

    • Fonts
    • Color Scheme
    • Spacing/Padding/Margins
    • Images/Videos/Icons
  • Build tooling

    • File naming conventions
    • Folder structure conventions
    • Linting (eslint)
    • Static-type checking (flow, typescript)
    • Compilation/Minification
      • SVGs
      • Images
      • JS
      • CSS
      • Fonts
    • Static gzip/zopfli
    • Apache/Nginx server config
      • Cache headers
      • Redirects
    • Hashing/fingerprinting filenames
    • CDN delivery
  • Unit testing

    • Karma/Jasmine/Jest/Mocha/Chai/Sinon
      • Structure
      • Assertions
      • Mocks/Spies
  • Full-stack Acceptance Testing

    • Capybara
    • Selenium
    • Chromedriver
    • PhantomJS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment