Skip to content

Commit 3aa137a

Browse files
committed
Update instructions and template
1 parent 880c0a7 commit 3aa137a

File tree

3 files changed

+43
-10
lines changed

3 files changed

+43
-10
lines changed

README.md

+13-10
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,28 @@ In the first hour, we will do a brief explanation of data-driven APIs, and then
1818

1919
## Your Design Task
2020

21-
1. Choose one of the problem domains from [this list](./problem-domains.md).
21+
1. You will be designing a data-driven DSL to solve some problem.
2222

23-
We recommend choosing a problem domain that you are at least somewhat familiar with (to better understand how your syntax might be used in practice).
23+
Choose one of the problems from [this list](./problems.md).
2424

25-
If you've thought of other problem domain that you'd like to design a data-driven API for, go ahead!
25+
We recommend choosing a problem domain that you are at least somewhat familiar with (to better understand how your DSL might be used in practice).
2626

27+
If you've thought of some other problem that you'd like to design a data-driven API for, go ahead!
2728

28-
2. Design a data-driven DSL for that problem domain.
2929

30-
give some examples of how you would use it.
30+
2. Take a moment to scan through the [list of reflection questions](./evaluating-notations.md) to get an idea of some of the characteristics that you might want to keep in mind while working on your design.
3131

32-
see [the template](./template.md)
32+
3. Now the hard part: design a data-driven Clojure DSL for your chosen problem.
3333

34-
The task is *not* to implement the system, it is just to design the data-driven API.
34+
You don't have to implement the actual library! Just sketch out what the syntax and workflow might be for using the library.
3535

36-
You do not have to implement the entire language, just use the existing language as inspiration.
36+
Many of the suggested problems already have some existing declarative languages (which isn't data-driven), but, many of these languages are quite general and complex (and maybe even turing-complete) -- your design does *not* need to match them 1:1 in features, feel free to focus on a subset of functionality or just use the existing languages as inspiration/"prior art".
3737

38-
3. Reflect using [these questions](./evaluating-notations.md)
38+
We recommend you start your design work by choosing a few specific sample use-cases to design for.
3939

40-
4. After you're done with your design(s), if you'd like to have them potentially discussed in Part 2 of the workshop, add a link to [the spreadsheet](https://docs.google.com/spreadsheets/d/1F7TGID104-ayVhOT47RV3fCLHpvAaeOGZScIKdvG9-8/edit?usp=sharing).
40+
The end goal is to come up with a mock README for your library, featuring an explanation of what it does and examples of how to use it. See [the template](./template.md)
4141

42+
3. After you are done your design (or time is running out), take a moment to reflect on your design using [these questions](./evaluating-notations.md). Perhaps add some notes to you README if you find some of these questions make you identify something particularly good or bad about your design.
43+
44+
4. If you'd like to have your design potentially discussed in Part 2 of the workshop, push your README to GitHub and add a link to [the spreadsheet](https://docs.google.com/spreadsheets/d/1F7TGID104-ayVhOT47RV3fCLHpvAaeOGZScIKdvG9-8/edit?usp=sharing).
4245

File renamed without changes.

template.md

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# [ libname ]
2+
3+
[ Libname ] is a Clojure(script) library for [ some task ].
4+
5+
[ Some extra information if you'd like. ]
6+
7+
<sup>(Protip: If you're having a hard time coming up with a name for your design, just do what Metosin does: pick the most matter-of-fact word to describe your library, but in Finnish instead of English).</sup>
8+
9+
## Quick Start
10+
11+
```clojure
12+
;; one or more examples of how someone would use libname
13+
;; inputs, outputs, workflow
14+
;; is it just one function or more?
15+
```
16+
17+
18+
19+
20+
21+
22+
23+
## Limitations / Future Work
24+
25+
[ what would you like to have added or changed in your design? ]
26+
[ any particular challenges? ]
27+
[ was a data-driven approach suitable for this problem? ]
28+
[ any of the reflection questions particularly relevant? ]
29+
30+

0 commit comments

Comments
 (0)