今日もヤバさをI/O中。

(物理的)大型エンジニアのブログです。基本的に何かが足りません。

Collectionメソッドソースコードリーディング100本ノック、始めます

久々の記事になります。最後に書いたのはお正月…実に10ヶ月ぶりの記事になります。 突然ですが、本日よりLaravel5.6 Collection メソッドソースコードリーディング100本ノックを始めます!

要は Collection メソッドのソースコードリーディングです

まず、僕が指し示している Collection というのは、Laravel が提供している配列のラッパークラスです。

コレクション 5.6 Laravel

Laravel を使った Web 開発をする時には、ほぼ確実と言っても良いぐらい使用されます。そして、その Collection で使用できるメソッドが…

f:id:cocoeyes02:20181111203606p:plain

数えてみるとわかるのですが、100個存在します。

そこでこの Collection メソッド100個全てのソースコードリーディングを、野球の100本ノックの如くこなすことにしました!

何故そんな事をするんだい

今回の Collection メソッドソースコードリーディング100本ノックを決行した理由は2つあります。

Larave のソースコードを読んだことがないから

一つは、Laravel のソースコードリーディングをしたことがなかったためです。

フレームワークを使用しているの中で、時にフレームワークがどんな処理をしているのか調べなければいけない時があります。

理由はバグ調査のためだったり、ドキュメントに書いていない仕様を知るためだったり…

僕は、2018年になってから、会社のプロダクトで Laravel を触り始めました。なので、がっつり Laravel のソースコードを読んで理解を深めよう! と考えたわけです。

ブログ記事を全然書けていないから

もう一つは、単純にブログ記事を全然書けていないからです。

エンジニアとして生きていくからには、アウトプットをすることが重要です。しかし、僕はここ10ヶ月ブログを投稿していません。

理由は忙しかったり…というのもありますが、一番の理由は「大したネタがない」です。

大したネタがなくても、アウトプットはして行くべきなのですが…どうもブログ記事にしたいネタが見つかりませんでした。

そこで、「ソースコードリーディングのついでに、ブログも書いちゃえばいいんじゃね?」と思い、ブログを書くことにしました!

1メソッド1記事書くつもりですので、これで100記事分のネタができたわけです。ブログが書けるよ! やったねたえちゃん!

Laravel 5.6、理解を深めていこう

今回の前提条件として、Laravel のバージョンは5.6で確認して行きたいと思います。

というわけで、100本ノック1本目の all メソッドについて、書いていこうと思います!

仮想通貨でお財布を厚くしたい!-3本勝負と開発中の仮装通貨バーチャルトレードサービス-

新年明けましておめでとうございます!久々の更新になります。

今回は今まで株もFXもやったことがない僕が仮想通貨でお財布を厚くできるのか?ということについて書きます!

去年の10月ごろから口座を開いて入金し出したので、今日に至るまでに起きたことを3本勝負形式で追っていきたいと思います!

ROUND1

まず結果から申しますと、初めての仮想通貨投資チャレンジはほぼ利益ゼロ(ちょっとマイナス)ぐらいで終わりました。

我ながらこれはひどい・・・

今まで株もFXもやったことなく、手探りでやった結果がこれです。振り返ってみると・・・

  • 他の仮想通貨が上がる上がるという買い煽りに負けてしまった。
  • 急に暴落し始めたのに対して深く考えず慌てて利確した。
  • 販売所(今回はコインチェック)でJPYや他の仮想通貨から仮想通貨を買うとき、まあまあ無視できない手数料が発生しているのに気にしていなかった。
  • etc...

色々と反省事項がありましたが、とりあえず「むやみに他の仮想通貨に変えない」「ブレない心を持つ」という意志を持ってROUND2に臨みました!

ROUND2

今度はBCHがどんどん上がっていく様子を見せていたのでBCHに4万円ほど注ぎ込みました。

今度はブレないぞ!利確もせず上がるまで待つんだ!

そう思った矢先に起きたチャートがこれです。

ファッ!?うーん…(死亡)

さながらデットコースタージェットコースターのように上昇、急降下していきました。

