スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - | - | - |

ポモドーロ回してます。(ポモドーロテクニック入門読みました)

ポモドーロテクニック入門という本を読みました。
きっかけは、Twitter上で何度か「ポモドーロ」という単語を何度か見ていたためです。
最初は、なんだろう?というのが発端です。
「ポモドーロ=トマト」なのですが、実際にはトマト型のキッチンタイマーが元になっているらしいです。
このタイマーを使った時間(タスク)管理術がポモドーロ・テクニックです。

私は、ここ数年、複数の仕事がパラで走ることが時々ありました。
このような場合に、日によって異なる複数のタスクが存在します。
このとき、異なるタスクにスイッチするのに結構な時間を取られます。。。 また、急な割り込みが入った時も同様に、以前のタスクに戻るのになにしてたっけ?となることが多々あります。
普通に自己管理ができている方なら問題ないのでしょうが、私は結構ニガテでした。
そのようなときに、Twitter上で「ポモドーロ」という単語を見かけて、軽くググってみたところ、 タスク管理、時間管理によさそうな本だったので、その点を矯正するのも兼ねて、読んだ次第です。
また、タスクに集中できるという利点もあるそうです。

本については、少し読みにくいところがありました。
ポモドーロテクニックとはどんなものかという全体像や単語に関する説明がないままに、話が進んでいくので。。。
1度読み終わったあとに実践しながらパラパラめくっているような状況です。
実際には、個々人のやり方などを考慮しながら、改善していくべきなのもあり、型を説明してないのかもしれないですが、もうすこし概観がわかる感じのほうが良かったです。

で、4月初旬くらいから実践してみています。
効果が実際にあるかというと、まだわからないです。

私がポモドーロテクニックに利用しているのはキッチンタイマーではなく、pomodairoというAdobeAIR上で動くアプリになります。
ほかにもPomodoroAppというのもあるのですが、Free版だと登録できるタスクの上限があったので、pomodairoを選びました。(今見たら、3.0にバージョンが上がって、Limitがなくなってるかも)
AIRだと、WinでもMacでも動作するのというも決定した要因です。

まだ、1ヶ月経ってませんが、私が実践してきて良かった点、できてない点、うまくいってない点はつぎのような感じです。

良かった点

  • 目の前のタスクに集中できる。(25分スパンなので、Twitterを意識的に見なくできる。。。)
  • 適度な休憩が挟める。25分に5分の休憩が入るので、適度な没頭になる(没頭し過ぎない)
  • 自宅で作業するときにかなり有効。(5分の休憩時にTwitterやFB以外に漫画をパラパラ読んだりもできるので)
ということで、自宅で作業するときには結構いいです。
自宅ですと、pomodairoを使っていてタイマーの音を気兼ねなく出せるので、きちんとポモドーロが回せます。

できてない点

  • アクティビティ在庫管理。個人的にJIRAを使っていて、そこで管理しようと思っているのですが、うまくできてないです。pomodairoのアプリにもタスクを登録しているのもあり2重登録などを手間に思ってしまって。。。
  • レコーディングと今日のTodo作成。
  • インタラプトの記録
アクティビティ在庫管理ができてないのは、レコーディングがきちんと出来てないためでしょう。。。
二重管理になっている+pomodairoで統計情報が出るが、当日分の統計情報がレコーディングできてないというのが痛いです。
また、このレコーディングが出来てないので、効果が出ているかがわからないという問題かと。。。
きりが悪かったりして、どうしても、仕事時間ギリギリまでタスクをこなしてしまい、レコーディング+アクティビティ在庫の管理の時間が取れていません。
ここは意識してちゃんとやらないと意味がないよなぁと。今後の大きな課題です。

うまくいってない点

できてない(やろうとしてできてない)点とは別に、どうもしっくり来ていないのがつぎのような点です。
  • プログラミングしていると、25分のタイマーで区切りがすごく悪い時がおおい
  • 自宅以外でのタイマー音が出せない
  • 自宅以外での休憩の取り方
