大学生からの Web 開発

廃れない技術よ 我が身に

2017年8月12日

PHPカンファレンス関西 2017 に行ってきたぞ

PHPカンファレンス関西2017 に行ってきましたので、内容を紹介します

全体的な感想

PHPの現場から

スピーカー

新原 雅司(@shin1x1

内容

スライドは、7月17日時点で公開されていなさそう。見つけたら教えてください。

基調講演。通常のトークより 10 分長い 40 分の内容。

グランフロントに圧倒されて、ぐるぐる迷ってるうちに、始まってしまった。途中参加で立ち見した。

自分が聞いたのは以下の内容。

  • PHP は、リクエストごとにオペコードに変換している。PHP 5.5 からオペコードキャッシュが標準で入った
  • PHP の思想
    • PHP は歯ブラシである
    • 歯ブラシは歯ブラシを使うことに喜びを感じて使うわけではない
    • 歯を綺麗にするために使うのだ
    • 歯ブラシを使うために分厚い教科書を読むの嫌でしょ
    • PHP は問題解決のためのツール
    • 「バグの発生しない!可読性の高い!最強の言語仕様というわけじゃない」
  • PHP is グルー言語
  • 利益を生み出してくれている PHP コードに感謝 :pray:
  • PHP 自虐をやめよう!!!!!!!!
  • PHP エンジニアよ 胸を張れ

またおすすめのページとして以下が紹介されていた。

感想

基調講演ということで、 PHP の基礎という内容だった。

PHP は歯ブラシ」という言葉、プログラミングは問題解決の手段 :muscle: :triumph: ってやつ。

PHP の思想に関連するページとして以下がよさそうだった。作者のプログラミング観などは、 3 ページから。

  • PHPの生みの親,ラスマス・ラードフ氏インタビュー:レポート|gihyo.jp … 技術評論社
  • 気になったワード抜粋
    • プログラミングは必要悪
    • 問題をタイムリーに,手遅れにならないうちに解決できるなら,そのためにgotoを使うかwhileループを使うかはまったくどうでもいいことです
    • みんな自分はプログラマーだ,プログラミングが好きだと言いますけど,たぶん本当に好きなのは初めの10%なんだと思います。私もそこは好きなんです
    • 「その人たちはなぜPHPというハンマーを選んだのでしょう?」「使いやすいからです。始めるのが比較的簡単だから。」
    • PHPは,ひどいコードを動かすのが驚くほど得意です。
    • 世界最悪のコードを書いたとしても,PHPならまだ動くし,実際速度も出るし,スケーリングも可能です。
    • PHPがひどい言語だというならWordPressを他の言語で書き直しますか? がんばってください,5年後に会いましょう(笑)

参加レポートの趣旨からズレてきた。

総集編 - 最近のPHPがわからない人のための基本文法おさらい講座

スピーカー

内容

これもスライド公開されていない。以下、聞きながらのメモ。

  • 初心者向けセッション
  • PHP 7.0 は 2015年12月リリース
  • いろいろな機能は 5.3 から入ったので、5.3 以降だとあんまり辛くないぞ
  • 現在のサポートは 5.6 まで
  • これから PHP を学んでいくのは 7.x から
  • 現場は古いやり方まだまだある
    • id:karur4n autoload や namespace 使わずなど??
  • ライブラリ管理
    • いちいち require するのがめんどう
    • Smarty とかね
    • Smarty なんてまだ動いてるの???
      • 俺が動かしてるぞ
    • 配置がプロジェクトごとに違う
    • Composer 使いてえ
      • 依存管理
      • オートロード
  • null 合体演算子
    • 「$a = A ?? B」
  • クロージャ
    • 処理を変数に閉じ込めて、引数渡しで持ち回すこともできる
  • Trait
    • PHP 5.4 から
    • クラスに共通の処理をもたせたい
    • use して関数を内包する
    • 継承ツリーにマーク(?)付けたいときには継承のほうが便利
  • type hinting
    • PHP 7 からスカラ値できる
    • PHP 7 から戻り値の型を指定できる
  • ビルトインサーバ
    • 便利だよ
  • クラス名を文字列で指定する際、ClassName:class と表現できる
    • なぜその技術が必要だったか
    • どのよにして導入されたか
  • Web のニーズ
    • 古くからある典型的な Web アプリケーションは WordPressEC-Cube でなんとかなった
  • PHP.net はバージョンごとのリリースノートもあるぞ見てくれ
    • id:karur4n 「知っている人???」とアンケート取っていたので、推したいところだったよう
  • 初心者に向けての精神論になってきた
  • 社内のちょっとしたシステムを新しい技術スタック取り入れていくの勉強になるぞ

感想

PHP 5.2 以前は、考えないこととして話されていた。

とりあえず php.net 見ろという感じだった

話者 Twitter

f:id:karur4n:20170717211034p:plain

f:id:karur4n:20170717211038p:plain

PHP[TEK] 2017 参加レポート

スピーカー

  • 奥清隆
    • 株式会社ロックオン

内容

スライドは見つからなかったものの、内容は以下の記事と同じもの。

海外の技術カンファレンス「PHP[TEK] 2017」に参加してきました! | 株式会社ロックオン社員ブログ

  • PHP TEK 2017
  • アトランタ
  • 規模は本カンファレンスに似ている
  • PHP 7: Reality Check
  • Hacklang at Slack
    • id:karur4n スライドは見つからずだったけどトークの動画があった
    • Slack love PHP
    • 446 キロ行のプロダクトコード
    • 114 キロ行のテスト
    • 40 回 / 日 のデプロイ
    • PHP の問題点
      • 下位互換性のない変更
      • コーディングエラー
      • I/O の並列化
    • 対処法
      • そのままがんばる?
      • Java で書き直す?
    • Slack では Facebook が開発している Hack
      • PHP 互換
      • 静的型付け
      • 非同期処理
      • 実行環境は HHVM
    • Hacklang
      • 段階的な型づけ
        • <?php // そもそも Hack じゃない
        • <?hh // 型付け弱いモード
        • <?hh // 厳格モード
      • Generics
      • Shapes
        • 「型とクラスの間のよう(?)」
      • async/await
    • 4453 PHP
      • 2186 PHP
      • 2261 Hack
      • 266 Hack // strict
  • 海外カンファレンスに行くために
    • お金
      • 飛行機 14万
      • カンファレンスチケット USD 895
        • ランチ x 3, ディナー x 2 付き
      • ホテル USD 1,000

感想

id:karur4n 参加レポートの参加レポートを書いている。

3トラック並行のカンファレンスなんだけど、この時間帯は他にめぼしいものがなく、消去法的にこちらを選んだ。

でも Slack での Hacklang の話は、自分の身に実用的かはともかく、へ〜〜と面白い内容だった。

Hacklang, PHP 7 に型付けが入った現在、大きなメリットは何なのだろうか。Generics と Shapes と HHVM で動作させることによるパフォーマンス???? HHVM は PHP5 と PHP7 の主要機能は動作するみたい。

現代におけるプロダクト開発と PHP を選定するワケ

スピーカー

  • 花谷 拓磨(@Potato4d)

内容

感想

業務においては、要件であるサーバの仕様(いわゆるレンタルサーバ)から、より良い選択肢として挙げられている Ruby on Rails, Java は選択できないことが多い???????(たぶん????)

ひたすら楽して、PHP アプリをコンテナ運用

スピーカー

内容

質疑応答

  • 「本トークでは AWS ECS を使っているが、同じ用途である Google Container Engine(GKE) や さくらの Arukas は使ってみたか」
    • GKE は ECS に比べて一段レイヤーが低いように感じる
    • さくらのものは使ったことがない
  • 開発用のコンテナと本番用のコンテナでどういった違いがあるか
    • ソースコードの適用方法
      • 開発用はホストマシンと共有する設定
      • 本番用はビルドしたイメージに含めている
    • もっと煮詰められるはずで、そのへんはこれから

感想

Docker 本番環境のインフラについて難しく考えたくない、という理由から気になっていた。ECS とても便利そう :smile2:

料金は EC2 などの AWS リソースの利用額だそうで、従量課金制。固定額で良いとこないかな。

テストと仲良くするための Codeception のはじめかた

スピーカー

角田 一平

内容

  • 「テスト書いているか」の質問
    • 会場あまりおらず
  • テストは水質調査
    • 川下で調査大変
    • 支流でテストする
  • 不具合の発見が容易
    • 想定外の影響を早期発見
    • 外部パッケージを安心して更新
  • cept より cest おすすめ
    • cept 上から順、1ファイル1シナリオ
    • cest 1メソッド1シナリオ
    • cest は前処理と後処理を設定できる
  • Acceptance テストは遅いので、リハーサルのつもりで
    • 大まかなパターンだけのテスト

感想

便利そう。

Acceptance テストこけたら、Slack にスクショポストしてくれる仕組みつくったら最高っぽい。

はあテスト書いてない自分あかん……って思ってたら、参加者の人 書いていない人が多かった。

LT

5本立て

参考リンク

スライドが公開されたら、ツイートしてくれている。

他の参加者の感想

22歳になった

2016年12月6日に22歳になりました。よろしくお願いします。

就職

2016年春から秋にかけて就職活動をしました。

結論としては大阪の Web系受託開発の会社に入社させていただくことになりました。PHP, JS, iOS, Android 系の会社です。おそらくPHP を扱っていくことになります。働いて様子を見てから会社名を書くか決めます。よいと感じた理由は以下です。

  • 制作実績が自分がしたいと思うものだった
  • 自分ひとりの開発領域が広くて楽しそうだった
  • 大阪に住みたかった

体験記 東京編

就活には「やっと俺の憧れるいけてるチーム開発できるんだ」という気持ちを持って臨んで、有名なところ、wantedly や Qiita の organizations で見つけたところに応募していました。会社の内容や使用技術、先輩エンジニアから教えてもらった情報をまとめたプライベートリポジトリを作ったりもしました。

就活で一番困ったことは住む場所です。3月から6月までは東京で働くことしか頭になくて、そういう気持ちで何度も東京に行きました。はじめて1人で飛行機に乗りました。渋谷のネットカフェで何度も寝泊まりしました。

はじまってみると「就活やっぱり厳しい」という感じで、けっこうな数の会社に落とされました。基本的に人気のところを多く受けていたのでそりゃそうだなと落ち込みは少なかったです。あと、ビデオチャットでのリモートで面接をできることが多くて便利でした。

はじめて内定をいただいたのは6月頃に、Qiita の AdventCalendar で見つけた東京の会社です。採用されている技術が自分のやりたいものとマッチしていたこと、面接前の食事会で話させていただいてすごいと尊敬できる技術レベルを感じたことから、志望度はとても高かったです。

もうここに行きたいと満足して就職活動をいったん終えました。

関西編

内定をいただいて満足していたのですが、東京が遠い場所のような気がして関西で働けたらより良いじゃんという思いで、7月中旬から関西で就活を再開しました。

時期が遅いことも影響してか、エントリー候補の採用技術をみると東京で受けていた会社とはけっこう違うなと感じました。具体的には PHP 率がとても増えます。

それでも会社テックブログや、会社紹介の雰囲気や使用技術をよく見て選んで、地元である兵庫で2社、大阪で1社受けました。兵庫の2社は「BtoB 系SaaS, 受託開発」「ファッションEC」の会社で、大阪の会社が入社させていただくところです。

もう1社 大阪に拠点がある東京の会社をリモート面接で受けました。志望動機で「関西に拠点を置かれていて〜〜」と話し、「選考中の会社の中からどこを選ぶか」と聞かれれば「大阪に拠点があり、いずれ行きたいと思っている東京に本社がある御社が〜〜」と話しました。しかしその会社、たしかに大阪に拠点はあるのですが東京に比べて 1/100 ほどの人数しかいなくて、営業の駐留所くらいの使われ方だと面接の最後に聞きました。その会社からは落選通知すら来ませんでした。サイレントお祈りってやつです。

最終決定

最終決定をしたのが9月頭なので東京の会社には何度も内定承諾を延期させていただきました。一度承諾したのですがどうしてもスッキリせずに、入社させていだくことになる大阪の会社に8月ごろに新たにエントリーしました。そのため再度待っていただき本当に申し訳なかったです。正直言うと技術的には東京の会社の方が良かったのですが、働く場所が大きな判断基準になりました。

先日、入社させていただく会社の新卒歓迎会に行きました。中小規模の会社なため厳かな内定式はなく、社内レクリエーションと食事会に参加させていただいきました。おおむね楽しく、話が合う先輩エンジニアの方も知り合うことができました。ただ、同じ新卒のウェイ系の瘴気に当てられたり、確認なく自分の写っている写真が会社紹介ページで公開されていて、うーんとも思いました。瘴気に当てられて「どうしたん?もっと食べなよ」とか「おーい生きてる??」的な感じになりました。それは自分が悪いのですが。技術的なことについては飲みの席ということもあり、あまり分からなかったです。

もちろんですが終身雇用など微塵も考えていないので、とにかく入ってみてどうなるか 今はとにかくよろしくお願いしますという気持ちです。あとは9時出社できるかなという不安。働いてみてよかったら長く働きますし、嫌だったら東京で働くことも視野に入れます。

大学

現在4年生でうまくいけば来年3月に卒業します。うまくいけばというのは 単位が足りるのか ということ。4年生の後期にして20単位を履修していて、7単位以上落とすと留年になります。出席点がものを言う授業を 1/3 休んでしまったのですでに2単位諦めました。残り4単位の保険です。

その授業と並行して卒業研究をやっていて、内容は Ruby, JS で Web アプリ制作です。テーマ自体はアカデミックな感じですが、自分のやっていることは普段とさほど変わりません。チーム開発であることと使っていただく対象が明確に決まっているというのが、趣味のプログラミングとは異なります。

12月上旬で研究も大詰めで、そろそろ卒論をまとめていけーという雰囲気です。開発の進捗はあまり良くなくてこれから研究室に残ることが多くなりそうです。

趣味プロ

趣味のプログラミングの方は作ったらいいんだろうなと思うものはいくつかあって手はつけてるものの、完成までたどり着いていません。自分はなにかをやりきるのが苦手なんだと実感します。今のところ以下の2つを作っています。出来上がるかは分かりません。

シャドウバースの方は以下のようにそこそこ出来ていたのですが色々あって作り直しています。

ブログを書くことがめっきり減りました2016年ですが、発信としては Podcast をすこーしやっています。Podcast 活動はその内容よりはやっていることを誇りにしている節があって我ながら良くないと感じます。

まとめ

  • 単位取得うまくいけばもうすぐ社会人
  • ほしい物リスト いただけると大変喜びます