auxak コーディング規約

auxakでは、開発効率の向上と保守性の高い可読性の良いプログラムを開発するため、以下に定める各プログラミング言語のコーディング規約に基づきコーディングを行うものとする。

 

≪PHP≫

www.php-fig.orgが定めたPHPのコーディング規約である「Proposing a Standards Recommendation(PSR)」に準拠ものとする。

株式会社インフィニットループの技術ブログにて日本語訳が公開中。

 

[補足]

変数の命名規約

PSRでは、変数の命名規約に関して指定の記法は推奨しておらず、合理的な範囲内で一貫性の記述であれば”$StudlyCaps”、”$camelCase”、”$under_score”のどの記法でも良いとされています。そのため、auxakでは”$under_score”を変数名の命名規約に採用するものとする。

(参考:PSR-1, 4. Class Constants, Properties, and Methods, 4.2 Properties)

$age;
$first_name;

 

単一行コメント

「//」を用いで記述する。「//」とコメントの先頭文字との間にはスペースを1文字挿入すること。

// single-line comment

 

ブロックコメント

複数行に渡るコメントはコメントブロック(「/* <コメント> */」)を用いる。

「/*」及び「*/」はそれ単体で1行として記述し、その間に記述した「*(アスタリスク)」で始める行に記述する。

「*」とコメントの先頭文字との間にはスペースを1文字挿入すること。

「*」の位置を統一すること。

/*
 *  block comment
 */

 

≪データベース≫

テーブル名称

・複数形の英単語で命名する。但し、不加算名詞は例外とする。

・アルファベットは、全て小文字で表記する。

・複数の英単語で構成される名称は、スネークケースで表記する。

 

フィールド名称

・単数形の英単語で命名する。

・アルファベットは、全て小文字する。

・複数の英単語で構成される名称は、スネークケースで命名する。

・主キーは、「id」とする。

・外部キーは、「<参照元のjoinテーブル名称の単数形の英単語>_id」とする。

・DATE型の場合、

末尾に「_at」を付加する。過去の日時を表現する場合は、過去形で「xxxed_at」のように命名する。

・BOOLEAN型の場合、下表のような、「~able」や受動態、形容詞を使った名称とする。

xxx_accepted 承認されている
xxx_allowed 許可されている
xxx_available 利用可能である
xxx_canceled キャンセルされている
xxx_capable 可能である
xxx_enabled 有効にする
xxx_present 存在する
xxx_suspended 一時停止されている
xxx_valid 有効である
xxx_visible 表示可能である

 

≪HTML≫

後報

 

≪CSS≫

後報

 

≪JavaScript≫

後報

 

Read More

ロリポップ上にGitサーバーを構築してSourceTreeで利用する方法

ロリポップのチカッパプランは、SSHをサポートしているので分散型バージョン管理システムのGit利用できることを知りました。GitHubを使うという手もありましたが、商用利用の場合はランニングコストが発生したり無償利用の場合にはソースを公開しなくてはいけないなど不都合があったため契約中のレンタルサーバーへ自身のGitサーバーを構築することにしました。

今の時代、ソフトウエア開発をする上でバージョン管理システムは必須とも言えます。本業では、MicrosoftのTeam Foundation ServerやVisual Source Safeを利用していてGitという名前は良く耳にしていましたが正直今まで無縁な存在でした。

Gitサーバーを構築した過程のメモを忘れないようにメモとして残します。私は、コンソールからコマンドで操作するのはあまり好きでないので、Gitサーバー構築後のテストはGUIベースでGit操作が可能なSouceTreeをインストールして試してみます。

 

[今回使用するLinuxコマンド]

pwd:現在のディレクトリの場所を確認する。

cd:ディレクトリを移動する。

mkdir:ディレクトリを作成する。

touch:新規に空のファイルを作る。本来は、ファイルのタイムスタンプを変更するために利用する。

ls:ファイルやディレクトリの情報を表示する。

 

