コードレビュー

コードレビュー、どういうプログラムを書くか、みたいな部分、で、ある程度のベストプラクティスがあるわけで、例えば1メソッドに処理は1つだけとか、コメントは why を書くとか、クラスに持たせる状態(≒インスタンス変数)はなるべく少なくしたい、とか、そういう部分、個人的には過去の先輩方にレビューしてもらって自然と学んできた訳で、なので自分もレビューして気付いたらそういう部分は書くのだけど、これを GitHub 上のコードレビューでやるのは無駄が多いなぁと思い始めてきて、やはりペアプロすんのが良いのかも、とか考えたり。した今日だった。

自動運転プログラムとその検査についての記事を読んだ感想

https://www.yomiuri.co.jp/science/20190204-OYT1T50108/

この記事を読んで思った事を書いておこう。

ひとまず、前後の文脈を気にせずに気になる所をあげるとしたらここになる。

情報技術(IT)の知識を持った職員がプログラムの中身を確認する。

プログラマを職業として生活している上での感想として、これはすごく難しい事なんじゃないかなぁ、と思ったのであった。プログラムの中身を確認する作業がどんなものか、具体的には分からないが、普段の仕事でソースコードレビューをしていても、新しいプロジェクトを引き継いで既存のソースコードを読むときでも、オープンソースのコードを読んでる時でも、ソースコードから全体の動作を完全に把握する事って結構難しいと思っている。まぁ8割方は理解できるんだけど、正常系を離れた途端に理解が難しくなる傾向があると思っていて、すべての動作に関して完璧に動作を把握するのは非常に難しいと日々感じている。特に自動運転のようなプログラムは難しいんじゃないかなぁとも思っていて、あまりこの業界のプログラムについて詳しくないのだけど、もし素朴に実装していたとしたら、ひたすら分岐が続くようなプログラムの連続になると思っていて、そのすべてのパターンを洗い出していくのはめっちゃくちゃ大変だと思う。もちろん、静的解析のツールなんか入れるんだろうけど、各社で使っている言語もフレームワークも違うだろうし、それ用の開発がまた必要になるんじゃないかな(あ、これってもしかして商売のチャンス?)。真面目にやるのであれば、国の職員に、実際の開発者をいれて(設計者もそうだけど、コードを書いた人もいたほうが良さそう)、みんなでレビュー会みたいなのをやる事になるのかな。それでまずは全体のコードのフローチャートが印刷されて、全体像とコードの一行一行とを行き来しながらプログラムをレビューしていく・・・あれ、これってもしかして品質良くなるかも?それやってくれるんならやってほしいかも、という気持ちになってきたぞ・・・ただそのコストって誰が払うんだろう、という問題はありそうか。それならいっそ、全部オープンソースにしてしまえば改ざんの余地もなくなるし、レビュー者も多くなるし、良いんじゃないか?いや、知的財産的な何かが絡むと難しい?うーん、考えるのをやめよう。その一方で、今は機械学習を使って、ロジックを書かないでもプロダクトを書ける土壌が出来てきてるっぽい何かを感じていて。学習させた結果、なんでそうなるかは分からないけど、そうやって出力されて、それが一定の割合で正しい事が分かっている、というような。こういうのってプログラムの中身を読むだけじゃなくて、そういうチューニングの中身とか、もっと言えば機械学習で使ってるアルゴリズムにまで精通してないと難しくて、この国の職員のレベル、めっちゃ高くね?そんな事できたら最近流行りのGAFAだっけ?で高額で雇ってもらえるんじゃね?うーん、やっぱりいろいろと難しいような。でもこのレビューが「不正を防ぐため」という名目だと、どうもまっとうなレビューがされる気がしなくて、「品質を高めるため」になれば明るいニュースなんじゃないかなぁという気がしてきた。自分でも何が言いたいのか分からなくなってきたのでこの辺にしておこう。