プログラミングをやっていて、乗ってきたタイミングでタイマーが鳴ってしまったり、 ちょっと頭のなかで整理していたあとの今まさに、頭のなかにある処理の流れをコードに落としている途中でタイマーがなってしまったり。
このような状況だと、休憩に入れなくて、ずるずるとコーディングを続けてしまうということが多々あります。
メモ(ソース上のコメントや手元)を残して休憩すればいいのでしょうが、どうしても今までの癖もありズルズルとやってしまい、すごく時間が経ってることが何度もあります。
ポモドーロテクニック的にはやはりNGなんでしょうが、なかなか治らない+治したくない気もしています。
また、自宅以外の場合、基本的には自社ではなく客先に出ていることが多いのでどうしても音を出すことができません。
これもまた、切り替えができない要因になっています。
タイマーだけ携帯のアプリを使用しするという手もあるのでしょうが、この場合さらにレコーディングが出来ない状況に陥りそうで。。。
また、スマホだと電池が持たないのも問題点です。(Twitterを見るのに利用してるから電池が持たないという話もあるのですが。。。)
レコーディングに関しては、手描きのメモを使うのがいいのかなぁと。本では+や◎などの印を付けるだけにしておけば良いとありますが、アプリのタイマーだと自動でそれができるので、悩みどころです。
最後の休憩の取り方も、ネットやTwitterを見るのもありなのですが、画面から離れる休憩を取りたいなぁと思うところもあり。。。
職場だと技術書やWEB+DBのような雑誌はあるのですが、休憩にはあまり向いていないなぁと。


つらつらと書いて来ましたが、本を読んで、1ヶ月実践してきた(できてないとこも多いが)現状をメモしておきます。
こうやってるよ、こうしたら良かったよ、こうしてみれば?などありましたら、コメントいただけると助かります。

来週以降はとりあえず、JIRAできちんとアクティビティ在庫管理をしながら、1日の結果をレコーディングしていくのを意識していこうと思います。

johtani | 読書 | 23:42 | comments(1) | trackbacks(0) | - | - |

「コード・シンプリシティ」を読みました。(Kindle paperwhiteの使い勝手の確認も兼ねて)

年末から年始にかけて、「コード・シンプリシティ」を読みました。

先日の記事にも書きましたが、Kindle paperwhiteを思いかけず入手できたので、eBookを読みたいなぁと思いまして。
Kindleのお試しも兼ねて読んでみました。

まずは、本の感想。
短めの書籍+読み物なので、サクっと読めました。
題名に「コード」と書かれていますが、コードの実例が出てくる書籍ではありません。
「ソフトウェア」を以下にシンプルに保って、管理しやすくするか、機能追加、テストをやりやすくするかといった指針について書かれています。
機能追加に関して検討しないといけないバランス(先読みしすぎずと実装しすぎないとか)の話や定期的なデザインの見直しなどについても書かれています。
ソフトウェアに関しては動くこともだが、デザインが重要であること。(確かに。)
すでにあるソフトウェアについて、どのように簡潔にしていくかという話もありました。
ただ、読んでいて一番重要だと思ったのは、「悪いプログラマーと良いプログラマーの違いは理解力だ」という一文です。
何をしているかを「理解」していないと、根本的な問題点の解決もできないですし、どうすればコードが簡潔になるかといったこともわからないです。
また、やっている作業がどんなもので、何のためにやっているのか、それを行うことで今後にどのような影響があるのかといったことも理解しておく必要があるかと。
ま、ある程度考えながら作業とかしましょうってことですかね。(強引なまとめかも。。。)


