2.3.3
Maintainability
Maintainability
Maintainability
Maintainable code is code that can be read, understood, and fixed by other developers. There are a few best-practice techniques to help write maintainable code, including:
Comments
Comments
- Comments should be used throughout the code to:
- Explain complex processes.
- Clarify the purpose of algorithms.
- Clarify the purpose of a subroutine, as well as its parameters and return type and value.
Indentation
Indentation
- It is good practice to keep indentation of code consistent throughout the code.
- When a new block of code opens, it should be indented to the right.
- When a block of code closes, it should return to the left.
- This makes code easier to read by visualising the scopes involved.
Identifier names
Identifier names
- Identifier names should be clear about their purpose. For example, which of the following two examples makes more sense:
- newBalance = oldBalance * INTEREST_RATE;
- a = b * c;
Code structure
Code structure
- Code should be well structured through the use of subroutines.
- This allows people to identify a single subroutine that they need to reuse or work on.
Parameters vs global variables
Parameters vs global variables
- It is good practice to pass data around the program using parameter passing rather than using global variables.
- This is because passing parameters prevents other subroutines from unexpectedly changing the value of the variables.
Comments
Comments
Comments are lines of code that are ignored completely by the computer.
Purpose of comments
Purpose of comments
- Comments can be used to add description to your code to make it easier for other people to understand.
- They can also be used to leave notes and reminders to yourself as you work on a complex program.
How to comment
How to comment
- To write a comment in most languages, you must use a special character which tells the computer to ignore the rest of the line:
- In Python, that character is a #.
- In C-style languages it is //.
- The exact character depends on the language being used.
1Computer Systems
1.1Systems Architecture
1.2Memory & Storage
1.2.1Types of Memory
1.2.2Flash Memory
1.2.3Virtual Memory
1.2.4Exam-Style Questions - Primary Memory
1.2.5Capacity
1.2.6Solid State Storage
1.2.7Magnetic Storage
1.2.8Examples of Magnetic Storage
1.2.9Optical Storage & its Properties
1.2.10Examples of Optical Storage
1.2.11End of Topic Test - Computer Systems
1.2.12Grade 9 - Storage
1.2.13Exam-Style Questions - Storage
1.2.14Units of Information
1.2.15Number Bases
1.2.16Converting Number Bases
1.2.17Hexadecimal
1.2.18Binary Arithmetic
1.2.19Representing Text
1.2.20ASCII & Unicode
1.2.21Representing Images
1.2.22Representing Sound
1.2.23Data Compression
1.2.24End of Topic Test - Representation
1.2.25Exam-Style Questions -Data Conversions
1.3Computer Networks, Connections & Protocols
1.3.1Benefit of Networks
1.3.2Network Performance
1.3.3Networks: How Do Packets Get Routed?
1.3.4Types of Networks
1.3.5Client-Server Model
1.3.6Pros & Cons of Client-Server Model
1.3.7Peer-to-Peer Model
1.3.8Pros & Cons of Peer-to-Peer Model
1.3.9Network Hardware
1.3.10What is the Internet?
1.3.11URLs
1.3.12DNS & Web Hosting
1.3.13The Cloud
1.3.14Pros & Cons of the Cloud
1.3.15Exam-Style Questions - Networking Models
1.3.16Topology
1.3.17WiFi
1.3.18WiFi Encryption
1.3.19IP Addresses
1.3.20MAC Addresses
1.3.21Network Protocols
1.3.22Application Protocols
1.3.23Layers
1.3.24Advantages of Layering
1.3.25Exam-Style Questions - Network Protocols
1.4Network Security
1.5Systems Software
1.6Ethical, Legal, Cultural & Environmental Concern
1.6.1Open Source vs Proprietary Software
1.6.2Licensing Issues
1.6.3Ethical Issues
1.6.4Ethical Issues 2
1.6.5Exam-Style Questions - Ethical Issues
1.6.6Legal Issues
1.6.7Legal Issues 2
1.6.8Freedom of Information Act (2000)
1.6.9Cultural Issues
1.6.10Environmental Issues
1.6.11Positive Environmental Impact
1.6.12Privacy Issues
1.6.13Stakeholders
1.6.14End of Topic Test - Software & Issues
2Computational Thinking, Algorithms and Programming
2.1Algorithms
2.1.1Computational Thinking
2.1.2Algorithmic Thinking
2.1.3Pseudocode & Flow Diagrams
2.1.4Interpreting & Correcting Algorithm
2.1.5Completing Algorithms
2.1.6Search Algorithms
2.1.7Binary Search
2.1.8Overview of Sort Algorithms
2.1.9Bubble Sort & Insertion Sort
2.1.10Merge Sort
2.1.11Exam-Style Questions - Sorting Algorithms
2.2Programming Fundamentals
2.3Producing Robust Programs
2.4Boolean Logic
Jump to other topics
1Computer Systems
1.1Systems Architecture
1.2Memory & Storage
1.2.1Types of Memory
1.2.2Flash Memory
1.2.3Virtual Memory
1.2.4Exam-Style Questions - Primary Memory
1.2.5Capacity
1.2.6Solid State Storage
1.2.7Magnetic Storage
1.2.8Examples of Magnetic Storage
1.2.9Optical Storage & its Properties
1.2.10Examples of Optical Storage
1.2.11End of Topic Test - Computer Systems
1.2.12Grade 9 - Storage
1.2.13Exam-Style Questions - Storage
1.2.14Units of Information
1.2.15Number Bases
1.2.16Converting Number Bases
1.2.17Hexadecimal
1.2.18Binary Arithmetic
1.2.19Representing Text
1.2.20ASCII & Unicode
1.2.21Representing Images
1.2.22Representing Sound
1.2.23Data Compression
1.2.24End of Topic Test - Representation
1.2.25Exam-Style Questions -Data Conversions
1.3Computer Networks, Connections & Protocols
1.3.1Benefit of Networks
1.3.2Network Performance
1.3.3Networks: How Do Packets Get Routed?
1.3.4Types of Networks
1.3.5Client-Server Model
1.3.6Pros & Cons of Client-Server Model
1.3.7Peer-to-Peer Model
1.3.8Pros & Cons of Peer-to-Peer Model
1.3.9Network Hardware
1.3.10What is the Internet?
1.3.11URLs
1.3.12DNS & Web Hosting
1.3.13The Cloud
1.3.14Pros & Cons of the Cloud
1.3.15Exam-Style Questions - Networking Models
1.3.16Topology
1.3.17WiFi
1.3.18WiFi Encryption
1.3.19IP Addresses
1.3.20MAC Addresses
1.3.21Network Protocols
1.3.22Application Protocols
1.3.23Layers
1.3.24Advantages of Layering
1.3.25Exam-Style Questions - Network Protocols
1.4Network Security
1.5Systems Software
1.6Ethical, Legal, Cultural & Environmental Concern
1.6.1Open Source vs Proprietary Software
1.6.2Licensing Issues
1.6.3Ethical Issues
1.6.4Ethical Issues 2
1.6.5Exam-Style Questions - Ethical Issues
1.6.6Legal Issues
1.6.7Legal Issues 2
1.6.8Freedom of Information Act (2000)
1.6.9Cultural Issues
1.6.10Environmental Issues
1.6.11Positive Environmental Impact
1.6.12Privacy Issues
1.6.13Stakeholders
1.6.14End of Topic Test - Software & Issues
2Computational Thinking, Algorithms and Programming
2.1Algorithms
2.1.1Computational Thinking
2.1.2Algorithmic Thinking
2.1.3Pseudocode & Flow Diagrams
2.1.4Interpreting & Correcting Algorithm
2.1.5Completing Algorithms
2.1.6Search Algorithms
2.1.7Binary Search
2.1.8Overview of Sort Algorithms
2.1.9Bubble Sort & Insertion Sort
2.1.10Merge Sort
2.1.11Exam-Style Questions - Sorting Algorithms
2.2Programming Fundamentals
2.3Producing Robust Programs
2.4Boolean Logic
Unlock your full potential with GoStudent tutoring
Affordable 1:1 tutoring from the comfort of your home
Tutors are matched to your specific learning needs
30+ school subjects covered
What are comments?