一国民として、自動運転技術は発展して欲しいものの、普段やってる Web アプリケーションの開発みたいに頻繁にバグが発生するような状況は嫌かなぁ、とは思ってるので、誰かがそれを保証する、という仕組みはあった方が良いとは思いつつ、それを国がやるのはどうなの?という気持ちもある。これ、国の職員がってレベルの話じゃなくて、一大プロジェクトとして、大きな認証機関を作って国の総力をあげて取り組む方が良さそうな気も?あれでもそうすると謎のお金やら人やらが送られて結局公平とは?みたいな話になるのか?うーん、やっぱり難しい。テスラもグーグルもちょいちょい事故ってるけど、事故は避けられないよなぁ。飛行機もちょいちょい事故ってるし。自動運転技術って、すごく高度な話だと思うし、各社が各々で研究するより、みんなで集まっていろいろやった方が良いんじゃないかなぁ。

なんかとりとめもない感想になってしまった。

簡単にまとめると、確かに各メーカーが独自に作ったものをガンガン、アップデートしてく、ってのは辞めた方が良さそうで、誰かがその安全性をそのメーカーの外から検査するのは賛成だけど、その検査・認証機関ってものを作るのも中々難しそうだなぁ、という感じでした。

2019年ラウンド2回目、初バーディが出るの巻

今年2度目のラウンドは、アンダー35会員になってる鹿沼72の筑波コース。 寒いと思ったけど、意外と暖くてゴルフ日和だった。そして人がすごく少なかった。

スコアは46(16)/57(20)の103(36)。 ベストスコア・ベストハーフスコア更新、(多分?)人生初バーディが出るも、後半の失速がすごくて素直に喜べない〜

悔しかったのでホールバイホールで反省点を並べた。のを晒しておく。

f:id:tanaka51:20190114222645p:plain

改めて書き出すと、圧倒的にアプローチ・マネジメントのミスがスコアに直結してた。 ティーショットの出来とスコアはあまり相関が無さそう。

課題のウッドは、 1Wは12回中7回良い当たり。 5Wは6回中4回良い当たり。 今までのショットを計測してないから正確には分からないけど、まぁ練習の成果はちょっとずつ出てると言って良いでしょう。

1月・・・というより、次のラウンドまでは、引き続きウッドの練習をメインにやっていく。 目標としては、 7割以上、良いショットを打つこと。現状6割前後なので、1割あげていこう。(母数が変わらなければ、ドライバーは2回、5Wは1回増えれば良い計算)

100切りを目指す最短はアプローチの改善かもだけど、そっちはひとまず置いておく(ウッド強化月間なので)。 そっちで即効性がありそうなのはマネジメントの改善なので、次のラウンドではそこを気をつける。 かと言って、マネジメントのミスを無くす!だと効果うすそうだから、「ショットの選択肢を2つ以上用意する」事を意識する事にしよう。

具体的には:

  • ティーショットはドライバー?クリーク?アイアン?
  • ティーショットは右を狙う?左を狙う?
  • セカンドからはキャリーでグリーンを狙う?刻む?
  • アプローチはピンを狙う?グリーンセンターを狙う?

常に考えながらゴルフしたい!

ホールバイホールの反省点列挙は、結構大変だけど、出来る限り続けていきたいな。

ゴルフ初打ち


f:id:tanaka51:20190106180315j:image

 

昨日、初打ち行ってきた。(画像の日付は間違ってるけど、直し方が分からなかった…)

キリ番スコアでおめでたい、ので、今年はここから80台目指して頑張るぞ!

 

…晒すのも恥ずかしいスコアだけど、今年はゴルフ飛躍の年にしたいので、出来る限りラウンドの結果をブログに残してくつもり。

 

ブログ、去年は全然更新して無かったけど、ゴルフはなかなか伸び悩んでいる。ラウンドは月1以上のペースで行ったかな、という感じ。スコアはだいたい110〜120台をいったりきたり。たまに100台が出たくらい。2年やってこれか〜という感じはするけど、着実に成長はしていると前向きに捉えよう…

 

ただ、去年末に練習で何かを掴んでからは、いけそうな気配を感じ始めている。

