diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..ee2f02d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..3ab78bc --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/rails-optimization-task8.iml b/.idea/rails-optimization-task8.iml new file mode 100644 index 0000000..6e7c09c --- /dev/null +++ b/.idea/rails-optimization-task8.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/case-study.md b/case-study.md new file mode 100644 index 0000000..878d520 --- /dev/null +++ b/case-study.md @@ -0,0 +1,20 @@ +Наччу с того, что проект у нас хоть и большой, но весьма своеобразный и местами скучный - мы разрабатываем +центральную внутрекорпоративную систему, большая часть функционала которой состоит из КДП и интеграции с другими внутренними (и не очень) сервисами. +Тут вам и 1С через IIS + Odata, и своя система ролей и всякие рельсовые плюшки. +Очевидно, коли данные должны историчны (почти все), запросы к базе порой ну оочень непростые. Из-за чего приходится пользоваться как голым SQL, так и arel. + +Разрабатывается проект уже больше трех лет (сижу у истоков) и, как принято, находится в производственном аду - все всегда что-то надо "сделать руками", +правила меняются, а в релиз накидываются все новые и новые задачи. + +Мониторинг отсутсвовал, до того, как я вкорячил `NewRelic` - мой первый шаг на пути к оптимизации. + +Навскидку могу прикинуть пару тройку мест, где я бы сделал лучше, будь на то время (и сделал в одном) - ускорил один жирный запрос с 20 до 1 секунды - моя вторая оптимизацмя) + +Роль в проекте перешла по наследству ппосле ухода тимлида - делаю все, что могу и не очень - от очевидного КР и проетирования архитектуры для будущих плюшек до подъема видновых серверов под 1С (порой выходит так себе) + +Еще из интересного я оживил давно забытые параллельные тесты, немножечко оптимизировал жирные куски и добился прогона 7к тестов за ~4 минуты локально, вместо 12+ до. + +Пожалуй, на этом все, едиственное - жаль, что раз живем мы во внутренней сети, то и многие штуки, вроде `webpagetest` напрямую использовать не удается. +В будущем планирую перекатиться с mariaDB на postgres, по крайней мере хотелось бы успеть до конца года)) + +Спасибо за внимание!) \ No newline at end of file