YYPHP#85に参加してきました。

先週、5/24 に東京に行くついでがあったので、そのままYYPHP#85に参加してきました。

YYPHPは毎週金曜日に行われるPHPerの集まりです。

conpassでの説明文を見ると

「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。

とあります。IT系の勉強会などは様々ありますが、PHP限定というあたりが嬉しいところです。地元にいるとなかなか言語専門の勉強会とかはなかったりするので。

それにしても、毎週休まず開催。今回で第85回とのこと。自分でも数回、勉強会を主催させていただいたことはありますが、結局日々の忙しさに流されて1年近くもやってないので、この継続力はすごい。続けることは本当に大事!
とても素晴らしい取り組みだと思います。

内容も非常に濃いもので、とても勉強になりました。

 

以下に公式まとめがありますので、内容はそちらをどうぞ。

https://qiita.com/suin/items/7033187982e922d73934

 

個人的に気になった事を振り返ります。

WordPressでComposer使うとき、みんなどうしてるのかな?の疑問について

自分のお仕事としてWordPressに機能を追加したり改造したりするお仕事をいただくことが多いんですが、そういうときにcomposerを使いたかったりします。

が、WordPressはネームスペースとか無いので、そこにPSR-4のオートロード入れてネームスペースで管理すると、WordPressの既存関数とかfunctions.phpに書いてあるやつと、うまくあわなかったりとか、ようするに、なんか気持ち悪いなぁといつも思っていて、みんなどうしているのかな?というぼんやりした質問をさせてもらいましたが、やっぱり、index.phpとかの起点になるファイルから、オートロードして、関連するファイルとかだけネームスペース下で、WordPressのクラスとかはバックスラッシュつけて使う感じのようです。

gRPC

この話題がでたときには、自分は勉強不足のため聞いたことない言葉で「??」ってなっていたのですが、気になったので少し調べてみました。

Googleが開発したRPCのフレームワーク?ぽいもののようです。

今の所、自分の理解としては

Protocol Buffersというデータのやり取りのための構造を定義するスキーム言語というもので、リクエスト、レスポンスを一括で定義してあげて、そこからサーバサイド、クライアントサイドのコードを一式でジェネレートする感じのフレームワーク。

と理解しています。

gRPCの公式ドキュメント的なのをみると、なんとPHP向けのドキュメントもありました。

今の自分のお仕事からはあまり触れる機会はないのかもですが、興味は持てました。時間を見てもう少し学びたい。

参考

全体的に思ったこと・感じたこと

PHPerの集まりだけど、やっぱりサーバレスはみなさん気になるようでした。

また、Laravelの高負荷環境での運用とか、WordPress冗長化とか、そういうお話も沢山でした。

なんか、ちょっと前にくらべて、PHPでこんなアプリ作りました。とかそういうのじゃなくて、ウェブアプリとか作るのは当たり前で、それをいろいろな要件とか環境にあわせて、どうやって運用していくのか?
というあたりがエンジニアの腕の見せどころということなのかな。

その中の選択肢というか、実現するための、手段の一つとしてPHPがあるよね。という空気になってきていて、フロントからバックエンドからサーバ環境から広い視点で、見れたり、選択できたり、提案できるようになっていきたいなと思わせられる勉強会でした。

毎週やっているので、日程が合う日は参加しやすいし、なるべく金曜日に合わせて東京出張するようにスケジューリングしようかな。

また、リモートでの参加も可能とのこと!

ちなみに、この記事、金曜日に書いてますので、今日もあります。

 

新潟グラム2017 Vol.1「レスポンシブ & jQuey」に参加してきました。

最近、ブログを全然更新しないので、こういうのに参加したときくらいはちゃんと書こうと思ったり思わなかったりする今日この頃な私です。
参加してきました。
https://connpass.com/event/50766/

新潟グラムは、参加2回目ですが、有料のイベントのわりに(もしくは有料だからこそ?)、たくさん人が集まりますね。
4〜50人くらいの教室がいっぱいになっていました。

最近のレスポンシブウェブデザイン対応の勘所と実装方法あれこれ

