# Review No. 1

Published 2024-04-17

This page contains miscellaneous concepts briefly explained.

# What is the meaning of "Clean Code" ?

"Clean Code" signify a code which is easy to

  • read
  • maintain (fix bugs, add new functionalities with ease)
  • test

Here we need to consider:

  • Single Responsibility Principle
  • meaningful names
  • comments are not a substitute for Clean Code
  • error handling
  • no code duplication
  • proper modularity
  • keep the code simple
  • good observability
  • use code analysis tools like SonarQube or CodeClimate

# Shared vs Exclusive lock

  • A shared (S) lock permits the transaction that holds the lock to read a row.
  • An exclusive (X) lock permits the transaction that holds the lock to update or delete a row.

# Pessimistic vs Optimistic Locking

  • Pessimistic Locking (when we READ/WRITE to a database) - a conflict is likely to happen and thus locks data before it is read or modified.
  • Optimistic Locking (when we WRITE rarely to a database) - a conflict is NOT likely to happen and thus the data is not locked. However, a "version" column (which is incremented on each UPDATE or DELETE) and the 2nd parallel operation on the same row will not be done.