2016/02/27
Kotlin Birthday Partyに行ってきた、あとLTしてきた #jkug
サムライズムにて開催されたKotlin Birthday Partyに行ってきました!
大盛況で40人ぐらいキッチリ入ってたと思います。楽しかった!!
Togetter
http://togetter.com/li/943457
2016/02/23
チケット管理のアンチパターンとベストプラクティス
カテゴリ:
考え
主語がでかいタイトルですが、自分なりに考えようという目的です。
自分の思考の整理。
何か意見があればガンガンコメントなりツイートなりして欲しい。
前提として、
チケット管理システムは2つぐらいしか使ったことがないので、そちらに偏ってしまうかも。
ちなみにRedmineとBacklog。
(今がRedmineだから多分それに偏る気が)
2016/02/02
ドラクエと転職
そこにいるのはまだ宝箱があるからか
ドラクエが好きだ。
みなさん、ご存じだろうか。ドラゴンクエスト。
主人公は突然旅立つことになり、色んな家を物色して強盗したり、
外に出てモンスターを殺したり、なんとなく南に行って洞窟でイベントをクリアして王様に
褒美をもらったりするゲームだ。
僕は昔からドラクエが好きで、あれは色んな街を渡り歩く。
隅々まで色んな町人と話して、宝箱を物色して、イベントをやりきったか確認する。
そして次へ進む。
2016/01/23
知らないと地味に困る現場ランゲージ
カテゴリ:
考え
はじめに
なんだか、いつの間にか使ってるけど、「どこからやってきたか分からない言葉」というのが現場にはあります。
ここで言っているのは、カタカナ語とかああいう類のものです。
こういうやつ。
【使い過ぎるとカッコ悪い】 IT業界のルー語 BEST40
一見こういうの、馬鹿にしがちですが、使う人も多いし説明する際に便利だったりします。
確かに使いすぎるとダサいんですが、覚えておいたほうが情報共有の観点では便利だと思います。
僕の個人的な会話の聞き方としては、脳内変換かけるとともに、カタカナ語好きやなぁとしみじみする感じです。
で、今回特に考えてみたいのが日本語のそういう言葉。分かりますかね。
日本語なだけにみんな無意識に使ってて、一般的な用語として混在しがちな気がするのですが、
これらも知らないと困る気がするのです。
ということで、それらを「現場ランゲージ」として勝手に命名し、考えてみようと思います。
2016/01/17
【Kotlin】BooleanフィールドはisXXXという命名が推奨されている
はじめに
らしいです。
元々はKotlinのbooleanのアクセスって変じゃない?って話で。
Kotlinの勉強会に行ってきて、その時の懇親会でJetBrainsの@yanex_ruさんと@ngsw_taroさんの間でそういう話が繰り広げられました。
(勉強会のレポはまた別で書こうかな)
@yanex_ruさんはJetBrainsでKotlinコンパイラとKotlinのAndroid対応をやっているそうです。
どういうことか
話題として、Kotlinのbooleanのプロパティアクセス変じゃない?ってなってたのは2点です。
1.JavaのbooleanのクラスフィールドがKotlinからisXxxというプロパティとしてアクセスされる
JavaとKotlinでフィールド名が変わっちゃうのは違和感ありますよ、って主張ですね。
ソースで言うと、こういうことです。
Java
public class JavaBooleanSample { private boolean hoge; private boolean fuga; public boolean isHoge() { return hoge; } public void setHoge(boolean hoge) { this.hoge = hoge; } }
Kotlin
val sample = JavaBooleanSample() // setterアクセス sample.isHoge = false // getterアクセス sample.isHoge
2.KotlinのbooleanプロパティはJavaからgetXxx、setXxxと見える
KotlinでbooleanのフィールドはisXxxになって欲しいのにsetXxx、getXxxになっちゃうよって話です。
ソースで言うと、こんな感じです。
Kotlin
class KotlinBooleanSample {
var hoge = true
}
Java
public class AccessToKotlinBooleanAccessor { public static void main(String... args) { KotlinBooleanSample sample = new KotlinBooleanSample(); // Kotlinではvar hoge = true sample.getHoge(); sample.setHoge(true); } }
Kotlinとして推奨されるのは
こういうことなんだそうです。
Kotlin
class KotlinBooleanSample {
var isFuga = true
}
Java
public class AccessToKotlinBooleanAccessor { public static void main(String... args) { KotlinBooleanSample sample = new KotlinBooleanSample(); // Kotlinではvar isFuga = true sample.isFuga(); sample.setFuga(true); }
つまり、Kotlinではbooleanのフィールド変数は
isXxxと宣言するのが正しい。
そしてJavaのフィールドのxxxはKotlinからはisXxxとしてアクセスされる、という仕様らしいです。
なぜこういう言語仕様になっているか
@yanex_ruさんによると
・isXxxというアクセスが英語の文法的に自然
・Javaとの相互互換性を考えると、やりやすい
といった理由らしいです。(懇親会でさらっと聞いたので間違ってたらすみません)
確かに、よくよく考えてみるとJavaがbooleanのアクセサメソッドの命名規約を特別扱いしてるとも考えられますもんね。
と考えるとKotlinがこういった対応をとるのは自然なのかなぁとか思いました。
サンプルソース的なもの
一応作って検証しました。
ちなみにですが、こんなことをすると競合するのかコンパイルエラーになりました
class KotlinBooleanSample { var isFuga = true // コンパイルエラー var fuga = true // コンパイルエラー }
まとめ
今まで、KotlinはなんでJavaから見る時にbooleanのアクセサをgetXxx、setXxxって
しちゃうのかなぁと思ってたんですが、謎が解けてスッキリしました。
他の言語でもこういうアプローチとってたりするらしいですね。
言語を作ってる人の話を聞くのは貴重でした。
楽しい勉強会でした!
登録:
投稿 (Atom)