yuta_eng_prg’s diary

筆者がプログラミング学習の内容を綴るだけのブログです。

Webサーバソフト

クライアント側から、HTTP通信で送られ、ポートで受け取った「GETメソッド」等の解釈を行うのを「Webサーバソフト」と呼びます。 Webサーバソフトとして、 ・Apache・・・多くのWebサイトで使われている。 ・nginx・・・高速で省メモリなWebサーバ。パフォー…

ポート

TCP/IPでは、TCPとUDPそれぞれに、1〜65535までの「データの出入口」となる「ポート」があります。 このポートが割り当てられている連番のことを「ポート番号」と言います。 あるアプリケーションが、一度一つのポートを使って通信すると、他のアプリケーシ…

TCPとUDP

インターネットで使われているTCP/IP(トランスミッション コントロール プロトコル / インターネット プロトコル)というプロトコル(通信手段)には、通信相手に届くことを「保証する通信」と「保証しない通信」の2通りがあります。 「保証する通信」をTC…

ドメイン名

IPアドレスは、「22,33,44,55」のように人間が覚えたり、使ったりするには、わかりにくい表記です。 実際は、「https://22,33,44,55/」のような数字で接続先を指定するのではなく、「https://yuta-eng-prg.hatenablog.com/」のようにわかりやすい文字列にな…

IPアドレス

IPアドレスは、インターネットにおける「電話番号」のようなもので、クライアントやサーバを特定できる値です。 サーバに割り当てられるIPアドレスは、サーバの契約をした時に、レンタルサーバ事業者、データセンター事業者、プロバイダなどから知らされ、設…

クラウドとは?

「クラウド(クラウドサービス、クラウドコンピューティング)」とは、クラウドサービスプラットフォームからインターネット経由でコンピューティング、データベース、ストレージ、アプリケーションをはじめとした、さまざまな IT リソースをオンデマンドで…

Cookieとセッション

Webサービスは複数のページから構成されていることがほとんどです。 その際、ページ間でのデータの共有が必要になる場合があります。 データの共有を行う上で、使われるのが、Cookieとセッションです。 Cookieは、クライアント側にデータを保存しておく仕組…

HTTPメソッドのべき等性、安全性

HTTPメソッドは、べき等性、安全性という性質によって以下のように分類することができます。 GET、HEAD・・・べき等かつ安全 PUT、DELETE・・・べき等だが安全でない POST・・・べき等でも安全でもない べき等という性質は、 「ある操作を何回行っても結果が…

HTTPメソッドについて

HTTPメソッドには、8つのメソッドが定義されています。 ・GET ・POST ・PUT ・DELETE ・HEAD ・OPTIONS ・TRACE ・CONNECT この8つのメソッドのうち、 ・GET ・POST ・PUT ・DELETE の4つのメソッドは、CRUDという性質を満たすメソッドです。 CRUDは、 Cr…

ハイパーメディアについて

ハイパーメディアは、文書や画像、動画、音楽などのメディアをリンクで結びつけて構成したシステムのことです。 本や映画などのメディアは、ただ最初から最後まで体感するだけですが、HTMLで記述されたWebページは、リンク先を辿ることで、選択的に情報を取…

バリデーション(英数字混合)

