|
1 | 1 | ## Better Code, Better Science |
2 | | -An open-source book on building better code for science using AI. |
3 | 2 |
|
4 | | -Author: [Russ Poldrack](http://poldrack.github.io) |
5 | | - |
6 | | -Contributors: @giorgioarcara, @yarikoptic |
7 | | - |
8 | | -Content will be posted on [Substack](https://russpoldrack.substack.com/p/better-code-better-science) and added here as it is released. |
9 | | - |
10 | | -A rendered version of the complete book is available at [https://poldrack.github.io/BetterCodeBetterScience/](https://poldrack.github.io/BetterCodeBetterScience/). |
11 | | - |
12 | | -### Table of contents (see [here](https://russpoldrack.substack.com/p/upcoming-content-for-better-code) for a more detailed roadmap) |
13 | | - |
14 | | -- Introduction |
15 | | - - [Part 1](https://russpoldrack.substack.com/p/better-code-better-science) |
16 | | - - [Part 2](https://russpoldrack.substack.com/p/why-better-code-can-lead-to-better) |
17 | | -- Essential Tools and Techniques |
18 | | - - [Part 1: Version control](https://russpoldrack.substack.com/p/essential-tools-for-writing-better?r=1n86gc) |
19 | | - - [Part 2: Large Language Models](https://russpoldrack.substack.com/p/essential-tools-for-writing-better-f69?r=1n86gc) |
20 | | - - [Part 3: Managing environments](https://russpoldrack.substack.com/p/essential-tools-for-writing-better-f11?r=1n86gc) |
21 | | -- Principles of Software Engineering |
22 | | - - [Part 1: Intro](https://open.substack.com/pub/russpoldrack/p/principles-of-software-engineering) |
23 | | - - [Part 2: Clean Coding](https://russpoldrack.substack.com/p/clean-coding) |
24 | | - - [Part 3: Modularity and the "God object"](https://russpoldrack.substack.com/p/modularity-and-the-god-object) |
25 | | - - [Part 4: Global variables](https://russpoldrack.substack.com/p/global-variables) |
26 | | - - [Part 5: Defensive coding](https://open.substack.com/pub/russpoldrack/p/defensive-coding) |
27 | | - - [Part 6: Coding portably](https://russpoldrack.substack.com/p/coding-portably?r=1n86gc) |
28 | | - - [Part 7: Code formatting tools](https://russpoldrack.substack.com/p/code-formatting-tools?r=1n86gc) |
29 | | - - [Part 8: Managing technical debt](https://russpoldrack.substack.com/p/managing-technical-debt?r=1n86gc) |
30 | | -- Software Testing |
31 | | - - [Part 1: Introduction](https://russpoldrack.substack.com/p/software-testing?r=1n86gc) |
32 | | - - [Part 2: The structure of a good software test](https://russpoldrack.substack.com/p/the-structure-of-a-good-software?r=1n86gc) |
33 | | - - [Part 3: The challenges of AI-generated tests](https://russpoldrack.substack.com/p/the-challenges-of-ai-generated-tests?r=1n86gc) |
34 | | - - [Part 4: Test-driven development and AI-assisted coding](https://russpoldrack.substack.com/p/test-driven-development-and-ai-assisted?r=1n86gc) |
35 | | - - [Part 5: Text fixtures and mocking](https://russpoldrack.substack.com/p/test-fixtures-and-mocking?r=1n86gc) |
36 | | - - [Part 6: Parameterized testing](https://russpoldrack.substack.com/p/parameterized-testing?r=1n86gc) |
37 | | - - [Part 7: Property-based testing](https://russpoldrack.substack.com/p/property-based-testing?r=1n86gc) |
38 | | - - [Part 8: Automated testing with GitHub Actions](https://russpoldrack.substack.com/p/automated-testing-with-github-actions?r=1n86gc) |
39 | | - - Part 9: Optimizing the testing workflow |
40 | | -- Coding with AI |
41 | | - - Using AI coding assistants |
42 | | - - AI-assisted coding approaches |
43 | | -- Project Structure and Management |
44 | | -- Validating Scientific Analyses |
45 | | -- Optimizing Performance |
46 | | -- Data Organization and Management |
47 | | -- Workflow Management |
48 | | -- High-Performance Computing |
49 | | -- Sharing Research Objects |
50 | | - |
51 | | - |
52 | | -## Setup to run code |
53 | | - |
54 | | -### Database examples |
55 | | - |
56 | | -The examples in Chapter 7 require several database systems to be installed. |
57 | | - |
58 | | -#### Mongodb |
59 | | - |
60 | | -Install: https://www.mongodb.com/docs/v7.0/administration/install-community/ |
61 | | - |
62 | | -#### Neo4j |
63 | | - |
64 | | -Install: https://neo4j.com/docs/operations-manual/current/installation/ |
| 3 | +This repo has been broken into several individual repos that can be found under the [BetterCodeBetterScience Github organization](https://github.com/bettercodebetterscience). The latest version of the rendered book is now available [here](https://bettercodebetterscience.github.io/book/). |
0 commit comments