ロリポップのユーザー専用ページで[WEBツール]-[SSH]よりSSHを有効にする。

 

ターミナルエミュレータで (私はTera Term利用)でSSH接続する。

 

”Tera Term:新しい接続”画面は以下の通り設定する。

-接続方法:TCP接続

-ホスト:ロリポップ専用ページのSSH画面に表示されたサーバー(ssh***.lolipop.jp)

-TCPポート:ロリポップ専用ページのSSH画面に表示された接続ポート

 

”SSH認証画面”では以下の通り認証情報を入力する。

-ユーザー名:ロリポップ専用ページのSSH画面に表示されたアカウント

-パスフレーズ:ロリポップ専用ページのSSH画面に表示されたSSHパスワード

 

「$ pwd」コマンドを実行し現在いるディレクトリ階層を確認。

/home/user/N/lolipop.jp-***

 

「$ mkdir git」コマンドを実行しgit用ディレクトリを作成。

 

「$ cd git」コマンドを実行し作成したgit用ディレクトリへ移動。

 

「$ git init」コマンドを実行しGitリポジトリを作成します。

Initialized empty Git repository in /home/users/N/lolipop.jp-***/git/.git/

※赤色の文字列がリポジトリのパス。後で必要になるのでメモしておくこと。

 

「$ touch .gitignore」コマンドを実行し、Git管理対象外のファイルを指定するファイルを作成します。

 

「$ ls -a」コマンドを実行しgitディレクトリ内に、「.git」と「.gitignore」のファイルが存在することを確認します。

ファイル名の先頭が「.(ドット)」で始まるドットファイルを表示するために「-a」をお忘れなく。

.  ..  .git  .gitignore

 

※ここまででGitサーバーの準備は完了。

 

SouceTreeをダウンロードしてインストールします。

-インストール時表示されるライセンス同意画面内の[改行の自動処理を設定する(推奨)]オプションにはチェックを入れる。

-BitBucketやGitHubのアカウントを作成するか聞いてきますが、自身のGitサーバーを利用するのでスキップ。

-「SSHキーを読み込みますか?」の質問には[No]を選択する。

 

SouceTreeを起動し、[新規 / クローンを作成する]を選択。

 

[リポジトリをクローン]のタブを開き以下のように設定を入力して[クローン]を押す。

-元のパス:ssh://<アカウント>@<サーバー>:<接続ポート>/home/users/N/lolipop.jp-***git/.git/

※ロリポップ専用ページのSSH画面に表示された内容と「$git init」コマンドを実行時表示されたリポジトリのパスを利用する。

-保存先のパス:任意のローカルリポジトリの保存先

-ブックマーク, リポジトリをブックマーク:チェック

-ブックマーク, 名前:任意(SourceTree画面内のツリーで表示される名前)

-ブックマーク, フォルダ:「ルート」

 

以上で、無事にロリポップ上にGitサーバーを構築して、SourceTree上でGitを操作する準備が整いました。

SourceTree auxak Repositry

Read More

WindowsにおけるPHP開発環境の構築

PHPでアプリケーションをWindows上で開発するため環境を構築します。

 

ローカル環境で、PHPのコーディングから実行、デバッグを行うには以下のソフトウェアが必要です。

PHP自体は、テキストファイルなので最低メモ帳等のテキストエディタがあればコーディングは出来ますし、あとWebサーバーとブラウザがあれば実行できます。ただ、開発効率を考えたとき、よっぽどの理由がない限り、統合開発環境(IDE)も合わせて導入することを強くおすすめします。

◎Webサーバー (Apache)

◎PHP

△DBサーバー (MySQL)

△統合開発環境(IDE)

(◎:必須、△:任意)

 

いろいろと調査した結果、XAMPP(ザンプ) + NetBeansという組み合わせを採用することにしました。

 

XAMPPに関してはPHP開発環境を構築する上でこれをインストールしておけば間違いないという鉄板の必須ソフトウェアです。

