\
2014年09月22日
Posted by 屋台ブルー at 2014年09月22日00:00 Comment(0)

Swiftで遊ぼう! - 73 オブジェクト指向でなぜつくるのか 第2版

世の中を見れば、「プログラミングの知識が全くない私が2ヶ月でiPhoneアプリを作りあげた!」という宣伝文句の本が売れていたりする。私もプログラミングを全く知らない状態で勉強をはじめて2ヶ月が過ぎたけど、iPhoneアプリをリリースする日の目処は全く立っていない。

プログラミングの勉強をすればするほどその言語の奥深さに感動を覚える日々が続く。いまだにSwiftの言語体系を理解できない。アップルから提供されているThe Swift Programming Language本を読めば理解できると最初の頃は思っていたが、オブジェクト指向を扱うクラスの説明に入ると、なんとなく理解できても、その利用法が全く分からない状態になった。クラスは変数とメソッドを一括りにして扱える上に、継承して拡張させたり、他のインスタンスと関連付けたりすることができ自由度が高い。ルールを知っていても、その使い方の見当がつかない。そのうえiOSのフレームワークやAPIが絡むとちんぷんかんぷんだ。いくつかのチュートリアルと同じようにすれば、アプリは作れるだろう。でも、それは自分で考えてアプリを作っているとは言えない。なぜそう動くのか納得したアプリを作っていきたい。

暗闇の中を彷徨っていたところに、一筋の光明が見えた。それが今日紹介する本、オブジェクト指向でなぜつくるのか 第2版に出会えたのが転機になったと思える。Swiftプログラミング言語の全体像が少し見えてきた!現在ネットを見ると、Swiftはモダンプログラミング言語の形容を受けている。じゃあモダンプログラミングとは何かと言えば、関数型言語(また今後勉強して説明します)である。Swiftの勉強を始めた2ヶ月前は、「関数型言語が主流になるのならオブジェクト指向プログラミング(OOP)の勉強をなんてする必要ないんじゃない」と考えたりしたけど、その考えは、この本を読んで吹っ飛びました。機械語から面々と続くプログラミング言語の進化の過程に過去の言語を無視することはできないということが理解できました。Swiftにはポインタがないから理解する必要がないという考えも改まりました。OOPから関数型言語への進化をする過程ではOOPは必要不可欠で、しばらく共存する時代がつづくでしょう。ならば成熟期のOOPをしっかりと理解することが不可欠となる。

先ほども説明したけど、OOPは自由度が高いので、自分で使い方を考えていると、それだけで私の時間は尽きるでしょう。先人智恵を借りない手はない。それがGoFパターン、黄金のデザインパターンを理解する必要があるということでしょう。

ということで、最初っからクラスをベースとしてプログラミングを考えなければならない。OOPと言えば、

1) クラス
2) ポリモーフィズム
3) 継承

この3つを完全理解していくことに集中しよう。じゃあ今日はここまで。


同じカテゴリー(Swiftで遊ぼう!)の記事画像
Swiftで遊ぼう! - プログラミングまとめ(ときどき更新)
Swiftで遊ぼう! - 番外編 - Xcode6:ショートカットと用語説明
Swiftで遊ぼう! - 209 - ルートビューのコードは続く:CGRect
Swiftで遊ぼう! - 208 - ルートビューのコード
Swiftで遊ぼう! - 207 - ツールバーボタンとビューコントローラーを繋ぐ
Swiftで遊ぼう! - 206 - ビューコントローラーにビューコントローラーを載せる
同じカテゴリー(Swiftで遊ぼう!)の記事
 Swiftで遊ぼう! - プログラミングまとめ(ときどき更新) (2021-01-31 00:00)
 Swiftで遊ぼう! - 番外編 - Xcode6:ショートカットと用語説明 (2015-04-05 00:00)
 Swiftで遊ぼう! - 209 - ルートビューのコードは続く:CGRect (2015-02-06 00:00)
 Swiftで遊ぼう! - 208 - ルートビューのコード (2015-02-05 00:00)
 Swiftで遊ぼう! - 207 - ツールバーボタンとビューコントローラーを繋ぐ (2015-02-04 00:00)
 Swiftで遊ぼう! - 206 - ビューコントローラーにビューコントローラーを載せる (2015-02-03 00:00)

上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
Swiftで遊ぼう! - 73 オブジェクト指向でなぜつくるのか 第2版
    コメント(0)