golang-codebase-refactoring-steps