FC2ブログ
スクウェア・エニックスノベルス『スタンプ・デッド』1~5巻&コミック版、『太陽で台風』1・2巻発売中!
ガンガンノベルズ『魔法少女アーヤ☆アミー』発売中!
徳間デュアル文庫『魔王さんちの勇者さま』1~4巻発売中!
徳間文庫『欠陥妖怪住宅』、『パラレル家族計画』発売中!
ぽにきゃんBOOKSライトノベルシリーズ『ブチ切れ勇者の世界征服』1~2巻発売中!
HJ文庫『カンスト勇者の超魔教導』1~3巻発売中!
ファンタジア文庫『お助けキャラに彼女がいるわけないじゃないですか』1~3巻発売中!
JUMP j BOOKS『ぼくたちは勉強ができない 非日常の例題集』発売中!

受賞歴:
2004年、第1回スクウェア・エニックス小説大賞『入選』
2008年、第5回トクマ・ノベルズEdge新人賞『徳間デュアル文庫特別賞』
2017年、第11回HJ文庫大賞『銀賞』
2017年、ジャンプ小説新人賞’16 Winter 小説フリー部門『銀賞』
2017年、第30回ファンタジア大賞 『金賞』

«  | ホーム |  »

僕だけがいない街

どうも、はむばねです。
最近どうにも寝不足感というか、だるーい感じが続いて困ります。
オゴゴゴ……どうにもやる気が出ず作業が滞る……。

というわけで(?)、特に書くこともないので最近読んだ漫画の感想でも。
1巻内容相当のネタバレありです。

・僕だけがいない街(~5巻)
僕だけがいない街 (1) (カドカワコミックス・エース)
三部 けい
角川書店(角川グループパブリッシング) (2013-01-25)
売り上げランキング: 1,326


ぐあぁぁぁぁ、続きが気になる!
ていうか、既刊5巻のうちどの巻で終わっても続きが気になる!
最初近所の定食屋さんでキングダムの最新刊がなかったため仕方なしになんとなく読み始めたのが、続きが気になりすぎて続き読むのを主目的に定食屋に通ったレベル。
くぅ、これは是非とも完結してから読みたかったぜ……。

ちなみに読む前はなんとなく(タイトル以外の事前情報一切無しだったので)不思議な世界に迷い込む系の話だと思ってたらそんなことはなかったです。
いや、字面だけ見ればある意味合ってるとも言えますが。

ざっくりあらすじを説明すると……。
身近で事件を(無意識に)感じると自分の意思に関係なく時が巻き戻る「リバイバル」という能力を持った主人公。
18年前にごく近くで起こった連続誘拐殺人事件を「自分なら防げたかもしれないのに」とかつて後悔した主人公が、28歳になった今、再び事件に巻き込まれる。
真犯人にハメられて殺人犯に仕立てあげられた主人公に起こったリバイバルは、18年もの時を巻き戻す大規模なものだった。
「18年前」の惨劇を防ぐことで、「現代」での惨劇が起こらないようにするべく、奔走する主人公だが……。

……って感じ?
このリバイバルも、最初は集中力が増して時が巻き戻っているかのように錯覚するほど記憶を精査できるような能力なのかと思いましたが、ホントに時が巻き戻る能力でした。
つーか、1巻の読み始めと読み終わりで全然印象が違っててビビる。
最初は漫画家志望のうだつの上がらない主人公が織り成す、ほのぼの……とは違うけど、日常ものっぽい感じだったのに、1巻途中でQ展開。
一気にサスペンスになりました。

たまに現代編に戻ることもあれど、今のところは基本的に「18年前」をメインに物語が進行している感じです。
タイムリープもののお約束として「上手くいったと思ったのに、結局結果は変わらなかった(別の形で惨劇が起こった)」もあるので、一つ問題が解決しても全然緊張感が解けません。
しかも18年前だと主人公含めて子供ばっかなので、余計に緊張感があるというか。
子供ゆえに出来ることが限られる中どうやって解決するのか、というのもありますし。
失敗した時に、殺されるのも子供というのも。
しかも基本的にこの事件のターゲットは「ひとりぼっち」の子供なので、主人公(たち)はその子たちを「ひとりぼっち」にさせないよう交流を試みていくんですよね。
それでせっかく心を開いてくれて、「ひとりぼっち」じゃなくなった子への、幸せになってほしい感がハンパない。
……という主人公の思いに非常に共感してしまうので、更に緊張感が増すんですよね。
ここで失敗してしまえば、この子にまた惨劇が……的な。

そして物凄く単行本を意識した作りとなっており、先述の通り毎巻「この続きはどうなるんだ……?」と気になって仕方ありません。
最新刊である5巻も、めっちゃ気になる所で終わってます。
ついに犯人が判明……? という感じではありますが、露骨すぎてミスリードなんじゃねーかという感じもする。
ぐへー、これ続き出るの半年後とかかよー。
一旦記憶を封印して完結するまで待ちたいところではありますが、新刊を見てしまうとついつい読んでしまいそうです。


