SlideShare a Scribd company logo
1 of 7
CODE
REVIEW
AND
MONITOR
QUALITY OF CODE
Information Technology
Essentials
Shahram Foroozan
Aspedan.Dev
October 4,
2023
Date
What is Clean Code?
code whose attributes make your software reliable, secure, and
maintainable.
Definitions
• Clean Code attribute: A characteristic that contributes to
Clean Code. Attributes are grouped under four main
categories: consistent, intentional, adaptable, and responsible.
Code is considered Clean Code when it has these attributes.
• Software quality: A characteristic of software that contributes
to its lasting value. There are three software qualities: security,
reliability, and maintainability.
• Issue: A problem in your code that prevents it from being
Clean Code. Each issue is linked to one Clean Code attribute
which is associated with one or more software qualities, each
with a level of severity.
Consistent
The code is written in a uniform and conventional way. All the code
looks similar and follows a regular pattern, even with multiple
contributors at different times.
Consistent code is formatted, conventional, and identifiable.
•Formatted: The code presentation is systematic and regular. Non-
semantic choices, such as spacing, indentation, and character
placement, remain consistent throughout the codebase, maintaining
uniformity across files and authors.
•Conventional: The code performs tasks with expected instructions.
Faced with equally good options, the code adheres to a single choice
across all instances, preferring language conventions. This includes
using the appropriate programming interfaces and language features.
•Identifiable: The names follow a regular structure based on language
conventions. The casing, word separators, suffixes, and prefixes used in
the identifiers have purpose, without arbitrary differences.
Intentional
The code is precise and purposeful. Every instruction makes sense, is
adequately formed, and clearly communicates its behavior.
Intentional code is clear, logical, complete, and efficient.
•Clear: The code is self-explanatory, transparently communicating its
functionality. It is written in a straightforward way that minimizes
ambiguity, avoiding unnecessary clever or intricate solutions.
•Logical: The code has well-formed and sound instructions that work
together. It is free of explicit errors, contradictions, and commands that
could be unpredictable or objectionable.
•Complete: The code constructs are comprehensive, used adequately
and thoroughly. The code is functional and achieves its implied goals.
There are no obviously incomplete or lacking solutions.
•Efficient: The code utilizes resources without needless waste. It
prioritizes economical options when available, avoiding unnecessary
consumption of memory, processor, disk, or network resources.
Adaptable
The code is structured to be easy to evolve and develop with
confidence. It makes extending or repurposing its parts easy, and
promotes localized changes without undesirable side-effects.
Adaptable code is focused, distinct, modular, and tested.
•Focused: The code has a single, narrow, and specific scope. Each unit
should have only one concise purpose, without an overwhelming
accumulation of instructions or excessive amounts of complexity.
•Distinct: The code procedures and data are unique and distinctive,
without undue duplication. The codebase has no significant repetition
where it could be decomposed into smaller shared segments.
•Modular: The code has been organized and distributed to emphasize
the separation between its parts. The relationships within the code are
carefully managed, ensuring they are minimal and clearly defined.
•Tested: The code has automated checks that provide confidence in the
functionality. It has enough test coverage which enables changes in
implementation without the risk of functional regressions.
Responsible
The code takes into account its ethical obligations on data, as well as
societal norms.
Responsible code is lawful, trustworthy, and respectful.
•Lawful: The code respects licensing and copyright regulation. It
exercises the creator’s rights and honors other’s rights to license their
own code.
•Trustworthy: The code abstains from revealing or hard-coding private
information. It preserves sensitive private information such as
credentials and personally-identifying information.
•Respectful: The code refrains from using discriminatory and offensive
language. It chooses to prioritize inclusive terminology whenever an
alternative exists that conveys the same meaning.
What are our choices?
1. GitHub
2. GitLab
3. Veracode:.
4. JFrog:
5. Snyk:
6. Checkmarx:
7. Qualys
8. Sonatype:
9. Codacy:
10. Synopsys:
11. SonarSource
What is my choice and why?
SonarSource

More Related Content

Similar to CodeQuality.pptx

9 Tips to write efficient and scalable code.pdf
9 Tips to write efficient and scalable code.pdf9 Tips to write efficient and scalable code.pdf
9 Tips to write efficient and scalable code.pdfOprim Solutions
 
Pair Programming with a Large Language Model
Pair Programming with a Large Language ModelPair Programming with a Large Language Model
Pair Programming with a Large Language ModelKnoldus Inc.
 
