Uploaded by fazliimaam96

PAF

advertisement
Programming Applications &
Frameworks
Introduction to “Programming Application & Frameworks”
Pushpitha Sandaruwan
Senior Software Engineer
IFS R&D International
+94714969763
[email protected]
Module Outline
Module Outline
Learning Outcomes
Learning Outcomes
• This module intends to gather the knowledge in many areas of
frameworks and latest technologies of these frameworks comprises
• At the end of the module student will be able to
Understand the basic concepts of Frameworks
Incorporate Industry Standard Software Development practices
Develop Applications using Java Frameworks
Use Restful style web services
Develop Full Stack Web Applications using Java Script Frameworks
Be a lifelong learner
Evaluation
Evaluation
Continuous Assessments 60%
•
•
•
•
•
Mid Semester Examination
Assignments
Group Project
Technical Blog
Lab Examination
End Semester Exam 40%
Primary References
Primary References
End Semester Exam 40%
Today…
• Programming Paradigms
• Version Controlling Systems
• GIT
• Debugging and Troubleshooting
• Stack Overflow
Programming Paradigms
Programming Paradigms
• Programming paradigms are a way to classify programming languages
based on their features.
• i.e.
•
•
•
•
Object-Oriented
Functional
Procedural
Imperative
Functional Programming
• Treats computation as the evaluation of mathematical functions
avoiding state and mutable data
• Main traits
• Lambda calculus, formula, recursion, referential transparency, no side effects
• Examples
•
•
•
•
•
C++
Lisp
Python
Java Script
Ruby
Home Work
• What it means by
1.
2.
3.
4.
5.
Lambda calculus
formula
recursion
referential transparency
no side effects
Functional Programming
• Example (Python)
• Printing first 10 Fibonacci numbers, iterative
OOP Programming
• Treats data fields as objects manipulated through predefined
methods only
• Main traits
• Objects, methods, message passing, information hiding, data abstraction,
encapsulation, polymorphism, inheritance,
• Examples
•
•
•
•
•
•
C++
C#
Java
PHP
Java Script
Python
OOP Programming
• Example (Java)
Home Work
• Refresh your knowledge about OOP concepts
Version Controlling Systems- VCS
What is a VCS ?
• Version control systems are a category of software tools that help a
software team manage changes to source code over time.
• Version control software keeps track of every modification to the
code in a special kind of database
• If a mistake is made…
• developers can turn back the clock
• compare earlier versions of the code to help fix the mistake
• minimizing disruption to all team members
Why use a VCS ?
• Collaboration
• With a VCS, everybody on the team is able to work absolutely freely - on any
file at any time
• The VCS will later allow you to merge all the changes into a common version
• Storing versions properly
• A version control system acknowledges that there is only one project
• Restoring previous versions
• Understanding what happened
• Every time you save a new version of your project, your VCS requires you to
provide a short description of what was changed
• Backup
VCS Terminology
Repo/Repository
Object database were your history and configuration is stored. Often it contains a
work tree
clone
A clone of a repository/ exact copy of existing repository
commit
The action of storing a new snapshot of the project’s state in the VCS history
branch
A "branch" is an active line of development. A branch in VCS is just a "label" which
points to a commit
tree
Directory which contains files and sub directories
HEAD
A symbolic name to describe the currently checked out commit
tag
A descriptive name given to one of your commits
history
Describes all ancestor commits
version
released version of your project / Specific commit
Types of Version control
• Local version control systems
• Everything is in your Computer
• Oldest VCS
• Still distributed with many computers today
• i.e. Mac OS X
• Cannot use for collaborative software
development
Cont.…
• Centralized version control systems
• Can be used for collaborative software
development
• everyone knows to a certain degree what
everyone else on the project is doing
• Administrators have fine-grained control
over who can do what;
• Most obvious is the single point of failure
that the centralized server represents
Cont.…
• Distributed Version Control Systems
• No single point of failure
• Clients don’t just check out the latest
snapshot of the files: they fully mirror the
repository
• If any server dies, and these systems were
collaborating via it, any of the client
repositories can be copied back
• Can collaborate with different groups of people
in different ways simultaneously within the same
project
GIT
Introduction to GIT
• GIT is the most commonly used version control system today and is
quickly becoming the standard for version control.
• As a distributed revision control system it is aimed at speed, data
integrity, and support for distributed, non-linear workflows.
• GIT was created by Linus Torvalds in 2005 for development of the
Linux kernel
• Its current maintainer since 2005 is Junio Hamano
• Current GIT Version 2.16
Introduction to GIT
• More to come ……
Debugging and Troubleshooting
Debugging and Troubleshooting
• Troubleshooting: solving a problem, basically an end product of fixing
a problem.
AND
• Debugging: is the process/steps to solve the problem, such as:
removing an error on the computer.
Steps to Debug Efficiently and Effectively
1. Always Reproduce the Bug Before You Start Changing Code
2. Understand Stack Traces
3. Write a Test Case that Reproduces the Bug
Cont.…
4. Know Your Error Codes
5. Google for answers (spend less than 30 mins)
6. Ask for a help (Code Mentor | forum)
Stack Overflow
Stack Overflow
• Stack Overflow is a privately held website, the flagship site of the
Stack Exchange Network, created in 2008 by Jeff Atwood and Joel
Spolsky.
Create your account
Create your account
https://stackoverflow.com/
Today we discussed
• Intro to Module
• Programming Paradigms
• Version Controlling Systems and GIT
• Debugging and Troubleshooting
• Stack Overflow
To be continued…