Full Stack Development Flashcards
1
Q
What is a full stack developer?
A
Someone who has familiarity with each layer of the stack (frontend and backend technologies):
- Server/Hosting Environment/Network
- Data Modeling and Databases
- Business Logic
- API Layer/Action Layer/MVC
- User Interface
- Understanding customer/business needs
Other concerns:
- Security
- Understanding repeatable automated processes used for building, testing and deploying applications
- Ability to write unit tests
2
Q
What is involved in the Server/Hosting Environment/Network layer?
A
- Understanding what can break and why, taking no resource for granted.
- Appropriate use of the file system, cloud storage, network resources, and an understanding of data redundancy and availability is necessary.
- How does the application scale given the hardware constraints?
- What about multi-threading and race conditions?
- Full stack developers can work side by side with DevOps. The system should provide useful error messages and logging capabilities.
3
Q
What is involved in the Data Modeling/Databases Layer?
A
- If the data model is flawed, the business logic and higher layers start to need strange (ugly) code to compensate for corner cases the data model doesn’t cover.
- How to create a reasonably normalized relational model, complete with foreign keys, indexes, views, lookup tables, etc.
- Familiar with the concept of non-relational data stores and understand where they shine over relational data stores.
4
Q
What is involved in the Business Logic Layer?
A
- The value the application provides.
- Solid object oriented skills are needed here.
- Frameworks might be needed here as well.
5
Q
What is involved in the API Layer/Action Layer/MVC?
A
- How the outside world operates against the business logic and data model.
- Frameworks at this level should be used heavily.
- Full stack developers have the ability to write clear, consistent, simple to use interfaces.
6
Q
What is involved in the User Interface Layer?
A
- a) understand how to create a readable layout, or b) acknowledge they need help from artists and graphic designers
- Can include mastery of HTML5 / CSS and JavaScript