tag:crieit.net,2005:https://crieit.net/tags/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3/feed 「デザインパターン」の記事 - Crieit Crieitでタグ「デザインパターン」に投稿された最近の記事 2018-10-23T16:45:29+09:00 https://crieit.net/tags/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3/feed tag:crieit.net,2005:PublicArticle/14558 2018-10-02T16:06:33+09:00 2018-10-23T16:45:29+09:00 https://crieit.net/posts/Kill-Bill 今自分が調査しているオープンソースソフトウェア「Kill Bill」について <p>仕事する気力がないので、少し自分の仕事内容を公言したらやる気が出るかもしれないと思ったので、やってみる。</p> <h1 id="Who am I"><a href="#Who+am+I">Who am I</a></h1> <ul> <li>札幌在住の派遣プログラマ <ul> <li>Python, JavaScript, PHP, Nim, Go, Elm, HTML/Pug, CSS/Stylus, etc...</li> <li>パソコンの使える創作活動は手当たり次第手を出している</li> <li>ろくな大人じゃないのにCoderDojoのメンターを堂々とやってる</li> </ul></li> <li>時給1000〜1200円をうろうろ <ul> <li>今回話す「Kill Bill」の調査に加えて、以下を並行して習得しろとのお達しがあった。 <ul> <li>コンテナ仮想環境技術を利用した自動並列分散オーケストレーションの実装(実務に耐えれるもの): 1ヶ月</li> <li>Go言語によるメタプログラミング(セキュリティなどの問題も考慮し、実務に応えれるもの): 2ヶ月</li> </ul></li> <li>私の残り出向先での契約期間: 2ヶ月</li> </ul></li> <li>Qiitaとかteratailとかにも出没している。</li> </ul> <h1 id="What's &quot;Kill Bill&quot; ?"><a href="#What%27s+%26quot%3BKill+Bill%26quot%3B+%3F">What's "Kill Bill" ?</a></h1> <p>布袋寅泰の「BATTLE WITHOUT HONOR OR HUMANITY」でお馴染み、クエンティン・タランティーノのあの映画……ではない。</p> <p>オープンソースで開発されている「購読型決済管理システム」という私の認識である。</p> <p><a target="_blank" rel="nofollow noopener" href="http://killbill.io/">Open-Source Subscription Billing & Payment Platform - Kill Bill</a><br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/killbill">Kill Bill (GitHub)</a></p> <p>もちろん名前は映画の影響もあると思うが、「BillingシステムをKillする」という思いを込めたものだったとどこかに書いてあった気がする。</p> <h2 id="何がすごいの?"><a href="#%E4%BD%95%E3%81%8C%E3%81%99%E3%81%94%E3%81%84%E3%81%AE%EF%BC%9F">何がすごいの?</a></h2> <p>オープンソースで決済システムを作っているという時点で凄いだろ?!</p> <h3 id="ものすごく良く錬られた設計"><a href="#%E3%82%82%E3%81%AE%E3%81%99%E3%81%94%E3%81%8F%E8%89%AF%E3%81%8F%E9%8C%AC%E3%82%89%E3%82%8C%E3%81%9F%E8%A8%AD%E8%A8%88">ものすごく良く錬られた設計</a></h3> <p>設計、特にデザインパターンやイベント駆動型プログラミングをもう存じ上げている方はすぐに読めるかもしれないが、惜しみなく使っている。</p> <p>そしてテストコードもしっかりある。</p> <p>今のソフトウェア開発では当然だと思うが、その良さがはっきり分かっていないという人には良い教材だと思う。</p> <p>試しにKill Billのプラグインを作って見るだけでもかなり勉強になる。<br /> もし余裕があればUMLの様な図を書きながら、ソースを解読していっても良いだろう。</p> <h3 id="プラグインを作れる"><a href="#%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E4%BD%9C%E3%82%8C%E3%82%8B">プラグインを作れる</a></h3> <p>プラグインを作れる。これがどうありがたいかというと、提供されていない決済代行会社向けに自分たちでプラグインを開発できるのもメリット。</p> <p>また、Kill Billでかゆいところに手が届かない処理も、ある程度プラグインを作ることによってサポートできるかもしれない。</p> <p><a target="_blank" rel="nofollow noopener" href="http://docs.killbill.io/0.20/plugin_development.html">Plugin development</a></p> <h1 id="誰が使うの?"><a href="#%E8%AA%B0%E3%81%8C%E4%BD%BF%E3%81%86%E3%81%AE%EF%BC%9F">誰が使うの?</a></h1> <p>お金が絡むシステムを設計から実装までするのって、怖くないですか?<br /> 私は怖いし、うちのチームリーダーも怖いので、これの採用しようかという話になってる。</p> <p>「ソフトの信頼性はどうなのよ? 誰かが趣味で作ってるオープンソースならもっと怖いでしょ……」<br /> そのとおりである。<br /> しかし一応「GROUPON」や「Google Cloud」も Trusted by に入ってるので、大丈夫じゃないかなあ……。</p> <hr /> <p>とりあえず、よく出来てると思うオープンソースソフトウェアなので、紹介だけする。</p> まんじゅ(´ん`)