ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

技術書が生まれる経緯

冬コミで出した技術書「なないろAndroid」「The Web Explorer 3」「わかる!ドメイン駆動設計」の3冊について、先週から電子書籍の販売が始まっています。タイミングがよいので、難産だった「わかる!ドメイン駆動設計」の生まれた経緯を書いておこうと思います。f:id:hdk_embedded:20170122233404p:plain

techbooster.booth.pm

上記サイトではAndroidやWebの最新情報、技術書の作り方本など色んな書籍を扱ってます。ぜひみてください。

きっかけは読書会

本書は読書会を通じて生まれました。メンバーは大体4人(やんざむともちこと@tacksmanとひつじ)で、たまに@sys1yagiさんとかが参加。毎週リアルに集まるのは大変だったのでビデオハングアウトで週1回、1時間。始めたのは2016年4月~(継続中)。オンラインだったのが地味によくて、参加と継続のハードルを下げられています。

本は厚くて有名なエリック・エヴァンスドメイン駆動設計と実践ドメイン駆動設計です。

www.amazon.co.jp

どちらも大変良い本なのは間違いないですが如何せん厚い。読書会の目的である実践レベルでDDDを理解したい、という前提では「読み終わる」ということと「本文を解釈して意味を噛み砕き、理解する」は天と地ほどの差がありました。

読書会では、あらかじめ1~2章読んでおいて分からないところを質問しあったり、いままでの経験とすり合わをしたりと、意見交換をしながら理解を確かめて進めました。締切とモチベーションの維持のための読書会、って感じです。準備が大事なので赤線を引いたり、知らない用語がでてきたら調べておいたり。

メンバーの課題意識

読書会を進めるにあたって気づいたことをいくつか。何かを理解する時に、都合の良い比喩や他の概念などを使わずに書いてある内容をうまく説明するのが思った以上に難しい。メンバーは実力のあるエンジニアであることは間違いない*1のですが、技術者としての背景が違うので当然だと思っている前提は当然ではない、という感じ。

ドメインモデルって何を指している用語なの?」「ここでコンテキストっていってるけどコンテキストの境界の意味だよね?」と解釈を話すときは、特に言葉に注意しないと混乱してしまう感じです。

課題意識はもうひとつあって、どうやってモバイルアプリに適用するか考える事。原書はAndroidiOSなどが活躍する前のモノなので、モダンな開発についての示唆が直接的に得られるわけではない感じです。モバイルアプリ開発(プロジェクト)で実践していく上で何が難しいのか、どこに気をつけるのか、どんな工夫ができるか、という実務を前提に議論しています。

議論するタイミングでは技術者としての背景が違う事実が役に立っていて「あー、これは気づかなかったな」とか「確かにそういう時すごい便利だよな」っていう会話が楽しいです。

読書会で気づいたこと

DDDは難しい。言葉通りの意味でDDDの考え方、概念として腑に落とすのに時間がかかるという話もあるんですが、難しさに入門しにくさというのを感じました。

原書では網羅的な解説をしていて、かいつまむのも全部読んだ後に適切なところを探すという感じなんですよね。でも「興味があるんだけど」という人にいきなり1000ページの書物を投げつけるのは忍びない。そこで厳密性の議論は一旦おいておいて、ざっくりと概念を理解する、重要な考え方を学んだほうがいいのでは、知った上で原書を読むとより理解がはやいのでは、というのが「わかる!ドメイン駆動設計」の執筆の動機です。

わかる!ドメイン駆動設計

techbooster.booth.pm

ただ解説するんじゃなくて物語を通じて理解できる構成にしました。物語のストーリーは、やんざむ*2が頭をひねって考えた。

親しみを覚えてもらいたくてアプリ開発者のもちこちゃん*3など可愛らしい挿絵で登場人物が生き生きと動いてくれます。

冬コミの新刊のなかでは一番下調べができていた(4月から読書会をしていたのでゆうに6ヶ月は調べてた)のだけども、わかりやすく表現できているか、曖昧なところはないかなど納得いくまで何度も何度も書き直して、草稿の原型が残っている箇所は殆どなくなってしまいました。

作中はAndroidアプリをテーマに話は進みますが、基本的には味付け程度でモダンな現代の開発現場でDDDを使っていく話になっています。そういうわけで対象者はDDDに興味がある開発者、という感じです。今回はコンテキストマップまでが解説の対象になっています。次(技術書典2だな?)では物語を前に進めてモバイルアプリでのDDD適用について知見を盛り込めればな、と考えてます。