で本題です。
Kindle paperwhiteとiPadの使い分けを検討するのも兼ねて本を読んでました。
iPadを持っているのもあり、Kindleはそもそも眼中になかったのですが、めっけ物でした。
やはり実際に使ってみないとわからないことありますねぇと。
paperwihteはつぎのような利点があるかと。
  • 読書に没頭できる。→本を読むというシンプルな目的を達成するものだけが実装されている
  • 目が疲れない→Twitterでも話に上がったのですが、液晶とは異なり字が読みやすいです
  • 軽いし小さい→電車で立っていても楽に持てるし、カバンからの出し入れも楽です(iPadに比べて)
  • 複数の端末のKindleアプリで同期できる。→あまり異なる端末では読まないですが、paperwhiteで読んだところが、iPadでも同期されるのですんなり続きが読めます
  • 電池長持ち
ということで、本を読むのに没頭できるし目が疲れないと。
ただ、つぎの点では不満もあります。
  • PDFは読みにくい。→画面のサイズが小さいので大きめの書籍のPDF版は読みにくいです。
  • PDFは読みにくい。→文字のサイズを変更できないのもキツイです。Kindle専用のmobi形式の書籍が読みやすいです
  • ページめくりに一定時間がかかる→紙の書籍やiPadで書籍を読むのとは異なり、ページをめくるのに時間がかかります。e-inkの再描画の問題かと。パラパラと書籍を読みたい場合は厳しいです
  • 白黒。カラーの電子書籍は読めないですねぇ
  • ソースコードなどもキツイ→長めのコードが書いてある本だとコードが頭に入ってこないです。。。
という感想でした。
今後は基本Kindle paperwhiteを持ち歩きmobi形式の本を読むようにすると思います。
iPadは自炊本やカラーの本を読むとき、映像、ネットを見るような場合に持ち歩くことになりそうです。
私は基本的にMBAを持ち歩いているというのもあるので、paperwhiteのほうが主流になりそうです。
ネットを見るときなどは最悪、MBAを開くでしょうし。
小説とかをメインに読むのであれば断然、paperwhiteだと思います(最近読んでないなぁ)
johtani | 読書 | 00:28 | comments(0) | trackbacks(0) | - | - |

「IDの秘密」を読みました。

評価:
佐藤 一郎
丸善出版
¥ 798
(2012-04-06)
コメント:非常に楽しく読めました。最後の方はシステムに関わるすべての人に読んでもらいたいです。

非常に面白く読めました。
バーコードの話に始まり、最後はシステムで付与するIDに関する考慮点まで幅広くIDについて語られています。

適度に配置されたコラムがまた面白く、ここまで書いてもいいのかな?と思いながらも楽しく読ませて頂きました。
2次元バーコードが汚れに強いのも知らなかったし、チロルチョコの話は知らなかったし、指コレクションとか面白すぎです。
また、JRのSuicaの導入に7年もかけている点などは、やはりすごい技術なのだなぁというため息混じりの感想です。
それほど長い期間のテストや設計は想像がつかないです。

最後の2章(7,8章)については、エンジニアの以外のシステムに関わる方やエンジニアになられたばかりの方たちにぜひ読んで欲しいと思いました。
もちろん、エンジニアの方にも読んでほしい内容です。

いくつか疑問点や気になる点もあったので。
  • 「静脈や指紋が人によって異なるって確率はどうやって決めたんだろう?」
  • Twitterの説明文のあとにFBの画面の図番号が書いてある。
  • 日本語がデコードされたけど、QRコードの文字コードって、この中に含まれてるのかな?それとも規格で決まってるのかな?

最後に、書影がNIIに合ったので撮影しました。写真へのリンクです。
johtani | 読書 | 23:03 | comments(0) | trackbacks(0) | - | - |

「自分の小さな「箱」から脱出する方法」を読みました。

TLで面白いと見かけて、Amazonで買ってしまいました。
SEやってるのに、つい最近Amazonを使い始めた軟弱者です。
それにしてもAmazon危険です。スマートフォンにAmazonの Androidアプリを入れたのですが、これがまた、レコメンドに面白そうな本が出てきて危険です。