Unit_5 and Unit 6.pptx
Unit_5 and Unit 6.pptxUnit_5 and Unit 6.pptx
Unit_5 and Unit 6.pptxtaxegap762
 
Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?SARCCOM
 
Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)
Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)
Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)El Mahdi Benzekri
 
10 Programming Principles Every Software Developer Should Know.pdf
10 Programming Principles Every Software Developer Should Know.pdf10 Programming Principles Every Software Developer Should Know.pdf
10 Programming Principles Every Software Developer Should Know.pdfBMN Infotech
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureGang Tao
 
Expert Code Review best practices
Expert Code Review best practicesExpert Code Review best practices
Expert Code Review best practicesjeetendra mandal
 
Sogeti Software Maintainability Roadshow
Sogeti Software Maintainability RoadshowSogeti Software Maintainability Roadshow
Sogeti Software Maintainability RoadshowPeter Rombouts
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and howRakesh Kumar Jha
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfsarah david
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of codeShwe Yee
 
Reduce Third Party Developer Risks
Reduce Third Party Developer RisksReduce Third Party Developer Risks
Reduce Third Party Developer RisksKevo Meehan
 

Similar to CodeQuality.pptx (20)

9 Tips to write efficient and scalable code.pdf
9 Tips to write efficient and scalable code.pdf9 Tips to write efficient and scalable code.pdf
9 Tips to write efficient and scalable code.pdf
 
SE2018_Lec 17_ Coding
SE2018_Lec 17_ CodingSE2018_Lec 17_ Coding
SE2018_Lec 17_ Coding
 
Pair Programming with a Large Language Model
Pair Programming with a Large Language ModelPair Programming with a Large Language Model
Pair Programming with a Large Language Model
 
SE2_Lec 18_ Coding
SE2_Lec 18_ CodingSE2_Lec 18_ Coding
SE2_Lec 18_ Coding
 
Unit_5 and Unit 6.pptx
Unit_5 and Unit 6.pptxUnit_5 and Unit 6.pptx
Unit_5 and Unit 6.pptx
 
Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?
 
Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)
Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)
Caring About Code Quality (Clean Code, GRASP, Effective Java, Design Pattern)
 
10 Programming Principles Every Software Developer Should Know.pdf
10 Programming Principles Every Software Developer Should Know.pdf10 Programming Principles Every Software Developer Should Know.pdf
10 Programming Principles Every Software Developer Should Know.pdf
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
Coverity Data Sheet
Coverity Data SheetCoverity Data Sheet
Coverity Data Sheet
 
Expert Code Review best practices
Expert Code Review best practicesExpert Code Review best practices
Expert Code Review best practices
 
Sogeti Software Maintainability Roadshow
Sogeti Software Maintainability RoadshowSogeti Software Maintainability Roadshow
Sogeti Software Maintainability Roadshow
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and how
 
Unit iv
Unit ivUnit iv
Unit iv
 
Design patterns
Design patternsDesign patterns
Design patterns
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
 
Clean code chpt_1
Clean code chpt_1Clean code chpt_1
Clean code chpt_1
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of code
 
Reduce Third Party Developer Risks
Reduce Third Party Developer RisksReduce Third Party Developer Risks
Reduce Third Party Developer Risks
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality Tools
 

More from Shahram Foroozan

Shopify App Developments RoadMap2024.pptx
Shopify App Developments RoadMap2024.pptxShopify App Developments RoadMap2024.pptx
Shopify App Developments RoadMap2024.pptxShahram Foroozan
 
Final presentation for Master Degree Thesis
Final presentation for Master Degree ThesisFinal presentation for Master Degree Thesis
Final presentation for Master Degree ThesisShahram Foroozan
 
Mr.Karimiyan Present In Kasra Company
Mr.Karimiyan Present In Kasra CompanyMr.Karimiyan Present In Kasra Company
Mr.Karimiyan Present In Kasra CompanyShahram Foroozan
 

More from Shahram Foroozan (6)

Shopify App Developments RoadMap2024.pptx
Shopify App Developments RoadMap2024.pptxShopify App Developments RoadMap2024.pptx
Shopify App Developments RoadMap2024.pptx
 
Final presentation for Master Degree Thesis
Final presentation for Master Degree ThesisFinal presentation for Master Degree Thesis
Final presentation for Master Degree Thesis
 