組版とか

いままでB5サイズで技術書をつくっていた(組んでいた)のですが、今回は気軽に手にとって読めるようにTechBoosterでは初めてのA5サイズを採用しています。本書にあわせてレイアウトを刷新*4しました。会話シーンなども多いのでRe:VIEW記法を拡張したり、挿絵にはキャプションを入れないようにする(技術書ではキャプションが入るのがほとんどなのだけど小説は挿絵でキャプションなしが主流だったりします)などなど目に見えない組版での工夫も入ってます。

続刊にあたっては「わかる!ドメイン駆動設計」にも多少手が入る可能性もありますが、しばらくは技術書と一緒に成長していきたいな、と思っています。

*1:筆者自ら書くにはとても手前味噌を感じたけど

*2:あんざいゆき。現在ちょうどMaster of Fragmentの改訂を手伝っているが、🐑の編集作業がストッパーになっている事実をここでお詫びしておく

*3:他にも実在する人物を参考にキャラクターデザインをしているけど本人とは一切関係ないフィクションです

*4:新規作成したRe:VIEWのA5レイアウトは公開予定。綺麗に組み上がりました

技術書典サークル参加アンケート結果と分析

ひつじです。技術書典2のサークル参加申込受付にあわせて技術書典のサークル参加アンケートを公開します。

技術書典とは

技術書典とはTechBooster(ひつじが代表の技術書をかくサークル)と達人出版会(電子の技術書出版社)が主宰している技術書の即売会です。広く技術のことについて知れるお祭りです。

技術書典2は2017年4月9日開催、サークル参加受付中!秋葉原UDXホール(アキバ・スクエア)です。本エントリを読んで興味がでたら是非お願いします

techbookfest.org

アンケート結果を見る前に

アンケートの前に技術書典について簡単にご紹介です。

開催情報

第1回 技術書典
日時:2016年6月25日(土)11:00~17:00
場所:秋葉原 通運会館
サークル参加:合計57サークル(個人48・企業9)
来場数:1400人

初回とは思えないほどの盛況で最大で1.5~2時間の入場待ちが発生しました。当日の様子は次がわかりやすいです。

200平米程度の小さな会場にこれだけの人数が集まって事故が一切なかったのはサークル参加者、一般参加者みなさんの協力も欠かせなかったと感謝しています。ウェブには参加レポートなどがあります。またあらためて。

本の対象範囲

技術書とは、「ITや機械工作とその周辺領域について書いた本を指します。 ソフトウェア、ハードウェア、開発環境、コンピュータサイエンスからその他科学・工学全般などのジャンルを対象としています。
たとえばプログラミング解説書のように現存する技術要素の解説を行うもの、架空の工学、未知の科学技術なども対象です。 また作ってみた、やってみた、など体験談や考察、上記のジャンルに付帯した開発効率を高める方法のようなライフスタイルも歓迎します。 自分の積み重ねてきたマニアックな技術や成果、ノウハウを詳細に書き記し世に広めたいとは思いませんか? 

 技術書典はハード、ソフト、機械、科学、エンジニアリングに関わるその他ライフスタイルや考察など技術ジャンルを問わず「技術」をテーマにしたお祭りです。たとえばTechBoosterは主にソフトウェア、あとハードウェアちょっとを扱っています。

アンケート結果

アンケートは38サークルさんの回答をいただきました(回答率66.6%)。アンケート結果は統計情報なので、技術書典2で必ずこれだけうれる!という感じではありません。また各項目必須ではない&多値回答可能ですので合計値が38ジャストになるわけでもありません。

  • サークルの25%は執筆が初めて
  • 新刊部数は50~100が頻出値
  • 参加者総数1400名、平均して技術書の購買は5.5冊/人
参加サークル調査

f:id:hdk_embedded:20161227103453p:plain

執筆活動について、初めての人が概ね25%でした。一方で商業誌へ寄稿、著書があるなど活躍されている方々も30%程度いました。初心者でも歓迎、プロもいるよ、というバランスは今後も維持できればいいな、と思います。

技術書典では初心者向けの同人誌の制作、執筆勉強会を定期的に開催しています。

https://techbookfest.connpass.com/ メンバーになると勉強会の開催時に通知が届きます。プロの編集さんや出版社さんからゲストをお招きしてます。

持込部数

当日、持ち込んだ数はサークル平均166部でした。新刊の最頻値は100部、ついで50部、既刊では30~50部などの回答が多かったです。前回の1種あたり搬入部数については50~100部が目安だったのかもしれません。

