雛形書庫

An Unmoving Arch-Archive

親方Project『ワンストップアプリ開発』に寄稿した

はじめにお知らせ

親方Projectさんより新刊合同誌『ワンストップアプリ開発(α版)』が出ます。頒布の詳細は第二回 技術書同人誌博覧会の公式サイトより、以下の通り。

日時:2019.12.14 (Sat.) 11:00~17:00

場所:プラザマーム(日本橋浜町

サークルスペース:【2F-あ06】親方Project

 

前々著である『ワンストップPodcast』、および前著の『ワンストップ目標設定』に引き続き、親方Projectにはみたびお世話になっている。今回も一章ぶん、約9000字ほどを第22章「スパコンアプリ開発ことはじめ」として寄稿させていただいた。ちなみにスパコンとはスーパーコンピューターの略です。 

 

この記事では本書の紹介と、前回の寄稿に合わせて上げた記事*1と同様、やはり執筆から寄稿までにあった個人的な体験を語る。内容を要約すると以下のややエモ箇条書きにまとめられるので、お急ぎの方はこちらをどうぞ;

  • ふたこぶの知識を得るべく、異なる文化圏に越境する
  • 自ら可能性を狭めることなく、一歩踏み出す挑戦心を持つ
  • 執筆は知識の棚卸しに絶好の機会、ネタは案外自分の中に眠っている
  • 『ワンストップアプリ開発』完全版に向けて、執筆者募集中 @ 親方Project

 

 

どんな本か

本書の「はじめに」にあるおやかた (@oyakata2438) 編集長の言を借りれば、本書の内容とその目指すところは以下の通り。現時点ではお試しのα版であり、著者14人、ページ数206ページという仕様になっている。

この本は、タイトルのとおり、アプリ開発に関する様々な内容を論じたものです。

アプリ開発とひとくちにいっても、規模も開発形態も何もかもが異なるでしょう。開発手法や手順、テストの方法など、それぞれの項目がそれだけで一冊の本になるレベルで幅広い内容になります。しかし本書では、それらをあえて一冊の本に網羅してみるという試みを取ります。その結果、王道の片鱗が見えてくるかもしれません。初心者から初級者にかけて遭遇しやすい落とし穴が見えてくるかもしれません。あるいは執筆者一同を含め、アプリ開発なにもわからない、となるかもしれません。しかし、であればこそやってみる価値があるのです。

 

この記事を書いている時点で、一部のページがBOOTHにて無料公開されている;

 

アプリ開発の幅広さを丸々カバーしようとする野心的な本書、それはスパコンアプリの話題も含める懐の広さを持ちつつも、多くの内容はいわゆる普通のアプリケーション、PCやスマートフォンで動く応用ソフトウェアの開発における、現場のエンジニアの知見が詰まったものになっている。この実地に即した・固すぎない知識という意味で、アプリ開発の世界にある "自分とは異なる文化圏" を知るうえで至適な本だと考えている。

 

コーディングについて説明している第11章では "文化圏" という言葉が使われていて、この言葉はアプリ開発にあるお互いの相違を表すのに良い言葉だなと思った。ある特定のプログラミング言語などの界隈で通じる独特な流儀があって、それらを指して文化、その勢力の及ぶ範囲を文化圏と呼んでいるのだけれど、アプリ開発の文化は、合同誌としての本書がまさに体現しているように極めて多種多様なものになっている。そうした文化の多くについて、自己の文化との違いを知っておくことはそれ自体価値があるし、また自分にとって新たな気付きやアイデアをもたらしてくれるきっかけにもなる。

 

そして、そうした異文化の認識や理解は、今あなたが持っているひとこぶの知識とは別の、ふたこぶ目の知識へとつながる可能性を持っている。これは『エンジニアの知的生産術』で指摘されている "かけ合わせによる差別化戦略" であって、分野AとBの両方の知識を持つあなたは、分野Aの知識だけしか持たないAさん、分野Bの知識だけしか持たないBさんの双方とコミュニケーションをとりやすくなり、そこに価値が発生するというもの。

f:id:hina747:20191208105643j:plain
西尾泰和『エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)技術評論社 (2018) p. 238より引用。

 

現時点での本書はα版という位置づけであって、知識量の観点では不十分かもしれないけれど、それでも初歩的な知識を与えてくれる、あるいは知識以前の文化を紹介してくれる、そうしたご利益のある本だと感じている。