話がそれてしまいましたが、面白い本でした。
久々に、小説でも技術書でもない本を短期間で読みました。
「箱」と呼ばれる概念の中と外について、とある会社に転職した管理職の人が学んでいくという物語風の作りです。
いくつか、自分の経験にカブるシーンがあったので、サクサク読めました。
今までの自分になかった考えである「箱」という視点が得られたのがよかったです。

ただ、いくつか気になる点もあるので、また少し時間を開けてからサラっと流し読みしたいと思います。
あと、すこしだけ、キリスト教チックな考え方でもあるかなぁと思う部分もありました。(キリスト教をちゃんと勉強してるわけではないので認識が間違ってるかもしれないです)

人によっては共感出来なかったり、読みにくかったりすると思いますが、私は面白いと思った本でした。
なんとなく、人間関係に違和感を感じていることがある場合は目を通してみるといいかもしれません。


Twitterで読み終えたというツイートをしたら、「自分を変える気づきの瞑想法」を読むとまた面白いですという@ツイート(これがmentionの日本語の正式名称らしい?)@ledsunいただきました。
箱に入る原理が別の視点で書かれているようです。
読んでみたいです。(本会過ぎてる気がするので、図書館で探そうかなぁ。。。)



評価:
アービンジャー インスティチュート,金森 重樹,冨永 星
大和書房
¥ 1,680
(2006-10-19)
コメント:自分には今まで無かった視点が手に入ったのでよかったです。 好き嫌いが出そうな物語風の話の進み方ですが、私は読みやすかったです。 ただ、最後が唐突な気もしました。 総合的には色々と自分が置かれている立場とカブる部分があったので、読んでよかったと思っています。

johtani | 読書 | 23:32 | comments(0) | trackbacks(0) | - | - |

Clean Coderを読んだ

Clean Coderを読みました。
理由はTwitterで「Clean Code」がいい本だと流れてきたためです。
「Clean Code」はまだ読んでいないのですが、クリーンなコード(メンテナンスしやすく、修正などもやりやすいコード?)を書くために必要な話が書いてあるのだと思います。(まだ妄想)

そして、何も考えずに、「Clean Code”r”」という本が新しく出ていたので、新しい方に手を出しました。
まぁ、軽い勘違いですw(コードの構造の話などは出てこなかったです。)
それほど分厚くなく、軽く読めそうだということで読み進めると軽い衝撃を受けました。
Clean Coderはプロのプログラマとして、どのような意識を持つべきか、立ち居振る舞いをするべきかなどが書かれています。
「〜したい」はまず守らない約束だという話、ユニットテストを書くことはプロとして当たり前の行為だ、目的意識を明確に持つことなどなど、耳の痛いことが色々と書かれています。
これは、著者の方(パンチカードのころからコーディングをされている!)の実体験を元に、失敗した経験から導きだされているようです。
ところどころ、古くてよくわからない話やちょっとだけしっくりこない表現(ビジネス、QAといった単語)もありましたが、概ねわかりやすい話でした。

基本的にはアジャイルなスタイルの開発を行うプログラマ(設計書に基づいてコーディングするだけの人ではない)について書かれています。
この本を読んでいて、昨年、仕事をご一緒させていただいたRubyistの方たちの開発スタイルを思い出しました。
私よりもこの本に書かれているプロに近いなぁと。
ペアプロやったり、実装方法について相談していたりと。

勘違いでしたが、良い本に出会えて本当によかったです。
私もこの本に書かれているようなチームでのプログラミングをやりたい、またなにかコーディングをしたいという気にさせてくれました。(「〜したい」じゃダメって書いてあったのに。。。)
自分を戒めるためにも、定期的に読み返したい本です。
プログラマでいたい方、ある程度プログラミングができるようになってきた方にはぜひ読んでいただきたい本です。
(この流れで、アジャイルサムライやClean Codeを読んだら理解が深まりそうだなぁ)

参考URL:
35歳定年説をブチ破れ!「Clean Coder プロフェッショナルプログラマへの道 Robert C. Martin」 - ledsunの日記
johtani | 読書 | 01:14 | comments(0) | trackbacks(0) | - | - |