価格帯はアンケートを取っていません。500~1000円の範囲が多かったですが、300円や1500円などもあり、各サークルさんごとにさまざまです。TechBoosterは1冊1000円です。

追記:「平均持込部数にTechBoosterは含まれますか?」「Yes. 中央値は100あたりです」

頒布部数と完売率

当日の頒布部数はサークル平均137部です。完売率は82.6%です。持ち込んだ本のうち8割超が売り切れて在庫がなくなった計算です。14時頃に50%のサークルさんで新刊、または既刊いずれかが完売になっています。

アンケート結果から読み解くと開始1時間で10%のサークルは頒布物がなくなりました。14時(開始3時間)の段階で50%のサークルの頒布物(新刊or既刊)がなくなりました。

追記:「平均頒布部数にTechBoosterは含まれますか?」「Yes. 中央値は100~120あたりです」

頒布情報

これらの情報より推定すると、当日の全サークル頒布数は7800冊前後、参加者一人あたり5.5冊を購入した計算です。8000冊弱の技術書が1日で流通したようです。スタッフが終了間際に体があいたのでようやく回ったところ「ほとんど完売しててめっちゃほしかったのに買えなかった…」と述べてました。やはり早めに行かないと頒布物が無くなる、、、のは当たり前なのですが今回はそれにもまして想像以上に早かったようです。

入場待機列と一般参加者さんの様子

当日の待機列はぐんぐんのびて開場時は次のような状態でした。

実はこれまだ途中の写真で、最終的にビルのブロックを一周してアキバのメインストリートに出そうになりました。200名並んだ時点で列成形を中止し、整理券による入場規制がかかり、終了30分前の16時30分まで入場規制が続きました。

技術書典は11時に一般入場を開始しました。並んで頂いてた100~150名が入ったのですが新刊50部で人気がでた、というケースは瞬殺に近かったと思います。一方で十分な数を搬入していても14時には売り切れというケースが目立ちました。

途中、キンコーズや印刷所からのオンデマンド印刷、周囲の同人ショップからの引き上げなど再搬入を試みたサークルさんも数サークルあり、開場で「再入荷しました!」と声が上げると参加者から拍手が起こる、大変感動的なシーンでした(なお私が見たケースだと再入荷分も瞬殺されてました)。

これらは圧倒的に来場者数が多かった結果です。大変ありがたかったのですが多くの参加者さんから「どれもこれも欲しいが買えなくて大変悔しい。どうにかなりませんか!!」と(みなさん思い思いに楽しんでくれてる様子で笑顔でしたが)ご意見を貰いました。今回のアンケートは技術書典2への参加を検討しているサークルさんが用意する品種、部数の参考になれば、と思って公開しています。

 閑話休題

f:id:hdk_embedded:20161227110111p:plain

1:全然なかった~5:十分あったの5段階評価です。

入場規制では一般参加者さんに大変おまたせする結果となりましたが、会場内では話す余裕ができた形です。当日のスタッフは整理券配布になった段階で目標を「内部のキャパシティ管理とスムーズな入場案内」に切り替えており、インカムを使ってフロアごと流量調整していました。概ね好評をいただいたようでホッとしています。一般参加者さんにはTwitterアカウントを通じて入場可能時刻を随時更新して、番号のアナウンスがあればすぐに入れるように運用していました。

f:id:hdk_embedded:20161227111810p:plain

展示方法は見本誌が一般的でした。電子書籍での頒布の場合でも見本誌は1冊用意してたほうが良さそうです。ハードウェア系などモノがある場合は実演が好評を博してました。

f:id:hdk_embedded:20161227112446p:plain

ありがとうございます!!!またサークルさんのなかには技術書典の同人誌がきっかけで技術書を商業書籍として出版された方々もいらっしゃいました(イベントには出版社さんもでてました)こちらも別の機会で紹介できればと思います。

技術書典2はパワーアップして帰ってきました

技術書典2は2017年4月9日にアキバ・スクエア(秋葉原UDX)で開催します。ただいまサークル申し込みを受付中です。本エントリを読んで興味をもった方は是非サークル応募をお願いします。来場者数は2000超を想定してスムーズに運営できるよう今からスタッフ一同頑張ってます。

techbookfest.org

DevFest Tokyo 2016のAndroid関連セッションのイチオシ

どうも、ひつじです。DevFest は、Google Developer Group (GDG) コミュニティによって世界各地で開かれるデベロッパー向けイベントです。

