Skip to content

Commit 7f14ca3

Browse files
save
Signed-off-by: Nikola Hristov <Nikola@PlayForm.Cloud>
1 parent d1137ab commit 7f14ca3

File tree

1 file changed

+33
-36
lines changed

1 file changed

+33
-36
lines changed

Documentation/GitHub/Deep Dive.md

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@
1919

2020
# **Common** 👨🏻‍🏭 Deep Dive & Architecture
2121

22-
This document provides a detailed technical overview of the **Common** crate for
23-
developers. It explores the effect system architecture, trait-based dependency
24-
injection, and the foundational patterns that enable the Land Code Editor to
25-
achieve type safety, testability, and architectural purity while lifting VSCode
26-
services into the Tauri ecosystem.
22+
This document provides the technical foundation for lifting VSCode services into
23+
the Land ecosystem. **Common** defines the abstract architectural patterns,
24+
service contracts, and data structures that enable type-safe, testable service
25+
implementations across Rust and TypeScript boundaries.
2726

2827
---
2928

@@ -42,32 +41,30 @@ services into the Tauri ecosystem.
4241

4342
## Deep Dive into `Common`'s Components
4443

45-
### 1. The `ActionEffect` System: Practical Implementation
44+
### 1. The `ActionEffect` System: Concrete Implementation
4645

47-
The `ActionEffect` system represents a declarative programming pattern where
48-
operations are described as values rather than executed immediately. This
49-
enables clean separation of concerns and comprehensive testing.
46+
The `ActionEffect` system implements declarative programming patterns where
47+
operations are described as values rather than executed immediately.
5048

51-
#### **Practical Effect Definition**
49+
#### **Concrete Effect Definition**
5250

5351
An `ActionEffect<C, E, T>` describes:
5452

55-
- **C**: The capability type required for execution (must implement specific
56-
traits)
53+
- **C**: The capability type required for execution
5754
- **E**: The error type that may result from execution
5855
- **T**: The successful result type
5956

6057
**Type Signature:**
6158

6259
```rust
63-
pub struct ActionEffect<C, E, T> {
64-
effect: Box<dyn FnOnce(Arc<C>) -> BoxFuture<'static, Result<T, E>> + Send + Sync>,
60+
pub struct ActionEffect<TCapability, TError, TOutput> {
61+
pub Function: Arc<dyn Fn(TCapability) -> Pin<Box<dyn Future<Output = Result<TOutput, TError>> + Send>> + Send + Sync>,
6562
}
6663
```
6764

68-
#### **Practical Effect Composition**
65+
#### **Concrete Effect Composition**
6966

70-
Effects can be composed using practical operations:
67+
Effects can be composed using standard operations:
7168

7269
```rust
7370
// Sequential composition: effect1 then effect2
@@ -80,7 +77,7 @@ let parallel_effect = effect1.zip(effect2);
8077
let resilient_effect = effect.fallback(backup_effect);
8178
```
8279

83-
### 2. Practical Environment System Architecture
80+
### 2. Concrete Environment System Architecture
8481

8582
The `Environment` trait system implements capability-based architecture for
8683
clean dependency management:
@@ -100,7 +97,7 @@ graph TB
10097
end
10198
```
10299

103-
#### **Practical Capability Resolution**
100+
#### **Concrete Capability Resolution**
104101

105102
For any `ActionEffect<C, E, T>`, the runtime provides `C` through these steps:
106103

@@ -110,14 +107,14 @@ For any `ActionEffect<C, E, T>`, the runtime provides `C` through these steps:
110107
3. **Runtime Resolution:** ApplicationRunTime resolves and provides capabilities
111108
4. **Execution:** Effect executes with provided capability
112109

113-
### 3. Practical DTO System Design
110+
### 3. Concrete DTO System Design
114111

115112
The Data Transfer Object system provides type-safe serialization for IPC
116113
communication:
117114

118115
```mermaid
119116
graph LR
120-
subgraph "DTO Practical Architecture"
117+
subgraph "DTO Architecture"
121118
DomainModel["Domain Model"]
122119
DTODefinition["DTO Definition"]
123120
Serialization["Serialization Logic"]
@@ -138,7 +135,7 @@ graph LR
138135
end
139136
```
140137

141-
#### **Practical DTO Implementation**
138+
#### **Concrete DTO Implementation**
142139

143140
DTOs ensure consistent data structures across the Land ecosystem:
144141

@@ -147,7 +144,7 @@ DTOs ensure consistent data structures across the Land ecosystem:
147144
- **Type Safety:** Compile-time validation of data structures
148145
- **Performance:** Efficient serialization for high-frequency operations
149146

150-
### 4. Practical Error System Architecture
147+
### 4. Concrete Error System Architecture
151148

152149
The `CommonError` enum provides comprehensive error handling:
153150

@@ -165,7 +162,7 @@ graph TB
165162
end
166163
```
167164