という感じで十分にオススメできる内容ではありますが、微妙に「今」読むのがオススメかと言われるとちょっと迷ってしまう作品でした。
まぁしかし、このライブ感というか、やきもきしながらもワクワクと続きを待つ感じも楽しいっちゃ楽しいんですけどね。

こえーよ

どうも、はむばねです。
ウチのマンションは、廊下の部分が完全に内向きで外に面する部分や窓なんかはなくてですね。
昼でも、電灯の灯りだけが頼りなのですよ。
なんですが、最近階段の所の電灯がチカチカしててですね。
こえーよ。
なんか、静かで薄暗い廊下でチカチカしてるとすげー怖いよ。
完全にホラーゲームのステージ状態だよ。
外から雨の音まで聞こえてたら完璧だよ。
通る時、突如電灯がパリンと割れないか不安で仕方ないよ。

しかも、ちょうどその電灯がある部分が階段の曲がり角部分でして。
こえーよ。
いつ向こうから何かしらの異形が出てこないかドキドキだよ。
つーか、露骨に怪しすぎてホラーゲームだと逆に何も出てこないレベルだよ。
それはそれで、無事通り過ぎても安心したところで何か出てきそうで不安だよ。

そして、今日そこを通ったらなんか「シュゥゥゥゥゥ……」って音が鳴ってんの。
それはホントにこえーよ!
何の音だよ!
現実的な危機感を覚えるわ!
イマイチ音の発生源が特定できない所も怖い。
なんかどこかの部屋の中から聞こえてきているような気もするし、共用部分で聞こえているような気もする。
別に、どっかのお宅でめっちゃプラモデル塗装してるとかだったらいいんですが……。
帰ってきたら鳴り止んでたのも、それはそれでちょっと怖い。
まぁ、そう言ってしまうと音の発生源からしてもどうないせぇっちゅーねんって話になりますが。

あと、いつの間にか徳間文庫さんのページにパラレル家族計画が追加されてました。
こえ……いや、これは別に怖くはねーな。
よかった、パラレル家族計画も公式発売やったんや……。
しかし、どのタイミングで追加されたのか。
入ってなかった理由はともかく、こうなってくるとむしろ入った理由を知りたいところですね。

未来のメインヒロインを決めるのは……アナタたちです!

どうも、はむばねです。
というわけで、昨日はふくし氏宅でわざび会を開催したわけなのですが。
刺し身を「重い」と感じようになってきた身体に絶望するなど。
刺し身て……むしろ、ライトなおつまみの代表格やったやん……。
だいぶお腹いっぱいになったと思ってたらその後のかまぼこは割と普通に食べられたので、やはり「脂」の存在か……。

あ、今回の主役であるわさびは美味しかったです。
生わさびって初めて食べたんですが、噂通り風味は強いけどあんまり鼻にはこないんですね。
ただ、喉にはめっちゃきたけどw
あと、風味飛ぶの早すぎワロタw
2時間くらい経ったら普通にほぼ風味が飛んでましたね。
1飲み会中に失われるとか……。


さて、それはそうと。

パラレル家族計画 (徳間文庫)
はむばね
徳間書店 (2015-03-06)
売り上げランキング: 311,121


好評かどうかは知りませんが、発売中のパラレル家族計画。
もう読了いただけましたでしょうか。
本日のお話は、割と読了済みの方向けです。

さて。
本作を読み終えた方は、本作は主人公鈴木大和とメインヒロイン藤井結衣の物語であると思われたかもしれません。
でもそれは大きなミステイク。
本作は、メインヒロイン一人とサブヒロイン二人が織り成す物語ではありません。
あくまで、3ヒロイン体制です!

にしては、出番に偏りがないかって?
それはまぁ、その通り。
しかしそれは結衣がメインヒロインだからではなく、あくまでこの巻が結衣メイン回だからです!
つまり……続刊が出れば凛メイン回、翔子メイン回も可能だろう……ということ……!
全員にゴールインの可能性あるで!
本編の設定的に見ても、メタ的に見てもな!

パラレル家族計画は、続刊を前提……とまではいかないものの、続刊をかなり期待しての構成となっているよ!
今回あまり目立てなかったヒロインをもっと見たい方は、続刊が出ることを祈ってね!
※なおこの場合の「祈る」とは、「布教」や「宣伝」と同義であるという説が現在学会で有力視されています。

バイバイジャケット

どうも、はむばねです。
一昨日くらいから、なんかすげぇ暖かくなってきましたね(@福岡)。
暖か……暖か…………暑いな!
普通にジャケット脱いでたのに、お日様の下しばらく歩いてたら汗が出てきたわ。
……と思ったけど、今しがた夜の雨の中歩いただけでも発汗したわ。
アカン、これもう半袖で過ごさないかんレベルや……。
あれ、春っていつの間にかもう過ぎたんでしたっけ?