XAMPPはWindows用で、Linux用にはLAMP(ランプ)、Mac OS X用にはMAMP(マンプ)とOS別にパッケージが提供されています。

通常、Apache、PHP、MySQL等は個別インストールが必要ですが、XAMPPを使うとそれらを一括インストール出来るので非常に便利です。

配布先のApache Friendsの言葉を引用すると、XAMPPとは以下の様なソフトウェアです。

 

XAMPP とは?
XAMPP は最も人気のある PHP 開発環境です。

XAMPP は、完全に無償で MySQL、PHP、および Perl を含んだ、簡単にインストールできる Apache ディストリビューションです。

XAMPP オープン ソース ・パッケージは、インストールと利用が非常に簡単できるよう設定されています。

 

なぜ XAMPP を使うのか?
・最も人気のある PHP dev パッケージであること
・Windows、Mac OS X & Linux をサポート
・インストールと設定が簡単
・完全に無償

 

一方、統合開発環境(IDE)ですが、数あるIDEの中から最終的にNetBeasnを選択しました。

優秀な有償のPHP用の統合開発環境(IDE)もありましたが、導入コストは押さえたいので無償の統合開発環境(IDE)という観点で選択しました。

本業では、MicsoftのVisual Studioを利用しているので、それが使えれば慣れた環境で良かったのですが、Visual StudioでPHPを開発するための拡張機能「PHP Tools for Visual Studio」は無料のExpressエディションには導入不可。また、PHP Tools for Visual Studioは無償のBASICと有償のPROFESSIONALに2つのエディションがあり、BASICエディションでは構文の色分け(シンタックスハイライト)機能といった基本的な機能しか使えず、PROFESSIONALエディションでないと補完機能が利用できない等の理由で却下しました。

Javaの開発環境として有名な拡張性の高いEclipseも有力候補でしたが、NetBeasnの方が補完機能が優れる、軽量動作、公式の日本語サイトが存在し公式資料が数多く提供されている等の理由で、NetBeansを選択しました。

 

各ソフトウェアは以下より無償でダウンロードすることが出来ます。

XAMPP

NetBeans ※PHPのNetBeansバンドルをダウンロードしてください。

 

[XAMPPインストールメモ]

XAMPP ※v1.8.3のインストーラーの場合

・Antivirusの確認画面は[OK]を押す。

・User Account Control(UAC)の警告画面は[Yes]を押す。

・Select Componentsウィザードでは下図の通りコンポーネントを選択する。

XAMPP Installation Select Components

・Installation folderウィザードでは、デフォルトの「C:\xampp」のまま利用。

・Bitnami for XAMPPウィザードでは、[Learn more about Bitnami for XAMPP]のチェックを外す。

・インストール後、<XAMPPインストールフォルダー>\php\php.iniを以下の通り編集する。

≪タイムゾーン設定≫

「date.timezone=Europe/Berlin」 ⇒ 「date.timezone=Asia/Tokyo」

≪日本語関係設定≫

「;default_charset = “UTF-8″」 ⇒ 「default_charset = “UTF-8″」

「;mbstring.language = Japanese」 ⇒ 「mbstring.language = Japanese」

「;mbstring.internal_encoding = EUC-JP」 ⇒ 「mbstring.internal_encoding = UTF-8」

≪Xdebug設定≫

「;zend_extension = “C:\xampp\php\ext\php_xdebug.dll」 ⇒ 「zend_extension = “C:\xampp\php\ext\php_xdebug.dll”」

≪リモートデバッグ設定≫

「;xdebug.remote_enable = 0」 ⇒ 「xdebug.remote_enable = 1」

≪FileInfo拡張モジュール設定≫

「;extension=php_fileinfo.dll」 ⇒ 「extension=php_fileinfo.dll」

・ ApacheとSkypeが共存する場合、Skype初期設定ではポート80を利用するようになっているためApacheの起動が失敗する。この場合、Skypeの設定画面を開き[詳細]-[接続]の[追加の受信接続にポート80と443を使用]のチェックを外しSkypeを再起動する。これで、ポート80が空くのでApacheが起動可能となる。尚、ポート80をIISやWindowsが利用している場合もApacheの起動に失敗するので、どちらかのポート番号を変更する等の対応が必要となる。

