Course overview

How to design Developer Tools & IDEs

56 modules
226 lessons
Part 1

Appendices

  1. Diagram Templates by StepSign in

  2. Mapping Concepts to Real-World ToolchainsSign in

  3. Readiness ChecklistsSign in

  4. GlossarySign in

Part 2

Course Setup and the Incremental Ladder

  1. Course Setup and the Incremental LadderSign in

  2. Why "Tasks to Toolchains"Sign in

  3. How to Use This CourseSign in

  4. The Incremental Ladder (Step 0 -> Step 7)Sign in

  5. The Course LensesSign in

  6. Diagram Legend and Notation TypesSign in

Part 3

What Is a Developer Toolchain?

  1. What Is a Developer Toolchain?Sign in

  2. Toolchain InventorySign in

  3. Inner Loop vs Outer LoopSign in

  4. Composition, Not MonolithsSign in

Part 4

Core Developer Tasks

  1. Core Developer TasksSign in

  2. Reading and Understanding CodeSign in

  3. Editing and RefactoringSign in

  4. Running, Debugging, Profiling, TestingSign in

Part 5

The IDE as a System of Models

  1. The IDE as a System of ModelsSign in

  2. Core ModelsSign in

  3. Workspaces and EnvironmentsSign in

  4. Keeping Models in SyncSign in

Part 6

UX Principles for Developer Tools

  1. UX Principles for Developer ToolsSign in

  2. Latency, Feedback, PredictabilitySign in

  3. Discoverability vs PowerSign in

  4. Interaction ErgonomicsSign in

Part 7

Diagramming Developer Tools & IDEs

  1. Diagramming Developer Tools & IDEsSign in

  2. Code-to-UI DataflowSign in

  3. Runtime/Instrumentation FlowsSign in

  4. Toolchain GraphsSign in

Part 8

Text Editing Foundations

  1. Text Editing FoundationsSign in

  2. Buffers, Positions, and EditsSign in

  3. Undo/Redo and HistorySign in

  4. Incremental Edits and DiffingSign in

Part 9

Lexing, Parsing, and Syntax Trees

  1. Lexing, Parsing, and Syntax TreesSign in

  2. Tokens, Grammars, TreesSign in

  3. Error-Tolerant ParsingSign in

  4. Incremental ParsingSign in

Part 10

Syntax Highlighting and Structural Editing

  1. Syntax Highlighting and Structural EditingSign in

  2. Highlighting StrategiesSign in

  3. Formatting and Style PoliciesSign in

  4. Code-Aware Editing GesturesSign in

Part 11

Project Models and Workspace Layouts

  1. Project Models and Workspace LayoutsSign in

  2. Projects, Modules, PackagesSign in

  3. Workspace ModelsSign in

  4. Polyglot WorkspacesSign in

Part 12

Indexing and Symbol Tables

  1. Indexing and Symbol TablesSign in

  2. What to IndexSign in

  3. Fast Lookup StructuresSign in

  4. Staying Correct Under ChangeSign in

Part 13

Minimal Smart Editor

  1. Minimal Smart EditorSign in

  2. Baseline CapabilitiesSign in

  3. Project View and NavigationSign in

  4. The Step-0 Product LineSign in

Part 14

Code Navigation Primitives

  1. Code Navigation PrimitivesSign in

  2. Jump-to SemanticsSign in

  3. Relationship QueriesSign in

  4. Symbol SearchSign in

Part 15

Cross-File and Cross-Language Navigation

  1. Cross-File and Cross-Language NavigationSign in

  2. Navigating Across ModulesSign in

  3. Linking Across StacksSign in

  4. Generated and Polyglot CodeSign in

Part 16

Refactoring as Safe Code Transformation

  1. Refactoring as Safe Code TransformationSign in

  2. Core RefactorsSign in

  3. Structural MovesSign in

  4. Preconditions and PreviewsSign in

Part 17

Search, Replace, and Structural Search

  1. Search, Replace, and Structural SearchSign in

  2. Text vs Semantic SearchSign in

  3. Regex vs StructureSign in

  4. Scoped SearchSign in

Part 18

Code Navigation UX

  1. Code Navigation UXSign in

  2. Interaction SurfacesSign in

  3. Orientation AidsSign in

  4. Power Without Cognitive TaxSign in