いや、しかしそういえば。
私は3月に入ったら夏仕様のスーツにするのが例年だった気がするので、むしろ最近までジャケット着てた今年の冬が長かったのか。
ま、何にせよ今年はもうジャケットの出番は終了ですかね。
バイバイジャケット、9ヶ月後くらいにまたよろしく!


さて、それはそうと。

DSC_0196.JPG

ふくし氏が生わさび↑を購入したとのことなので、今日はふくし氏宅でわざび会(わさびを利用するつまみを用いた飲み会)です^q^
というわけで、今日はここまで。

あ……ありのまま、今……ではなく、昨日起こったことを話すぜ

どうも、はむばねです。
昨日の夜の話なんですが。
なんか、やたら近くでサイレン鳴ってんなー、と思ったんですよ。
しばらくしても通りすぎない。
通りすぎないっつーか、止まってる気がする。
うん。
近くっていうか、これウチの前じゃね?
なんか、凄い近くでバタバタしてる感。
というか、明らかにウチのマンションでバタバタしてる感。
救急患者でも出たか……?
それとも、警察……?
私、捕まるようなことしてねーよな……。
いや、冤罪という可能性も微レ存……。
と、若干ドキドキしながらもまぁ普通に考えて関係ねーだろ、と思って放置してたんですけどね。
なんかしばらくしてもバタバタしてるんで、気になって野次馬根性でベランダから下の様子を伺ってみたのですよ。
したら、やっぱりウチの真ん前に停まってましたね。
ただ、思ってたよかでっかいね。
そして、赤いね。
うん。
これ、消防車じゃねーか!
え、なに?
ウチ火事なの?
いやいやいやいや。
流石に、火事だったら当のマンション住民が「火事なの?」とか思う状況にはならねーだろ。
何かしらの警鐘は鳴らされるはず。
……とは思いつつも不安なので、一応貴重品だけ持って下に降りてみたんですけどね。
ちょうどそのタイミング消防車は去っていったのでした。
見上げてみても、当然といえば当然焼け跡らしきものもなし。
そもそも、放水はしてませんでしたしね。

誤報だろうか。
しかし、それにしてはマンション内でバタバタしてた感があるんだよな……。
軽く調べてみると救急車呼んだら消防車が来るパターンがあるみたいですし、それなのかな?
危険物が発見されたとかじゃないよね……?

なんにせよ、この一件は私の中にモヤモヤと漠然とした不安を残す結果となったのでした。

2014年に読んだ本全部感想書いてやんよ その1