・XAMPPのphpコマンド(php.exe)をコマンドプロンプトでフルパス指定しなくても使えるように「C:\xampp\php\」をシステム環境変数のPathへ追加する。

 

NetBeans

・NetBeansのインストールにはJava Platform (JDK)のインストールが必要。

・NetBeansのインストール手順はNetBeansの公式サイトにバージョン毎に公開されています。

・基本的に、インストールウィザードに従い全てデフォルトのインストールオプションでインストールを完了します。

・日本語の文字化け対策として、NetBeansのデフォルトのエンコーディングをUTF-8へ変更します。NetBeansが起動していない状態で、<NetBeansインストールフォルダ>\etc\netbeans.confを開き、netbeans_default_options に 下図の赤枠内のように「-J-Dfile.encoding=UTF-8」を追記し保存します。

NetBeans_DefaultEncoding

 

Read More

auxak システム開発プロセス

auxakにおけるシステム開発のプロセスを検討しました。個人や小規模開発の場合は、システム開発のプロセスを明確にしなくても何とかなってしまうこともありますが、将来的な大規模開発や分業を考慮した場合、システム開発のプロセスを明確にしておくことは必須でしょう。

調べてみるとやはりウォーターフォールモデルが一般的で安全なようですが、これからスタートアップするシステムのような場合には仕様が100%決定しにくい点や仕様変更に柔軟に対応したい点から工程を前後しながら試行錯誤のうえシステム開発をする可能性がありますが、ウォーターフォール・モデルでは基本的に前工程に戻るのはNGのため不向きな感じが否めません。ただ、受託開発をする場合には、各工程が明確に分割してスケジューリングできるため見積もり金額を明確にしやすい点でウォーターフォール・モデルは優れていると思います。

そこで、私なりにウォーターフォールモデルにアジャイルの概念を導入した独自のシステム開発プロセスを設計しました。

プロジェクトの最初と最後、また大きなフローはウォーターフォール・モデルですが、設計や実装、テスト等の工程はスプリントとしてグループ化し、フィードバックを反映してスプリントを繰り返すことで仕様変更への柔軟性を確保しました。

まだまだ、改良の余地が多々あるシステム開発プロセスですが運用する中で少しずつ改善をしていこうと思います。

 

ダウンロード先:auxak システム開発プロセス Rev.A(初版)

Read More

Windows用ターミナルエミュレータの導入(Tera Term)

SSH(Secure Shell)によるターミナルエミュレータを必要とした作業をしたかったので、Windows用ターミナルエミュレータを導入しました。

ターミナルエミュレータは、サーバ機器やネットワーク機器を遠隔操作するための端末として動作するソフトウェアのことです。それら機器とはシリアルやイーサネットにより接続され、後者の場合、SSH(Secure Shell)Telnetrlogin等の機能を利用しTCP/IPを介し通信が行われます。(詳細は、Wikipediaの端末エミュレータを参照)

Windows用ターミナルエミュレータといえば、以前はハイパーターミナルというソフトウェアが標準で同梱されていたのですが、Windows7以降無くなってしまったため、自身でインストールする必要があります。

今回は、Windows用ターミナルエミュレータとして定番なTera Termといフリーソフトウェアを導入しようと思います。

現在、Tera Termはオープンソース化されており、SourceForgeからダウンロードすることが可能です。

Tera Term

2014年8月現在、4.83というバージョンが最新です。リリース履歴を見ると数か月毎に最新版がリリースされているようなので定期的にウォッチしてみると良いかもしれません。

インストールや使い方に関しては、ダウンロード先に公式情報として紹介されているのでそちらを参考にしてみて下さい。