講師: 長谷川広武(´ oムo `) さん
株式会社HAMWORKS 代表取締役
https://ham.works

実は今回遅刻しての参加になってしまったので最初のほうが聞けなかったのですが、レスポンシブな案件を請けるときに気をつけること、お客さんと事前確認したほうが良いことなどをまとめて発表いただきました。

ありがたいことに、私の場合はこまかいところはざっくりおまかせでお仕事をいただいたときにも、ちゃんとこちらの判断や提案をとりいれてくださるお客様が多いので、つい甘えてしまいますが、取り決めをちゃんとやることで、制作の際に迷うことがなくなって工数がへったり余計な手間がなくなって、本来頑張るべきところに集中できることも多いと思うので、事前確認とかちゃんとやろうと思いました。

講義いただいて一番気になったところが、最後におまけ的に発表されていた

「うちはSASSでメディアクエリーこうやって書いてます」

というところ。

この後の交流会のときに、そんなに質問するほどのことじゃないんじゃね?とか言われたので、おそらく一般的なやり方なんだろうと思うんですが、一応有料セミナーってことで、見せていただいたコードをそのまま書いていいのかわからないので、ざっくり説明するけど
こんな感じでメディアクエリー書くやり方。

親ファイルで

各ブレイクポイント毎にフラグを準備

フラグ1 をtrue
 メディアクエリー1{
  ここで子ファイルをインポート
 }

フラグ2をtrue
 メディアクエリー2{
  ここで子ファイルをインポート
 }

子ファイル

if フラグ1
 いろいろ書く
if フラグ2
 いろいろ書く

という書き方。
私は、@cotentを使ったやり方でやってきたので、このやり方は新鮮でした。

小生のやり方。

/*こういうのを定義しておいて*/
@mixin media_query_pc{
    @media (min-width: 768px){
        @content;
    }
}
@mixin media_query_mobile{
    @media (max-width: 768px){
        @content;
    }
}

/*こんなふうに書く方法*/
.body{
  width:1100px;
  @include mediaquery-mobile{
    width:1000px;
  }
}

@contentを使うほうが、同じセレクタに対するスタイルが離れないので見やすいかなというのはありますが(このあと発表された西畑さんも、自分の書き方を発表してくれて、こっちは覚えられなかったのですが、たしかおなじような書き方で、同じような事言われていました)
でもIF使うやり方は、このパターンを覚えておくと、ほかのときにもいろいろと流用できそうな気がしたので覚えておこうと思います。

SASSのメディアクエリーは勝手に、@content一択だと思っていたので、他の人のやり方を見るって大事だなぁて思いました。

ステップアップjQuey -jQueryをもうすこしだけ上手に書くための10のTIPS-

講師: 西畑 一馬 さん
株式会社トゥーアール代表取締役
https://www.to-r.net

JQueryを書くときに、便利になったり楽になったり、「過去の自分のコードに苦しめられたり」しないためのちょっとしたTips集の発表でした。

実は、PHPとかHTMLとかCSSとかって、最初に触り始めたときは右も左もわからず、ネットにもあまり情報がなかった時代なので、とにかく本を読みながら体系的に覚えてきたのですが、javascriptって、昔はサイトの一部をピカピカさせたりするためのプログラムという認識で(個人的な意見)、そんなに本気で学んでいませんでした。そうこうしているうちに、jQueryとかがでてきて、ドロップダウンメニューとか画像の表示などサイトの一部をかっこよく動かしたりする流れがきて、そのままjavascriptをCSSみたくいじれるやつ。ってことで、やっぱり断片的に、「そのとき実現しなきゃいけないこと」を学んできたのみでした。

なので、よく考えると本を読んだりして体系的に学んだ事がなくて、結構自己流でやっつけちゃってるところが多いかも。。なんて思っていたので、こういう場で、一般的にはこうやってるよ。的なTipsは結構役に経ちました。

初心者向け的に発表されていたけど

  • 同じ要素にイベント仕掛けるときに、わかりやすくするためのjsプレフィックスをつけましょうというお話(固有名詞はうろ覚え)
  • 変数名の付け方 とくに jQueryオブジェクトには $をつけようとか、定数は大文字スネークケースとか
  • javascriptでの、ネームスペース風な書き方
  • 等々、実は結構ためになりました。

    大まかにみれば、自分用のノウハウのなかで同じような課題解決はしていたけど、他の人がどうやっているかとか、一般的なお作法とかって、一人で仕事しているとついつい学ばずに進んでしまうので、とても参考になります。
    おそらく、こういう気付きが、私が勉強会にでる一番の目的だと思ったり思わなかったり。

    最後に交流会と懇親会

    今回もいろいろな人に出会えました。新潟ってITの人いっぱいいるんだなぁ。。ってこういうの出るたびに思います。
    あと、個人的に感じただけなんで、実際はどうなのかわかりませんが、「最近、ここの会社なんかすげーな」っていう会社に、優秀な技術者さんがだんだん集まってきているように思います。
    ちょっと前は、他の会社だったり、フリーランスだったりした人が、だんだん勢いのあるところに集まってきているという感じです。

    そういう先頭をぐいぐい行くIT企業みたいところが新潟に増えてきたのかなぁ。。。
    新潟のIT界隈も変わっていくんだなぁ。。なんて思ってみたりしたりしなかったり。そんな交流会でした。

WordBench 富山 に参加してきました。

【勉強会】WordBench 富山 勉強会@富山市 第67回 11月26日(土)
https://www.facebook.com/events/1741536562763982/
に参加してきました。

今秋は、いろいろな方と出会いがあり、遠方の勉強会への参加が多めです。
ありがたいことです。
軽い気持ちで参加したら、20名以上の参加で会場はびっしり埋まってて、富山のWP熱すげーなってのが第一印象。
あと、開始前に会場裏の「富岩運河環水公園」ってところをフラフラ歩いてたんだけど、すっっっごくいいところで、あまりに美しすぎて謎の敗北感を感じるほど。(褒め言葉です)
WordBench富山に(参加&&会場がサンフォルテ)だったら足を運ぶことをお勧めします。

Welcartについて

WordPressのECサイト構築プラグイン「Welcart」を開発しているコルネ株式会社の南部様によるセッション。Welcartについてわかりやすく解説していただき、開発の歴史や運営の方法、セキュリティについてなど、色々盛りだくさんに解説をしていただきました。
Welcartは、たしか5年前とかそういう時期に(たしかまだバージョン1になる前)、あるお客様と一緒にWordPressでECサイトできないか検討している過程で使ったことがありました。そのときは、申し訳ないけどなかなかに使いづらくて断念しました。(そのお客様の業態とシステムがあわないってのが大きかったですが)。。そのときは結局ECキューブを選択したのですが、それがキッカケで、その後も特にWelcartと触れ合うキッカケがないままになっていました。
でも、今回お話を聞いて当時と比べてめちゃめちゃ進化しているなぁ、、、て思いました。
デモを見せてもらいましたが、もう別物ですね。今後は積極的に使っていこうと、心をあらたにして、食わず嫌いだった自分を恥じる今日このごろです。

感じた事

コアな機能は本体プラグインで提供しつつ、ウィジェットとかの見た目機能は専用テンプレートで提供してて「カスタマイズするときはこれの子テーマをつくりましょう」という姿勢や、拡張機能を専用プラグインで配布しているところ。
あとは、当たり前なのかもですが商品情報がカスタム投稿として実装されているところとか(これはデモみてるときのURL見てそう思っただけなんで違うかも)、WordPressの流儀というかそういうのに添ってつくられているので、普段からWordPressをがっつりやっている人には、いじりやすそうだなって感じました。
あと、なんというか、南部様の話しぶりとかからにじみ出てくる人柄が、「THE開発者」って感じの方で、こういう方がリーダーシップとって開発されているシステムなので、これからもどんどん良くなっていくだろうなと感じました。(なんか偉そうな書き方になってしまいました。すみません。m( _ _ )m)

よりよいコードを書く!


WordBench富山の神垣さんによるセッションでした。
静的コード解析による読みやすいコードを書きましょう。というお話。
普段から「大事だよね」とかいいながら、ついつい疎かになる「コーディング規約」について、ちゃんとやろうぜ!って内容と、ちゃんとやるための手法やツールの紹介をしていただきました。
「3日経てば他人のコード」は、自分の中で「var_dump書きたくなったらテスト書け」と並ぶCI格言にリストされました。
WordPressのコーディング規約は、1,2回読んだだけで、実際にはクォートの部分とか直接のパフォーマンスに関わりそうな部分しか守ってなかったので、(ごめんなさい・・)、ちゃんと守ろうって心をあらたにしました。というか自動チェック&自動整形ですね。Atomでどこまでできるんだろうか。。。あとで調べねば。あと、{}とかifのスペースは個人的にはどっちとも言えないなぁ。。という印象でしたが、ヨーダ記法はまさにそのとおりだと思ったので意識して取り入れるようにしたいと思います。

こういう『書き方』をちゃんとやっていないと、結局勘違いとかで無駄な時間を取られたりするので超大事。
ありがとうございます。m( _ _ )m

以上。

大勢が参加する勉強会だと、意見とかもバンバン出て活気がありますね。次回は長岡との合同開催の計画も持ち上がっているようで今後が楽しみです。

PHPカンファレンス2016に行ってきました。

PHPカンファレンス2016に行ってきました。
もうPHPer歴10年以上ですが、実はカンファレンス参加ははじめてでした。
ずっと行きたかったのですが、秋のこの時期って学校や子どもの行事が重なっちゃってなかなかいけませんでいた。

一番の印象は、人すげーいっぱいいるな。。てことです。
新潟でPHPイベントで何千人くらすが集まることってないですからびっくりしました。田舎の引っ込み思案な俺は若干人当たりしながら、それでもたくさんの知識と刺激と出会いをいただけました。

聞いてきたセッションについてまとめがてらブログに。

PHPの今とこれから2016

日本PHPユーザ会
廣川類さん

オープニング的なセッションということもあり、今回のテーマ「?>NEXT」ということで、PHPのこれから。PHP7.1とか、hhmv/hackとか、PHPを取り巻く状況の今とこれからについてお話をきかせていただきました。
PHP7は、すこしづつ使い始めています。最近はコンピュータやネットの速度がかなりあがってきているのでバージョンを上げるだけで目に見えて速度がかわる。っていう経験はあまりないですが、PHP7にはそれがあります。もう枯れた言語かとおもわせておいてこの進化。廣川さんのお話にも出てきたJITの実装など、まだまだポテンシャルを秘めていそうなPHPのこれからに夢が広がりました。

Composerプラグインをつくってみよう

中野拓さん
@Hiraku

https://speakerdeck.com/hirak/phpcon2016

実は一番パラダイムがシフトした感じがしたセッションです。
最近は、PHPのライブラリを使おうとしたら、ほぼ全部Composer経由になってきてるので、そういう意味で、ここらで一つちゃんと学ぶきっかけを。っていう軽い気持ちで聞きにいきました。
まずは、Composerプラグインの実例紹介とか作り方のポイント説明などを丁寧にしていただき、「なるほど、そうやってつくるんか。。。とか、composer.jsonってけっこういろいろできるんだなぁ。。」って言う感じで聞いていたのですが、それらを一通りお聞きして、あぁためになったなぁとか思っていたら、、、

実はここからが本題です。と、始まったのが以下の事。

  • Composerとはライブラリの依存関係解決といわれていますが、それだけじゃないですよね。
  • Composerとは曖昧だったPHPライブラリという概念を「パッケージ」という言葉で定義した存在
  • Composerは、PHPライブラリ(パッケージ)をつくるためのフレームワークであり、
  • そして、ライブラリ(パッケージ)の集合が、プロジェクトである。
  • つまり、Composerとはプロジェクトの全てを掌握する存在。

だからこそ、Composerプラグインっていろいろな事ができる可能性があるんじゃね?
という呼びかけ。

た、たしかに!!
Σ(゚口゚;

そう考えると、Composerプラグイン(Composerのscriptsプロパティも)の可能性を感じずにいられなかった。
今度Composer使うときちょっとそういうアタマで考えてみよう!!

PHP7で堅牢なコードを書く – 例外処理、表明プログラミング、契約による設計

タワーズ・クエスト株式会社 取締役社長
和田卓人

https://speakerdeck.com/twada/php-conference-2016

とっっっても大事なことだけど、今ひとつわかっていなかったり曖昧にすませていたり、ときには省いてしまったりしちゃう「堅牢なコードを書く」ってことについて、非常に明快に解説していただけた内容。
これを無料で聞けるってすごくね?っていう内容でした。

タイプヒンティング、値の制限、例外処理、そして、恥ずかしながら今回はじめて知った表明(アサーション)。など、堅牢なコードを書くために実例を交えた手法の紹介。
そして、それらを、どういうときに、どういう考えて使っていくのか?

正直、いままでは結構フィーリングでやってた事も多く恥ずかしくなってしまいました。
予防的プログラミング、攻撃的プログラミング、契約による設計という考え方にわけて、どんな局面で何を考えて、どんな手法をつかうのか?
非常に濃い解説をしていただけた気がします。

堅牢なコードを書く っていうテーマなので結構固い話だったり、怖い話だったりするのかと思っていましたが、このテーマでお話を聞いた後に「うぉープログラムすぐに書きてー!!」ってワクワクしてくるとは思わなかった。そんな価値あるセッションでした。

安全なPHPアプリケーションの作り方2016

HASHコンサルティング株式会社 代表取締役
徳丸浩

https://speakerdeck.com/twada/php-conference-2016

この日一番聞きたかったセッション。
上記の和田さんのお話とセットで聞けたので、ホントによかった。
ネットのセキュリティでおなじみの徳丸さんのお話。

PHP周りのCMSなどの脆弱性とその攻撃手法を具体的に見せていただけて、(((( ;゚д゚)))アワワワワってなりながらも、とても参考になりました。
強力な脆弱性の発見に「興奮しました」と語る徳丸さんがなんかすごく素敵。

Drupalで発見された最凶クラスの脆弱性の紹介をしてくださっているときに、「これ、ドゥルパゲドンと呼ばれてるんですが」みたいなことをポロッとつぶやいてて、それがツボって、昨日からずっとアタマのなかで「ドゥルパゲドン」がぐるぐる回ってる。

安全なWebアプリ構築のためには、脆弱性のない(少ない)バージョンの言語の安全なライブラリをつかって、防御的なコードの書き方をしていくことが大事ってことが身に染みました。

LTいろいろ

  • 家庭用ブロードバンドルータでWordPress動かすとかマニアにはたまらない試み!!
  • CodeIgniterが熱い。やっぱりこれからのフレームワークはルーティングする感じ。今までみたいにCRUDの画面遷移全部PHPでやるというよりはPHPはAPIを提供してフロントはJSとかアプリでって感じになっていくのかな?PHPの役割としては、APIとかで要求されたデータを速く、安全に、安定して返す。というあたりでしょうか。
  • レシートプリンタみたいのやつは反則www
  • Serverlessにすげー興味でてきた
  • drone.ioがモンスターボールにしか見えない
  • この日一番の笑いを巻き起こしたと思われる「一般の人が1年プログラムをやってみて・・」のLT!! 新人さんに技術教えるときの順番の参考になりました。
  • IoTやりたいな。もれそうなときに限ってトイレ埋まっているのはとてもよくわかる。
  • MySQLとPHPは同じ傷を舐め合う仲間(^^;
  • オープンソース界隈で翻訳活動されている方々には本当に感謝です
  • 厳正な抽選は、おそらくたくさんのチームを救うと思う(^^
  • やさしい規約の考え方はとても大事
  • Vagrantで満足してたけど、ほかにもいろいろチャレンジしてみるって思う
  • チームでのコミュニケーション。いいチームで仕事したい。

懇親会

この歳ですが、かなりのコミュ障なので、知らない人の中に一人でいるとしょんぼりしちゃうのですが、こんな俺にも優しくおつきあいいただき沢山の方とお話ができ、新たな出会いをいただけました。
ありがたいです。
WordPress界隈はまだまだ元気なこと。
フレームワークは、みんなLaravelになってきてる
これからのPHPはAPIとかのバックエンドとしての役割をとても期待されているのかな?
地方にも元気なひといっぱいいる。
とか感じることができました。

運営者様スタッフ様、お疲れ様でした。とてもよい知識と刺激をいただけました。m(_ _)m

あと、あきらかに普通よりもネットを使う人種の方々が何千人と集まっているのにびくともしない無料Wi-Fiスポット!!
CONBUさんもすごいと思う。

それから、会場で売ってたお弁当、みためオシャレなガパオBOXなるもの。
結局どうやってたべるのが正解だったのだろう・・ぶっかけてかっ食らったけど。
PHPカンファレンス2016ガパオBOX

【#TechBuzz】10/7 第26回HTML5+JS勉強会 in 代々木に参加してきました

東京出張での打合せがありましたので、

そのまま勉強会に参加してきました。
http://html5js.connpass.com/event/33011/
https://atnd.org/events/78125
↑これです。

まとめを兼ねて、久しぶりにブログ書きます。

Webアニメーションについて

川上 和義さん(@saruyama_monki)

ディズニー社で培われてきたというアニメーションの基本原則12の紹介をWebアニメーションで実装するとどんな風になるのか?という内容を、実際に作成してCSSアニメーションの実例で見せていただき勉強になりました。
アニメーションの要望は高まっているように感じていますが、ついついJS側で実装してしまうのですが、メンテナンス性とかを考えるとCSSアニメーションでできるものはCSSで実装する方がいいのかもな。と考えを新たに。本腰をいれて勉強せねば。

HTML/CSS3のイマドキコーディング技術

ICS 鹿野壮さん(@tonkotsuboy_com)

フロントエンドの前線で仕事をされている鹿野さんによる「フロントエンドの技術は数年前のをそのままやっていると、作り手にもクライアントにもよくないので、新しいものを学びハッピーなフロントエンジニアライフをおくりましょう」的な講義。8つのあるあるネタを元に現場ではこういうのをやっているよという内容を教えていただきました。
中でも、古いブラウザ対応についても、現在はモダンブラウザがかなりのシェアをもっているので古いIEやベンダープレフィックスなどはある程度なくしていってもいいのでは?という呼びかけに、たしかにそうだよね。頷いてしまいました。

あと、「知らんかった・・・(汗)」ってなったのが、imgタグのsrcset属性について、これWordPressなどでもimgタグを出力する関数つかうと普通に実装されているので、HTML5で勧告済みなのかと勝手に思っていましたが、HTML5.1の仕様なんですね。まあsrc入れてるので互換性には問題ないですが勘違いでした。(ちゃんと調べてから使おう!)

さらには、講義後に鹿野さんと名刺交換させていただいたときにその話をさせてもらったんですが「あのエスアールシーセットってぇ・・・」て話したら「ソースセットね」ってやんわり訂正されて超恥ずかしい。。。(TT)
一人でやっていると、文字での情報は勉強できるけど、周りに普段から会話でやり取りできる人がいないのでコーディング周りの 「読み方」 は鬼門です。

全体的に、Flexboxとか普段から使いたいけど古いブラウザ的にどうだろう・・・という踏み切れない気持ちを強く後押ししてくれる講義でした。

名刺交換タイム

最後に名刺交換して交流を深めるタイムみたいのを設けていただいたので、フロントエンド界隈の人々と情報交換ができて知識と刺激を沢山いただいてきまいた。
なかでも、話題にでたのが「sass+compass」ってどうなの?というお話がホットでした。

  • compassをつかうとベンダープレフィックスを書かなくていいけど、コンパイルされたCSSにはもういらないようなベンダープレフィックスのズラズラついちゃうからスマートじゃない?
  • compassを使っていても、主にCSS3関連のベンダープレフィックスを省略できることくらいしか使わない?
  • どうせgulpとかのタスクランナーも併用するんだから、いっそのことsass+Autoprefixerでいいんじゃね?

というあたりの意見が交わされました。

これらは確かにそうかも。と思わせられて、これから検証していきたいと思いました。

トーキョーはこういう熱い勉強会がたくさんあってうらやましい今日このごろ。

ちなみにこの記事、高速バスで新潟に早朝に帰りついたはいいけど、家の鍵を持って出るのを忘れてしまい家には入れないので、しょんぼりしながら市内のコワーキングスペースcodeforで書いたことはヒミツです。