親子で楽しめる 絵本で英語をはじめる本

評価:
木村 千穂
ディスカヴァー・トゥエンティワン
¥ 1,365
(2012-02-16)
コメント:肩肘張らずに楽しみむコツのようなものが書いてありヤル気が出てきました。あと、オススメの50冊の絵本について、著者の簡単な解説もついていて、実践するときの参考にできそうです。

Twitterでこの本について書かれたブログ記事が流れてきて、購入しました。

最近、英語を身につけておいたほうがいいなと思うことが多々あり、子供にも英語を勉強してもらいたいなと思っていたところでした。
あとは、私自身が英語が苦手というのもあり、子供をダシにして勉強したいというのもありまして。。。
サラっと読んでみましたが、参考になりました。
特に「多読」というキーワードが面白かったです。こちらが元のようですが。
多読とは、文章を分析しないで大意を把握する読書法だそうです。

  • 辞書を引かずに楽しめるものを読む
  • わかるところをつなげて読む
  • 自分が面白いと思う本を選んで読む

という原則があるようで、確かにいいなと思いました。
絵本だと絵が書かれているので、辞書を引かなくても想像できそうですし、楽しめそうだなぁと。
また、多読は先日読んだ、速読の本に書かれていた本の読み方にも通じるものがあるなと。(まだ、実践できてないんですけどね)

どうしても英語を勉強させたい!、勉強しないと!と思ってしまいがちですが、この本にも書いてあるように楽に楽しんでやったほうがやっぱいいなぁと。
楽しくないと続かないですからねぇ(実際、何度も挫折してるし、押し付けられるとヤル気がなくなるので。。。)

ということで、実践してみようと思います。(平日は子供が寝てしまってから帰宅なので、まずは土日から)
子供のためというよりは、自分の英語の勉強のために。
まずは、簡単な絵本を購入して。
この本の後半半分は、著者の方の感想や説明がついた、オススメの絵本50冊が書かれています。
英語の絵本を入手するのは、結構大変(実際に売ってる店もなかなかないし、手にとって見る機会も少ない)だと思うのですごく参考になりそうです。
いくつかピックアップして、あわよくば本屋で手にとってみようかと。なければ、Amazonで購入しようかなぁと思ってる所です。
johtani | 読書 | 01:20 | comments(0) | trackbacks(0) | - | - |

「どんな本でも大量に読める「速読」の本」を読みました

評価:
宇都出 雅巳
大和書房
¥ 1,470
(2011-09-23)
コメント:読書=1回で読む、速読=1回で速く読むという思い込みがあったというのを気づかせてくれた本です。理解するには複数回読まないと確かにダメだなぁと。速読本はこれが初めてですが、納得のできる内容だったので、実践してみようと思ってます。

Twitterで知り合った方がこの本について書かれていたブログ記事を読んで興味を持ち、読みました。
書籍(特に技術書)が山になっていたこともあり、速読に興味を持っていたところちょうど記事を目にしたのは きっと何かのタイミングなんだろうなと。

悪い癖で、電車で読もうと本を常に持ち歩くのですが、ついついスマートフォンやゲームで遊んでしまい、今回も読むのに時間がかかってしまいました。
3章の途中までを今月頭に読んでいたのですが、そこから少しほったらかしで、読み終わったのが昨日でした。

本の内容ですが、先ほどのブログにも書かれていますが、速読は技術ではない。
速読 = 速読技術 X ストック(知識、経験、情報)
であると。あとは、わからなくてもいいから、ざっと目を通す感じで繰り返し読みなさいと。
さらに、1回でわからんくてもいいから、とにかく繰り返し読むことが重要だということでした。

確かに「速読=1回で速く読む」、「読書=1回で理解する」という意識がどこかにあったなぁと気付かされました。
プログラム組んだり、あることを覚えるときは繰り返しを意識してたのに、読書は1回読んで「はい、おしまい。」という気になってました。(マンガは繰り返し読むんですけどねぇ)

