会話による ソフトウェア工学の開発実践16 - コーディング標準

Posted by WZhong on Sunday, January 21, 2024

TOC

単語

ベンダー vendor
提唱する ていしょう 提倡
論じる ろんじる 阐述
初心者 しょしんしゃ 初学者
レビュー review
都合 つごう 安排,情况,条件
ガイドライン guideline
新人 しんじん 新手
一度 いちど 一次,曾经
繰り返す くりかえす 反复,重复
うちの会社 我们公司
命名規則 めいめいきそく 命名规则
勝手に かってに 随便地,自由地
名前を付ける 命名,起名
メソッド method
言語 げんご 语言
混在する こんざいする 混杂
綴り つづり 连接
大文字 おおもじ 大写字母
小文字 こもじ 小写字母
必須 ひっす 必须
定数 ていすう 常数
引数 ひきすう 参数
リターン値 return value
キャピタル capital
アンダーライン underline
許す ゆるす 容许
コンパイル compile
移行する いこうする 转换,转移
予想外のエラー よそうがい
恐れ おそれ 担心
コメント comment
日付 ひづけ 日期
パブリックインターフェース public interface
プライベートインターフェース private interface
大部分 だいぶぶん
タブ tab
心がける こころがける 留心,用心
クラスごと 每个类
パラグラフ paragraph
綴り つづり 拼接,装订成册
結合 けつごう 结合,连接

ポイント

  • 自分の経験を話してもらえます? → 可以说说自己的经验吗?

  • いくつか覚えただけです。 → 只记得一点。

  • 勝手に名前を付けて → 随意取名

  • 一番経験したのはコメントでした。 → 我经历得最多的是写注释。

  • それではいけませんよ。 → 那样是不行的哦。(上对下)

会話

会話の背景

  • 前回はフレームワークについて述べたが、それとともに今回はコーディング標準に関して述べる。
  • コーディング標準は各ベンダーが出している。たとえばサンマイクロシステム社が提唱したJavaのコーディング標準などがある。また国際的な標準もいろいろある。しかし、それらの標準のほとんどは全般的に論じているので、初心者には大変だし、レビューも大変だ。それで、各社は大抵自分の都合で、各自のガイドラインを持ち、要点だけを強調することが多い。

登場人物

  • 鈴木:開発チームリーダー
    山田、田中、前田:開発チームメンバー

会話内容

  • 鈴木:

    • おはようございます。
    • 前回はフレームワークの話しをしましたが、現在はコーディングに入ったところです。今回は新人に入ってもらうし、コーディング標準のことをもう一度繰り返す必要があるのではないかと思いますから、今日はこの辺りについて意見交換しながら話しましょう。
  • 前田:

    • 新人の前田です。よろしくお願いします。
    • コーディング標準に関しては、学校ではサンマイクロシステム社のJavaのコーディング標準を勉強しました。しかし、実際的なコーディングはしていないため、いろいろと教えてください。
  • 鈴木:

    • それはよかったです。うちの会社もサンのJavaコーディング標準をベースにして、コーディングのガイドラインを作りました。今は会社の内部ウェブサイトに置いていますので、皆さんぜひこのガイドラインを従ってコーディングしてください。
    • 山田君、田中君、自分の経験を話してもらえます?
  • 山田:

    • そうですね。私も経験不足ですが、この2、3年でJavaの仕事をやって、いくつか覚えただけです。
    • 一番印象深いのは確か命名規則です。チームワークなので、勝手に名前を付けてはいけないことは勉強しましtあ。まずは、パッケージ名とファイル名ですね。これは会社のルールがあります。たとえば、全てのプロジェクトのパッケージは必ずcom.clientcompany-name.project-nameのようになっているとか。
    • そのあとは、クラス名とメソッド名です。これまではいろいろな言語を勉強したので、いくつかの命名方法を混在していました。今のガイドラインによると、Javaの場合は、いくつかの名詞や動詞の綴りだけでもいいです。ただし、クラス名だと必ず大文字で始まり、属性とメソッド名は必ず小文字で始めていくことが必須です。たとえば、クラス名はKaiwaClassで、メソッド名はnihonKaiwaMethodのようになります。
    • それと、定数名の場合はキャピタルとアンダーラインで綴ることしか許しません。
  • 前田:

    • 命名する時に、日本語を使ってはいけませんか?
  • 鈴木:

    • そうです、日本語を使ってはいけません。全てのコーディング命名規則としては、英数字だけが許されています。その理由は、コンパイルした後に実行システムへ移行したり、また別のツールと結合したりするときに、2バイトのコードが入ると予想外のエラーが発生するおそれがありますから。
  • 田中:

    • 私が一番経験したのはコメントでした。
    • 最初コーディングする時にはコメントを書く習慣は無かったのですが、それでは駄目だとチームリーダーから言われました。
    • クラスのコメントにはこのクラスの目的あるいは振る舞いの明確な説明を書きます。その後、やはりコーディング日付、作者、バージョンなどを書きます。
    • メソッドのコメントには目的、引数、リターン値、例外などを必要があります。
    • 最近はStrutsを使う時に、ANTでconfigファイルを自動更新するため、各Actionクラスに特別な情報をコメントとして書くことが必要になりました。これはケースバイケースですが、それでも守らないといけないですね。
  • 鈴木:

    • 実はコーディングではJavaでも、.NETでも、原則的にはあまり変わらないと思います。すなわち、コーディングが分かりやすく、他人でも読めること。
    • コーディングのスタイルでも言えますが、原則的に言うと、1つのクラスは20から30ぐらいのメソッドで、1つのメソッドには30行以下などのルールがあります。またコードの行はひとまとまりのパラグラフとなるような4、5行を連続させ、その間には空行を一行入れて、読むときは日本語や中国語の詩のように読めると本当にうれしいですね。
  • 前田:

    • そうですか。なかなか面白いですね。
  • 鈴木:

    • もう1つは、コードはパブリックとプライベートなインターフェースをはっきり分けないといけない。ここまでのコードを読むと、大部分のコードはほとんどパブリックなインターフェースしかなかったようですが、それではいけませんよ。
    • やはり、いくら分かりやすくても、よそと関係ないコードは見せてはいけないので、それらのコードはプライベートなインターフェースにしてください。言い換えると、いいコーディングとは、パブリックなインターフェースをできるだけ少なくなるように書かないといけません。
  • 田中:

    • それと、コードを"掃除"することも大事だと思います。
    • まず、コードを綺麗にすることです。コード中の空白、空行、タブ、それとif-then文やwhile文の括弧などをガイドラインで指定したように書かないといけません。
    • リリースする前に、あるいは各段階では、適当に自分のコードをチェックして、もういらないコードをよそに出してしまうことはよくありませんから、自分で掃除しなければなりません。コードは我々の製品なので、いつも必要なコードだけを綺麗に出荷することを大事に心がける必要があります。
  • 鈴木:

    • 最後なんですが、単体テストはもちろんのことですが、単体テストしなくても、本人が書いたコードの自己テストが必要です。たとえばクラスごとに、パブリックなインターフェースに対するテストメソッドをつけることを習慣にすれば有用だと思います。
    • それでは、今日のミーティングはここまでですが、コーディングに関する議論は続けてください。
    • 皆さん、お疲れ様でした。
  • 皆:

    • お疲れ様。

「真诚赞赏,手留余香」

WZhong

真诚赞赏,手留余香

使用微信扫描二维码完成支付