yuta_eng_prg’s diary

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

スプーリング、スループット

スプーリングとは、主記憶装置と高速の入出力装置(プリンタなど)との間のデータ転送を、高速の補助記憶装置を介して行うことによってシステム全体の処理能力を高める方法のことです。 スループットとは、コンピュータやネットワーク機器が単位時間あたりに…

OS

OS(オペレーティング システム)とは、アプリやデバイスを動作させるための基本ソフトウェアのことです。 キーボードやマウス、タッチパッドなどのデバイスから入力した情報をアプリケーションに伝え、ソフトウェアとハードウェアの連携を司る中枢的な役割…

CPUと5大装置

制御装置、演算装置、記憶装置、入力装置、出力装置の5つの装置が連携してコンピュータを動かしています。 これらを総称してコンピュータの5大装置と呼びます。 CPU(セントラル プロセシング ユニット)コンピュータの中枢で制御と演算を行う装置です。 …

インタプリンタとコンパイラ

プログラミング言語には「インタプリンタ」と「コンパイラ」の2種類があります。 プログラマーが記述したプログラム(ソースコード)を解釈しながら実行する形式を「インタプリンタ」と言います。 インタプリンタは、ソースコードを記述するための「テキス…

サーバサイドのプログラムを作成する際の注意点

クライアントサイドのプログラムでは、 ・プログラムの実行がユーザー環境によって左右される。 ・プログラムを見られたり改変されたりする恐れがあるのでデータ等を暗号化する必要がある。 などの注意点がありました。 サーバサイドのプログラムでは、上記…

クライアントサイドで動くプログラム

Webで実行できるプログラムには、「クライアントサイドで動かす方法」「サーバサイドで動かす方法」の2通りがあります。 クライアントサイドで動くプログラムは、WebサーバからHTMLとともに送られ、Webブラウザ内部で動きます。 主に「Javascript」「Flash…

SSH(セキュア シェル)

リモートでサーバを操作する場合、専用のソフトを使って、コマンド操作します。 この時サーバとの接続に、「SSH(セキュア シェル)」というプロトコルを使います。 SSHは暗号化された通信で、安全にサーバを操作できます。 WindowsでSSH接続するソフトの代…

VPS(バーチャル プライベート サーバ)

Webサーバを構築する場合、実際にサーバとなるマシンを購入して構築する方法と、クラウドやレンタルサーバなどを借りる方法があります。 サーバを借りて構築する場合、借りているサーバを他人と共有しているかどうかで事情が変わります。 共有している場合、…

SSL

Webのデータを暗号化するのに使われている仕組みが「SSL(セキュアー ソケッツ レイアー)」です。 暗号化しない通信は、「http://」で始まるURLで表示され、ポート番号は80番です。 SSLを使った通信では、「https://」で始まるURLで表示され、ポート番号…

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 上記のコマンドを実行し、テスト…