Post

プログラミング

2018-05-04 18:02:48

ソフトウェアのテスト技法の基本まとめ

概要はじめて学ぶソフトウェアのテスト技法の第1章を要約します。参考ページをサブタイトル横にメモします。 テストのプロセステストとは何か?(p.12)「ソフトウェアの品質の測定・改善を目的とし、テストウェアの開発・利用・保守と平行しながら進めるライフサイクルプロセスのこと」 Bories Beizerはテストを成熟度別に5段階のレベルに分けている。 レベル 成熟度 0 デバッグとテストに違いはない 1 ソフトウェアが動作することを示す 2 ソフトウェアが動かないことを示す 3 プログラムが動作しないことによる危険性を許容範囲に抑える 4 精神的な規律 レベル4...

プログラミング

test

2018-04-21 11:05:19

Golangの勉強で参考にした本とリンク

概要golangの勉強をする時に参考にした本とリンクのまとめ。 本 プログラミング言語Go 教典 スターティングGo言語 読みやすい。わかりやすい。プログラミングの素養が高い人には平易すぎる内容かもしれない。 Go言語によるWebアプリケーション開発 Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る リンク golang.jp A Tour of Go astaxie/build-web-application-with-golang 本を購入せずともこれを読んでおけばおおよそのキャッチアップができる気がする Go Data Structures goのデー...

プログラミング

Golang

2018-04-11 22:15:48

Laravel Homesteadを使ったLaravelの環境構築

概要Homesteadを触る機会があったのでざっくりまとめる。 準備以下のツールは用意しておきましょう。 composer vagrant virtualbox ssh key 鍵つくっておいてください 手順Laravelをインストールlaravelのインストールとcomposer installを実行しましょう。 composer create-project "laravel/laravel=5.5.*" projectname cd appcomposer install HomeSteadを用意Vagrant boxを用意します。 vagrant box...

プログラミング

Laravel vagrant VirtualBox composer homestead

2018-04-11 13:54:10

テストケースの種類と洗い出し

概要テストケースの基本的な種類と洗い出し方についてのざっくりまとめ。 テストの目的 バグを発見する 品質保証 品質改善(リファクタリング) テストの種類 ユニットテスト メソッドの仕様を確認するテスト ドメイン層のpublicメソッドが対象とする インテグレーションテスト ユースケース(一連の処理)に基づいたテスト ビジネス的に重要なケースを優先的に対象とする テストケースの洗い出し 正常系 想定しているインプットに対し、想定したアウトプットが行われているか 異常系 想定していないインプットに対し、対応ができるかどうか 同値分割 同値クラスに分ける・・・テスト結果をグル...

プログラミング

test

2018-07-01 19:37:24

Golangの開発環境を構築

概要Goの環境を構築します。 Goの環境構築Goをインストールするインストール手段は省略します。私はanyenvというツールでインストールしています。 GOPATHを指定する.bashrcまたは.bash_profileにGOPATHを指定します。 export GOPATH=$HOME/localdev/project/go_dev // 好きなように設定してください PATH=$PATH:$GOPATH/bin Goのディレクトリ構成を確認するローカル環境でのディレクトリ構成は公式ドキュメントに従う形で構成していきます。 go_dev/ ├── bin ├── pkg └── src g...

プログラミング

Golang

2018-02-28 10:37:27

モダンなJSの話──Proxy

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 ProxyとはProxyはECMAScript 2015から追加されたオブジェクトで、オブジェクトが持つ機能をラップすることにより、オブジェクトの機能をカスタマイズすることができます。 Proxyの関連用語Proxyを知る上で必要な用語です。 handler・・・トラップを入れるためのオブジェクトで、プレースホルダ的な扱いをされます。 trap・・・Proxyがプロパティへのアクセスを実装するためのメソッド。 target・・・プロキシするオブジェクト。 invariant・・・...

プログラミング

ES5 ES6 JavaScript

2018-02-01 10:56:07

