From dc07d6023b8e39b4796770d5805be02e43e2f20b Mon Sep 17 00:00:00 2001 From: hworoshch Date: Fri, 15 Jul 2022 16:14:20 +0700 Subject: [PATCH] optimization step 1 --- .gitignore | 11 +- .ruby-gemset | 1 + .ruby-version | 2 +- Gemfile | 8 +- Gemfile.lock | 16 +- Procfile.locprod | 4 + app/controllers/stories_controller.rb | 12 + app/views/layouts/_top_bar.html.erb | 8 +- bin/setup | 1 + bin/startup_local_production | 18 + browsertime_w_push.har | 1 + browsertime_w_push.png | Bin 0 -> 184418 bytes browsertime_wo_push.har | 1 + browsertime_wo_push.png | Bin 0 -> 185096 bytes case-study.md | 16 + config/database.yml.sample | 92 - config/environments/local_production.rb | 54 + config/initializers/airbrake.rb | 2 +- config/initializers/carrierwave.rb | 2 +- config/initializers/timeout.rb | 2 +- config/sample_application.yml | 17 - config/secrets.yml | 2 + config/webpack/local_production.js | 3 + config/webpacker.yml | 15 + nginx.conf | 129 + yarn.lock | 8098 +++++++++++++---------- 26 files changed, 5014 insertions(+), 3501 deletions(-) create mode 100644 .ruby-gemset create mode 100644 Procfile.locprod create mode 100755 bin/startup_local_production create mode 100644 browsertime_w_push.har create mode 100644 browsertime_w_push.png create mode 100644 browsertime_wo_push.har create mode 100644 browsertime_wo_push.png create mode 100644 case-study.md delete mode 100644 config/database.yml.sample create mode 100644 config/environments/local_production.rb delete mode 100644 config/sample_application.yml create mode 100644 config/webpack/local_production.js create mode 100644 nginx.conf diff --git a/.gitignore b/.gitignore index df2840a..65f5152 100644 --- a/.gitignore +++ b/.gitignore @@ -35,11 +35,12 @@ latest.dump .gitdocs_build/ # Ignore application configuration -/config/application.yml +config/application.yml +config/database.yml +config/secrets.yml /public/packs /public/packs-test /node_modules -config/database.yml # Ignore storybook static site generation storybook-static/ @@ -48,8 +49,10 @@ yarn-error.log # Ignore package-lock.json because we use yarn package-lock.json -#Jetbrains Tools .idea/ +.vscode #sitemap -/public/sitemap.xml.gz \ No newline at end of file +/public/sitemap.xml.gz + +sitespeed-result/ diff --git a/.ruby-gemset b/.ruby-gemset new file mode 100644 index 0000000..8d69a77 --- /dev/null +++ b/.ruby-gemset @@ -0,0 +1 @@ +thinknetica diff --git a/.ruby-version b/.ruby-version index 6a6a3d8..12d9bd0 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.6.1 +ruby-2.6.1 diff --git a/Gemfile b/Gemfile index bf57e9a..3993bcb 100644 --- a/Gemfile +++ b/Gemfile @@ -16,7 +16,8 @@ end gem "actionpack-action_caching", "~> 1.2" gem "active_record_union", "~> 1.3" gem "acts-as-taggable-on", "~> 5.0" -gem "acts_as_follower", github: "thepracticaldev/acts_as_follower", branch: "master" +# gem "acts_as_follower", github: "thepracticaldev/acts_as_follower", branch: "master" +gem 'acts_as_follower', github: 'tcocca/acts_as_follower', branch: 'master' gem "addressable", "~> 2.5", ">= 2.5.2" gem "administrate", "~> 0.11" gem "ahoy_email", "~> 0.5" @@ -117,12 +118,13 @@ group :development do gem "web-console", "~> 3.7" end -group :development, :test do +group :development, :local_production, :test do gem "capybara", "~> 3.13" gem "derailed", "~> 0.1" gem "erb_lint", "~> 0.0", require: false gem "faker", git: "https://github.com/stympy/faker.git", branch: "master" - gem "fix-db-schema-conflicts", github: "thepracticaldev/fix-db-schema-conflicts", branch: "master" + # gem "fix-db-schema-conflicts", github: "thepracticaldev/fix-db-schema-conflicts", branch: "master" + gem "fix-db-schema-conflicts" gem "memory_profiler", "~> 0.9" gem "parallel_tests", "~> 2.27" gem "pry-byebug", "~> 3.7" diff --git a/Gemfile.lock b/Gemfile.lock index 331bf9c..7826b41 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,21 +7,13 @@ GIT i18n (>= 0.7) GIT - remote: https://github.com/thepracticaldev/acts_as_follower.git - revision: 288690cd99bc470eaee493fce5bfa9fe23157692 + remote: https://github.com/tcocca/acts_as_follower.git + revision: c5ac7b9601c4af01eb4d9112330b27be4d694ecc branch: master specs: acts_as_follower (0.2.1) activerecord (>= 4.0) -GIT - remote: https://github.com/thepracticaldev/fix-db-schema-conflicts.git - revision: 4172392392e1a8d907f7ab673cb5ddd9a4a31940 - branch: master - specs: - fix-db-schema-conflicts (3.0.2) - rubocop (>= 0.38.0) - GEM remote: https://rubygems.org/ remote: https://rails-assets.org/ @@ -322,6 +314,8 @@ GEM thor (~> 0.14) fission (0.5.0) CFPropertyList (~> 2.2) + fix-db-schema-conflicts (3.1.0) + rubocop (>= 0.38.0) fog (1.41.0) fog-aliyun (>= 0.1.0) fog-atmos @@ -992,7 +986,7 @@ DEPENDENCIES fastly-rails (~> 0.8) feedjira (~> 2.2) figaro (~> 1.1) - fix-db-schema-conflicts! + fix-db-schema-conflicts fog (~> 1.41) front_matter_parser (~> 0.2) gemoji (~> 3.0.0) diff --git a/Procfile.locprod b/Procfile.locprod new file mode 100644 index 0000000..865344f --- /dev/null +++ b/Procfile.locprod @@ -0,0 +1,4 @@ +web: bin/rails s -p 3000 +webpacker: ./bin/webpack-dev-server +job: bin/rake jobs:work +# prometheus_exporter: bundle exec prometheus_exporter diff --git a/app/controllers/stories_controller.rb b/app/controllers/stories_controller.rb index df60029..3d1bbc1 100644 --- a/app/controllers/stories_controller.rb +++ b/app/controllers/stories_controller.rb @@ -7,6 +7,18 @@ def index return handle_user_or_organization_or_podcast_index if params[:username] return handle_tag_index if params[:tag] + push_headers = [ + "<#{view_context.asset_path('bell.svg')}>; rel=preload; as=image", + "<#{view_context.asset_path('menu.svg')}>; rel=preload; as=image", + "<#{view_context.asset_path('connect.svg')}>; rel=preload; as=image", + "<#{view_context.asset_path('stack.svg')}>; rel=preload; as=image", + "<#{view_context.asset_path('lightning.svg')}>; rel=preload; as=image", + "<#{view_context.asset_path('devplain.svg')}>; rel=preload; as=image", + "<#{view_context.asset_path('sloan.png')}>; rel=preload; as=image", + "<#{view_context.asset_path('twitter-logo.svg')}>; rel=preload; as=image", + "<#{view_context.asset_path('github-logo.svg')}>; rel=preload; as=image", + ] + response.headers["Link"] = push_headers.join(", ") handle_base_index end diff --git a/app/views/layouts/_top_bar.html.erb b/app/views/layouts/_top_bar.html.erb index bf2750f..bf2a803 100644 --- a/app/views/layouts/_top_bar.html.erb +++ b/app/views/layouts/_top_bar.html.erb @@ -3,7 +3,7 @@