Dependency and package management.

Last reviewed 13 December 2020 by Alex Seymour

Description

An overview of why and how we use dependency and package management in JS and PHP.

Why this is important

It is important to promote re-use and contribution of code that does the same thing, using dependency and package management we can get the functionality we need. As well as that you wil learn how to select packages and

Outcomes

At the end of this training you will be able to:

  1. Use the NPM package manager.
  2. Use composer as a dependency manager.
  3. Find packages on NPMJS and packagist.

Learner Requirements

Before starting this session you will need:

  1. A working lamp stack (Cloud 9)

Outline

An overview of the session should mirror slide deck

  1. Intro Dependency / Package managers
  2. What are they
  3. Introduction to Composer
    • Installing
    • Commands
    • Packagist
  4. Solving problems with Composer
    • Read a csv file
    • Process the file
    • Send the file to an endpoint
  5. Introduction to NPM

Tasks

To be completed as part of this training session

  1. Link to Glitch
  2. Link to repo on GitHub

Further Tasks

Additional to the training session, to be completed in apprentices own time (non mandatory).

  1. Additional versions of session tasks for your project
  2. Additional versions of session tasks for something at work
  3. Link to challenge repo on GitHub

Resources / Reference

  1. Slides: Slides on Google Drive

Skills, Knowledge, Behaviours and Values

Core Skills

This workshop is designed to develop the following from our core skills directive

  • Communication
  • Estimation
  • Summarisation
  • Presentation
  • Research
  • Teamwork

Apprenticeship Standard

This workshop will encourage the development of the following from the Software Developer Level 4 Standard

COMPETENCIES (Skills)

  • C4 - Test: can test code and analyse results to correct errors found using either V-model manual testing and/or using unit testing.
  • C5 - Problem solving: can apply structured techniques to problem solving, can debug code and can understand the structure of programmes in order to identify and resolve issues.
  • C8 - Deployment: can understand and utilise skills to build, manage and deploy code into enterprise environments.
  • C9 - Development lifecycle: can operate at all stages of the software development lifecycle, with increasing breadth and depth over time with initial focus on build and test.
  • C11 - Can interpret and follow:
    • software designs and functional/technical specifications
    • company defined ‘coding standards’ or industry good practice for coding
    • testing frameworks and methodologies
    • company, team or client approaches to continuous integration, version and source control

BEHAVIOURS

  • B1 - Logical and creative thinking skills.
  • B2 - Analytical and problem-solving skills.
  • B5 - A thorough and organised approach.
  • B8 - Maintain productive, professional and secure working environment.

Knowledge

  • K3 - Understands how teams work effectively to produce software and contributes appropriately.
  • K4 - Understands and applies software design approaches and patterns and can interpret and implement a given design, compliant with security and maintainability requirements.
  • K5 - Understands and responds to the business environment and business issues related to software development.