2016/01/23 このエントリーをはてなブックマークに追加 はてなブックマーク - 知らないと地味に困る現場ランゲージ

知らないと地味に困る現場ランゲージ





なんだか、いつの間にか使ってるけど、「どこからやってきたか分からない言葉」というのが現場にはあります。
ここで言っているのは、カタカナ語とかああいう類のものです。
こういうやつ。

【使い過ぎるとカッコ悪い】 IT業界のルー語 BEST40

一見こういうの、馬鹿にしがちですが、使う人も多いし説明する際に便利だったりします。
確かに使いすぎるとダサいんですが、覚えておいたほうが情報共有の観点では便利だと思います。

僕の個人的な会話の聞き方としては、脳内変換かけるとともに、カタカナ語好きやなぁとしみじみする感じです。


で、今回特に考えてみたいのが日本語のそういう言葉。分かりますかね。
日本語なだけにみんな無意識に使ってて、一般的な用語として混在しがちな気がするのですが、
これらも知らないと困る気がするのです。

ということで、それらを「現場ランゲージ」として勝手に命名し、考えてみようと思います。



2016/01/17 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】BooleanフィールドはisXXXという命名が推奨されている

【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
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って
しちゃうのかなぁと思ってたんですが、謎が解けてスッキリしました。

他の言語でもこういうアプローチとってたりするらしいですね。

言語を作ってる人の話を聞くのは貴重でした。
楽しい勉強会でした!






2016/01/09 このエントリーをはてなブックマークに追加 はてなブックマーク - 「プロジェクトを成功に導く 人を動かす調整力」を読んだ

「プロジェクトを成功に導く 人を動かす調整力」を読んだ



この本を読みました。結構すんなり読めたかも。

プロジェクトを成功に導く 人を動かす調整力
プロジェクトを成功に導く 人を動かす調整力


良い本だったので、僕なりに思うところ、興味を持ったところをピックアップしてみようと思います。
あんまり書きすぎると本の中身を並べるだけになるので難しいですね。
ちょっとでも興味持ったら買って読んでみてほしいです!

特に中堅の人、中間管理職、現場リーダー、マネージャーの人など。