English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 12h 24m | 1.84 GB
Craft domain-specific languages that empower experts to create software themselves.
Domain-specific languages put business experts at the heart of software development. These purpose-built tools let your clients write down their business knowledge and have it automatically translated into working software—no dev time required. They seamlessly bridge the knowledge gap between programmers and subject experts, enabling better communication and freeing you from time-consuming code adjustments.
Inside Building User-Friendly DSLs you’ll learn how to:
- Build a complete Domain IDE for a car rental company
- Implement a projectional editor for your DSL
- Implement content assist, type systems, expressions, and versioning language aspects
- Evaluate business rules
- Work with Abstract Syntax Trees
- Reduce notated DSL content in concrete syntax into abstract syntax
Building User-Friendly DSLs takes you on a carefully-planned journey through everything you need to create your own DSLs. It focuses on building DSLs that are easy for busy business experts to learn and master. By working through a detailed example of a car rental company, you’ll see how to create a custom DSL with a modern and intuitive UI that can replace tedious coding activities.
Here’s the central problem of software development: business users know what they need their apps to do, but they don’t know how to write the code themselves. As a developer, this means you spend a lot of time learning the same domain-specific details your user already knows. Now there’s a way to bridge this gap! You can create a Domain-Specific Language (DSL) that empowers non-technical business users to create and customize their own applications without writing any code.
Building User-Friendly DSLs teaches you how to create a complete domain-specific language that looks and works like a web application. These easy-to-use DSLs put the power to create custom software into the hands of business domain experts. As you go, you’ll cover all the essentials, from establishing structure and syntax of your DSL to implementing a user-friendly interface.
What’s Inside
- Implement a projectional editor for your DSL
- Work with Abstract Syntax Trees
- Evaluate business rules
Table of Contents
1 Chapter 1. What is a domain-specific language
2 Chapter 1. Using a DSL-based approach for software development
3 Chapter 1. Why use a DSL-based approach for software development
4 Chapter 1. What is a DSL
5 Chapter 1. Summary
6 Chapter 2. Representing DSL content as structured data
7 Chapter 2. Going from concrete to abstract syntax
8 Chapter 2. Summary
9 Chapter 3. Working with ASTs in code
10 Chapter 3. Interacting with ASTs
11 Chapter 3. Traversing ASTs
12 Chapter 3. Summary
13 Chapter 4. Projecting the AST
14 Chapter 4. Implementing the projection iteratively
15 Chapter 4. Summary
16 Chapter 5. Editing values in the projection
17 Chapter 5. Changing the value of a number object
18 Chapter 5. Choosing the type of an attribute
19 Chapter 5. Choosing an attribute for a reference
20 Chapter 5. Summary
21 Chapter 6. Editing objects in the projection
22 Chapter 6. Selecting objects
23 Chapter 6. Deleting objects
24 Chapter 6. Summary
25 Chapter 7. Implementing persistence and transportation of ASTs
26 Chapter 7. Serializing an AST
27 Chapter 7. Deserializing an AST
28 Chapter 7. Making an AST observable during deserialization
29 Chapter 7. Implementing save functionality
30 Chapter 7. Summary
31 Chapter 8. Generating code from the AST
32 Chapter 8. Using a reference implementation
33 Chapter 8. A Runtime for Rental
34 Chapter 8. Implementing a code generator using templates
35 Chapter 8. Summary
36 Chapter 9. Preventing things from blowing up
37 Chapter 9. A template case Dealing with an attribute without a name
38 Chapter 9. Dealing with all attribute-related faults
39 Chapter 9. Summary
40 Chapter 10. Managing change
41 Chapter 10. Categorizing and charting coupling
42 Chapter 10. Changing the DSL
43 Chapter 10. Summary
44 Chapter 11. Implementing expressions Binary operations
45 Chapter 11. Changing the projection
46 Chapter 11. Changing the runtime
47 Chapter 11. Changing the code generator
48 Chapter 11. Postscript Expressions in general
49 Chapter 11. Summary
50 Chapter 12. Implementing expressions Order of operations
51 Chapter 12. Adapting the projection for operator precedence
52 Chapter 12. Adapting the projection for associativity
53 Chapter 12. Using side-transforms to improve editing
54 Chapter 12. Summary
55 Chapter 13. Implementing a type system
56 Chapter 13. Implementing type checking constraints
57 Chapter 13. Representing types as objects
58 Chapter 13. Summary
59 Chapter 14. Implementing business rules
60 Chapter 14. Implementing the business rules in the Runtime
61 Chapter 14. Generating the business rules code
62 Chapter 14. Summary
63 Chapter 15. Some topics we didn t cover
64 Chapter 15. Using the word model
65 Chapter 15. Using terms with the prefix meta
66 Chapter 15. Using language-oriented tooling
67 Chapter 15. Summary
68 appendix A. Setting up the development environment
69 appendix A. Setting up a local development environment
70 appendix A. Using a web IDE
71 appendix A. Setting up a repository for JavaScript development
72 appendix A. Using the Node.js REPL
73 appendix A. Running development tools
74 appendix B. Implementing a Transparent Functional Reactive frontend
75 appendix B. Setting up a basic frontend with React and Parcel
76 appendix B. Using React components to implement a frontend
77 appendix B. Using MobX to react to changes
Resolve the captcha to access the links!