バリデーション(英数字混合)の一例について確認します。 PASSWORD_REGEX = /\A(?=.*?[a-z])(?=.*?[\d])[a-z\d]+\z/i.freeze validates :password, format: { with: PASSWORD_REGEX, message: '英数字混合で設定してください' } 以上がバリデーション(英数…

レスポンシブWebデザインの導入方法

レスポンシブWebデザインの導入方法について確認します。 まず、htmlファイルのheadタグ内に <meta name="viewport" content="width=device-width, initial-scale=1.0" /> を追加し、CSSファイルに /* タブレット表示時 */ @media (max-width: 1000px) { ここにタブレットで表示する際のCSSを記述する。 } /* スマホ表示時 */ @media (</meta>…

画像投稿機能の実装方法(Active Storage)

画像投稿機能の実装方法(Active Storage)について確認します。 ・ファイルアップロードを簡単に実装できるGemのActive Storage ・コマンドラインから簡単に画像の保存形式の変更などが行えるツールのImageMagick ・画像のサイズを調整してくれるgemのimage…

バリデーションエラー時にCSSが崩れるのを防ぐ方法

バリデーションエラー時にCSSが崩れるのを防ぐ方法について確認します。 deviseを導入していた場合、バリデーションのエラー発生時にdiv要素が自動生成されることがあります。 これはdeviseの標準の機能によって生成された要素であり、この要素のせいでCSSが…

表示時刻を日本時間にする方法

表示時刻を日本時間にする方法について確認したいと思います。 config/application.rbファイルを module BaseballInfo class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_d…

テストコード(サポートモジュールの活用)

テストコードにおけるサポートモジュールの活用方法について確認します。 サポートモジュールは、RSpecに用意されている、メソッド等をまとめる機能です。 まず、specディレクトリ配下にsupportディレクトリを作成し、その配下にsign_in_support.rbのような…

テストコード(結合テストコードの実装)

結合テストコードの実装方法について確認します。 結合テストコードを実行するためには、System Specという仕組みを使います。 そして、そのためには CapybaraというGem が必要です。 Capybaraは以下のように、 group :test do 中略 gem 'capybara', '>= 2.1…

テストコード(コントローラーの単体テストコードの一例)

以下に、コントローラーの単体テストコードの一例を載せます。 require 'rails_helper' describe TweetsController, type: :request do before do @tweet = FactoryBot.create(:tweet) end describe "GET #index" do it "indexアクションにリクエストすると…

テストコード(Fakerの導入)

テストコードに、ランダムな値を生成するGem、Fakerの導入方法について確認します。 まず、Gemfileの group :development, :test do の中に、 group :development, :test do 中略 下記のコード1行を追加します gem 'faker' end 上記のように記述します。 タ…

テストコード(FactoryBotの導入)

テストコードにおけるFactoryBotの導入方法について確認します。 FactoryBotは、インスタンスをまとめることができるGemで、他のファイルであらかじめ各クラスのインスタンスに定める値を設定しておき、テストコードで使用できます。 まずは、Gemfileの grou…

単体テストコードの実装(Rspec)

単体テストコードの実装方法について確認します。 まず、アプリケーションにRspecの導入します。導入方法については以下を確認してください。 yuta-eng-prg.hatenablog.com 次に、ターミナルで、 % rails g rspec:model user 上記のコマンドを実行し、テスト…

テストコードの準備(Rspecの導入)

テストコードの実装を行うの準備としてRspecの導入について確認します。 まず、Gemfileを編集します。 group :development, :test do 中略 gem 'rspec-rails', '~> 4.0.0' end group :development, :testというグループの中に記述します。 次に、ターミナル…

GitHubでの開発(間違ったコードのcommitしてしまった場合)

GitHubでの開発していて間違ったコードのcommitをした場合(pushする前の場合)の対処法について確認します。 commitすると「Commit to master」の下に、「Undo」というボタンが出ます。 この「Undo」をクリックすると、commit以前の状態に戻ります。 以上が…

GitHubでの開発(間違ったコードのcommitをpushしてしまった場合)

GitHubでの開発していて間違ったコードのcommitをpushしてしまった場合の対処法について確認します。 pushしてしまった間違ったコードのcommitを取り消すためには、revert(リヴァート)を行います。 revertは、commitを削除するのではなく、「指定するcommi…

GitHubでの開発(コンフリクト発生時の対処法)

GitHubでの開発を行った際にコンフリクトが発したときの対処法を確認します。 コンフリクトは、ブランチごとに、辻褄の合わないファイルが存在することを意味します。 例えば、ブランチAでは、コントローラーファイルに新たにindexアクションを作成している…

GitHubでの開発(ブランチを作成せず、マスターブランチ上でコードを書いてしまった場合)

ブランチを作成せず、マスターブランチ上でコードを書いてしまった場合の対処の仕方について確認していきます。 まず、新たにブランチを作成します。 すると、「Leave my changes on master」と「Bring my changes to (新しいブランチ名)」という選択肢が…

エラーメッセージの日本語化(ruby on rails)

エラーメッセージを日本語に変える方法を確認したいと思います。 config/application.rbに config.i18n.default_locale = :ja の一行を追加します。 具体的には、 module BaseballInfo class Application < Rails::Application # Initialize configuration d…

アクションの成功時にメッセージを表示させる方法(ruby on rails)

アクションの成功時にメッセージを表示させる方法を確認します。 Railsには、変数flashが設定されており、1度表示された後に自動で削除される変数になっています。 この変数flashに表示させたいメッセージ内容を定義します。 まずは表示させたい場所に <% i…

GitHubでの開発(git clone)

GitHubでの開発(git clone)、特にリモートリポジトリからローカルリポジトリを作成する方法を確認します。 ターミナルで下記のようにgit cloneに続きリモートリポジトリのURLを入力し末尾に.gitをつけ、コマンドを実行します。 git clone リモートリポジト…

GitHubでの開発(プルリクエスト〜プル)

GitHubでの開発(プルリクエスト〜プル)について確認します。 ① ローカルリポジトリで変更をコミットし、プッシュをしたらGitHub Desktop上に「Create Pull Request」と表示されるのでクリックします。 ② ブラウザが起動して、プルリクエスト作成画面が表示…