他の速読の本は胡散臭いし、絶対無理だよなぁと思ってたのですが、この本に書かれている話は筋が通っているように感じました。
ただ、考えずにサラサラ読みなさいという部分の実践はなかなか難しいかな。どうしても頭の中で音読してしまうので。
私は間を開けてしまったせいで、時間がかかってしまいましたが普通なら1日あれば読める内容なので速読に関してちょっとと思ってる方は読んでみると面白いかと思います。

ちょっとだけショックだったのは、この本の論理だと電子書籍は速読に向いていないというところです。
せっかく溜まった書籍をPDF化して、タブレット購入して(まだ買ってない。。。)読もうと思っていたところなのに。。。
johtani | 読書 | 13:57 | comments(2) | trackbacks(1) | - | - |

「7つの言語 7つの世界」 Io 0日目

台風15号すごかったですね。幸いにも(?)夏休みだったので、通勤などでひどい目に合わずにすみました。
風雨はすごくてちょっと怖かったですが。。。

さて、夏休みに進める予定が、子供の寝かしつけで一緒に寝てしまう日が続いてしまい、 間が開いてしまいました。

0日目というタイトルになっているのは、まだ、1日目に入ってないからです。。。
Ioという未知の言語をMBAにそのままインストールするのも抵抗があり、VirtualBox上にLinuxをインストールしてから 進めようとして思いの外手こずってしまったためです。
ということで、0日目として、VirtualBox上にScientific Linux 6.1をインストールしてIoのインストールまでではまった箇所を記録として残しておきます。

罠その1

罠と言うよりは、私の無知に関する部類なのですが。。。
Scientific Linux 6.1のインストールは特に手こずることなくインストールでき、 起動も出来ました。
次にscpコマンドでダウンロードしてきたIoのソースをLinuxに渡そうとしてはまりました。
問題となったのはネットワーク接続が「NAT」のみだったため。
NATのため、Linux(ゲストOS)から外部への接続は可能だったのですが、Mac(ホストOS)からLinux(ゲストOS)への接続ができませんでした。
で、変更したのは以下の2点。
  • VirtualBoxの環境設定->ネットワーク->ホストオンリーネットワークの追加
  • 仮想マシン(Linux)の設定->ネットワーク->アダプタ2を有効にしてホストオンリーアダプタを割り当て

1番目のホストオンリーネットワークの追加をしておかないと、2番目のアダプタ2でホストオンリーアダプタを選択したときにエラーが出て、設定ができませんでした。割り当てるべきアダプタを先に用意しとかないとダメですよね、そりゃあ。

罠その2

これも罠というほどではないのですが。。。
Ioのビルドにはcmakeが必要なのですが、Scientific Linux 6.1に入っているcmakeはバージョンが古い(2.6.4)ため、必要なバージョン(2.8以上)をインストールしないとダメでした。
インストール自体はcmakeのサイトにある手順通りのため割愛します。

罠その3

これもちゃんとドキュメント読めよというレベルですが。。。
Ioのインストールは以下のコマンドを実行するという話です。
私がcmakeについて知らなかったと言われればそれまで。。。
$ cd io
$ mkdir build && cd build
$ ccmake ..
$ make
$ sudo make install

3つ目の「ccmake」の部分がIoのGetting Startedの下の方にありました。上の方に記載がある「cmake」ではエラーがでてうまく行かなかったので。
IoのGetting Startedにもありますが、ccmakeの場合はCUI上にGUIのようなものが起動するので、「c」(configure)と実行後、「g」(generate)を実行して最後に「e」(exit)でccmakeを離れます。
するとmakeが実行できるようになりました。

あとは、/etc/ld.so.conf.d/io.confファイルを作成し、「/usr/local/lib」と記述。ldconfigを実行することで、Ioが実行可能になります。

ということで、1日目に入れず終了。。。