いろんなコミュニティが集まってワイワイするお祭りのようなものですね!

gdg-tokyo.connpass.com

 

日付を見たら分かる通り、本日10月9日が本番です。いまも準備中で慌ただしく動いてる中、このブログポストは書かれています。

追記:もう開始まで1時間を切り、めっちゃ慌てて書いてます。ちょっと雑なところもありますが大目に見てもらえると…。

 

色んなコミュニティが集まっているので自分がすきなジャンルを聞いてもよし、知らないジャンルに突撃するもよし、の何しても幸せになるセッション構成です。

通常のセッション以外にもその場で講演内容を決めちゃうアンカンファレンスやコードラボなどもりだくさん。せっかくなので個人的注目なAndroid関連セッションをご紹介です。当日のセッション選択の参考になればうれしいぞ!!

DevFest Tokyo プログラムリスト

DevFest Tokyo 2016 プログラム詳細

さぁ聞いてくれ、一番手はこのセッションだ!!

13時40分~ Video Streaming on Android(ホール)

最近GDEになったわさびーふさんによるExoPlayerの解説です。動画というと死ぬほどニッチに聞こえるけど(実際そう。)それが1ジャンルとして確立するのがAndroidの懐の深さ。ホールが寂しかったらとても悲しいので本人はめっちゃ来てほしそうにしてます!!

github.com

わさびーふさんはこんな感じで色んなLibraryをつくってるお兄さんです。

13時40分~ Modern CSS: architecture, future specs and build flow

2番手が全然Androidじゃないけど最近ひつじが困ってるCSSのお話なのでいれました。こっちもめっちゃ気になります。なんでウェブの世界はElementの中央寄せがあんなに難しいんだ!!!という自分のスキル不足をなんとかしたい…

13時40分~「Nested Scrolling: living life on the edge 」「Spotlight on Android Studio 2.2 features」

こちらはなんとGooglerがきてくれました。13時40分からの枠はほんと悩ましいな!!!Chris BanesさんとWojtek KalicińskiさんはGoogle UKのひとたちだ!荒木くんさんの同僚でDesign SupportLibraryでお世話になってる人もおおんじゃないかな!!UIの話は鬼に金棒ってかんじするぞ。聞いておいて損はない!

14時35分~ Android Architecture Blueprints

アプリ開発、困ってることありませんか。僕は設計で困ります。なんと今回、Google謹製サンプルである↓のリポジトリをメンテナンスしているJose Alcérreca本人がきて話してくれる、神かよ的セッション。

github.com

設計に悩んでる人はここでヒントを貰うと爆速開発になる可能性がワンチャンあります。最近Android開発が難しいな、と感じてる人が聞くと一番よいんじゃないかなー。

残念ながらこのセッションは中継ないのでどうしても、というひとはぜひ来てね。

14時35分~ 初心者のための RxJava

RxJavaってなんだろう?気になるけど乗り遅れちゃったなという初心者のためのセッション。スピーカーの黒川さんはとてもいいひと&わかりやすく説明するのがうまいので知らないことでも根掘り葉掘り聞けるぞ!Everything is a Streamだ!

slides.com

(なぜ有名なのかはわからないんだけどよくでてくる犬の禅的ポーズ)

16時25分~  「Animated Icons」「 In Transition」

スピーカーはNick Butcherと Ben Weiss。こちらもGoogle UK所属のGoogler。日本国内で直接話を聞ける機会がこれまであっただろうか。いや無い!みたいな気持ちで楽しみにしてます。どんどんアプリ開発はリッチになってアニメーションも手が込んできてます。いまやらなくても知識として知っておきたい、最新の手法を話してくれるに違いない(期待している)

ハンズオンやアンカンファレンスもあるよ

コードラボも用意してて、Androidテストや女性限定のアプリ開発ハンズオン、クラウドビジョンなど手を動かすもの、アンカンファレンスのようにその場で発表内容を決めるルームもあるのでぜひいろいろな部屋、コミュニティをのぞいてみて楽しんで下さい!!

 

英語系のセッションは敬遠するひとがおおいんじゃないかな、とおもってこの記事を思い立ちました。なので英語系中心に紹介されていたりします。もっと色んなコミュニティの紹介もできればよかったんだけど間に合わず(海外の人だと、どういうひとなのか調べるのも大変なので、簡単にでも参考になればうれしい)

 

現場からは以上です。たのしむぞ!!