どうも、はむばねです。
結局3月開始かよ!
いやぁ、今年もだいぶ寝かせてしまいましたね。
いやでも、ほとんどの感想は去年のうちに書いたから……(震え声
ていうか、書籍で読んだ作品については今回分でラストだったります。

最近はどうにも読む気も感想書く気も起きなかったので、リハビリがてらいってみよう。
それなりにネタバレありかな?
久々なので改めて書きますが、巻数は既刊数じゃなくて私が読んだ巻数です。


・俺はまだ恋に落ちていない /1~4(完結)
俺はまだ恋に落ちていない (GA文庫)
高木 幸一
ソフトバンククリエイティブ
売り上げランキング: 101,818

仲の悪い姉妹と微熱(微妙に熱血)系主人公が織りなす、ザ・青春ラブコメディ。
姉妹の仲の悪さが、最初ポーズかと思いきやガチだったw
割と普通に罵り合ってるのですが、言い回しが面白いおかげか不快感はありません。
方や、控えめとみせかけて割とグイグイくる天使系。
方や、割と印象通りにグイグイくる小悪魔系。
どっちも可愛いです。
んで、主人公は称するなら「いいバカ」かな?
普段バカやってるけど、というか割とシリアスなシーンでもバカやるけど、人のためにバカやれるような人。
あとサブキャラ陣も魅力的なのが多いですね。
姉妹の兄でトンデモ系バカ(だけど策士でもある)田所くんとか、常識人系妹バカ山城くんとか。
バカばっかりじゃねぇか!
いや、もちろん実際にはバカばっかりじゃありませんけどね。
けどなんというかこの、友人間でバカやってる感じが凄く出てて良いと思います。
全編通して、緩い……というとちょっと語弊があるんですけども、そんなにハードな展開もなく、個人的には心地よく読める感じでした。



・落第騎士の英雄譚 /1~4
落第騎士の英雄譚(キャバルリィ) (GA文庫)
海空りく
ソフトバンククリエイティブ
売り上げランキング: 68,233

魔力はクソだけど体術と技術で制限付きだけど最強クラス系だよ主人公が諸事情により留年Fランク状態から全国1位を目指すお話。
どのくらい最強クラスかというと、一人の例外もなくすべてが歴史に刻むほどの大英雄にのみ付与されるAランク騎士に学生にしてなっている大天才たるヒロインを圧倒するレベル。
ちなみに私は、そのシーンをガンガンONLINEに掲載されてたコミカライズで見た時点で購入を決めました。
こういう主人公、大好きれす^q^
なお、努力のレベルも割とキチってる模様。
しかし、何よりキチってるのはその精神性ですね。
折れない心すぎるぜ。
作中の言葉を借りるなら、「傷付けられることに慣れすぎている」らしいですけどね。
それがある意味弱点になっているところも面白い。
キチといえば、主人公の妹も割とキチってますね。
お兄ちゃん好きのガチレベルなら竹井10日作品ともタメを張れる(あそこまで頭おかしくはないけど)。
主人公の成り上がり成分とラブコメ成分、割といい感じの配合ではなかろうかと思います。
なお、キチキチ言いましたがこの場合はキチは褒め言葉です。
あと、主人公は最強クラスではありますが、種々の理由により毎回それなりに苦戦はします。
なので、圧倒的に強い主人公が敵を蹂躙する的な話ではないのでご注意を。
個人的には、割と妥当な理由で納得できるラインなので問題ないと思いましたけれど。
結構毎回縛りプレイっぽくなってますが、まぁそもそもの設定がほぼ体術一本の縛りプレイみたいなもんですからね。



最弱無敗の神装機竜 /1
最弱無敗の神装機竜《バハムート》 (GA文庫)
明月 千里
ソフトバンククリエイティブ
売り上げランキング: 40,839

公式模擬戦で一度も勝ってないけど、一度も負けてない主人公(秘密の力的なものもあるよ!)が機竜(パワードスーツ的なもの)使い育成学園に入る的な話。
基本的に機竜乗りの特性は女性の方が高いため、女の子だらけの仲で男一人だけだよ!
という感じ。
なお、主人公は(舞台となっている国において)クーデターで滅ぼされた旧国の王子様。
設定だけ聞くとなんか影を背負った主人公っぽい感じがしてしまいますが、実際はそうでもないです(と見せかけてそこそこ影はあるという説もある)。
ちょっと抜けてるけど真面目系主人公が、ラブコメしたりバトルしたりします。
これも、バランス的にはちょうどいいくらいかな?
女の子だらけの学園で男一人というシチュエーションですが、少なくとも1巻時点ではそこまでハーレムって感じでもないです。
あとこれも妹が出ますが、こっちはそこまで(露骨な)兄ラバーではないですね。
……というか、なんだ。
この手の物語に、妹は付き物なのだろうか?
なるほど考えてみれば、「(主舞台に)突如現れた強力な力を持つ主人公」について昔から知るポジションとして妹は適正が高いのかもしれませんね。
閑話休題。
1巻は、まさしくプロローグといったところでしょうか。
ここからどう展開されるのかが楽しみな一作ですね。
ラブコメ方向に突き抜けるのも、シリアス方向に吹っ切るのもできそうなスタートという感じでした。



・カンピオーネ! /1~16

主人公は(ほぼ偶然)神を殺してその力を得た、カンピオーネと呼ばれる最強クラスの力の持ち主。
ただし本作の場合、あくまで「人間としては」という注釈が付きます。
そして、大体戦う相手は神かそれ以上の力を持つカンピオーネたちなので、全く無双感はないぜ!
まぁ、護堂さん(主人公)じゃなければもっと強い権能のはずなんですけどね。
いつまで経っても魔術素人の護堂さん!
あと、結構露骨にハーレムものでもあります。
作中でカンピオーネさんは何をやっても許される(というか止める手段がない)ため、世界公式で主人公ハーレムが許容されてる感。
むしろ、各組織が自分とこからハーレム要員を送り込むレベル。
ヒロインズも、(一部除き)ハーレムを認めてる感じです。
そんなハーレムの主たる護堂さんですが、普段はまぁやれやれ系の恋愛関係にはヘタレてる感じですが、有事の際は異様に男らしいです(恋愛面においても)。
流石、ハーレムもので許せる主人公系スレの常連だぜ!
ていうか、巻を追うごとに男らしさが増していってる気が。
なお、テンションが上がってくると大規模破壊もあんまり気にならなくなる模様。
本人は否定しているけども、どう見ても「無害な振りをしては女を侍らせ、口実さえあれば戦闘と破壊に明け暮れる質の悪い男」という周囲の噂通りです、本当にありがとうございました。



久々に感想書いたら、なんかすげぇ時間がかかったぜ……。
でも、ちょっと読書熱が戻ってきた気がする!

悩めることの貴重さ

どうも、はむばねです。
アメブロで更新しようとすると、ちょいちょいタイトルの1文字目が勝手に(Enter押してないのに)確定状態にされるんですけど私だけですかね?
毎回再現するわけでもないけど、結構な頻度やで……。
環境の問題なのか……?

まぁそれはともかく。
昨日の記事を書いてて思ったんですけどね。
情報系の記事を書いたのは、4年ぶりって話なんですが。
それも資格の話だったんで、技術系の話ではないんですよね。
その前まで遡ると、新人研修時代でした。
つまり、あれですね。
仮にもIT企業に務めていながら、その間私は世の中に有用な技術情報を一切発信していなかったということだな!
いやまぁ、昨日の記事が有用かというと微妙なところではありますけれど。
ただ、個人的には結構いい出来だと思ってます。
何度か読み返してニヤニヤするレベル。
いい記事が掛けると、自分で何度も読み返してニヤニヤするよね!
まぁその分、昨日はほぼあの記事の更新で1日が潰れたけどな!
あんなクソみたいなプログラムなのに、そこそこデバッグに時間もかかったんや……。
あと、本当にそれで合ってるのかの裏取り取ったりとか、勘違いしてた部分を再調査したりとかね。
#それでも本当に合ってんのかはわかんねーけど。
まぁ、自分の理解にも繋がりましたが。

閑話休題。
勤めてた時に情報系の記事を書かなかった理由っていくつかあると思うんですけどね。
まぁ正味、まず書くようなことがなかったというのが一番大きいですよね。
触ってたのがほとんどベンダ製品だったんで、書いても仕方ないというか。
あと、書いていいかどうかも微妙なところですしね。
なんでもかんでもブログに書くと思われているきらいのあるはむばねさんですが、一応書いていいことか悪いことかを判定する工程はあるんやで。
ただ、ネタがない時はそのハードルが著しく下がるだけで。

あと、ぶっちゃけ(技術的なところで)悩んでる時間なんてなかったってのがありますよね。
それこそベンダ製品なんてちょっと調べてわかんなかったら即問い合わせでしたし。
今みたいに、一日中一つのことで悩んでるなんてことは……いや、ひたすらリストアテストして悩んでたことはあった気がするが……。
まぁでも、あれもベンダ製品の動作的なところだからな……。
あと、基本他のことやりながらバックグランドでテストもやってた感じでしたしね。
少なくとも、「まぁ代替手段はあるけど気になるからわかるまで調べる」なんてことをやってる暇は全くなかったですね。

悩んでる時はすげーイライラするけど、わかった時のスーっと胸のつかえが取れていい気分になる感覚は心地よいですよね。
思えば一時期の私は、それを味わうために無駄に資格取得に走っていたところもあるような気がします。
こうやって「悩める」というのも、なかなか贅沢なことなのかもしれませんね。
まぁ会社員時代、技術的なこと以外ではほぼ常に悩んでたような気はするけどな!
そういう意味での悩みは今はとても少ないです。
将来の不安くらいですかね!

.thenを用いた非同期処理待ちの世界一シンプル(かもしれない)例

どうも、はむばねです。
昨日もチラッと書きましたが、昨日はJavaScriptで非同期な処理の結果を待ってから処理する方法についてほぼ1日悩んでました。
いやね、jQueryのDeferredを利用すればできそうっていうのは早期段階でわかったし、解説してくれてるところも山ほどあるんですけどね。
どいつもこいつも長ぇよ。
説明も! コードも!
いや、わかってる。
ちゃんと説明しようとすると、色々と書かないといけないことも。
恐らく、本来はそんなに難しいことを書いているわけではないであろうことも。
だがしかし、とにかく私はただ「非同期処理の結果を待って処理を行う」ことがしたいだけなんだ。
そしてこちとらJavaScript素人で、なんだったら括弧が増えただけで結構混乱するんだ。
というわけで、本記事ではできるだけシンプルに、「非同期処理の結果を待って処理を行う」ことだけに絞って説明したいと思います。

本記事のターゲットは、主に……。
・JavaScriptのことなんてよくわからねぇが、とにかく非同期処理のせいでデータ連携が上手くいかねぇ!
・仕様とか実装とか、細けぇことはいいんだよ! 関係するところだけ教えろくだしあ!
・ていうかC言語でいうとどういうことなんだってばよ!
という方向けです。
ターゲット層狭いな!
まぁ基本的に私が情報系の記事を書く時は、過去(調べてた時)の自分がこういう記事見つけてたら嬉しかっただろうな、というのを目標に書いてますからね。
半分備忘録も兼ねてるので、まぁ参考になる人がもしいれば嬉しいね、程度。
……いかん、シンプルにって言ってる割に前置きからして長くなってきましたね。
というわけで、実に4年ぶりのテーマ「情報系」いくよー\(^o^)/

※思ったよか説明が長くなってしまったので、ガチで実際のコードだけ見たい人は一番下の項目まで飛ばしてください。



【前提】
JavaScriptはシングルスレッドで動s細けぇことはいいんだよ!
とにかく、JavaScriptは必ずしも書いた順番通りに動くわけではない!
以上だ!


【サンプル】
じゃあ、例えばどういう時に順番通り動かないのか?
話をシンプルにするため、実際にはクソの役にも立たないサンプルを用意する!

---------------------------------
var ret = sample("after");
document.write(ret);

function sample(str) {
 var tmp = "before";
 setTimeout(function() {
  tmp = str;
 }, 200);
 return tmp;
}
---------------------------------

関数sampleは、0.2秒(200ms)待った後にtmp(初期値:"before")に引数strを代入し、tmpをreturnするだけのクソのような処理を行う!
そのsampleに対して、"after"という文字列をぶち込んで返ってきた値を表示するというクソのようなプログラムだ!
C言語ライクに考えるならば、sample内で0.2秒待った後に"after"が代入されたtmpをreturnし、無事"after"と表示されることを期待するであろう!
しかし、実際にこのプログラムを実行した結果表示されるのは"before"である!
関数内の処理が全て完了する前に表示の処理が実行された(というか変数がreturnされた)ということであろう!


【どうすればいいのか】
jQueryのDeferredオブジェクトを利用するのは、先に述べた通りである!
ではDeferredオブジェクトとは何なのか?
細かい話は省く!
今回のケースで利用するだけならば、「(非同期処理が)終わったかどうかのステータスを管理するオブジェクト」と思っておけばよろしい!
で、実際その「終わったかどうかのステータス」を保存するのが、Deferredが内包するPromiseオブジェクトだ!
Promiseオブジェクトは、作成された時点ではpending(処理中の状態)のステータスを持っている!
これを、Deferredオブジェクトを使ってresolved(成功)かrejected(失敗) かに書き換えることによって、該当処理が終わったかどうかを他の処理に通知(?)できるようにするわけだ!
先の例でいうと、sample内にDeferredオブジェクトを定義して、Deferredオブジェクトから「終わったよ」と通知が来ない限り次の処理に進まないよう呼び出し元を書き換えればよい!
これ以上の細かいことは散々他のところで解説されているのでggrks!


【で、どうすればいいの?】
ポイントは大きく分けて4つだ!
というか、先ほどの方法論の所で述べた通りである!
1.Deferredオブジェクトを生成する(関数内)
2.Promiseオブジェクトのステータスを変更する(関数内)
3.Promiseオブジェクトをreturnする(関数内)
4.返ってきたDeferred(Promise)オブジェクトの内容によって処理内容を変えるよう記載する(関数呼び出し元)


【だからどうすればいいんだよハゲ】
それぞれの書き方について、具体的に記載する!
なお、恐らくこの項目だけを見てもわかりづらいと思うので、後述するサンプルと見比べるのを推奨する!

1.Deferredオブジェクトを生成する(関数内)
------------------------------------------------------------------
var [オブジェクト名] = new $.Deferred;
------------------------------------------------------------------
これだけだ!
見ればわかると思うが、ここでは本当にただオブジェクトを生成しているだけである!
後の(関数内の)処理は、全てここで定義したDeferred型オブジェクトを利用する!

2.Promiseオブジェクトのステータスを変更する(関数内)
------------------------------------------------------------------
[オブジェクト名].resolve([引数]);
[オブジェクト名].reject([引数]);
------------------------------------------------------------------
言うまでもないと思うが、ここで言う「オブジェクト名」とは1で生成したオブジェクト名のことである!
この操作によって、Promiseオブジェクトの持つステータスが失敗か成功かへ変化する(実行中のステータスではなくなる)んだな!
成功の場合はresolveへ、失敗の場合はrejectへステータスを変化させよう!
例えば、こんな感じに書くイメージだ!
無論必ずしも両方書く必要はないので、成否関係ない場合はresolveだけ書いとけ!
-----------------------------------------------------------------
A; //非同期処理
if(成功){
 dfd.resolve("成功!");
}else{
 dfd.reject("失敗!");
}
------------------------------------------------------------------
ちなみに、ここで格納した引数は呼び出し元で使用することができるぞ!
returnする時ではなく、ステータスを更新する時に返り値を設定するので注意だ!
本当は「返り値を設定する」というと語弊がある気もするが、まぁなんか雰囲気で察しろ!

3.Promiseオブジェクトをreturnする(関数内)
------------------------------------------------------------------
return [オブジェクト名].promise();
------------------------------------------------------------------
やはりここでいう「オブジェクト名」とは1で生成した以下略!
これによって、2で格納したステータス(と返り値)を呼び出し元に送り、処理が終わったことを通知するんだな!

まとめると、関数側の流れはこんな感じだ!
-----------------------------------------------------------------
var dfd = new $.Deferred;

A; //非同期処理
if(成功){
 dfd.resolve("成功!");
}else{
 dfd.reject("失敗!");
}

return dfd.promise();
------------------------------------------------------------------



4.返ってきたPromiseオブジェクトの内容によって処理内容を変えるよう記載する(関数呼び出し元)
呼び出し元では、.thenメソッドというものを利用する!
ここでも細けぇ話は置いといて、返ってきたPromiseオブジェクトのステータスによって処理を変える(Promiseオブジェクトが返ってくるまで処理を実行しない)ようにするメソッドだと思っておけぃ!
------------------------------------------------------------------
.then(
 function([引数]) {
  //成功時の処理
 },
 function([引数]) {
  //失敗時の処理
 }
);
------------------------------------------------------------------
C言語ライク(?)に言うと、.thenはfuction型の引数2つを持つ関数みたいなもんだな!
第1引数はPromiseオブジェクトがresolevedの時に実行される関数で、第2引数はrejectedの時に実行される関数だ!
第2引数は省略可能で、その場合はresolvedの場合のみ処理が走るぞ!
無論、他で定義した関数を指定することも可能だ!
.thenを連結することで、順番に処理を実行していくことも可能だぞ!
なお、ここの[引数]で指定した変数で2で格納した返り値を受け取ることができるぞ!

まとめると、以下のような使い方ができるということだ!
------------------------------------------------------------------
sample()
.then(
 function([引数]) {
  //成功時の処理1
 },
 function([引数]) {
  //失敗時の処理1
 }
)
.then(
 function([引数]) {
  //成功時の処理2(失敗時は何もしない)
 }
)
.then( anotherFunc //成功時の処理3
);
------------------------------------------------------------------



【サンプル(修正版)】
以上を踏まえて、冒頭のクソサンプルを書き換える!
なお、本稿の目的を踏まえrejectの存在は無視しているので注意だ!
また、返り値の受け方についても書き方が変わっているので先述の説明を踏まえるように!
踏まえること多いな!

---------------------------------
var ret = sample("after");
document.write(ret);

function sample(str) {
 var tmp = "before";
 setTimeout(function() {
  tmp = str;
 }, 200);
 return tmp;
}
---------------------------------

---------------------------------
sample("after")
.then(
 function(ret) {
  document.write(ret);
 }
);

function sample(str) {
 var tmp = "before";
 var dfd = new $.Deferred;
 setTimeout(function() {
  tmp = str;
  dfd.resolve(tmp);
 }, 200);
 return dfd.promise();
}
---------------------------------

これで、想定通り"after"と出力されるクソプログラムとなったわけである!
dfd.resolve(tmp);が実行されるまでreturn dfd.promise();は実行されず、それを待ってから.then内の処理が実行されたわけだな!



【世界一シンプル(かもしれない)サンプル】
……とここまで書いて思ったが、こっちのサンプルの方がもっとシンプルだな!
関数もねぇ! 返り値もねぇ! 処理もそれほど走ってねぇ!

---------------------------------
var str = "before";

setTimeout(function() {
 str = "after";
}, 200);

//beforeと出力される
document.write(str);
---------------------------------

---------------------------------
var str = "before";
var dfd = new $.Deferred;

setTimeout(function() {
 str = "after";
 dfd.resolve(str);
}, 200);

dfd.then(
 function(ret) {
  //afterと出力される
  document.write(str);
 }
);
---------------------------------

なお、さんざん繰り返している通りDeferredはjQueryのライブラリなので当然jQueryの読み込みが必須なので注意されたし!
コールバックによる処理ならば純正JavaScriptのみでいけるはずだが、散々ディスられている上に見ただけで萎えたので今回は考慮していない!



以上だ!
間違っている点、勘違いしている点、効率の悪い点等、ツッコミをお待ちしている!
疑問も受け付けるが、答えられるかは不明だ!

JavaScriptに詳しい奴ちょっと来い

どうも、はむばねです。
ここ最近、割とJavaScriptでドはまりしています。
ファッキン、いくらほぼ初めて触る言語だからって引っかかるポイントが多すぎるんじゃねーかクソッタレー。
一応問題そのものは今のところ全て解消しているものの、本当にそれでいいのか……? という疑問がいくつか。
というわけで、JavaScript歴先輩の皆様はよろしければ私の疑問に答えやがってくださってもいいのですぜ?

疑問その1:非同期処理のシーケンシャルな実行方法
とりあえず、関数内でDeferredオブジェクトを生成して、↓みたいな形で関数(関数内に非同期処理アリ)の後に実行したい処理を実行するようにはしたのですが。
sample()
 .then(
  function() {
   //関数の後に実行したい処理
  }
 };
);
今回はまぁ別関数の中に非同期処理がある構成だったんで別によかったんですが、例えば……
if(条件){
 A; //非同期処理
}else{
 B; //非同期処理
}
 C; //AかBの結果を用いた処理