個人的な体験でいえば、普段は馴染みの薄いセキュリティの話題(第19章)はとても興味深く読めたし、ソフトウェア設計の第17章では自分がこれまで見よう見まねでやってきた "設計" という作業が体系的にまとめられていて、読んでいて学びを得るところが大きかった。そんな感じで、本書をきっかけにして普段とは異なるアプリ開発文化圏へと積極的に越境して欲しい、そしてあわよくばスパコン文化圏にも来てもらえたらうれしいな、というのが、いち執筆者としての思いである。

 

なんで書いたか

本書のCall for Papersがリリースされたのが今年の8月のこと。以下の記事にあるように、当初よりアプリ開発の話題すべてを詰め込むことを目標に制作が進められていた。

note.com

 

あまねくアプリ開発の話題、とはいえスパコンアプリ開発のお話なんてどこに需要があるのだろうか(いやない)ということで、うやむやにしておいて結局なにも書かないのも良くないと当時の僕は思っていた。今作ではレビューでご協力させていただきたく、執筆はパスします、と合同誌slackで早々にお伝えしたところ、おやかた編集長にうまく切り返されたおかげで執筆の可能性が残された

f:id:hina747:20191208155130p:plain

 

ここで生き残った執筆可能性をもとに、その後の人形町で頂いたヤバい寿司🍣のバフ効果で章立てが生えてきて、その後約1ヶ月かかって今回の執筆原稿が完成した。

改めて振り返ってみると、今回執筆できたのはとても良い体験であって、その理由は後述する通りだけど、とにかく自ら可能性を狭めないことは重要だなという学びを得た。おやかた合同誌が掲げている「執筆のハードルを可能な限り下げる」というポリシーに今回も救われた形で、しかし一歩前に踏み出す挑戦心を持つことは自分でも常日頃から意識していきたいところでもある。

 

実際に執筆に取りかかってみると、結構な量の眠っていた知識が自分の中にあって、それらが芋づる式に引っ張り出されてくることに気付けたし、そしてそれらを並べかえていく過程は、自分の知識を体系立てて整理する絶好の機会となった。たぶんそれは自分に限らず、またエンジニアに限ることもなく誰もが同じで、結果的に長い時間を費やしたものや技術については、相応の蓄積が自分のなかにできてくるものだと思う。

あとは実際のところとして、ここ数年間はアプリ開発からは距離を置いていて、この界隈の情報にも疎くなっていたから、ここ数年のアップデートを自分に取り込むうえでも執筆は一役買ってくれた。そしてアプリ開発から少し離れている今のお仕事は、そこにある自分の感情がどうであれ、結果的にはそれら無くしては生まれなかった本文中の洞察があったのは事実であって、無駄な経験などおおよそ無いことを思い知らされた。

 

執筆ではこれまでの自分が持っている知識の整理が進んだ一方で、今の自分が持っていない知識も明らかになった。昨今のHPC界隈では落としてはならないAWS HPCの話題がごっそり抜けていたり(これだからブランクがあるといけない)、IBMやCrayのマシンや神威太湖之光(しんいたいこのひかり)*2、そしてGPU全般への言及がない、モデリングのところで数学と物理の境界があやふやだったり、validationの具体的な様子に乏しい、計算に比べて可視化の項が短かったりする責はすべて筆者にある

上の引用ツイートにある通り、本書は「入稿したばっかりだけど、β版に向けて今日から再始動です!」今後はさらに強い章にすべく、上で挙げたような部分を加筆修正していければ良い。

 

おわりに:アプリ開発、今後の展望

今回のα版ではタイトルだけの項目もいくつか存在していて、そうした項目についてはまだアップデートの余地があるし、読者の皆様からのフィードバックも期待されている。

僕にとっては第22章、シミュレーションアプリが自らの利き腕であることはもちろんだけど、本書で得た文化と知識の重ね合わせから、より良い価値を出していけると理想である。その過程で本書にある他の章に関わっていくことが出来たら良いし、同時に僕が手がけた章も僕一人で完結すべきものでは決してないので、他章からこちら側へ来ていただくのも積極的に歓迎したい。そうした、読み手にとっての越境――読者から執筆者への遷移、そして自分とは異なる文化圏に踏み出す第一歩を後押しするものとして、まずは本書を手にとっていただけるならば、いち著者としてこんなに嬉しいことはない。


以上、ワンストップ目標設定(α版)はアプリがかわいいワンストップちゃんが目印! 表紙イラストは安定の湊川あい (@llminatoll) さん。どうぞよろしくね

gishohaku.dev

 

f:id:hina747:20191208160221p:plain

 

*1:

tl.hateblo.jp

*2:びっくりする名前ですが、中国のスパコンです