同期処理・非同期処理とは

同期処理

普通プログラムは、上から順番に処理を行う

処理1

処理2

処理3

処理を終わるまで待って次に進む方式を同期処理という



非同期処理

「非」同期処前理は、同期処理ではないということ
したがって、非同期処理とは、前の処理が終わる前に次に進む方式
時間のかかる重たい処理でよく用いられる

時間差で実行される処理には、コールバック関数を指定しておく
コールバック関数とは、処理が終わった時に呼び出される関数のこと

Git リポジトリのスリム化

容量の確認

リポジトリをクローン

git clone git@github.com:sample/sample.git


ガベレージコレクター

# プロジェクトへ移動
cd sample

# 全体の容量を確認
du -sh .git/objects

# ガベレージコレクター
git gc --auto

gc autoコマンドは大体の場合何もしないそう

約 7,000個もの緩いオブジェクトがあるか、または50以上のパックファイルがないと、Gitは実際に gc コマンドを開始しません。


git_find_big.shをダウンロード

git_find_big.sh
git_find_big.shをプロジェクト直下に移動させる

# 権限変更
chmod 777 git_find_big.sh


容量の多いファイルを順番に表示

表示件数を変えることができる

objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head -n 20`
objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head -n 100`


git_find_big.shを実行

git_find_big.sh

All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file.
size  pack  SHA                                       location
592   580   e3117f48bc305dd1f5ae0df3419a0ce2d9617336  media/img/emojis.jar
550   169   b594a7f59ba7ba9daebb20447a87ea4357874f43  media/js/aui/aui-dependencies.jar
518   514   22f7f9a84905aaec019dae9ea1279a9450277130  media/images/screenshots/issue-tracker-wiki.jar
337   92    1fd8ac97c9fecf74ba6246eacef8288e89b4bff5  media/js/lib/bundle.js
240   239   e0c26d9959bd583e5ef32b6206fc8abe5fea8624  media/img/featuretour/heroshot.png

herokuを使ってみる

herokuとは

いわゆるPaasってやつ
PaaSとは「Platform as a Service」の略で、Webサービスを公開するために必要なものを全て予め用意してくれるサービスのこと
なのでherokuを使えば、開発したWebサービスを簡単に全世界に向けて公開することができる
1サービスなら無料でつかうことができる



herokuを使ってwebサービスを公開する

herokuのユーザー登録をする

Heroku | Sign up


herokuをインストール

brew install heroku/brew/heroku

# インストール確認
heroku --version


作ったwebアプリケーションを公開する

# ターミナルからherokuにログイン
heroku login

# 公開鍵を設定
 heroku keys:add

# 公開するアプリケーションのディレクトリに移動
cd myApp

# herokuに新しいアプリケーションを作成する
heroku create

# herokuにデプロイ
git push heroku master

# ブラウザで確認
heroku open

# アプリケーション名を変更
heroku rename new_app

Railsアプリケーション作成、実行

railsのアプリケーション作成

rails _5.1.6_ new hello_world


問題

バージョン指定しているのになぜか勝手にバージョンが5.2.1のrailsになっちゃう


解決方法

mkdir hello_world
cd hello_world
bundle init
vim Gemfile

Gemfile

source 'https://rubygems.org'

gem 'rails',        '5.1.6'
gem 'puma',         '3.9.1'
gem 'sass-rails',   '5.0.6'
gem 'uglifier',     '3.2.0'
gem 'coffee-rails', '4.2.2'
gem 'jquery-rails', '4.3.1'
gem 'turbolinks',   '5.0.1'
gem 'jbuilder',     '2.6.4'

group :development, :test do
  gem 'sqlite3',      '1.3.13'
  gem 'byebug', '9.0.6', platform: :mri
end

group :development do
  gem 'web-console',           '3.5.1'
  gem 'listen',                '3.1.5'
  gem 'spring',                '2.0.2'
  gem 'spring-watcher-listen', '2.0.1'
end

# Windows環境ではtzinfo-dataというgemを含める必要があります
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]


bundle install --path vendor/bundle

bundle exec rails new --skip-bundle .



railsアプリケーションの実行

rails server