Software Testing Concepts
Software Testing  ConceptsSoftware Testing  Concepts
Software Testing Concepts
 
Develop Mobile App
Develop Mobile AppDevelop Mobile App
Develop Mobile App
 
Hacka Isfahan
Hacka IsfahanHacka Isfahan
Hacka Isfahan
 
Mr.Karimiyan Present In Kasra Company
Mr.Karimiyan Present In Kasra CompanyMr.Karimiyan Present In Kasra Company
Mr.Karimiyan Present In Kasra Company
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

CodeQuality.pptx

  • 1. CODE REVIEW AND MONITOR QUALITY OF CODE Information Technology Essentials Shahram Foroozan Aspedan.Dev October 4, 2023 Date
  • 2. What is Clean Code? code whose attributes make your software reliable, secure, and maintainable. Definitions • Clean Code attribute: A characteristic that contributes to Clean Code. Attributes are grouped under four main categories: consistent, intentional, adaptable, and responsible. Code is considered Clean Code when it has these attributes. • Software quality: A characteristic of software that contributes to its lasting value. There are three software qualities: security, reliability, and maintainability. • Issue: A problem in your code that prevents it from being Clean Code. Each issue is linked to one Clean Code attribute which is associated with one or more software qualities, each with a level of severity.
  • 3. Consistent The code is written in a uniform and conventional way. All the code looks similar and follows a regular pattern, even with multiple contributors at different times. Consistent code is formatted, conventional, and identifiable. •Formatted: The code presentation is systematic and regular. Non- semantic choices, such as spacing, indentation, and character placement, remain consistent throughout the codebase, maintaining uniformity across files and authors. •Conventional: The code performs tasks with expected instructions. Faced with equally good options, the code adheres to a single choice across all instances, preferring language conventions. This includes using the appropriate programming interfaces and language features. •Identifiable: The names follow a regular structure based on language conventions. The casing, word separators, suffixes, and prefixes used in the identifiers have purpose, without arbitrary differences.
  • 4. Intentional The code is precise and purposeful. Every instruction makes sense, is adequately formed, and clearly communicates its behavior. Intentional code is clear, logical, complete, and efficient. •Clear: The code is self-explanatory, transparently communicating its functionality. It is written in a straightforward way that minimizes ambiguity, avoiding unnecessary clever or intricate solutions. •Logical: The code has well-formed and sound instructions that work together. It is free of explicit errors, contradictions, and commands that could be unpredictable or objectionable. •Complete: The code constructs are comprehensive, used adequately and thoroughly. The code is functional and achieves its implied goals. There are no obviously incomplete or lacking solutions. •Efficient: The code utilizes resources without needless waste. It prioritizes economical options when available, avoiding unnecessary consumption of memory, processor, disk, or network resources.
  • 5. Adaptable The code is structured to be easy to evolve and develop with confidence. It makes extending or repurposing its parts easy, and promotes localized changes without undesirable side-effects. Adaptable code is focused, distinct, modular, and tested. •Focused: The code has a single, narrow, and specific scope. Each unit should have only one concise purpose, without an overwhelming accumulation of instructions or excessive amounts of complexity. •Distinct: The code procedures and data are unique and distinctive, without undue duplication. The codebase has no significant repetition where it could be decomposed into smaller shared segments. •Modular: The code has been organized and distributed to emphasize the separation between its parts. The relationships within the code are carefully managed, ensuring they are minimal and clearly defined. •Tested: The code has automated checks that provide confidence in the functionality. It has enough test coverage which enables changes in implementation without the risk of functional regressions.
  • 6. Responsible The code takes into account its ethical obligations on data, as well as societal norms. Responsible code is lawful, trustworthy, and respectful. •Lawful: The code respects licensing and copyright regulation. It exercises the creator’s rights and honors other’s rights to license their own code. •Trustworthy: The code abstains from revealing or hard-coding private information. It preserves sensitive private information such as credentials and personally-identifying information. •Respectful: The code refrains from using discriminatory and offensive language. It chooses to prioritize inclusive terminology whenever an alternative exists that conveys the same meaning.
  • 7. What are our choices? 1. GitHub 2. GitLab 3. Veracode:. 4. JFrog: 5. Snyk: 6. Checkmarx: 7. Qualys 8. Sonatype: 9. Codacy: 10. Synopsys: 11. SonarSource What is my choice and why? SonarSource