Part 19

Designing a Navigation & Refactoring Subsystem

  1. Designing a Navigation & Refactoring SubsystemSign in

  2. Data Structures and IndicesSign in

  3. Change PropagationSign in

  4. Testing RefactorsSign in

Part 20

Debugging Mental Model

  1. Debugging Mental ModelSign in

  2. Execution StateSign in

  3. Stepping and InspectionSign in

  4. Local vs Remote DebuggingSign in

Part 21

Debug Adapters and Protocols

  1. Debug Adapters and ProtocolsSign in

  2. Decoupling UX from RuntimeSign in

  3. Capabilities and MessagesSign in

  4. Attach and Spawn FlowsSign in

Part 22

Breakpoints and Conditions

  1. Breakpoints and ConditionsSign in

  2. Breakpoint TypesSign in

  3. Conditional Breaks and LogpointsSign in

  4. Managing SetsSign in

Part 23

Inspecting State

  1. Inspecting StateSign in

  2. Object GraphsSign in

  3. Snapshots and Memory ViewsSign in

  4. Safety and LimitsSign in

Part 24

Profiling Integrations

  1. Profiling IntegrationsSign in

  2. Profiling SurfacesSign in

  3. VisualizationsSign in

  4. Source LinkingSign in

Part 25

Test Runners and Diagnostics

  1. Test Runners and DiagnosticsSign in

  2. Integrated Test WorkflowsSign in

  3. Result UXSign in

  4. Capturing EvidenceSign in

Part 26

Designing Runtime Tooling as a System

  1. Designing Runtime Tooling as a SystemSign in

  2. Unified Tooling UXSign in

  3. Session Lifecycle DesignSign in

  4. Remote and Container TargetsSign in

Part 27

Language Servers as “Brains”

  1. Language Servers as “Brains”Sign in

  2. LSP-Style ResponsibilitiesSign in

  3. Interaction ModelSign in

  4. Separation of ConcernsSign in

Part 28

Capabilities and Features from Language Servers

  1. Capabilities and Features from Language ServersSign in

  2. Diagnostics and Quick FixesSign in

  3. Completion and SignaturesSign in

  4. Symbols, References, Code ActionsSign in

Part 29

Plugin and Extension Architectures

  1. Plugin and Extension ArchitecturesSign in

  2. Extension PointsSign in

  3. Security and SandboxingSign in

  4. Versioning and CompatibilitySign in

Part 30

Composing Multiple Extensions

  1. Composing Multiple ExtensionsSign in

  2. Conflict and PrioritySign in

  3. Shared ServicesSign in

  4. Isolation and Failure HandlingSign in

Part 31

Polyglot and Multi-Project Workspaces

  1. Polyglot and Multi-Project WorkspacesSign in

  2. Many Language Servers, One WorkspaceSign in

  3. Cross-Language FeaturesSign in

  4. Configuration SurfacesSign in

Part 32

Ecosystems and Marketplaces

  1. Ecosystems and MarketplacesSign in

  2. DiscoverabilitySign in

  3. Quality SignalsSign in

  4. Lifecycle ManagementSign in

Part 33

Build Systems and Project Configs

  1. Build Systems and Project ConfigsSign in

  2. Build Model TaxonomySign in

  3. Targets, Modes, ProfilesSign in

  4. Source to Output MappingSign in

Part 34

Run Configurations and Profiles

  1. Run Configurations and ProfilesSign in

  2. Run TargetsSign in

  3. Parameters and EnvironmentSign in

  4. Profile SwitchingSign in

Part 35

Toolchains and SDK Management

  1. Toolchains and SDK ManagementSign in

  2. Toolchain InventorySign in

  3. Version SwitchingSign in

  4. Missing Tool UXSign in

Part 36

Environments: Local, Container, and Cloud

  1. Environments: Local, Container, and CloudSign in

  2. Local Dependency RealitySign in

  3. Container Dev ModelsSign in

  4. Remote/Cloud Builds and RunsSign in

Part 37

Integrating Build, Run, and Debug UX

  1. Integrating Build, Run, and Debug UXSign in

  2. Unified WorkflowsSign in

  3. Consistent Error SurfacesSign in

  4. Fast Iteration LoopsSign in