このあとある程度は価格が元に戻ったものの、最終的に1割ほどマイナスでBCHを売ることになりました。敗北した理由は間違いなく「チャートの上昇具合しか見てなかった」ことです。

この件でトラウマを植えつけられてしまったのか1ヶ月半ほど仮想通貨を買いませんでした。かなしい。。。

番外編

やはり慣れていないものに手を出すのがマズかったんだ・・・と肩を落としていた思っていた頃の話です。仲間内で「仮想通貨バーチャルトレードができるゲームを作ったらバズるのでは?」という話題が上がりました。

何それ面白そう!!と思い、開発メンバーとして参加することになりました!

現在パブリックβテスト中でございますので、興味がある方は是非触っていただき、気になる点や要望などをフィードバックしていただければと思っています!

coin-step.com

とはいえ開発メンバーとして参加する際、「そんなサービスがあったら損せずに投資の学びを得られたではないかファ〜〜〜wwww」

というやつあたりのような気持ちがあったのも事実ですw

だからこそ最初の僕のように「株もFXもやったことないけど仮想通貨には興味あるな〜」という人に仮想通貨投資の練習ができるような場を提供したいと考えております!

どうぞよろしくお願いします!

ROUND3

ROUND3ではチャートだけでなく、その仮想通貨のイベント(ハードフォークや企業連携など)に着目して購入するという方針にしました。

ちょうどこの時はXRPが「coinbase上場」と「リップル、大企業2社と提携」という材料があったためXRPを買いました!

途中でちょくちょく買い足したりして15万ほど入金した状態になっていますが結果は・・・

祝!初めて利益がプラスに!

一時は+13,4万ぐらいになっていたので3回目の投資にしてやっと成功したと言えるでしょう!

読売新聞一面に「国内メガバンク地方銀行で銀行間送金としてXRPを扱う。インターネット銀行や地銀など数行は再来月から運用開始する」という旨の記事が出たことによる急騰が利益をもたらしたようです。

買った時に予測していたイベントとは違う理由で利益が出てしまいましたがまあいいでしょう!(coinbase上場に至っては否定されてしまいましたし)

というわけで今まで株もFXもやったことがない僕でも利益を出すことができましたが、僕が買ったXRPのポテンシャルや今後のイベントを見ている限りまだまだ上がると思っています!

なので、もう少しこのまま握り続けて様子を見たいと思います!

僕の仮想通貨ライフはこれからだ!

PHPカンファレンス2017に参加してきました!

f:id:cocoeyes02:20171009120309j:plain

実は2回目の参加です。今年のテーマは「Challenge!」だそうです!

セッション自体はPHPカンファレンス2017公式ホームページで確認できるので、
個人的な所感とか補足とか無知故に知らなかったワードとか雑に書きとめていきます!  

聴講したセッション

できるPHP7アップグレード

  • 人が多すぎてサテライトが2つ設営されるほど大盛況でした!
  • 内容はペパボテックブログの記事からのようです。
  • PHP5.2だとComposerが使えないのでなかなかしんどそう・・・
  • 「Fluentd + Norikra を利用したログの集約・解析基盤を構築し、アプリケーションのPHPエラーログをSlackにリアルタイムで通知」ぜひ普段の開発から使っていきたい意欲があります。
  • 未使用ファイルはボディブローのように後々作業の邪魔になったりしますし、是非この段階で消したいですね!(なおシステムに詳しい同僚がもう社内にいない場合は…)
  • E2Eテストの環境も知見も全然ない状態なのでこの辺りは積極的に勉強しないと…。

Lancersのバージョンアップ施策について

  • インターン先でもPHPCakePHPのアップグレードが行われた(行われている)ので、いくつか見覚え・聞き覚えのある話がありました。
    • htmlHelperの変更や$this->param, $this->dataの変更など、今でもCakePHPのバージョンごとでどういう違いだったか混乱する時があります。
  • Codeceptionの存在を初めて知りました。なるほど、テストフレームワークですか…phpunitによるテストコードは現在も書いていたりしますが状況によってはこういったテストフレームワークを取り入れることになったりするのかなと思いました(小並感)。
  • できるPHP7アップグレードのセッションでもCIによるテストの話が出ていましたが、CIツールの使い方学ぶのも個人的な課題の一つですね・・・。

