タグ

ブックマーク / ryoasai.hatenadiary.org (7)

  • いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して

    正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと

    いまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味について - 達人プログラマーを目指して
    indication
    indication 2011/06/24
    コレクション関連を創造すると継承のおいしいところが見えてくる
  • 高い品質のプログラムを作らなくてはならないと考えている職人PGの考えは間違っていた? - 達人プログラマーを目指して

    ソフトウェア工学の教科書やプログラミングに関する技術書は、例外なく「プログラムの品質を(制約の範囲内で)できるだけ高いものにするべき」という前提で書かれています。それがエンジニアリングの目標だし、そもそも、ものづくりの職人として、できるだけ良いものを作りたいという思いがあるのは当然だと思います。 また、よく言われることはプログラムというのは一度書いたら終わりなのではなく、長い年月をかけてメンテナンスされるものであるという考え方です。ですから、単に短い期間で作るということでなくて、長い目で見て保守性、拡張性の高いプログラムを作るということは、こういった専門書では当然良いことであるとされます。ネット上でもプログラムの品質に関するこのような特徴については、いろいろ意見が書かれていますね。 http://blog.miraclelinux.com/yume/2007/10/post_9db7.ht

    高い品質のプログラムを作らなくてはならないと考えている職人PGの考えは間違っていた? - 達人プログラマーを目指して
  • こだわりのある職人プログラマーほど、無駄なコードを少なくしたいものという事実を理解してほしい - 達人プログラマーを目指して

    ちょっと興味深いエントリが目に留まりました。「プログラミングへのこだわり」を方向づける: 設計者の発言基的に、この方自身もプログラマーや開発者をされているようですし、他のエントリを読んでも「プログラマーの地位向上をすべき」ということで、私にとっても非常に共感することをおっしゃっているのです。それでも、ちょっとこのエントリの内容については疑問に思うところがあったので、勝手ながら私の意見を書かせていただきたいと思います。 業務システムの生産性や保守性を高めるための基は「コードを1行でも減らす」である。なぜなら、コーディングとこれにともなうテスティングこそが、開発作業の中でもっとも人手のかかる作業だからだ。個別案件においては、良いコードだろうが悪いコードだろうが少なければ少ないほどよい。 これは、まさにおっしゃる通りですね。もちろん、可読性ということもあるため、厳密には最少のコードが最良とい

    こだわりのある職人プログラマーほど、無駄なコードを少なくしたいものという事実を理解してほしい - 達人プログラマーを目指して
    indication
    indication 2011/06/06
    説明する必要のあるコードは無駄なコードなのかもしれない
  • プログラマーの成長を考えないSIerの仮説は間違っている - 達人プログラマーを目指して

    Java EEや.NETCOBOLやVB6よりも当に生産性が高いか? - 達人プログラマーを目指してのコメントで 熟練者も居ることは理解しているが、開発をする上で熟練者ばかりを集めることはできない。このため初心者側にレベルを合わせざるを得ない。 というコメントをいただきましたけれど、これは実に典型的なSIer(の上司)の考え方ですね。SIerの仮説と呼んでもよいくらいですね。とにかく、この仮説の前提となっているのは プログラマーのスキルレベルは一定で成長しない プログラマーは容易に交換可能なリソースである プログラマーは単純労働者である というモデルです。とにかく、この仮説がはびこっているから、いまだにSIerのフレームワークは「初心者側にレベルを合わせざるを得ない」という思い込みで作られていることが多いのでしょう。 COBOL(の初期の)時代ならまだしも、少なくとも現在の開発環境にお

    プログラマーの成長を考えないSIerの仮説は間違っている - 達人プログラマーを目指して
    indication
    indication 2010/12/07
    そう考えるとコードと1対1の詳細設計(excel等)は悪でしかない。まぁ、当り前か
  • Java EEや.NETはCOBOLやVB6よりも本当に生産性が高いか? - 達人プログラマーを目指して

    プログラミングと設計は来切り離せないものなのではがすごい反響だったのですが、結局この記事で私が言いたかったことは、 Java EEなどの現代的な開発環境はCOBOLなどの古い言語を使った開発とは根的に設計の手法が異なる 多くの現場では未だに古い設計手法を使っているため、オブジェクト指向などの最近の開発環境のメリットが活用できず、低い生産性にとどまっている。 ということに要約できると思います。ただし、どうして、Javaではオブジェクト指向で開発しないといけないのか、どうして昔ながらの伝統的なやり方を改め、新しい設計手法を採り入れないといけないのかと疑問を持たれた方もいらっしゃるかもしれません。ここでは、開発手法と生産性の問題について、もう少し掘り下げて検討してみたいと思います。 レガシー言語の生産性 最近のCOBOLでは、オブジェクトやスタック変数すら使えますが、ここではCOBOL85の

    Java EEや.NETはCOBOLやVB6よりも本当に生産性が高いか? - 達人プログラマーを目指して
    indication
    indication 2010/12/03
    束縛と自由(柔軟性)。企業としての教育が問題を提起していると考える
  • プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して

    最近はアーキテクトという役割で客先に常駐し、フレームワークの選定をしたり、事前に共通部品を設計したりする役割を担う仕事を引き受けることが結構あります。そこで運よくお客様のマネージャーがオブジェクト指向開発の経験が十分にある方だと、IDEなどの開発環境やインターネット接続環境を当然のように用意してくれるので最初から仕事がスムーズにできるのですが、そうでないとMS Officeしか入っていないロースペックのノートPCを渡されて、要件定義フェーズの期間中、フレームワークの設計をお願いしますとか、私としてはちょっと首をかしげてしまうような困ったことを言われてしまう場合があります。開発フェーズが始まる半年後まではコーディングは基的に不要という考え方です。アプリケーションのアーキテクトという役割では少なくともコーディング規約を考えたり、ツールやフレームワークの選定をしたりする必要がありますし、プロジ

    プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
    indication
    indication 2010/11/24
    PGからのフィードバックを考えた設計であるべきこと
  • いつまでStruts1を使い続けるの? - 達人プログラマーを目指して

    営業支援で提案中の案件があるのですが、現状CGI+Perlで作られているコンシューマー向けサイトがあるが、 CGIなので性能が悪い コンテンツの修正が大変なのでMVCできちんと作りたい 実績のあるJavaとStrutsをメインに検討している とのことです。今時多くのコンシューマー系のサイトで、コンテンツの管理を容易にしたいならオープンソースも含めてPHPベースのCMSが星の数ほどあるという事実はおいておくとしても、とにかく、実績重視ということでStrutsということになってしまうのでしょうか?お客様もMVCなど相当技術を勉強されていることは感心なのですが、JavaのMVCフレームワークというとStrutsしか考えないというのは問題ではないのでしょうかね。多くのStrutsベースの既存システムを自社で抱えているなどの理由があるのであれば、それも一つの選択なのかもしれませんが、実績重視とか社内

    いつまでStruts1を使い続けるの? - 達人プログラマーを目指して
  • 1