プログラミング原則

プログラミング原則というものがあります。
有名なものをいくつか紹介します。

KISS
Keep It Simple, Stupid.”
常にシンプルに。
シンプルなコードは理解し易く、メンテナンスが容易です。

DRY
”Don’t Repeat Yourself.”
同じことを繰り返さない。
同じ処理は共通化することでコード量が減り、メンテナンス性も向上します。

YAGNI
You Aren’t Gonna Need It.”
それ、必要にならないよ。
不要なコードはバグの原因になります。書くのは本当に必要なコードだけ。

原則と言われるように、
誰にでも当てはまる基本的な考え方だと思います。
プログラミングとは常に複雑さとの戦いなので、
シンプルなコードを心がけています。

KISSの最後のSが”Stupid”(愚か者)というのは、
ちょっと無理やりな気もしますが面白いですね。

キーボード

社内で使っているキーボードを、新しく買ってもらいました。
今までメンブレンかパンタグラフ式のキーボードしか使ったことがなかったので、
初めてのメカニカルキーボードです。

どれにしようか悩みましたが、
口コミを参考にして、シンプルで掃除のし易いものを選びました。
肝心の使い心地も良く、コードを打つのが楽しくなります。

そのうちに他のキーボードも試してみたくなり、
今度は自宅用に静電容量式のキーボードを買ってしまいました。
コトコトと上品な感じの音がして、
こちらも非常に使いやすいと感じています。

学生の頃、自分に合う書きやすいペンを見つけようとして、
たくさんのペンを買って試した事を思い出しました。
キーボードはペンのように簡単には買い替えできませんが、
毎日手に触れるものなので、愛着を持って大切に使っていこうと思います。

ソフトウェアのローカライズ

ソフトウェアのローカライズとは、外国の言語にも対応することを言います。
弊社のソフトウェアもローカライズを行う場合があります。

英語が主ですがローカライズを行う際、
どのような単語や表現を使うべきか気を付けています。
あまりにも長い単語を使うと、デザイン的にもはみ出してしまったり、
2行で表示されたりしてしまいます。

例えば「輝度」という単語に対して、
一番しっくりくる英単語が「Brightness」だった場合、
英語表示の場合は文字数が多く、
場合によってはスペースが足りなくなってしまいます。

自分のスマートフォンを英語表示に切り替えてみると、
狭い画面の中でどのような表現がされているのかとても参考になりました。
適切な表現とアイコンで、使いやすいソフトウェアを開発したいと思います。

コメントもコードの一部

他者の書いた古いソースコードの修正したり、機能追加をしたり、
メンテナンスする機会がありました。
思った以上に時間を費やしてしまったのですが、その主な原因は、
①処理の大きな流れが見えてこない
②なぜその処理を行っているのかが分からない

というものでした。
時間が経ったり、当事者ではない人が読んだりすると、
その開発者がどのような考えでその処理に至ったのか、
なかなか理解できない事を実感しました。

コードのコメントには「なぜそうするのか」など、
コードからは読み取れない情報を記入するべきだとあります。
一方、何でも書けばよいわけではなく、
余計なコメントは可読性を損なってしまいますが、
それでも無いよりはあったほうが助かります。

メソッドやクラスを定義するときと同じように、
使う側の相手の気持ちになって、使いやすいように、
読み手の気持ちになって、処理の理由がわかりやすいように、
適切なコメントを考えたいと思います。

 

使いやすい携帯端末

電話とメール専用に「Xperia SX」という端末を使っています。
ディスプレイは3.7型で、本体も95gのかなり小さな端末です。
いつか後継機が出たら買い替えようと思いつつ、6年が過ぎてしまいました。

バッテリーも待ち受けだけなら昔のガラケー程度は持つし、
何よりポケットにも無理なく収まるので、お気に入りなのです。
ちなみにその前に使っていたものは「Xperia ray」という端末で、
これも3.3型の小型のものでした。

スマートフォンの機能がどんどん多様化・複雑化する中で、
アドレス帳やスケジュールやメールなどの個人情報、
それに鍵やお財布などの重要な機能は、
その他の雑多なアプリを含む端末とは切り離して所持したいと思っています。

ただ私のような考えはあまり一般的ではないのでしょうか、
小型の端末が発売される気配すらありません。
そろそろ新しいバッテリーの入手が難しくなりそうです…
小型のスマートフォンの発売を切に願っています。

RS-232C

産業界ではまだまだRS-232Cは現役です。
通信内容が単純でノイズにも強く、扱いやすい為です。

COMポートの通信内容を詳細に調べる必要があったので、
Microsoft純正のCOMポート監視ソフト「Portmon」を使いました。
残念ながら普段使用している64bit環境のOSには対応しておらず、
別の開発環境を準備して確認する事となりました。

少し前なら当たり前のようにできていた事が、
最新の開発環境では使い慣れたものが使えなかったり、
逆に不便だったりすると、とても残念な気持ちになります。

書籍による学習の大切さ

書籍を買ってC#を勉強しています。
インターネットでも多くの情報が手に入る時代ですが、
断片的ではなく、系統立てて学習するには書籍が必要だと感じます。

C#は時間をかけて成熟してきた言語ですので、
今はあまり使われない古い記述方法や作法などもあります。
インターネットでザッピングして情報を集めると、
同じ内容でも様々な記述方法が混在してしまうので、
整理して、自分なりのコードに変換できる能力が必要だと思いました。

それにしてもC#の本はどれも重いです…
電子書籍は購入も持ち運びも手軽ですが、実際の書籍に比べると使いにくいです。
慣れれば、もっと便利に使いやすくなるのでしょうか?