Serverless FrameworkでAWSフルマネージドなツールをいくつか作って得たアーキテクチャ設計の知見

  • AWS Lambda中心の話でした。
  • 「インフラもアプリケーションコードも一括管理できるデプロイツール」甘美な響き!
  • かなり講演者のノウハウを詰め込んだセッションだったので、AWS Lambdaを利用したbotとか作るときに非常に役に立ちそうなセッションでした。

大規模WebサイトURL刷新の方針と実装

  • 昔から頻繁にピクシブ利用していて、最近もURL見ていてすごいことになってるなあと思っていたところだったので、すごいタイムリーなセッションでした。
    • 結構サイトとか見るときにURLから規則性を予測してURL直打ちでショートカットしたりするので個人的にはうれしい改修だったりします。
  • MFIを発表してから何となくどのサイトでもモバイル版のWebサイトやレスポンシブデザインのサイトが増えた気がします。
  • ルータの作成についてはこちらのピクシブの記事が詳細に書いてあるようですね。
  • 相対パスのリンク組み立てはさすがにヤバそう:yabasou:

PHP Version Up と AWS への移行

  • 全チームや領域によらず一丸となってバージョンアップに取り組んでるのはとても素晴らしい!
  • パフォーマンス改善は副産物。互いのシステムの理解を得たり組織を超えたチームワークが次の大きなチャレンジとなる!
    • 「技術負債は人的資源に変える大きなチャンス!」名言ですね
  • 普通にPDCA回すことの大切さ
  • 「50%ほどLoad Averageが改善、Webサーバを40%削減」削減しすぎィ!!!

運用、追加開発しづらいPHPアプリケーションに未来を与える方法

  • サポーターズのお話です。就活では大変お世話になりました。
  • APMツールも実際に自分で使って見ねば…
    • Error Rate:最大30%強、761secのメチャ遅エンドポイントはさすがに笑いましたが人ごとでもないなとも同時に思いました。
  • ぼく「1メソッド140行8重ネストで会場にいる皆が笑っているということは…よくある話ではないのか…」

LT会

  • MDDと結果にコミットするセッションのインパクトが強すぎて帰り道「筋肉ファースト」なる単語が頭に焼き付いて仕方がなかったです!
  • ただそんな中でも「良いテストデータ、悪いテストデータ」の話は聞いてて耳が痛かったです…
    • いつでも見られるところにスライドの内容をメモとして置いておこうと思うぐらいあばばばとなってました。
  • 「告白に学ぶHTTPステータスコード」は是非漫画化を期待します(迫真)

セッション以外では

  • ふと書籍のコーナーを見てみると、既に読んだり積ん読として家に置いてある本が結構見かけました。
    • 前回参加した時よりもいろいろ読むようになったなあ…と実感しました。
  • 懇親会LTもなかなか個性的なものが多くて面白かったです!
    • MySQLのバグのLTは特に面白くて、毎年楽しみにして見ていますw

感想

  • 今年はインターンでもPHPフレームワークのバージョンアップを実施しているので、バージョンアップ系の話を中心として聞いていましたが、やはりテストコードやCI、APMツールの使い方は時間とって実際に触ったり勉強するべきだなと思いました。
  • セッションごとに準備の仕方や環境が違ったりしていますが、上記のことについては共通で述べられていたので勉強不足を感じました。
    • でもただ知見を得るだけでなく、自分の知識や理解度を確認する意義でも参加しているので至らぬ点を見つけてなんぼだと思っています。

最後に

  • 懇親会の様子をみて、皆PHPが大好きなんだなあとひしひし感じました。
  • あとHDMIケーブルが無いときでも誰かがすぐに持ってきたり、感謝の気持ちを込めたLTを発表したり、このPHPカンファレンスをコンテンツとして1人1人が盛り上げていこうとしているのが伝わってきました。
    • 今後何かのイベントに参加するとき、この光景を絶対忘れないようにしたいと思います!

それでは参加者、及びスタッフや登壇者の皆様、PHPカンファレンスお疲れ様でした!来年も必ず参加します!