尚、インストールの途中で「コンポーネントの選択」画面でインストールコンポーネントの選択を要求されます。私はSSHによる接続を利用したかったので、「TTSSH」が必要となりました。SSH利用のための必須コンポーネントなので必要な方はお忘れなく。標準インストールの対象コンポーネントなので、私はとりあえず標準インストールでインストールを行いました。

Read More

Google ウェブマスターツールへのサイト登録と所有権の確認

Google ウェブマスターツールにauxak blogをしてみようと思います。

Google ウェブマスターツールは、Googleが提供する無料のサービスです。サイト登録することでGoogleの検索結果に表示されやすくなったりgoogleが所有するサイトへのアクセスデータ等を入手してウェブ解析に役立てることが出来ます。

ウェブマスターツールの公式ヘルプに寄ればサイト登録により以下のことが出来るようになるそうです。

Google 検索結果でのサイトのパフォーマンスを監視できます

  • 必ず Google が自分のコンテンツにアクセスできるようにする
  • クロール対象の新しいコンテンツを送信し、検索結果に表示したくないコンテンツを削除する
  • 人目を引く検索結果を提供するコンテンツを作成し、監視する
  • 検索パフォーマンスへの影響を最小限に抑えながらサイトを維持する
  • マルウェアやスパムの問題を監視し、解決することでサイトを常に正常な状態に維持する

Google 検索や世界中のユーザーからサイトがどのように見えているかを知ることができます

  • 自分のサイトがどのようなクエリで検索結果に表示されているか?
  • 一部のクエリが他のクエリよりも自分のサイトへのトラフィックを増やす結果となっているか?
  • 商品の価格、会社の連絡先情報、イベントがリッチ検索結果で強調されているか?
  • どのサイトが自分のウェブサイトにリンクしているか?
  • モバイル サイトがモバイルで検索するユーザーに対して適切に表示されているか?

※Google ウェブマスターツールに関する詳細は、Googleの公式ヘルプを「Google ウェブマスターツールとは」を覗いて見て下さい。

 

それでは、サイト登録を進めて始めていきます。

まず、Google ウェブマスターツールにアクセスします。Google ウェブマスターツールを利用するためにはGoogle アカウントでログインする必要があります。google アカウントを持っていない場合は事前に準備しておいてください。

ホーム内の[サイトを追加]ボタンをクリックします。

Google ウェブマスターツール サイトを追加

追加したいサイトのURLを入力します。

Google ウェブマスターツール URL入力

サイトの追加が完了するとそのサイトの所有権の確認を行う必要があります。

確認方法には、次の方法が提供されています。

  1. HTMLファイルをアップロード (HTML ファイルをサイトにアップロードします)
  2. HTMLタグ (メタ タグをサイトのホームページに追加します)
  3. ドメイン名プロバイダ (ドメイン名プロバイダにログインします)
  4. Google アナリティクス (Google アナリティクス アカウントを使用します)
  5. Google タグマネージャ (Google タグマネージャ アカウントを使用します)

auxak blogでは、Googleが推奨するHTMLをファイルをアップロードする方法を採用しました。

あとは、画面の指示に従いダウンロードしたHTMLファイルをサイトにアップロードしていけば所有権の確認は完了です

Google ウェブマスターツール サイトの所有権の確認

 

以上で、サイトは無事にGoogle ウェブマスターツールに登録することが出来ました。

Read More

ロリポップ!で任意のデータベーステーブルの接頭辞でWorldPressをインストール方法

auxak blogは、ロリポップ!のレンタルサーバーでホスティングされています。

ロリポップ!はWordPressの簡単インストールを謳っており、WordPressインストール初心者の私でも数分でインストールすることが出来ました。

しかし、ドメインをサブディレクトリにしようかサブドメインにしようか悩んだり、自動的に用意されるデータベース名が気に入らず事前に準備してからと何回かWordPressのインストールと削除を繰り返したり、データベーステーブルの接頭辞が「wp1_」、「wp2_」・・・「wpN_」とインクリメントされていることに気づきました。

