На мой взляд в корне проекта не должно быть мусорно. Уберите скрипты в scripts, исполняемые файлы в bin, конфиги в etc. Фикстуры в fixtures.json или куда-нибудь в папку fixtures или файлопомойку tools. Что должно быть точно в корне:
- .editorconfig
- .gitignore
- README
- LICENSE
Исполняемые файлы не должны быть в корне либо в папке scripts. Исполняемые файлы всегда без раширения и всегда в bin, чтобы его можно было прописать в PATH.
Не исполняемые файлы всегда с расширением. Очень часто можно встретить такую кашу, когда на файле стоит +x, но он почему-то script.sh называется.
Shebang должен начинаться с #!/usr/bin/env, для баша /usr/bin/env bash.
Для скриптов, которые должны пройти без ошибок пишите set -e.
Другие советы смотрите тут.
Обязательно проверяйте весь код линтерами или форматируйте код атоматически.
http://tldp.org/LDP/abs/html/exitcodes.html. Пересмотрите свои коды возврата на предмет соблюдения правил из ссылки.
Прогоняйте документацию и даже комментарии через spellchecker.
Нужны retry политики как тут https://github.com/kelseyhightower/12-fractured-apps/blob/master/v3/main.go#L85
Приложение не должно падать при старте без базы!
JFYI // @TODO - @ это doxygen, абсолютно не обязательная вещь не в java и не в php
Просто законментированный код надо удалить, это мусор.
Пишите комментарии на английском языке.
Логирование должно быть реализовано на разном уровне facility. Часто кроме Info вообще ничего нет. Логи это ваши хлебные крошки для расследования инцидентов на продакшене.