ユニプロでの半年間
やったこと(会議への参加以外)
 1月
 入社
 3月
 テスター
 4月
 テスター
 スクレイピング
 5月
 スクレイピング
 6月
 API実装
やったこと(会議への参加以外)
 1月
 入社
 3月
 テスター
 4月
 テスター
 スクレイピング
 5月
 スクレイピング
 6月
 API実装
テスター
 根性あるのみ?
 正常系と異常系
 バグの発生状況を詳しく報告(再現できるように)
 「ここがおかしい」だけでなく「こうあるべき」を提示する
やったこと(会議への参加以外)
 1月
 入社
 3月
 テスター
 4月
 テスター
 スクレイピング
 5月
 スクレイピング
 6月
 API実装
スクレイピング
 スクレイピングとは
 ウェブスクレイピング(Web scraping)とは、ウェブサイトから情報を抽出
するコンピュータソフトウェア技術のこと。(出典:Wikipedia)
 今回はNode.jsを用いた
 Node.jsとは
 Node.js はイベント化された入出力を扱うUnix系プラットフォーム上のサー
バーサイドJavaScript環境である。(出典:Wikipedia)
スクレイピング(環境構築)
 Node.jsをインストール
 コマンド “npm install” を実行
→エラーが出る
 Windowsではうまくいかないらしい
 VirtualBoxにUbuntuを入れ、Windows(ホストOS)とフォルダを共有し、
コマンド “npm install” を実行
→エラーが出る
 共有フォルダ上ではうまくいかないらしい
 共有フォルダからUbuntu内のフォルダにコピーし、
コマンド “npm install” を実行
→成功
スクレイピング
 実装を終えて動かしてみる→結果が何も出力されない
 原因:改行コードとBOM
スクレイピング(改行コード)
 OSによる改行コードの違い
 Windows: rn
 MAC OS X, Linux: n
 文字列をnで分割する際、rが残ってしまった
 Node.jsにはテキストモード(改行コードをnに統一して扱うモード)が
なさそう
 Windowsのgitの初期設定では、
コミット時に rn を n に変換し、
チェックアウト時に n を rn に変換する
 同じファイルから読み込んでいるのに、MacやLinuxでは動き、Windowsでは
動かない
スクレイピング(BOM)
 BOM(byte order mark)とは、Unicodeの符号化形式で符号化したテ
キストの先頭につける数バイトのデータのことである。このデータを元に
Unicodeで符号化されていることおよび符号化の種類の判別に使用する。
(出典:Wikipedia)
 UTF-8においてBOMは容認されるが、必須でも勧められるものでもないと
されている
 UTF-8では、
BOMがあると正常に動作しない場合と、
BOMがないと正常に動作しない場合の両方がある
 この業界では、Windowsは苦労が多い
MacBook購入
 もともと持っていたWindowsノートPCの動作が遅かった
(ゲストOSを立ち上げるのに5分くらいかかった)
 MacではNode.jsは問題なく動いた
スクレイピング
 テストのたびにhttpリクエストを送るのは時間がかかる
→html文書を保存してテストに使った
やったこと(会議への参加以外)
 1月
 入社
 3月
 テスター
 4月
 テスター
 スクレイピング
 5月
 スクレイピング
 6月
 API実装
API実装(環境構築)
 PHP
 YAML拡張モジュールのインストール
 Composerによるパッケージのインストール(Slim, Propelなど)
 Propel
 ビルド
 MySQL
 MySQLのインストール(XAMPP)
 DBの作成
 ユーザーの作成
 テーブルの生成
API実装(トラブル)
1. XAMPPのApacheが起動しない
 Macに最初から入っていたApacheがなぜか起動していた
→終了させたら解決した
2. PHPからMySQLに接続できない
 ソケットの設定をしたら接続できるようになった
 ソケットの設定をしなくても、localhostの代わりに127.0.0.1を使えば接続で
きるらしい
 ソケットとは、BSD系UNIXを起源とするAPIであり、C言語によるアプリ
ケーション開発でのプロセス間通信、特にコンピュータネットワークに関
するライブラリを構成する。
ソケットは、ホスト間の通信や1つのコンピュータ上のプロセス間の通信
を可能とする。(出典:Wikipedia)

ユニプロでの半年間