複数のWordPressを1つのデータベースにインストール出来るようにデータベースの接頭辞を一意に生成しているのでしょうが、このインクリメントされているインデックスは任意に修正できないようで試行錯誤のためのインストールもカウントされてしまうため、中途半端なインデックスがデータベーステーブル名に含まれることになります。

運用上はまったく問題ありませんが、データベースの管理や将来的なレンタルサーバーの移転等を考慮するとWordPress毎にデータベースを用意した方がメリットがありそうなのでデータベーステーブルの接頭辞を任意に指定することにしました。

尚、ここで紹介する方法はまだ何も触っていないWordPressインストール直後の状態に対してのみ有効な最も簡単な方法です。この方法は再インストールを利用した方法であるため、カスタマイズや記事投稿済みのWordPressに対して行うと全て消去されますのでご注意下さい。使い込んだWordPressに対してデータベーステーブルの接頭辞を変更したい場合、「さあWordPressをはじめよう」で紹介されている「WordPress データベーステーブルの接頭辞を変更する」が参考されると良いと思います。

 

[手順1]

ロリポップ!の指示に従いWordPressをインストールします。

[手順2]

phpMyAdminでデータベースに接続し、手順1で構築されたデータベーステーブル(※N:自動生成されたインデックス)を全て削除します。

  • wpN_commentmeta
  • wpN_comments
  • wpN_links
  • wpN_options
  • wpN_postmeta
  • wpN_posts
  • wpN_terms
  • wpN_term_relationships
  • wpN_term_taxonomy
  • wpN_usermeta
  • wpN_users

[手順3]

<WordPressインストールフォルダ>\wp-config.phpを開き、「$table_prefix」の値を任意の接頭辞に変更し保存します。パーミッションがないと保存出来ていない可能性があるため、再度開き「$table_prefix」が変更されていることを確認してください。

※私は一時的にパーミッションを「600」に変更して対応しました。セキュリティリスクを回避するため作業完了後パーミッションは元に戻すことをおすすめします。

wp-config.php $table_prefix

 

[手順4]

<WordPressインストールフォルダ>\wp-admin\install.phpをブラウザで開き、手順1で入力したのと同様のユーザーやパスワード等の情報を入力し再インストールを行います。

※install.phpにアクセスした際に「Access denied.」と表示された場合、パーミッションを一時的に変更して下さい。私は手順3同様に「600」に一時的に変更しました。作業完了後はパーミッションを「000」に変更するかinstall.phpを削除してしまい大事なWordPressが悪意のある削除から守りましょう。

[手順5]

以上で、任意のデータベーステーブルの接頭辞でのWordPressのインストールは完了です。

WordPressが正常に表示されることを確認して下さい。また、データベーステーブル名が任意のデータベーステーブルの接頭辞で構築出来ているかはphpMyAdminから確認可能です。

Read More

Hello auxak!

auxak

今まで見たことも聞いたこともない新しい単語だと思います。

「アウザック」

と読みます。

auxakという単語自体に特別な意味があるわけではありませんが、将来的なIT関連企業の起業という目標を前提に会社名となりうる私の名前をもじった造語を由来します。

現在、私は某外資系企業に勤務する28歳のサラリーマンプログラマーで、Visual C++やVisual C#をメイン言語とするWindows OS向けシステム製品の開発業務に長く携わっています。学生時代のプログラミング経験を含めれば10年以上のプログラミング経験があるのですがずっとWindows OS畑を歩んで来ており、Window向けのソフトウェア開発に関してはそれなりに知識がありますが、長く確固たる地位を築いてきたMicrosoftのWindows OSがGoogleのChrome OSやApple iOS等の近年出てきた新しいOSに地位を脅かされている近年、Web技術や他OSに関してもしっかり身に着けておかなければなと思うようになりました。

このauxak blogでは、auxakに関する話題だけでなく備忘録として日頃調査した技術情報やIT関連の話題を発信していこうと思います。

まずは、2014年末のWebサービスの立ち上げを目標にWebの勉強をしていこうと思います。

Read More