2015年09月26日

プログラミングで大事なこと

プログラミングで大事なこと夜にふと"プログラミングで大事なこと"を思いつくことがあるのでメモ今日思いついたのは2つ(追加2つ)①思考する力当たり前かもしれませんね。でも僕はずっとプログラミングで大事なのは数学だと思ってました。で...

Posted by 部谷 修平 on 2015年9月25日


上の投稿について、もう少し具体的に書きたいと思います。単純にプログラミング初心者の方が一歩進めるようになればと思います。

@思考する力
思考を整理する力がプログラミングに大事ということですが。どういうことか?
例えば、Milkcocoaの仕組みを考えてみます。まずMilkcocoaを作る前に、次のように思考します。

1.どういう人やシステムがこのMilkcocoaに関わってくるか?Milkcocoaを使ってサービスを作る開発者(開発者)?認証の仕組みでFacebookやTwitterも関わってくる?MQTTに対応したい、MQTTクライアント?

2.それらの人々やシステムはどのようにMilkcocoaを使うか?

・開発者はMilkcocoaにログインする
・開発者はダッシュボードでアプリを作る。
・開発者はダッシュボードでアプリをアップグレードできる。
・開発者はアプリのapp_idを使って、Milkcocoaに接続できる。

「開発者」「ダッシュボード」「アプリ」「アップグレード」「app_id」
頭の中に名刺が浮かびます。これを整理します。永続化すべきものはどれか?Webであれば画面に関するものはどれか?「アプリ」は「app_id」を持っている?「アプリ」は「app_id」をどのくらいの頻度で使う?
ログインした後にできることはどれか?アプリに対してできることがどれか?

 というようにいろんな視点で「整理」をします。要するに似ているものをまとめたり、片方が片方を「持っている」場合には、どのぐらい「強く」持つべきかを考えます。「整理」の方法としてオブジェクト図を書いてクラス図を書くという方法があったり、クラス図の部分要素として汎化、特化、集約みたいな思考の表現方法があります。思考の整理方法として、こういうものを捉えると良いと思います。

 継続的にどのくらいきれいに整理できるか?でプログラムの保守性などなどが、かなり決まります。多くのフレームワークが、整理の方法の一部を提供しています。そもそも自分で整理ができると、それらの方法を一段上から眺めることができます。

A人間を信じすぎないこと

これもかなり重要で、例えば、突然プログラムが動かなくなったとします。直前にプログラムの編集をしていればそれを疑うのですが、なにもしてなかったとします。そういうときコンピュータを悪者にしてはいけません。
例えば時間に依存するプログラムを書いてないか?実行回数に依存するプログラムを書いてないか?変に状態を周りに残していないか?(Webであればcookie、DB)などです。OSに近いレイヤーだと、メモリに変な情報が残っていないか?ファイルディスクリプタをちゃんと閉じたか?、などもあります。こういうところを疑えるかは非常に重要です。

ということで続きはこちらで!

Technical Rockstars 採用

お待ちしております!
posted by Syuhei Hiya at 07:47| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/164400921
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Powered by さくらのブログ