Skip to content

Green Coding Checklist

keilhofh edited this page Feb 8, 2024 · 1 revision
  • Non-functional requirements for green IT and green coding are defined
  • IT architects and developers are trained
  • System scales dynamically and shuts down when idle and, if necessary, at off-peak times
  • Load peaks are avoided
    • Real-time processing is avoided where possible
    • Dynamic content is kept within reasonable limits
  • Components with the highest energy consumption are identified
    • Power consumption has been estimated
    • Measurements have been carried out
  • Green coding principles and development patterns taken into account in the following points:
    • Loose coupling of the components
    • Reactive programming model
    • Efficient code with optimal algorithms
    • Avoidance of unnecessary round trips, caching
    • Optimized data volume
    • Compressed network communication
    • Use database indexes and explain plans
    • Optimized resource usage through optimized configuration
    • Zero-waste code: Treeshaking and bytecode optimization e.g. with GraalVM
    • Guidelines for green testing are observed
    • Principle: "Every line of code has the potential to reduce energy consumption"
  • Performance engineering
    • It is clear what is measured, when and how
      • What: Overall system/process/component/method
      • When: Unit test, integration test, operation (ideally: in every phase)
      • How: Task Manager, Libre Hardware Monitor or Smart Plugs, frameworks, e.g. jPowerMonitor and others
  • Resource consumption
    • CPU/RAM/memory/network: optimization through profiler and SQL Explain Plans
    • Monitoring is implemented
  • DevOps and operation
    • DevOps pipeline is optimized in terms of energy consumption
    • Container-based platform with intelligent, dynamic scaling is utilized
    • Resources are optimally utilized (CPU, RAM, memory, network, GPU, ...)
  • Specific green coding NFRs are taken into account
Clone this wiki locally