明日は出来るかなぁ。
johtani | 読書 | 03:34 | comments(0) | trackbacks(0) | - | - |

「7つの言語 7つの世界」 Ruby 3日目(最終日)

ということで、Rubyの最終日の感想。
今回もセルフスタディの私の回答が最後の方に記載されてます。見たくない人は気をつけてください。
ツッコミ大募集です。コメント欄にどしどしコメントください。そこは違うだろ?こっちのほうがいいのでは?という感じで。
感想:
◎メタプログラミングが特徴
例:ActiveRecordのhas_many、has_oneがいい例

◎オープンクラス
クラス定義をいつでも変更可能。
あらゆるクラスやオブジェクトをいつでも再定義できる
書きやすいコードのために再定義が可能=何でもできるが気を付ける必要あり。
DSLの定義に便利。
確かに便利。ただ、範囲を限定しないと予期せぬ場所で問題が発生しそう。
※解析するための手段はいいのがあるのかな?=>method_missingみたい

◎method_missing
対象メソッドが見つからない場合に最後に実行されるメソッド
通常はNoMethodErrorが発行される。

◎モジュールによるメタプログラミング
defやattr_accessorなどその一例。
DSLではモジュール内にメソッドを定義してメソッド+定数を利用
ActsAs...ってそういう意味合いだったのか。
親クラスバージョン、親クラス+マクロ、モジュールそれぞれの実装の仕方の紹介。
※マクロもinclude同様、実行順で、メソッドの上書きが発生するのか?
ActiveRecordではメタプログラミングを利用してDBのカラム名からアクセサを追加。
シンタックスの美しさ=読みやすさ


感想&疑問点:
メタプログラミングはフレームワークを作成するのが便利そう。
ただし、エラーや問題が起きた時の対処をきちんと準備しておかないとひどい目に合いそう。
クラスやモジュールはわかりやすい単位で1ファイルにまとめるもの?
ファイル名の規則とかあったりする?
ディレクトリ構成でパッケージ構成が可能?
複数のモジュール(gemとか)を組み合わせて使っている場合にincludeの順序がどのようになるかが気になる。
予期せぬ順序でincludeされて利用しようと思ったメソッドがオーバーライドされてるとかありそう。
追っかけるのがまた大変そうだ。
異なるパフォーマンス(開発者の開発速度)の観点が一番おもしろかった。
ただ、なれるまでは大変そう。すんなりinjectとかコードブロックをうまく利用するイメージがわかない。
まぁ、思考については反復練習かな。これは他の言語でも一緒かな

ようやく、Rubyの世界が終わりました。楽しかった。次は未知の言語である「Io」です。



   
続きを読む >>
johtani | 読書 | 18:21 | comments(0) | trackbacks(0) | - | - |

「7つの言語 7つの世界」 Ruby 2日目

ということで、Ruby2日目の感想(2日目だけで2日間かかったのは内緒。。。)
今回もセルフスタディの私の回答が最後の方に記載されてます。見たくない人は気をつけてください。
ツッコミ大募集です。コメント欄にどしどしコメントください。そこは違うだろ?こっちのほうがいいのでは?という感じで。
感想:
◎関数の定義:ありゃ、利用するのはダメなんだ、これじゃ。-->単なるタイプミスでした。お恥ずかしい。。。