Part 38

Build and Execution Observability

  1. Build and Execution ObservabilitySign in

  2. Logs and Structured DiagnosticsSign in

  3. Caching and IncrementalitySign in

  4. Metrics for RoadmappingSign in

Part 39

Collaboration Personas and Workflows

  1. Collaboration Personas and WorkflowsSign in

  2. Collaboration ModesSign in

  3. Sync vs AsyncSign in

  4. VCS and Review as First-ClassSign in

Part 40

Live Sharing and Co-Editing

  1. Live Sharing and Co-EditingSign in

  2. Presence and Shared StateSign in

  3. Roles and PermissionsSign in

  4. Privacy and Data BoundariesSign in

Part 41

Code Review Integrations

  1. Code Review IntegrationsSign in

  2. Diffs Inside the IDESign in

  3. Comments and SuggestionsSign in

  4. Linking to Work SystemsSign in

Part 42

Remote Development Models

  1. Remote Development ModelsSign in

  2. Local IDE + Remote TargetSign in

  3. Cloud IDE InstancesSign in

  4. Latency and Offline StrategySign in

Part 43

Dev Environments as Templates

  1. Dev Environments as TemplatesSign in

  2. Template ValueSign in

  3. Scoping TemplatesSign in

  4. Ephemeral vs PersistentSign in

Part 44

Collaboration UX and Social Features

  1. Collaboration UX and Social FeaturesSign in

  2. Awareness FeaturesSign in

  3. In-Context AnnotationsSign in

  4. Notification DisciplineSign in

Part 45

AI as a New Primitive in Dev Tools

  1. AI as a New Primitive in Dev ToolsSign in

  2. Capability SetSign in

  3. Context as FuelSign in

  4. AI RolesSign in

Part 46

Integrating AI with Editing

  1. Integrating AI with EditingSign in

  2. Inline AssistanceSign in

  3. Block-Level TransformsSign in

  4. Chat Tied to CodeSign in

Part 47

AI and Code Navigation

  1. AI and Code NavigationSign in

  2. Semantic Code SearchSign in

  3. Pattern QueriesSign in

  4. Assisted UnderstandingSign in

Part 48

AI-Assisted Refactoring and Fixes

  1. AI-Assisted Refactoring and FixesSign in

  2. Fix Suggestions from DiagnosticsSign in

  3. Guided RefactorsSign in

  4. Diffability as a RequirementSign in

Part 49

Tool-Oriented AI Workflows

  1. Tool-Oriented AI WorkflowsSign in

  2. Tools as InterfacesSign in

  3. Multi-Step OrchestrationSign in

  4. Auditability and ReplaySign in

Part 50

Trust, Safety, and Data Boundaries

  1. Trust, Safety, and Data BoundariesSign in

  2. Context BoundariesSign in

  3. GuardrailsSign in

  4. Verification UXSign in

Part 51

IDE Platforms as Products

  1. IDE Platforms as ProductsSign in

  2. User SegmentsSign in

  3. Multi-Surface ExperiencesSign in

  4. Product MetricsSign in

Part 52

Toolchain Orchestration and Integration

  1. Toolchain Orchestration and IntegrationSign in

  2. Connecting the StackSign in

  3. One-Click vs ComposableSign in

  4. Unified ConfigurationSign in

Part 53

Multi-Language and Multi-Environment IDEs

  1. Multi-Language and Multi-Environment IDEsSign in

  2. Polyglot MonoreposSign in

  3. Defaults and OverridesSign in

  4. Hybrid Dev SetupsSign in

Part 54

Extensibility, Governance, and Ecosystems

  1. Extensibility, Governance, and EcosystemsSign in

  2. Ecosystem PosturesSign in

  3. Governance ModelsSign in

  4. Versioning and MigrationsSign in

Part 55

Observability and Reliability for Dev Tools

  1. Observability and Reliability for Dev ToolsSign in

  2. Tool TelemetrySign in

  3. Usage -> RoadmapSign in

  4. Diagnosing FailuresSign in

Part 56

Reference Architectures and Maturity Models

  1. Reference Architectures and Maturity ModelsSign in

  2. Basic ToolchainSign in

  3. Intermediate ToolchainSign in

  4. Advanced PlatformSign in