日報87


Morning: 少し手を入れたzend_language_parser.yから生成したparser.goと、token_get_allからJSONを生成するだけのPHPを実行するlexer.goを組み合わせて、<?php echo 1;のAST化に成功した。

https://github.com/hatajoe/go-php-parser/tree/parse-identifier?files=1

成功した、と言っても、今のところ自前で定義しているASTは突貫のstructで、今後これをちゃんとした構造に書き換えないといけない。

zend_language_parser.yのactionでやっていることをGoでトレースするつもりだったけど、そもそもこのyaccファイルはphpのコードからこのactionを呼び出せるようになった時点で役割は果たしていて、actionでは自前で構造体にマッピングした方が良いだろうと思ったので明日からそれをやる。この時定義しなければいけないASTのデータ構造はWriting an interpreter in Goが参考になる。

全てが連動してやっとyaccおよびlexerとparserの役割、またその連結部分などが理解できた。これまでフワッとしていた部分だったので学びがあった。


Day: 会社で全PJのイシューを見ている話は前に書いたけど、ただ見てるだけではダメだと思い少しずつコードも読み始めた。

これまで通りやってたら時間が足りないので、イシューは取り敢えず置いておいてプルリクのみ重点的に見るようにした。そこにはやはり人それぞれのやり方があって、色々と収穫はあった。

  • プルリクエスト作っているだけの人
  • 1つのプルリクエストが大き過ぎる人
  • 細くpushしたり考えをコメントで残す人

レビューしやすいプルリクは、しようとしていることとその意図、実装に至るまでの過程が時系列になっている。これは違うチームでも何をやりたいのかが把握でき、設計に対してアイデアを出しやすい。

まぁそんなことはわかりきっていることなんだけど、できる人とできない人が居る。できない人と書いたけど、きっとそんなことは無くて、恐らくこれはやらない人。

レビューで得た成功体験が乏しいというのが理由なのかなと思ったりする。それを得られる場もまたレビューの場でしかない。レビューを続けることはまず必要だけど、そこで価値を生み出す仕組みを考えないといけないかな。

自身を振り返ってみると、OSSにプルリク投げてレビューしてもらえたあの体験は影響が大きい気がする。ただ社内でそれを再現することは難しい。


Night: 昨日、その日食べたものを日報に載せると、後で見た時楽しそうという理由でテキストで書いてみたけど、全然楽しく無かったので写真撮ってみた。朝活、仕事、夜を丁度分ける感じで。

夜は毎日お酒を飲むのでお米は食べない。あと遅いことが多いので量も少なくしてもらってる。もちろん飲みに行ったらその限りではない。

明日明後日と夜は飲む予定があるので土日の朝活は出来ないだろうな。まぁそんくらいで丁度良いわ。

今日は娘が熱を出して幼稚園休んだけどいまどうなんだろ。全員寝ていてわからない。まぁ大丈夫でしょう。