hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

プログラミング・テキスト

作りながら学ぶHTML/CSS デザインの教科書

一通り、カリキュラムも終え、 プライベートな部屋の片付け、断捨離なども一段落着いたので、 「作りながら学ぶ HTML /CSS デザインの教科書」という本を買った。 初版がは2013年だが、 増販され、 現在11版目ということで、 良い本なのだろうと購入。…

デバッグの方法

デバッグ デバッグとは、プログラム中の不具合を発見し、動作を正常にするまでの一連の作業のこと。 以前、ダウンロードしたファイルのうち、error_sample.rbをテキストエディタで開くと、こちらは、入力した数に対し1~100までの内で約数となっている数の個…

トラブルシューティング

Ruby on Railsのカリキュラムを進めていく上でよく発生するエラーについて。 作成中のrailsアプリケーションを操作するにはrails sコマンドで開発用サーバーを立ち上げアプリケーションに接続する。 この時、コードが間違ったり正常ではない状態で操作を行お…

Basic認証

Basic認証とは Basic認証 Basic認証とは、HTTP通信の規格に備え付けられているユーザー認証の仕組み。サーバーと通信が可能なユーザーとパスワードをあらかじめ設定しておき、それを知っているユーザーのみがWebアプリーションを利用できるようにすることが…

コードレビューを補助するツール

コードレビューツールとは コードレビューツールとは、文法・バグ・コーディングスタイルを自動で分析するツールのことを指す。 コードレビューはコードの品質を高めるためには必須の作業である。しかし、人によってどこまでの粒度でレビューを行うか異なっ…

コードレビュー時のポイント

コードレビュー時のポイントは以下の通り。 文法 テクニック 可読性 設計 その他 文法 ・古い記法を用いていないか? 検索して見つけたコードは、意図せずして古くなっている場合がある。なるべく最新の記法を用いるようにする。 1 2 3 4 5 # ☓:ハッシュロ…

レビューを受けたあとの修正について

レビューを受けたあとの適切な修正とは、一言で言えば、きれいなコミットログが残っている状態にするということ。 まずは、良くないコミットの例を示す。例えば、以下のようなコミットログが残っていたとする。 良くないコミットの例 ターミナル 1 2 3 4 5 6…

アジャイル開発とスクラム

アジャイル開発 1からアプリケーションを完成させるためには様々な障壁がある。その課題を少しでも解決し、スムーズな開発実現するために様々な開発手法が用いられてきた。その中でも今回はアジャイル開発をピックアップ。 アジャイル開発について アプリケ…

セッションハイジャック

セッションハイジャックとは セッションハイジャックとは名前の通り、なんらかの方法を用いて正規利用者ではないものが他人のセッションIDを乗っ取る攻撃手法。セッションハイジャックが行われた場合、アプリケーション内で正規の利用者ができることはほとん…

CSRF

Webアプリケーションには、利用者自らの操作では取り消しのできない重要な処理がある。ここでいう「重要な処理」とはECサイトでのクレジットカードでの決済やメールの送信、パスワードの変更などのことをいう。こういった重要な処理の過程で不備があると、ク…

SQLインジェクション

SQLインジェクションとは SQLインジェクションとは、アプリケーションのSQLの呼び出し方において、セキュリティ上の不備を意図的に利用し、データベースシステムを不正に操作する攻撃方法のこと。入力フォームから送信した値によりアプリケーションが想定し…

XSS

XSS(クロスサイトスクリプティング)とは Webアプリケーションでは、外部からの入力などに応じて表示が変化する箇所ページを実装したいことがしばしばある。しかし、この部分のHTML生成の実装に問題があると、外部よりスクリプトを埋め込まれクッキーを盗ま…

情報セキュリティの基礎

HTTP HTTPとはWebブラウザとWebサーバの間でHTMLや画像ファイルなどのコンテンツの送受信に用いられる通信プロトコル。Webページを閲覧・利用することができるのも、HTTPという仕組みがあるからである。 プロトコル 複数のユーザが滞りなく信号やデータ、情…

情報セキュリティの概要

情報セキュリティとは 情報セキュリティとは、Webサービスにおいてのセキュリティ(安全保障)である。情報セキュリティにおける理想は、「不正なアクセスや情報の漏洩を防ぎつつ、権限がある人は便利に利用できる」状態を維持すること。これを分解し言い換え…

E C2へのアクセス分析と自動拡張

ELB 外部からの通信リクエストを分散をさせたい場合、AWSでは"ELB"(読み:イー・エル・ビー)を利用することが一般的である。正式名称を"Elastic Load Balancing"という。このELBについては、まず ロードバランサ について知っておく必要がある。 ロードバ…

例外処理