>> def tell_the_truth
>>   true
>> end
=> nil
>> tell_the_trueth()
NoMethodError: undefined method `tell_the_trueth' for main:Object
     from (irb):4

◎配列:そしてシンタックスシュガー
puts animalsで内容が出力されるのはうれしい。JavaだとHashCodeが出てくるから。出力メソッド書かないといけなくなる。
animals[-1]で最後の要素とかかなり便利。
animals[0..1]はRangeクラスを利用する形。Rangeはやはり便利。substringなどもできそう。
カラ配列の定義は必要。a = []
1.9と1.8でinclude?の書き方が異なるので注意!
配列(Array)クラスは中はObjectが入る。
多次元配列もOK。popやpushでキューとしても利用可能。

◎ハッシュ:
Mapのようなもの。任意のキーが利用可能。:付きの文字列はシンボルと呼ばれる定数値を簡単に定義する方法。
object_idという属性?関数によりObjectのハッシュコードが取れるらしい。
ブレース=「{}」のカッコのこと。do〜endでも代用可能

◎コードブロックとyeild
コードブロック=名前なし関数。習慣では複数行の場合、do/endで、1行は{}みたい。Javaと混同しそう。
コードブロックは引数も指定可能。
「yield」予約語?を利用してコードブロック自体をメソッド内部などで呼び出し可能。
ということで、コードブロックは引数にも指定できると。コードブロック=関数もObjectとして扱われてる感じか?
実行遅延、分岐、共通関数とか?Javaだとabstractメソッドを利用して処理するようなイメージか?ちょっと違うなぁ。
なれると、yieldはコードを読みやすくできそう。また、シンタックスハイライトしてくれるツールがあれば、更に便利。

◎ファイルの実行
ruby ファイル名
vi、Emacs、TextMateなどがあるよ。

◎クラスの定義
※数字で始まる変数は利用できない!Javaと一緒
Tree.rbとログを参考にすること。
&使うとブロックに名前が付けられる。yieldじゃなくてもいい?
クラス名はキャメルケース。
変数とメソッド名は「_」アンダーバーつなぎ
インスタンス変数の頭は@
クラス変数は@@
定数は大文字
※メソッド名、変数名には違和感が。なんでこんな規則??
判定用関数とメソッドには「?」(if test?)をつける!!Javaでいう「is」か。

◎Mixin(多重継承?モジュールと呼ばれるものを利用)
多重継承のような類似の振る舞いを伝搬する仕組み。
Javaではインタフェースでやること。
Rubyではモジュールといい、関数と定数の集まり。
クラスに機能を盛り込む場合はincludeする
※複数includeして、includeしたものの中に同じメソッドとかあったらどーなる?
 -->Overrideされた=includeがあとにあるもので上書きされる
Abstractにできないものをモジュール化できるの楽。
javaだとstaticメソッドだらけのUtilクラスを別途起こすイメージだけど、内部で呼ばれるメソッド(コードブロック)が同じインタフェースじゃないと行けないから、インタフェースの記述もしないと行けない。
ただし、同一名のメソッドを持ってるとややこしそう。
※モジュールからモジュールは呼べる?

◎モジュール、Enumerable、セット
EnumerableとComparable(JavaのCollectionまわりかな。)
宇宙船演算子(<=>)Javaのequalsに似てる
any?とかCollectionUtils??に似たのあったな。
※今利用しているクラスが何をincludeしてるかってのは分かる仕組みあるのかな?
※そういえば、メソッドごとに戻り値があるが、全部newされてインスタンス化されてGCの対象になってるのか?irbだけ?

injectはすんなり使うイメージが出にくそう。また、ソースをぱっと見て理解出来ない。なれだろうけど。
※injectしながらinjectとかあるんだろうな。




続きを読む >>
johtani | 読書 | 02:11 | comments(2) | trackbacks(0) | - | - |
1/2PAGES | >> |

09
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
PR
RECOMMEND
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus) (JUGEMレビュー »)
大谷 純,阿部 慎一朗,大須賀 稔,北野 太郎,鈴木 教嗣,平賀 一昭
Solr 4系に対応した改訂版を出しました!興味ある方はぜひ。
RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
RECOMMEND
RECENT COMMENT
  • ポモドーロ回してます。(ポモドーロテクニック入門読みました)
    おーたに (05/07)
  • Lucene 4.3.0のChangesにあるChanges in backwards compatibility policyが気になったので訳してみた。
    おーたに (04/26)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/04)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    m_nori (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    ho4kawa (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    まろか (09/03)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    おーたに (08/07)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    moco (08/07)
RECENT TRACKBACK
MOBILE
qrcode
OTHERS