168-
#### **Practical Error Recovery Patterns**
165+
#### **Concrete Error Recovery Patterns**
169166

170167
- **Automatic Retry:** Retry operations with exponential backoff
171168
- **Graceful Fallback:** Provide alternative implementations on failure
@@ -174,13 +171,13 @@ graph TB
174171

175172
---
176173

177-
## Practical Technical Architecture
174+
## Concrete Technical Architecture
178175

179176
### Core Architectural Components
180177

181-
#### 1. Practical Effect Composition Architecture
178+
#### 1. Concrete Effect Composition Architecture
182179

183-
Common enables sophisticated effect composition through practical patterns:
180+
Common enables sophisticated effect composition through concrete patterns:
184181

185182
```mermaid
186183
graph LR
@@ -194,14 +191,14 @@ graph LR
194191
end
195192
```
196193

197-
**Practical Effect Operations:**
194+
**Concrete Effect Operations:**
198195

199196
- **Mapping:** Transform effect results without executing
200197
- **Sequential Composition:** Chain effects in order
201198
- **Parallel Composition:** Execute effects concurrently
202199
- **Error Handling:** Recover from failures gracefully
203200

204-
#### 2. Practical Dependency Injection Architecture
201+
#### 2. Concrete Dependency Injection Architecture
205202

206203
Common implements clean dependency injection through trait bounds:
207204

@@ -220,9 +217,9 @@ pub fn read_file_effect(path: PathBuf) -> ActionEffect<Arc<dyn FileSystemReader>
220217
}
221218
```
222219

223-
### Practical Technical Implementation
220+
### Concrete Technical Implementation
224221

225-
#### Performance Analysis: Effect Execution Overhead
222+
#### Performance Characteristics: Effect Execution Overhead
226223

227224
**Measured Overhead:**
228225

@@ -231,14 +228,14 @@ pub fn read_file_effect(path: PathBuf) -> ActionEffect<Arc<dyn FileSystemReader>
231228
- **Execution Wrapper:** ~2ns (future boxing)
232229
- **Total Overhead:** ~17ns per effect
233230

234-
**Practical Benefits:**
231+
**Concrete Benefits:**
235232

236233
- **Type Safety:** Full Rust type checking
237234
- **Testability:** Mockable effects for unit testing
238235
- **Maintainability:** Clear separation of concerns
239236
- **Composability:** Reusable effect building blocks
240237

241-
#### Practical Type Safety Implementation
238+
#### Concrete Type Safety Implementation
242239

243240
The type system prevents runtime capability errors through:
244241

@@ -279,7 +276,7 @@ graph TD
279276
end
280277
```
281278

282-
### Practical Integration Patterns
279+
### Concrete Integration Patterns
283280

284281
#### Effect-Based Testing Architecture
285282

@@ -295,7 +292,7 @@ graph TB
295292
end
296293
```
297294

298-
**Practical Testing Strategies:**
295+
**Concrete Testing Strategies:**
299296

300297
- **Unit Tests:** Isolated service testing with mocked dependencies
301298
- **Integration Tests:** Full system testing with real implementations
@@ -318,7 +315,7 @@ sequenceDiagram
318315

319316
---
320317

321-
## Practical VSCode Service Lifting Patterns
318+
## Concrete VSCode Service Lifting Patterns
322319

323320
### Service Migration Strategy
324321

@@ -358,7 +355,7 @@ pub struct WorkspaceFolderDTO {
358355
}
359356
```
360357

361-
### Practical Service Integration Examples
358+
### Concrete Service Integration Examples
362359

363360
#### File System Service Lifting
364361

0 commit comments

Comments
 (0)