Botkitで消耗した話
Botkitで消耗した話です.
つらい
自分のNode.jsにおけるブロッキングI/O・ノンブロッキングI/Oまわりの知識や理解が追いついてない説も否定はできない….
なんとかして非同期処理の待ち合わせとかJavaのCountDownLatch
的なアレを実装しようかとも考えたけど,スマートさに欠けるか〜と思って諦めた.
storageまわりは非同期APIしか用意してないのに、その他ユーザ定義メソッドとかは全部同期処理を要求してくるの控え目に言って意味不明
— Convolutional layer (@izumin5210) June 28, 2016
誰もその矛盾に気付かなかったのかな
Storageまわりをasync/awaitでラップしたらなんとかなるかと思って試したけど,hears
やmiddlewareの呼び出し元は「false
かそうじゃないか」しか見てないので無意味だった.
ハックしづらい
Botkitにhubot-aliasとhelp機能を実装しようとしたけど,実装のヤバさからそもそも実現するのが厳しいという説が出てきてる
— Convolutional layer (@izumin5210) June 28, 2016
ほんとにここまで作ったやつを全部Hubotに移植したほうが早い気がしてきた
「helpがつくれない」の根拠としては,hears
に渡すkeyword/patternがその関数内に閉じ込められてる(何らかのデータ構造に格納等はしていない)こと.利用者側に特定のmiddlewareを強制するとかならできなくはないが,helpとか意識せず勝手に生成されてほしいですよね.
そもそも
最初はhearsやmiddlewareが非同期処理を許容できるように改造しようかと思ったけど,PRとかIssueがめっちゃ放置されてるのを見てやる気無くしてしまった.
botkit,あまりにもつらいのでforkしてContributeするぞ!と思ったけど,かなりコアなところから厳しい感じなので見捨てて自作するかおとなしくHubotかRubotyつかったほうがよさそうだという結論
— Convolutional layer (@izumin5210) June 28, 2016
そもそもかなりの件数のIssueやPRが放置されてるし死んだっぽい
まとめ
自分にもうちょいやる気と技術力あるならなんとかできるかな〜と思ったんだけど,そもそもPRとか放置されるなら無理だなと. そもそもの問題として,BotkitはHubotやRubotyほどpluggableに作られてるわけじゃない(目的が違う)のかな?
BotkitつかえばつかうほどRubotyってきれいに設計されてたんだなあと感心する
— Convolutional layer (@izumin5210) June 25, 2016
- 作者: 山口徹,Jxck,佐々木大輔,横路隆,加来純一,山本伶,大平武志,米川健一,坂本登史文,若原祥正,和久田龍,平栗遵宜,伊藤直也,佐藤太一,高橋俊幸,海野弘成,五嶋壮晃,佐藤歩,吉村総一郎,橋本翔,舘野祐一,中島聡,渡邊恵太,はまちや2,竹原,河合宜文,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2014/08/23
- メディア: 大型本
- この商品を含むブログ (1件) を見る
- 作者: 松下雅和,小島泰洋,長瀬敦史,坂本卓巳
- 出版社/メーカー: 技術評論社
- 発売日: 2016/06/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る