モダンなJSの話──async function

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 async functionとはasync functionはAsync Functionオブジェクトを返す関数です。 asyncとawaitというキーワードを使って、Promiseよりも簡潔に非同期処理を書くことができます。 ES2017で仕様が定義されています。 使い方使い方はカンタンです。 async関数を関数定義の時に頭につけるだけです。 Promise以外の値を返すように定義した場合は、その値で解決された形でPromiseが返されます。 async function a...

プログラミング

ES5 ES6 JavaScript

2018-01-20 23:39:39

ReactとHistory APIを使ってrouterを自作する

概要準備まずはHistory APIを理解しておきます。GO TO MDN。 MDN - History MDN - ブラウザの履歴を操作する 忙しい人はpushStateとwindow.popstateだけ理解しておけばなんとかなるはず。 仕様このrouterでは、以下のようなURLに対応します。 /post /post/:id /post/:id/:title クエリパラメータには対応しません。 使用するパッケージReact周りは省略します。 React以外で使うパッケージは1つだけです。 pillarjs/path-to-regexp URL部分の正規表現を良しなにやってくれるパ...

プログラミング

ES6 JavaScript React history-api router

2017-12-29 20:44:23

モダンなJSの話──Promise

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 PromiseとはPromiseとは・・ The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value. MDN - Promise だそうです。 ざっくりまとめると、Promiseとは、非同期処理やその結果をいい感じにしてくれるオブジェクトのことです Promiseを使うと主に以下のようなメリ...

プログラミング

ES5 ES6 JavaScript

2017-12-25 23:24:08

Reactでマークダウンエディタをシャッとつくる

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 準備ビルド環境のセットアップが面倒なので、今回はFacebook公式のcreate-react-appというツールを使います。 npm install -g create-react-app md-editorというアプリ名で環境を用意することにします。 create-react-app md-editor 次に、今回使うライブラリのインストールをしておきます。 cd ./md-editor npm install --save marked npm install 最後にサーバ...

プログラミング

ES5 ES6 JavaScript React

2017-12-25 23:23:27

モダンなJSの話──Destructuring assignment(分割代入)

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 分割代入とは分割代入とは、配列またはオブジェクトのデータをそれぞれ別個の変数に代入する式のことです。文章ではイメージがつきにくいかと思います。それぞれの例を見て確認してみましょう。 配列の分割代入let a, b, c; [a, b, c] = [1, 2, 3] console.log(a, b, c) // 1 2 3 let color = [1, 2, 3] const [red, green, yellow] = color console.log(red, gree...

プログラミング

ES5 ES6 JavaScript

2017-12-25 23:22:37

