initial attempt at classifications

parent 144b78a6
<span class="usa-label" style="background-color: #2e8540;">Defaults</span>
<span class="usa-label" style="background-color: #cd2026;">Required</span>
<span class="usa-label" style="background-color: #f9c642; color: black;">Standards</span>
<span class="usa-label">Suggestions</span>
......@@ -4,6 +4,29 @@ permalink: /
---
A set of guidelines and best practices for an awesome engineering team
## How we classify best practices
These documents are structured by topic; under each, we include "Required",
“Standards”, “Defaults”, and “Suggestions”.
{%include components/tag-required.html %} are practices that *must* be done for
regulatory, legal, compliance, or other reasons.
{%include components/tag-standards.html %} are practices that have a strong consensus across 18F; they
should generally be followed to ease the ATO process and make on-boarding
simpler.
{%include components/tag-defaults.html %} are safe selections that tend to be used by a large number of our
projects; you may find yourself with a better or more tailored solution,
however.
{%include components/tag-suggestions.html %} contain examples that have worked well on a project or two;
they're not widely used enough to be defaults, but are worth considering.
_Note: we've adopted the above classifications but not all the topics have been
updated to use them. Please submit a pull request to recommend particular
classification for discussion._
* [Front-End Disciplines]({{site.baseurl}}/frontend)
* [Third-Party Integrations]({{site.baseurl}}/integrations)
* [Workflow Best Practices]({{site.baseurl}}/workflow)
......
......@@ -6,13 +6,13 @@ sidenav: js
The word "dependency" refers to all of the frameworks, libraries, and other tools that your project relies on. *Dependency management* is the process by which tools are incorporated into your project, removed and updated (for instance, when you need a new version of [jQuery]). Here are the tools that we recommend for managing dependencies:
## Bower
__Do not use Bower.__
{%include components/tag-standards.html %} __Do not use Bower.__
It's not needed and should be phased out and replaced by npm. More information can be found here: [Why We Should Stop Using Bower – And How to Do It](http://gofore.com/ohjelmistokehitys/stop-using-bower/).
## npm
[npm] informally stands for *N*ode *P*ackage *M*anager, and is the package manager node uses. Its usage is very similar to Bower because the latter was inspired by the former.
{%include components/tag-defaults.html %} [npm] informally stands for *N*ode *P*ackage *M*anager, and is the package manager node uses. Its usage is very similar to Bower because the latter was inspired by the former.
### npm instructions
1. Get [Node.js].
......
......@@ -4,6 +4,7 @@ sidenav: js
---
# Frameworks
## Angular
{%include components/tag-suggestions.html %}
AngularJS (commonly referred to as "Angular") is an open-source web application framework maintained by Google and by a community of individual developers and corporations to address many of the challenges encountered in developing single-page applications ([Wikipedia](http://en.wikipedia.org/wiki/AngularJS)).
#### When to use:
......@@ -36,6 +37,7 @@ AngularJS (commonly referred to as "Angular") is an open-source web application
## Backbone
{%include components/tag-suggestions.html %}
Backbone.js is a JavaScript library with a RESTful JSON interface and is based on the model–view–presenter (MVP) application design paradigm ([Wikipedia](http://en.wikipedia.org/wiki/Backbone.js)).
#### When to use:
......@@ -62,6 +64,7 @@ Backbone.js is a JavaScript library with a RESTful JSON interface and is based o
## React
{%include components/tag-suggestions.html %}
React (sometimes styled React.js or ReactJS) is an open-source JavaScript library for creating user interfaces that aims to address challenges encountered in developing single-page applications ([Wikipedia](https://en.wikipedia.org/wiki/React_(JavaScript_library))).
#### When to use:
......@@ -79,6 +82,7 @@ React (sometimes styled React.js or ReactJS) is an open-source JavaScript librar
## Flux
{%include components/tag-suggestions.html %}
Flux is not a framework, nor is it M**VC. It's a software architecture for
writing complex single page applications.
......
......@@ -5,6 +5,7 @@ sidenav: js
# Style / Linting
{%include components/tag-standards.html %}
We recommend combining [Prettier](https://prettier.io) with the
[Airbnb JavaScript style guide](https://github.com/airbnb/javascript) plugins
for [eslint](https://eslint.org).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment