You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<metaproperty="og:description" content="These JavaScript Guidelines (style guide) help the community to focus on the intent of the code and work together with a minimum of friction." />
11
+
<metaproperty="og:description" content="These JavaScript Guidelines (style guide) help the community focus on the code's intent and work together with a minimum of friction." />
<metaname="twitter:description" content="These JavaScript Guidelines (style guide) help the community to focus on the intent of the code and work together with a minimum of friction.">
32
+
<metaname="twitter:description" content="These JavaScript Guidelines (style guide) help the community focus on the code's intent and work together with a minimum of friction.">
@@ -340,10 +342,14 @@ <h4 class="b-header">On this page</h4>
340
342
</div>
341
343
</div>
342
344
<divclass="column content is-three-quarters">
343
-
<h2id="purpose">Purpose</h2><p>These JavaScript Guidelines help developers who are new to the community and want to make a contribution to the Creative Commons open-source ecosystem.</p>
344
-
<h2id="philosophy">Philosophy</h2><p>A few philosophical guidelines can stand in place of a thousand narrow rules.</p>
345
-
<h3id="stewardship">Stewardship</h3><blockquote><p>Build for longevity and maturity.</p>
345
+
<h2id="purpose">Purpose</h2><p>These JavaScript Guidelines help developers who are new to the community and want to contribute to the Creative Commons open-source ecosystem.</p>
346
+
<h2id="philosophy">Philosophy</h2><p>A few philosophical guidelines can stand in place of a thousand narrow rules. These guidelines are not intended as absolute (black or white) truths but rather lenses to focus our vision when faced with subtle shades of ambiguity.</p>
347
+
<h3id="simplicity">Simplicity</h3><blockquote><p>Use and build only what is <em>essential</em> to a project.</p>
348
+
</blockquote>
349
+
<p>Projects can quickly grow beyond their essence by taking on dependencies and features that are not central to their purpose. Keep the essential goal in mind as a project evolves. Take on only what is needed and only when the need arises.</p>
350
+
<h3id="stability">Stability</h3><blockquote><p>Build for longevity and maturity.</p>
346
351
</blockquote>
352
+
<p>It is easy to get swept away in the rushing waters of new projects, tools, and libraries. However, the sedimentary landscape left behind by the swift and meandering river of change can be unstable. It is certainly unwise to build one's home on a river delta.</p>
347
353
<p>Choose an existing framework and set of tools and use them to make what matters to you. Avoiding creating a bespoke framework when a current framework would get you further down the road.</p>
348
354
<p>When choosing tools and technologies, keep an eye towards mature projects and standards built to last many years. Find projects that extend existing standards and ways of working.</p>
349
355
<h3id="focus">Focus</h3><blockquote><p>Choose the right level of abstraction and best use of time.</p>
@@ -352,7 +358,7 @@ <h3 id="focus">Focus</h3><blockquote><p>Choose the right level of abstraction an
352
358
<h3id="maintainability">Maintainability</h3><blockquote><p>Write clean and conventional code.</p>
353
359
</blockquote>
354
360
<p>Code is read more often than it is written. Code is written for humans, not machines. As such, we can do ourselves a favor by making our code as reader-friendly as possible. Follow <ahref="https://github.com/ryanmcdermott/clean-code-javascript">clean code guidelines</a> as well as established development patterns.</p>
355
-
<h2id="pragmatics">Pragmatics</h2><p>The following sections outline how we've put the philosophy into action. See the <ahref="https://github.com/creativecommons/chooser">creativecommons/chooser</a> project for an example of how we have applied the recommendations below.</p>
361
+
<h2id="pragmatics">Pragmatics</h2><p>The following sections outline how we've put the philosophy into action. See the <ahref="https://github.com/creativecommons/chooser">creativecommons/chooser</a> project to exemplify how we have applied the recommendations below.</p>
356
362
<h3id="code-formatting">Code formatting</h3><p>We adopt existing code formatting standards. To this end, all JavaScript code must be formatted using <ahref="https://prettier.io/">Prettier</a>, <em>an opinionated code formatter</em>. We also use <ahref="https://eslint.org/">eslint</a> to handle cases that Prettier may overlook.</p>
357
363
<h3id="development-environment">Development environment</h3><p>We use <code>npm</code> to manage development dependencies. Each project should have a <code>package.json</code> with dependencies and scripts for running, linting, testing, and deploying the project (where possible).</p>
358
364
<h3id="development-framework">Development framework</h3><p>We use <ahref="https://vuejs.org/">Vue.js</a> as our primary JavaScript development framework. Vue provides a ready-made toolkit that covers many development needs and extends on long-standing web development conventions.</p>
0 commit comments