Slide 1

Slide 1 text

WRITING CODE that WRITES CODE STEVE MARSHALL

Slide 2

Slide 2 text

But why?

Slide 3

Slide 3 text

Code munging Inline code expansion Mixed code generation Partial class generation Tier generation Full domain language

Slide 4

Slide 4 text

Code munging Inline code expansion Mixed code generation Partial class generation Tier generation Full domain language

Slide 5

Slide 5 text

Source code Code munger Output file

Slide 6

Slide 6 text

Code munging Inline code expansion Mixed code generation Partial class generation Tier generation Full domain language

Slide 7

Slide 7 text

Source code Inline code expander Output source code Compiler

Slide 8

Slide 8 text

Code munging Inline code expansion Mixed code generation Partial class generation Tier generation Full domain language

Slide 9

Slide 9 text

Source code Mixed code generator Output source code Compiler

Slide 10

Slide 10 text

Code munging Inline code expansion Mixed code generation Partial class generation Tier generation Full domain language

Slide 11

Slide 11 text

Definition file Partial class generator Output base class code Compiler Custom derived class code Templates

Slide 12

Slide 12 text

Code munging Inline code expansion Mixed code generation Partial class generation Tier generation Full domain language

Slide 13

Slide 13 text

Definition file Tier generator Output source code Compiler Templates

Slide 14

Slide 14 text

Code munging Inline code expansion Mixed code generation Partial class generation Tier generation Full domain language

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

What should I use?

Slide 17

Slide 17 text

Let me tell you a story…

Slide 18

Slide 18 text

One for the team.

Slide 19

Slide 19 text

Respect (and loathe) hand-coding. 1.

Slide 20

Slide 20 text

Hand-code first. 2.

Slide 21

Slide 21 text

Control your source. 3.

Slide 22

Slide 22 text

Consider the generator’s language. 4.

Slide 23

Slide 23 text

Integrate the generator into your workflow. 5.

Slide 24

Slide 24 text

Include warnings. 6.

Slide 25

Slide 25 text

Play nice with others. 7.

Slide 26

Slide 26 text

Document well. 8.

Slide 27

Slide 27 text

Consider the cultural impact. 9.

Slide 28

Slide 28 text

Keep it maintained. 10.

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

icanhaz.com/codegen-book icanhaz.com/codegen @stevemarshall [email protected] Stephen Wolfram photo: flickr.com/photos/hybernaut/87907765/