Introduction to Software Development Flashcards
Describe how websites and cloud applications work.
Websites: Browser uses url to to request information from server. Server sends response with HTML, CSS, & Javascript
Cloud applications: request content that server returns similar to website. Built to work seamlessly with cloud-based back-end infrastructure
Identify the technologies you can use to create reactive and responsive websites.
- HTML, CSS, JavaScript, SASS, LESS languages
- Angular framework (google)
- React.js (Facebook)
- Vue.js (Crowd sourced?)
Identify the back-end technologies you can use to create functionality in your websites.
- API - code that works with data, usually using JSON. APIs have set rules & structures
- Routes - path to a website or page that the user interacts with
- Endpoint processes- can be API or be a path
- Javascript - node.js, express
- Python - Django, flask
- SQL (structured query language)
- ORM (object relational mapping)
Describe how teams and squads work in a software engineering context.
Teamwork can include:
* Kick-off
* Design & code reviews
* Walkthroughs
* Retrospectives
* Mentoring
Squad
* Used in agile environment methodology
* Small team of up to 10 developers
- Squad leader
- Product developers
- UX developers/designers
* May practice pair programming
Identify the benefits of different pair programming styles.
Driver/navigator - most common
* ‘Driver’ types in the code
* Navigator reviews code as it’s written and giving directions where to go next
* Important to swap roles regularly
Ping-pong
* First developer writes failing test
* Second developer writes code to pass test
* Important to swap roles regularly
Strong style
* Pair junior programmer with experienced one
* Senior is the navigator
* Junior is the driver
Share knowledge & skills
Build soft skills
Fewer typos, logical errors, bugs
Code review on the fly
Identify optimal solution early on
Overall efficiency
Classify common web technologies into front-end and back-end technologies.
Front-end:
Javascript
CSS
HTML
SASS
Angular frameworks
Vue.js
React.js
LESS
Back-end:
XML
JavaScript
JSON
Node.js
Python
Flask
Django
Express
Identify commonly used types of development tools, including version control software, libraries, and frameworks.
Version control
* Examples: Git, GitHub for source code storage and management
Libraries
* Examples: Jquery - javascript; email validator; apache commons
Frameworks
* Examples: Angular JS (dynamic web applications); Vue JS (user interface);Django Python (web development)
Describe how some key developer tools work, including CI/CD tools, build tools, packages, and package managers.
Continuous Integration with Continuous Delivery or Continuous Deployment
- You can use developer tools to track who makes what changes to your code with version control software, access libraries of reusable code, and use frameworks to build and deploy applications in a standard way.
- CI/CD tools, build tools, packages, and package managers help you build and distribute your applications.
Describe software stacks and identify the advantages of three popular stacks.
Software stacks:
* Combination of technologies (software / programming languages)
* Used for creating applications and solutions
* Typically include:
- Front-end technologies like programming languages, frameworks, user-interface tools
- Back-end technologies like programming languages, frameworks, web servers, app servers, operating systems, messaging applications, and databases
MEAN (MongoDB, Express.js, Angular.js, Node.js) (MEVN, MERN)
* Free, open source
* All parts use Javascript, only one language to learn
* Lots of documentation and reusable code for developers
MEVN
* Similar to MEAN, uses Vue.js instead of Angular.js for user interfaces
* Newer, less reusable libraries
LAMP (Linus, Apache, MySQL, Python)
* Open source
* One of oldest stacks
* Lots of reusable code and support