ドライバーはしっかり当たる事が多くなった(おかげで良く曲がるが)。30y以下のアプローチもワンピン以内によるようになってきた。バンカーも一発で出せはする。ショートアイアンも高さが出てきて、横のミスが少なくなってきた(縦距離がまだ合わない)。パットも狙ったラインに打ち出せて、距離感が合う事が多くなってきた。練習した事がラウンドでうまく出せていない感じなので、何かが上手く噛み合えばスコアはついてくる気がしている。

 

というわけで、1月はウッド強化月間にしたい。おそらく1月中にまたラウンド行くはずなので、次のラウンドの目標は「ドライバー・クリークで狙った方向に飛ばせる・曲げられる」としようかな。

隠れ目標は、「2パットで決める」「100y以内の縦距離の感覚を合わせる」という感じで。

 

ゴルフ 常総カントリー at 2017/09/16

I氏と午後スルーのツーサムで常総カントリーに行ってきた。

 

木曜日があまり良い感じで終われなかったので、ラウンド行く前に打ちっ放しに。ここでI氏にもらったアドバイスを実行した所、アイアンが打てるようになったのであった!どうも今まで、インパクトは手を上げながら(体から離れながら)、降ろしていたようで、これだとフェースが開くは力は入らないわで良い事なし。そこで貰ったアドバイスは、手はそのまま下に降ろすイメージで振る、というものだった。これのおかげで、変な力も入らず軽いインパクトで遠くまで飛んでいったのであった。

 

---

 

で、ラウンドに。

 

今回、内心の目標は、アイアンをきっちり打つこと。結果的にスコアは144と全く良くなかったけど、56789PWまできっちりと振って、しっかりと飛ばす事ができた!特にぶっつけ本番で今まで振れてなかった56アイアンをしっかり振れたのが嬉しかった!逆に89番はトップする事が多くて、全部合わせての練習が必要そう。でもまぁとにかく、5番アイアンがしっかり振れると移動がすごく楽だった…スコアの半分位はグリーン周りだったので、アプローチとパッティングをやっていけばスコアはグンとあがりそう。ウッドも打てないのでやる必要がある。まだまだやることはあるけど、ひとまず懸念だったアイアンがしっかりと振れて当たるようになって、非常に充実したラウンドだった。

 

スイングが上手くできなくて微妙に腐りかけてたけど、うまくできるようになってすごく嬉しい。はやく次の練習をしていきたいなー

ゴルフ練習日誌

日月火木と打ちっ放しに行った。

 

もう本当に何が正解なのか分からないまま闇雲に打っていて、打てば打つほど分からなくなってきた。

 

今日(というかもう昨晩か)は iPad mini と三脚をもって自分のスイングを撮影した。練習中に動画を確認したけど、何が悪いのか分からない。スイングがダサい事だけは分かる。データがあっても活用できない状態である。90分打ち放題という時間制限付きの練習なので、じっくり見る気持ちの余裕がないという事もある。それで帰ってきて、嫌になる気持ちを抑えて改めて自分のスイングを見てみる事にした。よーく見た。iPad はコマ送りができて良い。それで気付けた事は、テイクバックからトップまで、手で上げている事だった。自分では体を使ってあげているつもりだっただけに、軽くショックもありつつ、原因が分かって嬉しい気持ちもありつつ、今までのスイングが全部間違ってた事に衝撃を受けつつ、とにかく体を使ったスイングが全く出来ていない。これが事実だった。さっそく素振り棒で素振りする。これもiPadで撮影する。すかさず見てみる。松山くんのアイアンのスイング動画と比べる。ようつべがある世界に産まれて良かった。更に分かった事は、どうも右肩が閉じている感じがある。これの原因はテイクバックでクラブが体から離れていくようにスイングしている事だった。飛球線方向に平行に持っていく事を意識しすぎていた。体に巻き付くようにすれば良さそう。あとは、トップでフェースがあっちゃこっちゃ向いている。しっかりグリップして動かないようにしなくてはいけない。

 

という訳で、スイングを一から作り直していく必要がある。

 

得られた教訓は、動画は撮るだけじゃなくてきちんとプロのスイングと比べるとかして活用しないと意味がない、という事と、とはいえ練習動画はガンガン撮るべきだ、という事だろうか。

 

さ、やっていくぞ