とかの場合ってどうすればいいんですかね?
関数で切り出すしかないの?

追記:
=======================================================
その1については自己解決しました。
よく考えたら、別にわざわざ関数の返り値にしなくても自分のとこでDeferredオブジェクト生成して判定に使えばいいだけだった……。
出てきた例が関数使ったやつばっかりだったので、なんか思考が凝り固まってたわ……。
=======================================================


疑問その2:JavaScriptからphpへ値を渡した後にphpで表示する方法
php→JS→phpと、phpからJavaScriptを呼んで、その結果をphpに戻して処理して表示したい。
結局できなかったのでJavaScript内でもう処理させることにしたんですが、できないもんなの?
php1→JS→php2ってな感じで、別のphpに渡す形でもいい。
というか、php1→JS→php2→JSと、phpに値渡して処理させて、JavaScriptに戻すのはAjax使ってできたんですけどね。
php2で止めて(?)表示させる方法がわからん。
サーバサイドにデータ渡ってんだから、あとはそれを表示すればいいだけじゃないのかえ?
できないならできないでまぁいいんだけど、理由がわからん。


うーむ、基本的な前提知識の欠落や勘違いによって生じている疑問な気はするが、現時点では全くわからん。
このクソ素人にモノを教えてくれる人募集中だよ!

