...
 
Commits (5)
...@@ -10,11 +10,11 @@ exclude: ...@@ -10,11 +10,11 @@ exclude:
- LICENSE.md - LICENSE.md
- README.md - README.md
- go - go
- copy-template
theme: uswds-jekyll theme: uswds-jekyll
include: include:
- _pages
- .rubocop.yml # in _pages/ruby - .rubocop.yml # in _pages/ruby
defaults: defaults:
...@@ -27,7 +27,7 @@ defaults: ...@@ -27,7 +27,7 @@ defaults:
collections: collections:
pages: pages:
output: true output: true
permalink: /:path permalink: /:path/
markdown: kramdown markdown: kramdown
......
...@@ -11,5 +11,5 @@ interesting design decisions from existing projects. ...@@ -11,5 +11,5 @@ interesting design decisions from existing projects.
## Projects ## Projects
* [DATA Act Pilot: Simplicity is Key]({{site.baseurl}}/architecture_reviews/data_act_pilot) * [DATA Act Pilot: Simplicity is Key]({{site.baseurl}}/architecture-reviews/data-act-pilot)
* [Micro-purchase: Do one thing well]({{site.baseurl}}/architecture_reviews/micro_purchase) * [Micro-purchase: Do one thing well]({{site.baseurl}}/architecture-reviews/micro-purchase)
...@@ -57,7 +57,7 @@ described viewing code as “not real” to be a trap. Their small code base ...@@ -57,7 +57,7 @@ described viewing code as “not real” to be a trap. Their small code base
quickly grew larger than anticipated and their early technical decisions would quickly grew larger than anticipated and their early technical decisions would
have long lasting ramifications. have long lasting ramifications.
![Diagram matching above description]({{site.baseurl}}/architecture_reviews/data_act_pilot/data-act-diagram.png) ![Diagram matching above description]({{site.baseurl}}/architecture-reviews/data-act-pilot/data-act-diagram.png)
## Simplicity avoids scary ## Simplicity avoids scary
......
...@@ -107,7 +107,7 @@ for instance, a NullBid object with similar methods to the Bid model is ...@@ -107,7 +107,7 @@ for instance, a NullBid object with similar methods to the Bid model is
returned when the auction’s winning bid is not available. Do you notice the returned when the auction’s winning bid is not available. Do you notice the
trend? trend?
![Objects playing the role of Controller, Service, Validator, and Rule]({{site.baseurl}}/architecture_reviews/micro_purchase/roles.png) ![Objects playing the role of Controller, Service, Validator, and Rule]({{site.baseurl}}/architecture-reviews/micro-purchase/roles.png)
## Population control ## Population control
As with any design decision, the PORO approach has trade-offs. While we gain As with any design decision, the PORO approach has trade-offs. While we gain
...@@ -199,7 +199,7 @@ solution? Service Objects! Each interface (web UI, API versions) call into ...@@ -199,7 +199,7 @@ solution? Service Objects! Each interface (web UI, API versions) call into
shared Service Objects (which contains all of the shared code); the controller shared Service Objects (which contains all of the shared code); the controller
just needs to convert the input/output as appropriate. just needs to convert the input/output as appropriate.
![Both API and HTML controllers use PlaceBid Service]({{site.baseurl}}/architecture_reviews/micro_purchase/service.png) ![Both API and HTML controllers use PlaceBid Service]({{site.baseurl}}/architecture-reviews/micro-purchase/service.png)
## Other applications ## Other applications
While we didn’t want to create a single-page app, we knew we’d leverage While we didn’t want to create a single-page app, we knew we’d leverage
......
--- ---
title: 18F Engineering Practices Guide title: 18F Engineering Practices Guide
permalink: /
--- ---
A set of guidelines and best practices for an awesome engineering team A set of guidelines and best practices for an awesome engineering team
* [Front-End Disciplines]({{site.baseurl}}/frontend) * [Front-End Disciplines]({{site.baseurl}}/frontend)
* [Third-Party Integrations]({{site.baseurl}}/integrations) * [Third-Party Integrations]({{site.baseurl}}/integrations)
* [Workflow Best Practices]({{site.baseurl}}/workflow) * [Workflow Best Practices]({{site.baseurl}}/workflow)
* [Example Workflows]({{site.baseurl}}/example_workflows) * [Example Workflows]({{site.baseurl}}/example-workflows)
* [Project Setup]({{site.baseurl}}/project_setup) * [Project Setup]({{site.baseurl}}/project-setup)
* [Architecture Reviews]({{site.baseurl}}/architecture_reviews) * [Architecture Reviews]({{site.baseurl}}/architecture-reviews)
* [Accessibility Scanning using AccessLint]({{site.baseurl}}/accessibility_scanning) * [Accessibility Scanning using AccessLint]({{site.baseurl}}/accessibility-scanning)
* [Feedback Guide]({{site.baseurl}}/people) * [Feedback Guide]({{site.baseurl}}/people)
* [Continuous Deployment]({{site.baseurl}}/continuous_deployment) * [Continuous Deployment]({{site.baseurl}}/continuous-deployment)
* [Datastore Selection Guidance]({{site.baseurl}}/datastore_selection) * [Datastore Selection Guidance]({{site.baseurl}}/datastore-selection)
* [Security]({{site.baseurl}}/security) * [Security]({{site.baseurl}}/security)
* [Code Review]({{site.baseurl}}/code_review) * [Code Review]({{site.baseurl}}/code-review)
* [Development Environments]({{site.baseurl}}/development_environments) * [Development Environments]({{site.baseurl}}/development-environments)
* [Incident Reports]({{site.baseurl}}/incident_reports) * [Incident Reports]({{site.baseurl}}/incident-reports)
* [Polls]({{site.baseurl}}/polls) * [Polls]({{site.baseurl}}/polls)
* [Project Setup]({{site.baseurl}}/project_setup) * [Project Setup]({{site.baseurl}}/project-setup)
* [Tech Leads]({{site.baseurl}}/tech_leads) * [Tech Leads]({{site.baseurl}}/tech-leads)
### Language Guides ### Language Guides
* [Language Selection Guidance]({{site.baseurl}}/language_selection) * [Language Selection Guidance]({{site.baseurl}}/language-selection)
* [JavaScript]({{site.baseurl}}/javascript) * [JavaScript]({{site.baseurl}}/javascript)
* [Node.js]({{site.baseurl}}/nodejs) * [Node.js]({{site.baseurl}}/nodejs)
* [Python]({{site.baseurl}}/python) * [Python]({{site.baseurl}}/python)
......
...@@ -5,6 +5,6 @@ Here we collect (publicly visible) survey and poll results. In particular, we ...@@ -5,6 +5,6 @@ Here we collect (publicly visible) survey and poll results. In particular, we
create quick write-ups to summarize and contextualize the results. create quick write-ups to summarize and contextualize the results.
## Polls ## Polls
* [Silos and Soundness, Oct '16]({{site.baseurl}}/polls/silos_and_soundness_2016_10) * [Silos and Soundness, Oct '16]({{site.baseurl}}/polls/silos-and-soundness-2016-10)
* [NodeJS for Backend, Dec '16]({{site.baseurl}}/polls/nodejs_for_backend_2016_12) * [NodeJS for Backend, Dec '16]({{site.baseurl}}/polls/nodejs-for-backend-2016-12)
* [Third-Party Tool Experience, Feb '18]({{site.baseurl}}/polls/third_party_xp_2018_02) * [Third-Party Tool Experience, Feb '18]({{site.baseurl}}/polls/third-party-xp-2018-02)
...@@ -33,7 +33,7 @@ particularly for the pocket of engineers on the low end of the scale. ...@@ -33,7 +33,7 @@ particularly for the pocket of engineers on the low end of the scale.
* The ability to use continuing ed funds for * The ability to use continuing ed funds for
[self-study](https://handbook.18f.gov/professional-development-and-training/#self-directed-study-for-engineers) [self-study](https://handbook.18f.gov/professional-development-and-training/#self-directed-study-for-engineers)
* More [architecture reviews]({{site.baseurl}}/architecture_reviews) * More [architecture reviews]({{site.baseurl}}/architecture-reviews)
We're also exploring We're also exploring
......
...@@ -12,7 +12,7 @@ around deployments, git etiquette, and similar workflow conventions. ...@@ -12,7 +12,7 @@ around deployments, git etiquette, and similar workflow conventions.
test completion should be a requirement for deployment. test completion should be a requirement for deployment.
* Generally, **CI should perform deployments**. This ensures the deployments * Generally, **CI should perform deployments**. This ensures the deployments
are repeatable and don’t rely on individual development environments. See are repeatable and don’t rely on individual development environments. See
our [documentation on continuous deployment]({{site.baseurl}}/continuous_deployment) for our [documentation on continuous deployment]({{site.baseurl}}/continuous-deployment) for
details on how to set this up. details on how to set this up.
* Deployments should be **zero-downtime**, achievable through tools like * Deployments should be **zero-downtime**, achievable through tools like
“autopilot” (see the above docs for more detail). “autopilot” (see the above docs for more detail).
...@@ -28,8 +28,8 @@ around deployments, git etiquette, and similar workflow conventions. ...@@ -28,8 +28,8 @@ around deployments, git etiquette, and similar workflow conventions.
Git is our version control system of choice and GitHub is our current Git is our version control system of choice and GitHub is our current
repository platform, but how to use these tools can be spelled out in a bit repository platform, but how to use these tools can be spelled out in a bit
more detail. Note that we are looking to consolidate this with our existing more detail. Note that we are looking to consolidate this with our existing
documentation on [code review]({{site.baseurl}}/code_review) and [example documentation on [code review]({{site.baseurl}}/code-review) and [example
workflows]({{site.baseurl}}/example_workflows). workflows]({{site.baseurl}}/example-workflows).
### "Must"s ### "Must"s
......