なにわPerlとは
基本は初心者・初学者向けの自習スタイルの勉強会(もくもく会)です。お題を決めて何かをする企画の会もあります。
第14回はもくもく会スタイルで、参加者各々が自分のやりたい事を持ち寄り、途中質問や会話なども交えてもくもくと作業や学習をすすめました。
VScodeを触りはじめたが、どうも手に馴染まないので、atomで統合ターミナル相当をやる方法を調べたほうがよさそう
— STC (@stc1988) 2018年6月9日
参加させて頂きありがとうございました。いつもいろんな情報が得られる場として活用させてもらってます。頑張ってmojoliciousでツール作ってみます。 #naniwaperl
— h_pabo (@gh_pabo) 2018年6月9日
今日はwindows上での開発環境の整備をしつつ、新卒未経験者をどうやってエンジニアに育成するのかという話をしていました。
— STC (@stc1988) 2018年6月9日
一人で勉強をすると、どうしても気が散ったり、つい別のことをやったりと(学生時代の試験前のテスト勉強に似ていますね)、なかなかモチベーションや集中力の維持が難しいですが、人の目が近くにあるだけで結構捗ります。また、分からないことを質問したり、気軽に相談できるのも良い環境です。(答えられる人が居た場合ですが)
今回の自分テーマ
今回、自分の題材に選んだのは、結城先生著「Java言語で学ぶデザインパターン入門」を読み進めて、自分の比較的得意な言語(PerlやRuby)でコードを書いて咀嚼してみる、でした。

- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (397件) を見る
オブジェクト指向の書き方でのプログラミングをマスターしたいと思い、いろいろな入門書を読んではみたものの、なかなか会得できていないのがもっぱらの悩みです。
クラスやインスタンス、メソッドや継承など、文法的な書き方は理解でき、オブジェクト間でメッセージを送り合って動作させる等、ざっくりした概念もなんとなく分かるのですが、いざ、設計してコーディングするとなると、どういう仕組で書けばよいのか、何をクラスにしてどういう構造で書けばよいのかという、具体化のフェーズがなかなか難しいのです。 (動物クラスから犬や猫を作ったり、吠えさせたり鳴かせたり、はたまたたい焼きの型からたい焼きを作ったりはアホほどやりましたが、実際に機能するシステムをどう書けばよいかが理解できていない)
なので、オブジェクト指向本を読むという視点から少しずらして、より具体的な書き方のセオリーやイディオムを学ぶ方向から考えてみてはどうかというのがこの本を読み進めようと思った動機です。
今回は第1章のIteratorパターンを読み進めてみました。
Iteratorパターンというのは、集合した値を持つオブジェクトに対して、中身を順番に走査していくいわゆるforとかeachの機能を切り出して設計する物でした。
その中で得られた一番大きな気付きは、走査される"本棚クラス"と走査する"イテレータークラス"の関係の書き方の部分で、本棚クラスの中でイテレータをnewする、そのコードの引数として本棚自身を渡すという、一方通行ではないお互いに持ち合うみたいな相互構造でした。
今までのサンプルコードでは、動物クラス->猫クラス->三毛猫クラス->三毛猫インスタンスという、一方通行なプログラムの関係しかなかったので、"オブジェクト間で相互にメッセージを送り合う"イメージが全然沸かなかったのが、とあるクラスが主体となって別のクラスのインスタンスを生成するが、自分自身を引数として渡すという、主従関係でありその逆でもありといった関係のコードの書き方でした。
この解釈が正解なのかどうかは分かりませんが、自分の中で1つの新たな理解が生じ、それを言語化できたのは大きな収穫でした。
結城先生の本がとても丁寧に書かれているので理解しやすいというのももちろんの事、集中した時間で何かしらの成果があったので大いに有意義でした。
成果
ちなみに理解した事を使って、Perlでオブジェクトを使ったズンドコきよしを作ってみました。
コミュニティの宣伝
初心者向けプログラミング勉強会、Perl入学式in大阪は8月4日(土)開催です。