ボケ・ツッコミ診断

どうも、はむばねです。
昨日の記事を書いている時に、ボケ・ツッコミとかでググってたらボケ・ツッコミ診断というのを見つけてですね。
そういや昔はこういうのの診断結果でよく更新誤魔化してたなー、と少し懐かしい気持ちになりました。
そういや最近は全然やってないなー、ということで今日はこういうので更新誤魔化しますね^^

というわけで、↓診断結果。



思ったよか的確に私の目指す芸風を当ててきてワロタw
若かりし頃は全力でボケに走っていたはむばねさんですが、最近はツッコミに活路を見出しているのじゃよ。
ツッコミっつーか、あくまでツッコミ風のボケですけれど。
露骨なツッコミ待ちのボケにツッコミを入れるのが嫌いなのは昔から変わらぬ。
思わずツッコミを入れてしまう綺麗なボケが存在するのもまた事実ですが。
そういうのにツッコミ入れられると気持ちいいですよね。
あと意図してないけど露骨なボケ、いわゆる天然のボケにツッコミ入れるのも好きです。
が、いつボケが飛び出してくるかわからないので天然の人と話してると変な緊張感があるのも事実。
なにせ天然の場合、まずその意図を理解するのが困難な場合がありますからね。
最近脳が衰えてきたのか、意図を理解する、正解を導き出す、というプロセスがスッと流れないことがある。

