カテゴリー: general

  • すごい広島 #6 でテスト駆動開発の読書

    すごい広島とは 広島のエンジニアやウェブデザイナーが毎週集まって、 もくもくしたり Hackしたり 読書したり する場所です。
    先週は欠席したので、今週は第6回でした。
    「テスト駆動開発による組み込みプログラミング――C言語とオブジェクト指向で学ぶアジャイルな設計」という本を読み始めました。

    原著 Test Driven Development for Embedded C のページからサンプルコードをダウンロードして、make しながら読み進めました。
    組み込みの開発はするかも知れないし、しないかも知れないのですが、NVDA に組み込まれている eSpeak や libLouis のようなライブラリも、一種の組み込みソフトウェアとしてとらえています。
    この本で使われているツールは UnityCppUTest なのですが、ダウンロードしたサンプルコードの中にどちらも入っていました。
    VisualStudio のプロジェクトファイルも入っているのですが、Cygwin か Mingw で make all するほうがしっくりきます。
    著者は Eclipse の CDT で、ファイルを保存したときに自動的にテストが走るようにしているそうです。。
    著者のJames W. Grenningさんの講演は5月にアジャイルジャパン広島サテライトに参加して拝聴しました。講演の内容はプログラミングというよりも開発者の文化とか理念のお話でしたが、そのときにこの本が紹介されたのを、今頃になって思い出したのです。
    今日読んだのは最初の100ページくらいなのですが、テスト駆動開発の「王道」がきっちり実践されているので驚いています。
    C言語を教える大学の情報系カリキュラムで、アルゴリズムと並行してこういう実践をさせたら、すごいことになるんじゃないかと思ったり。。
    オブジェクト指向開発とかテスト駆動とかいう話は、たいていプログラミング言語と結びついて語られるわけです。そして、この本は、C言語でアプリケーションそのものをオブジェクト指向的に書いたりはしないようです。でも、テスト駆動開発に必要なエッセンスを、素材であるC言語で、どう実践したらいいのか、見せてくれます。
    しかも、律儀に、テストを書く、失敗させる、コードを書く、成功する、という繰り返しを読者にしつこく提示します。
    テスト駆動は「何を使うか」ではなくて「いかに実践するか」なのだなあと改めて思いました。
    ツールの仕様だけを覚えても、思想やスキルは身につかないということですね。。
    この本の面白いところは、バージョン管理ツールについて一切言及がないところです。
    これだけテスト駆動を実践すると、どこでコミットするかとかブランチを切るかとか、普通はやるんですけど。。
    ただ「継続的インテグレーション」の説明の中で、バージョン管理ツールとのつながりそのものは語られているので、おそらく、話題を発散させないためにわざと削ったのだと思えてきました。
    そんなわけで「C言語をカッコよく使いこなしてみたい」と思わせてくれる本です。

  • 年末の出張

    ATDOの調査の仕事で、12月にも海外出張がありました。アメリカ(ニューヨーク)、ブラジル(サンパウロとリオデジャネイロ)、南アフリカ(プレトリア)、インド(デリー)に行きました。
    スケジュールはびっしり詰まっていましたが、各地のカウンターパートのかたにとても親切にしていただきました。
    この仕事に関わるまで「カウンターパート」という言葉さえ知りませんでしたが、そういえばカウンターパートって音楽用語では「対位法」「対旋律」だったなあ、と出張中に思い出しました。
    突然の停電、快適とはいえない3GやWiFi通信、飲めない水道水、などなど、日本ではできない経験もありました。
    食事はたいてい美味しくて、つい食べ過ぎました。
    サンパウロでFMラジオを聞くと普通のポップスが流れていたのに、デリーでラジオを聞くとやっぱりインド音楽でした。
    世界は一筋縄では語れません。
    言語についてもそうです。ブラジルではほとんどポルトガル語、そして南アフリカには11の公用語が、インドには22の公用語があります。
    首都・大都市と地方都市で文化も生活も全然違う、とあちこちで聞きました。日本でもそうかも知れませんが。。
    2012年を振り返ると、最初は NVDA 日本語化プロジェクトがどうやって世界とつながっていけばいいのか、見当もつかなかったのですが、台北に行くことになって、オーストラリアから開発者を招くことができました。
    そしてアクセシビリティの仕事で海外に行く機会を得ました。
    お世話になった方々に心から感謝しています。
    この1年で得られたチャンスやヒントが、次のステップにつながるまで、地道に活動を続けたいと思います。
    ニューヨークの夜
    ニューヨークの夜
    サンパウロの街
    サンパウロの街
    リオデジャネイロの海岸
    リオデジャネイロの海岸
    プレトリアの街
    プレトリアの街
    デリーの工科大学の屋上からの景色
    デリーの工科大学の屋上からの景色

  • 台北訪問とNVDA日本語チームの報告

    6月8日から11日まで台湾の台北に行ってきました。初日に台湾の NVDA(オープンソースのスクリーンリーダー)開発グループと話し合いをしました。
    2日目と3日目にはプログラミング言語 Python の台湾における大きなイベント PyCon TW に参加しました。
    この旅行については詳しいレポートを書いているところです。

    (さらに…)