ブログに掲載したソースコードが別のブログにパクられたっぽくてテンション上がってる

ちなみに、これがパクられたっぽい記事。Pythonでヒュベニの公式を使って緯度経度で表された地上の二点間の距離を算出するプログラムだ。 butter-tiger.hatenablog.com

業界的には日常茶飯事だけれども、まるっきり無断引用されるのはあまり良い気はしない。 まぁ、僕がライセンスに関する記述をしていなかったのも悪いんだけどさ。
論文みたいに参考文献としてURLを貼るだけで良くって、事前の申出どころか事後承諾すらいらないんだけどねぇ。。。

どういうケースで精度が低くなるのかについても言及しておいたほうがいいと思うのよね。何でもかんでも使えるワケではないってくらいは記述があっても良かったと思う。

でも、パクられたらこういう気分になるんだなっていうのが分かったのは収穫。 あと、僕の書いたプログラムにどう手が入れられるのかというのも見ていて面白い。面白いので、無断でソースコードレビューしてみる。無断でパクったんだし、そのくらいいいよね。

  • 定数は大文字のキャメルケースで定義しましょう
    • Pythonを主戦場にするならPEP8くらい読んでおきましょう(Javaメインの僕も目は通しました)
  • タプルを使って緯度経度をイミュータブルにするのは良いアイデアです
    • が、ソースコードを読まないとタプルの添字と緯度・経度の関係がどうなっているのか分からないので可読性に難があります
    • 日本国内の緯度経度を入れれば直感的に分かるとはいえ不親切です
  • 離心率は定数なので、離心率の2乗も定数となります
    • 計算結果は一致するかもしれませんが、関数を呼び出すたびに2乗をするのは冗長です
  • lat_kamata のような変数を設けていますが、ラジアン単位なのに緯度と称しているので混乱します
  • 僕のプログラムの d_latlat_difference としたようですが、僕の意図としては ddelta です
    • 高校数学レベルの知識だし、そもそもこういうときにdifferenceってあまり使わないと思うけど。。。
  • def cal_distance(): という関数だけ見ると、何と何の距離かわかりません
    • せめて引数として渡してあげましょう
  • 関数名にcalと接頭辞をつけて計算すると宣言しているクセに戻り値なしでprintして終わりにするのはダサい

うぇーいって言いながら飲み歩いていたFラン文系大学出身のIT土方ソースコードを無断でパクるのはいいんだけど、パクるならもっとかっこよくリファクタリングしといてほしかったな。