勉強会こんにちは、弥生の野川です。2018の23日目のエントリーになります。クリスマスが目前ですね!簡単に自己紹介をさせていただきます。・現在は自動テストを開発・運用するチームでエンジニアとして奮闘中(歴6ヶ月)今回はこんな私が、オブジェクト指向について勉強して思ったことを書き連ねます。一般的な参考書では、オブジェクト指向は以下のように説明されることが多いかと思います。対象(オブジェクト)そのものに重点をおき、対象のふるまいや操作が対象の属性として備わるという考え方。現実世界の部品(モノ)をモデリングし、プログラムに置き換えるという考え方。オブジェクト間のメッセージ・パッシングでプログラムを動作させるという考え方。初心者はここがわからない「オブジェクト指向」という名前に馴染みが1ミリもない。「対象に重点をおく」のは良いけど、おいてどうするのかがわからない。「ふるまいや操作が属性として備わる」のイメージがつかめない。「現実世界のモノをプログラムに置き換える」なんてできるんですか?って思う。「オブジェクト間のメッセージ・パッシング」がまるで呪文のように聞こえる(つまり何もわからない)。(よくこれでへこたれずに勉強したな自分・・・)と思うぐらいです。以下のことを実践したおかげでした。複数クラスのプログラムを実装してみる先輩エンジニアと話す複数人での開発を、身をもって経験するこれだけです。これが私にとってはすごく重要でした。「オブジェクト間のメッセージ・パッシング」は呪文ではなくなりました。引数・戻り値を使うメソッドだと良いです。メッセージ・パッシングめっちゃ楽しい~!ってなります。実装してみないことには、なぜ必要か、どのような時に必要になるのかがわからないんですよね。オブジェクト指向の勉強ではちょっと横に置いておくのが良さそうです。先輩エンジニアと話す自主勉強の一環で、トランプのゲームを実装している時のことです。束になったトランプクラスを作ろうと思ったところで手が止まりました。トランプクラスについて一緒に議論してくれました。ポイントは、「そこにあるかのように、トランプの束の状態を想像すること」でした。・トランプの束に含まれているカードは、4種類のマーク×13の数字の組み合わせで、計52枚。山の上から1枚引くパターンがある(ゲームによる)。・カードが引かれると、そのカードは束の中からなくなる。下図は、束の好きなところから引くパターンで実装しました。思われてしまいそうですが、私は一人で中身を考えていると、合っているのか間違っているのかもわからずモヤモヤしてしまいます・・・。先輩エンジニアが「うんうん、そうそう」と言ってくださるだけで脳内の設計が明快になるので、とてもありがたいです。いうことが当たり前のように行われています。必要性もわからないというレベルでした。いうことを肌で感じることができています。このイメージを持てた瞬間、オブジェクト指向への親しみやすさはぐんと跳ね上がりました。こんなにもアクセス修飾子を気にしないといけないのか、その理由がよくわかるようになりました。いじるものがprivateメソッドだと、あまりびくびくせずに変更を加えることができます(笑)まとめ:オブジェクト指向を理解するために必要なこと色々書きましたが、未経験者にとってはとにかく【イメージや実感をつかむこと】が重要です。個人的に、上で述べた1~3は、イメージや実感をつかむための最速の手段だと思っています。設計について一緒にあれこれ話したり、私がやってみて良かった課題を共有したりしたいです!さいごにここまで読んでいただき、ありがとうございました。framework」です。AppSyncについて勉強してみたこんにちは、弥生の八木です。...2018-12-21UWSCでデスクトップアプリの自動テストこんにちは。Ad...2018-12-18Slackのログ分析してみたこんにちは。弥生エンジニアの白井です。16...2018-10-09もくテク「最近のWeb技術についてワイワイ語る会」を開催しました!こんにちは。アーカイブはてなブログをはじめよう!yayoiTechさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。