getting started with software development for cisco devnet
play

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


  1. Getting Started with Software Development for Cisco DevNet LEARNING THE FOUNDATIONS OF SOFTWARE DESIGN Nick Russo NETWORK ENGINEER @nickrusso42518 www.njrusmc.net

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

  3. Basic Skills You Should Have Ability to Basic Python Real-life IT comprehend programming experience unfamiliar code

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

  5. Your Role at Globomantics

  6. Demo First things first: the Bash shell

  7. Waterfall Development Strategy Get requirements Design Implement Test Deliver Time

  8. Waterfall Advantages and Disadvantages Advantages Disadvantages Works well when requirements Cannot adapt to change don't change Hard to "go back and fix" Clearly defined stages Testing only at the end Easy to manage

  9. Agile Development Strategy - Scrum Sprint Sprint Reqts Reqts Design Design Implement Implement Test next sprint Test Delivery Delivery Time

  10. Agile Advantages and Disadvantages Advantages Disadvantages Delivers software (value) faster Requires customer interaction Fosters teamwork and skill sharing Not many docs; people dependency Little planning required Requires a competent team leader

  11. Lean Development Strategy – Kanban Backlog In Process (max = 2) Completed Bug 2 Bug 1 New feature 1 New feature 2 New feature 4 Bug 3 New feature 3 New feature 2

  12. Lean Advantages and Disadvantages Advantages Disadvantages Minimal batch size Requires discipline Task-oriented; no roles Need sensible WIP limits Fastest delivery Encourages recklessness

  13. Pillars of Good Coding Functional Usage of design Error checking decomposition patterns

  14. Design Pattern 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.

  15. Detour: Object-oriented Programming (OOP) class Customer cust_a = new Customer() string name cust_a.name = "John" integer balance cust_a.balance = 14 method print_stats() cust_a.print_stats() class instantiates object

  16. Making Life Easier with pip and virtualenv pip: Python package manager virtualenv: create separation between Python projects pypi.org

  17. Demo Getting set up for CRM prototyping

  18. The Observer Design Pattern Subjects Observers (Publishers) (Subscribers) subject.register(observer) method update(): subject.unregister(observer) do green actions method notify(): method update(): for each observer: do blue actions observer.update()

  19. Demo Observer pattern: balances are past due!

  20. The Model View Controller (MVC) Pattern model.read() view.display() model.write() view.get() Model Controller View (Model) (View) (Template)

  21. Demo An MVC-based CRM app using Flask

  22. Software Basics in Review Keep your Bash Software is more MVC skills fresh! than just coding implementation

Recommend


More recommend