PHPプロフェッショナル開発

PHPプロフェッショナル開発
PHPプロフェッショナル開発を読んで見て見ました!

 

1個人開発とチーム開発
ドキュメント
進捗
コミュニケーション

 

lssueには
なにをやりたいのか、解決したい課題
コミュニケーションを増やしたい、質問と投稿者以外のコミュニケーション手段

 

解決する方法・手段
質問にいいね機能をつける

 

実装する仕様
いいねは1つにつき1回
ログインしているもののみいいねができる

 

目標数値
いいね機能を使うユーザが全体の20%以上いる

 

スケジュール
2ヶ月後までに

 

コードレビューの必要性
チーム開発を行う場合においてある程度の規模になると
他のエンジニアがどのように開発をおこなっているのかが把握するのが難しい
実装者のみが知っているコードの機能が本番に反映され、そのコードに障害が発生した場合
その実装者しか対応ができなくなってしまう

 

php7でできること
<?php
functiontriple(int$input) {
  return$input*3;
}
?>

 

型宣言
引数の前に型を指定することができます。
スカラ型の型宣言にも対応しました
  • 論理値 boolean
  • 整数 integer
  • 浮動小数点数 float(double)
  • 文字列 string

 

<?php

functionhalf(int$input):int{
return$input/2;
}
echohalf(5);
答えは2です。

 

<?php

functionhalf(int$input):float{
return$input/2;
}
echohalf(5);
答えは2.5です。

 

void関数
戻り値が存在しないことを表すvoidが戻り値として型宣言可能になりました。(php7.1)

 

<?php
functionfoo_ng($option) :void
{
return"";
}


return null;

 

無名クラス
無名クラスは、クラスの定義をすることなく、オンザフライでオブジェクトを生成する機能です。匿名関数(ネイティブクロージャ)のクラス版だと思うとイメージしやすいです。
無名クラスは、new classで、生成します。下記が、そのサンプルです。ここでは、sayメソッドを持つ無名クラスを定義して、$objectに格納しています。$object の say メソッドを実行すると、’Hello’という文字列が出力されます。

 

<?php
$object=newclass{
publicfunctionsay()
{
echo'Hello'.PHP_EOL;
}
};


$object->say();

 

dockerとは
一言でいえばコンテナ型の仮想環境を作成、配布、実行するためのプラットフォームです
メリット
マックのOS環境ではなくdockerという仮想環境の中で開発可能
ローカル環境の統一
本番環境でも運用可能
などです。
マックの環境が壊れる恐れがあるのならば、dockerで開発すればいい
ローカル環境を統一して複数人の開発にも適している。
同じローカル環境を準備してやれば、phprubyのバージョンも合わせられる

 

感想
技術の話だけでなく、設計、開発の仕方、コードレビューなどの現場の開発に使えそうな内容であることと
新しい技術(dockerやphp7など)にも触れることができていい本だと思いましたが、正直私には、書いてある内容が難しかったので、ある程度力を身につけてから再度読み直したいと思います。