1/12
Looks like no tags are added yet.
What is the delivery framework?
Requirements, Entities & Relationships, Class Design, Implementation, Extensibility (optional)
What are you doing in the "requirements" part?
Mainly making the initial prompt unambiguous by asking revealing questions about the system.
What are themes do the questions you ask in the requirements part generally revolve around?
Primary capabilities, Rules and Completion, Error Handling, Scope Boundaries.
What do you mainly do in the "Entities & Relationships" part?
You define the main entities that exist in your system, then you establish the relationships between those entities. You're not defining their inner state or behaviours yet, just some simple mapping.
What do you mainly do in the "Class Design" part?
You actually start defining the state (first) of each entity, then its behaviour that it's exposing to class users or using internally (second). By the end of it, you should have a blueprint for all of your entities.
What is an "Entity" in your system
a "thing" that exists in your system that enforces rules and maintains state.
What is are the "Relationships" in your system
They explain how different entities relate to each other (e.g., one entity contains a/has-a other entity).
What kind of approach should be taken during "Class Design"?
A top-down approach, i.e., start with your orchestrator entity, and go down from there.
How do you derive state from an entity's requirements?
Ask yourself what the entity needs to keep in memory in order to fulfill its own requirements.
How do you derive behaviour from an entity's requirements?
Basically asking what operations this class needs to satisfy its requirements.
What do you mainly do in the "Implementation" part?
You actually start implementing your entities in code. Ideally starting with the orchestrator's main function, but it's really up to the interviewer.
What approach is taken in the "Implementation" part?
Start with the happy path of every method, after confirmation, walk through the edge cases. Once you've implemented the core flow of the entire system, run through verification with a simple case.
What is the "Extensibility" part?
Basically the interviewer grilling you on how you can extend your design to implement something specific, it's not necessarily about coding, more about seeing how flexible your design is.