# Recommended reading

### Thinking in components

This is a good overview of the background thinking behind React and **component development** as an approach.

{% embed url="<https://www.youtube.com/watch?index=1&list=PL0zVEGEvSaeH21VDycWYNWU7VKUA-xLzg&v=0ZNIQOO2sfA>" %}

This talk called React is Fiction, is probably one of the **best conference talks** we've seen in a long time. The 'software developers as fiction authors' analogy is a little stretched at times but the point being made about how to make good decisions about developing good software components is required viewing and understanding

{% embed url="<https://www.youtube.com/watch?v=3s-vgOwNpac>" %}

### Design systems

Here as well is a brilliant piece on **maintainable style guides** - the problem here will be familiar to anyone who's worked on a template based CMS (like Drupal / WordPress and probably Umbraco) <https://engineering.lonelyplanet.com/2014/05/18/a-maintainable-styleguide.html>\
\
If you've not seen this before, Brad Frost's talk on his **Atomic Design** approach to component development is also good as he describes the problems in web development well (although his answer of Pattern Lab is too heavy weight for our liking) <https://vimeo.com/179245570>

### Programming concepts

It would also be useful to have a basic grasp on **Functional programming** (in particular why mutable state should be avoided).  The following article I've found excellent as an introduction to the topic (note it doesn't appear to be about this at first) <https://web.archive.org/web/20220107073531/http://damienkatz.net:80/2006/04/error_code_vs_e.html>&#x20;

\
As Technical Architects, you'll find that during a lot of the decision making we do we like to pull back to the following description of '**Simple versus Easy**' based technical choices <https://www.infoq.com/presentations/Simple-Made-Easy/><br>

### Agile methodologies

Our big build project process uses a version of Agile called DSDM - this is a pretty good description of it: <https://www.deeson.co.uk/blog/dsdm-agile-e2-80-98projects-e2-80-99>

### Frontend

Here's a nice archive of blog posts that shape a lot of modern thinking about how to work with the web: <https://esif.dev/>

[![Creative Commons Licence](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)\
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dxtech.tpximpact.com/reading-list.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