モダンなJSの話──importとexport

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 exportとはexportは、指定のファイルから関数、変数、オブジェクト、クラス(クラスはプロトタイプベース継承の糖衣構文であり、関数の一種。詳しくは モダンなJSの話──クラス)などを受け取り、任意のファイルでそれらを使えるようにするための文です。 exportには主に2種類の使い方があります。 Named exportsexportしたい要素の名前を付けてexportする方法です。 export { fooFunction }; export { fooFunction,...

プログラミング

ES5 ES6 JavaScript

2017-12-25 23:21:32

モダンなJSの話──クラス

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 ECMAScript6からのクラス定義ECMAScript6以前ではnew演算子やprototypeプロパティを使ってクラスに近い機能を実現していましたが、ECMAScript6からはclassキーワードでクラスを定義できるようになりました。<br>classキーワードはこれまでのnew演算子やprototypeプロパティによるクラス定義のシンタックスシュガーです。 classキーワードを使ったクラス定義の方法には、クラス宣言とクラス式の2種類があります。 クラス宣言...

プログラミング

ES5 ES6 JavaScript

2017-12-25 23:20:27

モダンなJSの話──var/let/const

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 スコープとは本題に入る前に、スコープの定義について確認しておきましょう。 スコープとは、変数名や関数名が参照可能な範囲のことです。 スコープの種類は色々ありますが、ここでは主に3つのスコープについて表で説明します。 スコープ名 範囲 備考 グローバル 関数の外側 どこからでもアクセスできる。 ローカル(関数) 関数の内側 ローカルスコープ内からでしかアクセスできない。 ブロック ブロック({ })の内側 if, for, switchなど ブロックスコ...

プログラミング

ES5 ES6 JavaScript

2017-12-25 23:19:03

モダンなJSの話──アロー関数

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 アロー関数ってなに?ざっとまとめると、 ES2015から追加された新しい構文 通常のfunction式よりも短くかける thisの値を語彙的に束縛することができる(=文脈からthisの値を把握しやすい) 常に匿名関数 アロー(=>)を使ってかく関数式で、"thisの値を語彙的に束縛することができる"という点が大きなポイントです。 アロー関数を使うと、今までこう書いていたものが・・・ const foo = function() { console...

プログラミング

ES5 ES6 JavaScript

2017-07-17 16:44:38

単一テーブル継承・クラステーブル継承・具象クラス継承について

概要リレーショナルなデータベースは継承をサポートをしていないので、オブジェクトの継承関係をデータベースにどのように表現するのか考慮する必要があります。それを表現する3つのパターン、単一テーブル継承・クラステーブル継承・具象クラス継承とはについて説明します。  ※各パターンの実装におけるメリット・デメリット等には触れません。 前提今回想定する登場するクラスは4つです。 Party PeopleがRich Peopleを継承するという構造はちょっとわかりづらいかもしれませんが、イメージが伝われば良しとします。 People(人々)全クラスに共通する属性を持っています。 idは一意なキーです。...

プログラミング

PofEAA

2017-01-27 16:31:05

Vagrantを1.7.4から1.9.1に一気にアップデートしたら「Bringing up in...

Vagrantのバージョンが1.7.4というちょっと古いバージョンだったのでアップデートしてみたらネットワーク周りでエラーがでてハマった話です。 エラー詳細"/etc/udev/rules.d/70-persistent-net.rules" is not a file ==> default: Configuring and enabling network interfaces... The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the...

プログラミング

apache vagrant VirtualBox

2016-10-03 16:30:03

VagrantでVirtualHostを使う

VagrantBoxを作りっぱなしでほったらかしな仮想環境を維持してきたのですが、今更ながらVirtualHostの設定をしました。 やること vagrant-hostupdaterのインストールとVagrantfileの設定 Apacheのconfファイルの設定(VirtualHostの設定) やらないこと vagrantのインストール symbolic linkの設定とか面倒なこと 環境 Vagrant vagrant-hostsupdater・・・今回インストールするvagrantのpluginです。 CentOS6系 Apache Hosts・・・インストールしておくとMACの環境...

プログラミング

vagrant

2017-03-18 16:26:00

redux-formのサーバーサイドバリデーションでpromissをいじってたら「Unc...

概要redux-formでサーバーサイドのバリデーションを実装している時に、promissをいじってredux-formのSubmissionErrorを投げていたらUncaught (in promise) errorと怒られた話です。 解決策returnがなかっただけでした。 修正前 class Categories extends Component { onSubmit(props) { const {createCategory, fetchCategories, reset} = this.props; createCategory(props).then((...

プログラミング

React Redux redux-form

2017-02-25 16:25:24

ReactとReduxでSPAを構築するために参考にした記事

雑メモです。ReactとReduxでSPAで作ろうとした時に参考にしたリポジトリや記事です。 Reduxというアーキテクチャの概念を理解するには、日本語情報がそこそこ充実していました。実際につくりたいモノの参考になりそうなソースを探すには少し手間がかかりました。js仕様の違い、コンパイラやタスクランナーなどビルド環境の違い、Reactそのもののバージョンの違い、関連パッケージのバージョンの違いなどペチパー一筋だった自分には中々しんどかったです。。。 色々調べてみてようやく手を動かせるようになったので、その時参考になったリポジトリや記事をリストアップしておきます。 ※都度更新していきますー 参考...

プログラミング

React Redux SPA