余談ですが、私は関西人ではありますが関西人の(というか私のイメージでは一部大阪人の)あのドヤッ! っていう笑いの取り方が凄く嫌いなんですよね。
プレゼンとかで、露骨にボケとかツッコミを放り込んでくるタイプのやつ。
演技が入るタイプの、と言い換えてもいいかもしれませんが。
そうじゃなくて、もっとさりげなく、あたかもプレゼンの一部のようにボケを挟むのがスマートだと思うのですよ。
あくまで「素人がやるなら」という前提が付くためプロ並みに面白ければ何も文句はないのですが、まぁそんなもん見たことないよね。

更に余談ですが、かつて務めていた頃、新入社員時代。
希望する部署を決めるために、各部署の人たちがプレゼンをしてくれるという場があったんですよ。
勤務地に特にこだわりはなかった私ですが、まぁそれでも実家への帰りやすさとか考えるとあえて言うなら関西がいいかな、とは思っていたんですけどね。
紹介プレゼンがまさしくドヤッ! というタイプなのを見た瞬間私はそっと西日本事業部を選択肢から外したのであった。
逆に、凄く自然に随所へ笑いを散りばめていた中部事業部が選択肢にIN。
結果的に笑えるかどうかで所属部署が決まったはむばねさん!
いや、まぁ、実際入ってみないとその部署のことなんてほとんどわからないわけで、プレゼンの雰囲気というのは結構重要なファクターだと思うのですよ。
少なくとも事業部内でのレビュー時に、そのノリが許されたということですからね。
あと、ぶっちゃけ第二希望に書いただけなので本気で中部に行くとは思ってなかったところはある。
なお、部署の統合や分離を繰り返した結果、異動とか一切してないのにいつの間にか当時の第一希望だった部署に所属していた模様。
ま、業務内容は一切変わんなかったけどな!

しかし結果的に、中部の人のノリは結構私に合ってたような気はしますね。
ウチの会社の人という意味だけじゃなく、中部の人全体が(ただしファミマのおっさんを除く)。
九州の人はどうかって?
うん、九州で会った人のサンプル数が少なすぎて判別つかないね☆

よし、何の事書いてるのかわかんなくなってきたので今日はここまで。

«  | ホーム |  »

プロフィール

hamubane

Author:hamubane

たぶんライトノベル作家的なもの


Twitter

既刊情報

最新コメント

最新記事

カレンダー

02 | 2015/03 | 04
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 31 - - - -

月別アーカイブ

カテゴリ

ジャンルランキング

[ジャンルランキング]
日記
235位
ジャンルランキングを見る>>

[サブジャンルランキング]
その他
95位
サブジャンルランキングを見る>>

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR