<< 前 ホーム 次 >>

bakaid: 200612052

for_eachへの関数ポインタ引数っていうのは、メンバ
関数ならstaticじゃなきゃダメってこと?

#include <iostream>
#include <vector>

using namespace std;

class Foo {
public:
    void doit(vector<int>& vec) {
        for_each(vec.begin(), vec.end(), printi);
    }

    static void printi(int i) {
        cout << i << endl;
    }
};

int
main()
{
    vector<int> vec;
    vec.push_back(0);
    vec.push_back(1);
    vec.push_back(2);

    Foo foo;
    foo.doit(vec);
    return 0;
}

--

よくいわれることだろうけど、知識には習得段階というのが
あって。まず単に『知っている』というレベル。次に
実際に『使える』というレベル。そして最後に誰かに
『伝える』というレベル。『伝える』というのは、より
正確にいうと『伝わる』。いろいろしゃべっても相手に
理解されないんじゃ『伝わらない』のと同じ。

本を読めば『知っている』というレベルにはなる。本で
読んだことを実際に自分の仕事に活かせば、『使える』と
いうレベルにはなる。で、その知識を仕事仲間に伝えれば
『伝える』レベルになる。

ただ、一番効果的に伝えることができるのは、その知識が
活きるとき。でも、そういうチャンスはいつ来るか
わからないし、チャンスというくらいだから逃すと
次はないかもしれない。

知ってるのが偉いんじゃなくって、知ってることを
伝えられるのが偉いんだ。

--

設計っていうのはコードの話ですよね。ってことは、
それはレトリックの話も含まれるってことになります。

レトリックというと上辺だけのような印象を受ける
でしょうけど、それがコードという事実から導きだされる
当然の結論なんですね。

コードの重複にしても、それはレトリックとして下手な
わけです。リファクタリングなんかは、ほとんどが
レトリックの話ですよね。仕様どうこうじゃなくって、
コードの中だけで解決できる話。機能を変えないんだから
当たり前の話ですけど。

他にもデメテルの法則とか、責任の所在とか、そういう
のもほとんどがレトリックがらみですよね。メソッド・
チェーンが長かったらデメテルの法則に反してるとか、

def dosomething(foo)
  foo.doit
  foo.dothat
  foo.dothis
end

みたいなメソッドがあったら、それはfooのやるべき
ことじゃないかとか、そういうコードを見ただけで
わかることをレトリックといってるわけです。

もちろん、もっと大きなリファクタリングもあるんです
けど、そういうのは小さいリファクタリングができて
からでも遅くない。lots of little piecesやって、
once and only onceやって、そうすれば大きな
リファクタリングの筋道が見えてくるかもしれないじゃ
ないですか。少なくとも小さなリファクタリングが
損になることはありません。

--

システム開発、特に複雑なシステム開発で大切なのは、
システムを理解すること。言い替えれば、システムを
学ぶこと。『学ぶ』というからには、失敗することも
ある。だから、失敗を恐れちゃいけない。

失敗にもいろいろあるけど、ありふれた失敗の1つが
手戻り。古典的な開発では、いかに手戻りを生じさせ
ないかに心を砕いたんだけど。でも、今みたいな複雑な
システムだと手戻りは避けられない。となると、手戻りの
戻る幅をいかに小さくするか、ということに焦点を合わせ
ないといけない。違う見方をすれば、いかに早い段階で
失敗し、その失敗から学ぶかが大切ということ。

--

『働きがい』ということでしょうか。

プロジェクトXみたいなのは、まぁ、特殊なケースです
よね。

結局のところ、技術職の原点というのは、自分が作った
ものを誰かに使ってもらって喜んでもらえること、
なんでしょうね。

そう考えると、何も富士山は必要ないし、使ってくれた
人から『ありがとう』みたいなことをいわれれば十分
なんでしょうけど。

まぁ、これは個人差があって、技術的困難に挑戦して
克服したいっていう人も大勢いるでしょうけど。ただ、
そういうのはordinaryじゃない (笑)。

まぁ、だから、せいぜい高尾山くらいでいいかなぁ、と (笑)。

--

結局、ウサギとカメとじゃ走り方が違うんだし、ウサギの
ほうが速くて当たり前。しかも、おなはしと違って、
ウサギが走るのをサボったりはしない。

だから、肝心なのは勝負をあきらめないこと。なおかつ、
あくまでも勝つために走り続けること。守るっていうのは、
自分が優位なときに取れる手段なんだし、こっちが守る
ために立ち止まってたら、ウサギはどんどん先に行っちゃう。

幸い、まだカメでも食べていけてる。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails