Getting Started with Software Development for Cisco DevNet LEARNING - - PowerPoint PPT Presentation

getting started with software development for cisco devnet
SMART_READER_LITE
LIVE PREVIEW

Getting Started with Software Development for Cisco DevNet LEARNING - - PowerPoint PPT Presentation

Getting Started with Software Development for Cisco DevNet LEARNING THE FOUNDATIONS OF SOFTWARE DESIGN Nick Russo NETWORK ENGINEER @nickrusso42518 www.njrusmc.net Should I be here? Agenda Core skills: Bash Basic software design skills


slide-1
SLIDE 1

@nickrusso42518 www.njrusmc.net

NETWORK ENGINEER

Nick Russo

LEARNING THE FOUNDATIONS OF SOFTWARE DESIGN

Getting Started with Software Development for Cisco DevNet

slide-2
SLIDE 2

Should I be here? Core skills: Bash Basic software design skills Python workspace setup tips Building a simple web app

Agenda

slide-3
SLIDE 3

Real-life IT experience Ability to comprehend unfamiliar code Basic Python programming

Basic Skills You Should Have

slide-4
SLIDE 4

Pluralsight has deep-dive courses on almost every topic here!

slide-5
SLIDE 5

Your Role at Globomantics

slide-6
SLIDE 6

Demo

First things first: the Bash shell

slide-7
SLIDE 7

Waterfall Development Strategy

Get requirements Design Implement Test Deliver Time

slide-8
SLIDE 8

Advantages

Works well when requirements don't change Clearly defined stages Easy to manage

Disadvantages

Cannot adapt to change Hard to "go back and fix" Testing only at the end

Waterfall Advantages and Disadvantages

slide-9
SLIDE 9

Agile Development Strategy - Scrum

Implement Delivery Test Reqts Design Sprint Time Implement Delivery Test Reqts Design Sprint next sprint

slide-10
SLIDE 10

Advantages

Delivers software (value) faster Fosters teamwork and skill sharing Little planning required

Disadvantages

Requires customer interaction Not many docs; people dependency Requires a competent team leader

Agile Advantages and Disadvantages

slide-11
SLIDE 11

Lean Development Strategy – Kanban

Backlog In Process (max = 2) Completed Bug 2 Bug 1 New feature 4 New feature 2 New feature 1 Bug 3 New feature 3 New feature 2

slide-12
SLIDE 12

Advantages

Minimal batch size Task-oriented; no roles Fastest delivery

Disadvantages

Requires discipline Need sensible WIP limits Encourages recklessness

Lean Advantages and Disadvantages

slide-13
SLIDE 13

Usage of design patterns Error checking Functional decomposition

Pillars of Good Coding

slide-14
SLIDE 14

A generic and reusable solution that solves a recurring problem in software development. It is a blueprint for a strong code project and often satisfies specific project requirements.

Design Pattern

slide-15
SLIDE 15

Detour: Object-oriented Programming (OOP)

class Customer string name integer balance method print_stats() cust_a = new Customer() cust_a.name = "John" cust_a.balance = 14 cust_a.print_stats() class instantiates object

slide-16
SLIDE 16

virtualenv: create separation between Python projects pip: Python package manager pypi.org

Making Life Easier with pip and virtualenv

slide-17
SLIDE 17

Demo

Getting set up for CRM prototyping

slide-18
SLIDE 18

The Observer Design Pattern

Subjects Observers method notify(): for each observer:

  • bserver.update()

method update(): do green actions method update(): do blue actions subject.register(observer) subject.unregister(observer) (Publishers) (Subscribers)

slide-19
SLIDE 19

Demo

Observer pattern: balances are past due!

slide-20
SLIDE 20

The Model View Controller (MVC) Pattern

Model View Controller (Model) (Template) (View) model.write() model.read() view.get() view.display()

slide-21
SLIDE 21

Demo

An MVC-based CRM app using Flask

slide-22
SLIDE 22

MVC implementation Software is more than just coding Keep your Bash skills fresh!

Software Basics in Review