Ruby on Railsにおける例外処理について。 ・例外処理を使った実装ができるようになる・rescueを使った処理を記述できるようになる・トランザクション処理を記述することができるようになる 事前準備 サンプルアプリケーションをクローンする ターミナル 1 $…

リファクタリングの応用 その2

リポジトリをクローン ターミナル 1 2 $ git clone https://github.com/exp-drill/effective_model_sample.git $ cd effective_model_sample 環境構築する ターミナル 1 2 3 4 5 6 7 8 9 # クローンしたリポジトリに移動 $ cd effective_model_sample # gem…

リファクタリングの応用

MVCとは よく知っているようなWEBサービスも、最近はRuby on Railsで作られていることが多くなってきており、モデルの個数が300個を超えるような中〜大規模以上のアプリケーション開発の例が増えてきた。 WEBサービスを構築していく過程で数万行に及ぶコード…

モデリング

モデリングについて 本格的なプログラムを作るにあたって「モデリング」あるいは「抽象化」が必須となる。これまでは、クラスとインスタンスの仕組みを利用してレビューアプリを作ることができた。その際に作ったクラスは「Review」クラス一つだったが、実際…

オブジェクト指向

オブジェクト指向とは オブジェクト指向とは、複数のオブジェクトを組み合わせてプログラムを構築する考え方である。オブジェクトとはデータと処理の集まり。漠然とした集まりではなく、ひとつのテーマを持った集まり。 人をオブジェクトとして考えてみる。…

S3を使った画像をアップロード その2

今まで作ったChatSpaceでは、投稿した画像がアプリ内のpublicフォルダに保存される。これを、以下の2ステップで変更していく。 STEP1 ローカルのChatSpaceの画像保存先をS3に変更する。そのために、以下の2つの作業を行う。 S3のバケット(データの保存場所…

S3を使った画像をアップロード

投稿機能の動作確認 ローカル開発環境でChatSpaceを起動して、以下の全ての投稿がうまく行くことを確認する。 ①テキストのみの投稿②画像のみの投稿③テキストと画像両方の投稿 ここできちんと確認しておけば、例えばデプロイ後に画像アップロードがうまくいか…

Capistranoによるデプロイの自動化

Capistrano Capistranoは、自動デプロイツールと呼ばれるものの一種。 自動デプロイツールのメリット 自動デプロイツールを利用することによって、デプロイ時に必要なコマンド操作が1回で済むようになる。これにより、手動でデプロイする場合に起こりがちな…

Nginx経由でRailにアクセス

Webサーバとアプリケーションサーバ クライアントとサーバの全体像を以下の図に示した。一体、Webサーバとアプリケーションサーバの違いは何なのか? Webサーバ Webサーバとは、クライアントから送られてきたリクエストを受け取り、そのリクエストに応じたコ…

全世界に公開

EC2のサーバにChatSpaceのコードをクローンする準備 まず、アプリケーションのコードをGithubからEC2サーバへクローンする。全世界に公開できるIPアドレスを持ったEC2サーバ上でChatSpaceを動かすためである。 GithubにSSH鍵を登録する 現状、EC2サーバにア…

MySQL の設定

Ruby on RailsのようなWebアプリケーションフレームワークにとって、データベースは必ずセットで必要になると言っても過言ではない。Webアプリケーションに関連する全てのデータを保存しておく場所となるためである。例えばTwitterの例で考えてみると、デー…

Linuxサーバーの構築

最初にyumというコマンドを使ってこのサーバに元々あるプログラムをアップデートする。こうしたプログラムをパッケージと呼ぶ。 yumコマンド Linuxにおけるソフトウェア管理の仕組み。MacOSにとってのhomebrewと同じ役割を果たす。yumコマンドを利用すること…

E C2インスタンス作成2回目以降の注意

無料使用期間について アカウント作成から12ヶ月間、以下のアプリケーションは無料で利用できます。12ヶ月間の無料期間を過ぎた後、課金が開始される。また、12ヶ月以内でも使用量が無料利用枠を超えた場合、料金がかかるので注意が必要。 サービスの無料枠…

EC2インスタンスの生成

AWSアカウントのリージョン設定 リージョンとは、AWSの物理的なサーバの場所を指定するもの。リージョンは世界各地に10箇所以上存在し、そのうちの一つは東京にある。 リージョン間でEC2の設定は独立していて、あるリージョンのEC2を他のリージョンへ移動す…

AWSのアカウント作成

AWSのアカウントを作成する ① AWSのサイトにアクセス まずhttps://aws.amazon.com/jp/ にアクセスして、AWSのトップページに移動。 ② サインアップボタンを押す トップページに遷移すると、以下の画像のように、右上に「無料サインアップ」と書かれたボタン…