Skip to content

Instantly share code, notes, and snippets.

@scabbiaza
Last active October 24, 2022 11:39
Show Gist options
  • Save scabbiaza/e5a520509e8769190a0b to your computer and use it in GitHub Desktop.
Save scabbiaza/e5a520509e8769190a0b to your computer and use it in GitHub Desktop.
Quality Attributes for JS Frontend Application

Based on https://msdn.microsoft.com/en-us/library/ee658094.aspx#Interoperability

Conceptual Integrity

Conceptual integrity defines the consistency and coherence of the overall design. This includes the way that components or modules are designed, as well as factors such as coding style and variable naming.

Can be achived by

  • Design Style Guides
  • Code Standarts
  • Code reviews
  • Cleaning legacy
  • Refactoring
  • Having "body" for the new members

Maintainability

Maintainability is the ability of the system to undergo changes with a degree of ease. These changes could impact components, services, features, and interfaces when adding or changing the functionality, fixing errors, and meeting new business requirements.

Can be achived by

  • Informing/educating team member about new technologies/libraries
  • Discussing architecture decisition
  • Doing architect changes globaly, do not left legacy
  • Having regression tests
  • Supporting documentation

Performance

Performance is an indication of the responsiveness of a system to execute any action within a given time interval. It can be measured in terms of latency or throughput. Latency is the time taken to respond to any event. Throughput is the number of events that take place within a given amount of time.

Can be achived by

  • Descreasing communication with the server: caching
  • Increasing network bandwidth: files minimization, caching
  • Asynchronous operations
  • Choosing effective types of transactions
  • Choosing hi-performed libraries

Reliability

Reliability is the ability of a system to continue operating in the expected way over time. Reliability is measured as the probability that a system will not fail and that it will perform its intended function for a specified time interval.

Can be achived by

  • Static typed code
  • Immutability
  • Unit tests
  • Errors notification system. Inner or outer, like New Relic

Reusability

Reusability is the probability that a component will be used in other components or scenarios to add new functionality with little or no change. Reusability minimizes the duplication of components and the implementation time.

Can be achived by

  • Functional code and Curring
  • Code reviews
  • Refactoring
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment