Home > アーカイブ > 2012-02

2012-02

blogに使える、わかりやく伝える3つの技術

  • 2012-02-27 (月)
  • book
この記事の所要時間: 456

「わかりやすく<伝える>技術」からblogに使える3つのテクニックをご紹介。

テレビでお馴染みの池上彰さんの著作「わかりやすく〈伝える〉技術」を読みました。

タイトルどおり、とても読みやすく、分かりやすい内容になっています。読んでいると池上さんがテレビでお話されているかのように、すんなりと頭に入ってきます。

随所に<伝える>技術が盛り込まれているのですが、その中から、blogを書くのに使える技術を3つご紹介しましょう。

1. 伝えたいことをはじめに書く

最初の一文にこのエントリで伝えたいことの概要を簡潔に書きます。

こういったリードがあると、読み手はエントリ自体が何に関するものなのか、どういった方向に話が進むのかというのを理解することができます。この本で言うところの「地図を渡す」ということですね。

全体の流れとしては「概要 or 結論 -> 記事 -> 結論」となります。はじめに提示した結論が良い前フリとなり、記事本文を迷わずに読むことができて、最後は「なるほど」と腑に落ちます。(もちろん内容が伴わないといけないですが)

最初の一文が大事なのは、エントリが読みやすくなるだけではありません。

ソーシャルメディアでは、エントリの序文が掲載されることがあります。はてなブックマークでは、エントリの書き出しのあたりが掲載されます。Twitterでもblogエントリの序盤をtweetするbotがいます。はじめにエントリの内容を簡潔に書いておけば、より多くの人に見てもらえる可能性が広がります。

はてなブックマーク
306F3066306A30D630C330AF30DE30FC30AF - PHPUnit 30C630B930C830B130FC30B9306766F8304D63DB3048305F502430925FA95E303059308B - Shin x blog

ねえ、ねえ、大変!

では分かりやすいリードを書くにはどうすれば良いでしょうか?

ユニークな方法が紹介されています。

相手に自分が体験したことを面白く伝えたい。自分の気持ちをわかってほしい。
そんたとき、まず、「ねえ、ねえ、大変」という言葉から始まる文章を考えましょう。

この言葉の後にエントリで伝えたいことを書けば、それが自然とリードになるという方法です。

例えば、「ちょー聞いてーや、この本めっちゃ面白いで!」というのがまず伝えたいことで、その後に「この本は池上彰さんが書いた本でな、分かりやすいわ−」というように伝えたいことの肉付けをしていきます。

これは友人や家族へ話す時は自然とやっていることですね。誰かに伝えるつもりで書いていけば、自然とリードをまとめることができます。

2. 文章を短く切る

これは目から鱗というか、恥ずかしくなったというか、安心した技術です。

短い簡潔な文章を重ねるより、長く小難しそうな文章を書いたほうがなんだかかっこ良く思えて、ついつい一文を長めにしがちでした。これをこの本ではバッサリと一刀両断しています。

たとえば、三つの荷物(要素)を、相手(聴き手)のもとに届けるとします。三ついっぺんに運ぼうとすると、ヨタヨタしてしまい、なかなかたどりつけません。一回に一つだけにすれば、簡単に届けられます。それを三回繰り返せばよい。原稿も同じ事だろうと考えました。

考えてみると当たり前のことですね。伝えるために表現として文章を書いているのだから、伝わりやすい方法で書いた方が良いに決まっています。

引用した文章は、まさに短い文で構成した好例です。読んでみるとポンポンとリズム良く文章がやってきます。実にわかりやすい。

短く文章を切る効果は他にもあります。

一つの長い文にすると、文章の中身の要素同士が論理的につながっていなくても、まるでつながっているように思えてしまうのです。たとえば、「〜で、〜ということから、〜といえる」などと文をつなげていくと、論理的な文章に見えてしまうことがあります。

長い文章を書くと書いてる本人も気づかず「それっぽい」文章になってしまうため、論理的につながっていない文章を書いてしまうことがあります。読み手としては「それっぽく」は見えますが、意図がうまく伝わらないため、「結局何が言いたいんだろ?」という感想を持つかもしれません。

短い文にすると、このごまかしが効かないので、意図を明確に伝えることができます。

3. 三の魔術

日常的によく言われていることですが、なぜかこの3という数字はおさまりが良いです。

「大事な事は一つだけです」でもいいのですが、もういくつかあったほうがありがたい気がします。「二つあります」でも「え、二つでいいの?」という物足りない気分になります。それが「四つある」だと、今度は多い印象を受けてしまいます。

伝えたいことが5つあっても、優先順位を考えてとにかく3つに絞ります。これは3という数字が良いというだけでなく、制限をかけることで伝えるポイントをより明確にすることができます。

書き手としても、5や10伝えることを考えるのではなく、たった3つに絞ればすれば良いので、書きやすくなるというメリットもありますね。

<伝える>人には必読の書

本書にはこのエントリで紹介した3つの技術に限らず多くの技術が紹介されています。

「図解する」「プレゼンテーション資料から話す内容を調整する」「パワーポイントにパワーポイントを使う」「具体例を示す」「接続詞の使い方」などなど参考になる技術がたくさん紹介されていますが、三の魔術に従い、あえて3つに絞りました:D

日々の暮らしでは、blogに限らず、ありとあらゆる場面で「伝える」という行為が行われています。

本当はこう言いたいのに、もっと上手く伝えたい、わかりやすく話したいという方にはオススメの一冊です。新書なので持ち運びにも便利なので、ぜひ手にとって読んでみて下さい。

PHPUnit テストケースで書き換えた値を復帰する

  • 2012-02-09 (木)
  • PHP
この記事の所要時間: 333

PHPUnitのテストケースで書き換えた値の復帰について。

Terminal 2014 zsh 2014 ttys000 2014 120մ6 2014 23182

テストケースでテストを記述する際に、スーパーグローバルやクラス変数を書き換えることがあるのですが、これらの値を書き換えたまま、別のテストを実行すると書き換えられた状態でテストが実行されるので、それらの値に依存した処理があるとテストが通らないことがあります。

PHPUnitでは、そういったテストをまたがって影響を及ぼすであろう値の保存、復帰を自動で行なってくれる機能があります。

スーパーグローバル

デフォルトでは、各テストメソッドを実行する前に、スーパーグローバル変数($_ENV, $_POST, $_GET, $_COOKIE, $_SERVER, $_FILES, $_REQUEST)の値をが保存されており、テストメソッド終了後にそれらの値がスーパーグローバル変数へ復帰されます。

これらの処理はsetUp()/tearDown()の外側で行なわれており、setUp()の前に値の保存、tearDown()の後に復帰されるので、スーパーグローバル変数については値の保存と復帰を自分で書く必要はありません。

下のソースでは、テスト開始前にスーパーグローバルの内容を保持しておき、実際に値の復帰が行われているかを確認しています。

なお、以下のいずれかの方法で、この機能を無効にすることもできます。

  • phpunitコマンドで「–no-globals-backup」を指定
  • アノテーションで「@backupGlobals disabled」を指定
  • テストケースのインスタンス変数「$backupGlobals」にfalseを指定

また、インスタンス変数$backupGlobalsBlacklistに値の保存、復帰したくない変数名を連想配列で記述するとその変数だけ保存、復帰を避けることができます。

しかし、この機能を無効化するとテスト内で書き換えたスーパーグローバルの値が別のテストでも使用されてしまい、実行結果に影響を及ぼしてしまう可能性があるので、通常はデフォルトのまま有効にしておく方が良いでしょう。

クラス変数

PHP5.3以降の環境では、テスト実行時にユーザが定義しているクラスのクラス変数についてもスーパーグローバル変数と同様に値の保存、復帰を行うことができます。

ただし、デフォルトでは有効となっておらず、以下のいずれかの方法により有効となります。

  • phpunitコマンドで「–static-backup」を指定
  • アノテーションで「@backupStaticAttributes enabled」を指定
  • テストケースのインスタンス変数「$backupStaticAttributes」に true を指定

この機能を用いると、これまでテストが困難だと思われていたSingletonパターンのクラスについて別のテストケースの影響を受けることなくテストすることができます。

下のソースでは、Sigletonで実装したクラスのクラス変数(private)の値が復元されているかを確認しています。

この処理は GlobalStateクラス(PHPUnit/Util/GlobalState.php)の backupStaticAttributes メソッドで実行されます。値の保存、復帰には Reflection が使われており、protected/private な変数についても setAccessible(TRUE) を実行して値をアクセスしています。

Reflection を使って値を取得するには分かりやすいサンプルになっているので、興味がある方はソースを読んでみて下さい。

PHPUnitは奥深い

PHPのxUnitツールとしてはデファクトスタンダードとなっているPHPUnitですが、実に多くの機能があり、まだまだ把握できていません。

全ての機能を使わずともテストは書けるのですが、今回のスーパーグローバルやクラス変数の保持、復元のように知っていればより勘弁にテストが書ける機能があります。

こういった機能を知って、より簡単に楽にテストが書けるようにしていきたいですね。PHPUnit勉強会でもやろうかな。

蕁麻疹のため禁酒してます

この記事の所要時間: 315

蕁麻疹ができて痒みに苦しんでたという話。

昨年からのバタバタぶりが少し落ち着いてきた1月中旬、足に肌色の蕁麻疹が出てきました。はじめは少し痒いくらいだったのですが、日に日にひどくなり、ついにはとても強い痒みが来て、掻くと余計に痒みが強くなるというやっかいなものになりました。

実は、こうした蕁麻疹は2年前にも体験していて、その時は初夏だったので、汗なんかも関係あったのかなあと考えていたのですが、まさかこんな冬になるとは思いませんでした。

夜になると痒みが強くなり、起きている間はできるだけ掻かないように意識できるのですが、いざ寝てしまうと無意識のうちに掻いてしまい、それでさらに痒みが強くなって掻くという悪循環になってました。さらには強い痒みで何度も起きてしまい、掻いたことの罪悪感も相まって、ろくに寝れずに会社に行く日もありました。

前回の時は、はじめに行った病院との相性が悪くて、この辛い時期が長かったのですが、最終的には良い病院と出会い、2ヶ月程で治りました。

その点、今回はすぐに良い病院に行くことができ、1週間経ったあたりでかなり落ち着きました。今は発作的な痒みは無くなったので、心穏やかに眠れるようになりました:D

いつかまたなるかもなので、対処法をメモしときます。(この対処法は自分がうまくいった方法で、人によっては効果が無い、もしくは逆効果の可能性もあります。治療する際は病院等で相談して下さい。)

1. 痒くなってきたら、冷やす

冷やせば、その瞬間は痒みがおさまります。

逆に温めると痒みが増します。夜寝ている間に痒みが来るのも、温かい毛布にくるまって寝ているのもあるでしょうね。。。

2. 早く病院に行く

発作的な痒みがくる状況になると、もう病院に行って薬をもらった方が良いです。放っておいてもひどくなる一方でした。

病院で出された薬は以下。

  • セレスターナ配合錠(飲み薬:朝夕食)
  • アレロックOD錠(飲み薬:朝夕食)
  • ステロイド剤(塗り薬)

3. 症状を緩和する市販薬

いくつか市販薬も試したのですが、一番効果的だったのはこの薬でした。

ジェルタイプの塗り薬でスーッとする成分が入っているので、痒みを冷ましてくれます。正直痒みを取る目的では病院でもらったステロイド剤より効果がありました。

4. 調子に乗ってお酒を飲まない

蕁麻疹の原因は医者曰く「アレルギー」だそうです。

原因をあれこれと考えてみたのですが、痒みがきた頃に特に変わったものは食べていないし、生活環境も特に変わったことはなく、これ、と思い当たるものはありませんでした。

強いて言えば、正月頃から毎日お酒を飲んでいたくらいですかね。家で飲むのもそうですが、新年会やイベントやらで外で飲む機会もあったので、元来アルコールが得意で無い自分にとってはオーバーペースだったのかもしれません。

お酒が直接の原因ではないかもしれないですが、アルコールで血流が良くなると痒みが増すので、良くはないです。

そういえば2年前の時も暑くなりはじめた頃で、毎日梅酒を飲んでいたから痒くなったと思い、その後禁酒していたのを後から思い出しました。。。

痒みを舐めたらダメ

経験がある方なら分かりますが、あの発作のような痒みはホントに辛いものです。さらに掻きむしってしまった後の激しい自己嫌悪、あれも苦しいですね。

お酒が原因かははっきりしてませんが、「それ以上飲んだら体壊すぞ」という体からのサインだと思うので、完治するまでは禁酒を、完治してもほどほどにしたいと思います。

というわけで、宴の席ではしばらくウーロン茶になりますので、ご承知おきをm(_ _)m

Home > アーカイブ > 2012-02

検索
フィード
メタ情報

Return to page top