So-net無料ブログ作成
検索選択
前の10件 | -

内容補足:『プログラミング言語Go』 [golang]

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

  • 作者: Alan A.A. Donovan
  • 出版社/メーカー: 丸善出版
  • 発売日: 2016/06/20
  • メディア: 単行本(ソフトカバー)

すでに本になってしまったので訳注を追加することはできませんが、補足として書いておきたいと思います。

7.8節「errorインタフェース」(p.226)に次の記述があります。
error を作成する最も簡単な方法は、指定されたエラーメッセージに関する新たなerror を返す errors.New を呼び出すことです。errors パッケージ全体は、次の4 行しかありません。
    package errors

    func New(text string) error { return &errorString{text} }

    type errorString struct { text string }

    func (e *errorString) Error() string { return e.text }
errorStringの基底型は、その表現を不注意な(あるいは意図的な)更新から保護するために、文字列ではなく構造体です。(以下省略)
文字列は不変(immutable)なのですが、リフレクションを使用すると書き直すことができます。リフレクションを使用して文字列を書き直したコード例はこちらです。

一方、構造体の非公開なフィールドはリフレクションを使用して書き換えることはできません。そのことは、p.396に記述されています。
Display をos.Stdout へ適用した場合、Unix ライクなプラットフォーム上のos.File 構造体のfd int フィールドといった、通常の言語規則に従えばアクセスできない構造体の非公開なフィールドの値をリフレクションが読み出せることが分かります。しかし、リフレクションでそのような値を変更することはできません。

(コード例は省略)

アドレス化可能なreflect.Value は、走査によって構造体の非公開のフィールドが得られたかどうかを記録しており、そうであれば変更を許しません。



スポンサーリンク





『プログラミング言語Go』刊行記念トークセッション [golang]

スクリーンショット 2016-06-20 4.36.33.png


7月6日(水)に開催されるGoogleのソフトウェアエンジニアである鵜飼文敏氏とのトークセッションです。鵜飼文敏氏からは、書籍の帯のメッセージをいただきました。鵜飼氏は、次の本の監訳をされていますし、『Binary Hacks ―ハッカー秘伝のテクニック100選』を共著で執筆されています。

Go言語によるWebアプリケーション開発

Go言語によるWebアプリケーション開発

  • 作者: Mat Ryer
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2016/01/22
  • メディア: 大型本

無料ではなく入場料はドリンク付きで1000円ですが、奮ってご参加ください。ジュンク堂のイベントページは、こちらです(事前予約が必要です)。

当日は、著者アラン・ドノバンとブライアン・カーニハンのサインが書かれた日本語版が展示される予定です。


スポンサーリンク





第1章公開:『プログラミング言語Go』 [golang]

プログラミング言語Go

プログラミング言語Go


発売に先行して、以下の内容を含むPDFが公開されました。PDFはこちらです。
  • 日本語版によせて
  • 目次
  • まえがき
  • 第1章 チュートリアル

【追記】6月10日に出版社から届きました。
13442446_1207804605905481_4671615962188119945_o.jpg



スポンサーリンク





『プログラミング言語Go』刊行記念イベント [golang]

プログラミング言語Go

プログラミング言語Go


池袋のジュンク堂で「Goの設計思想を読み解く~実際の開発に活かすために」と題して、刊行記念イベントが開催されます。鵜飼さんとのトークイベントです。
開催日時:2016年07月06日(水) ~
場所:ジュンク堂 池袋本店
鵜飼 文敏(Googleソフトウェアエンジニア
柴田 芳樹(『プログラミング言語Go』訳者)
19:00開場
19:30開演
事前予約が必要ですので、参加方法などの詳しい情報はこちらを見てください。

翻訳のきっかけ [プログラマー現役続行]

プログラミング言語Go』は、私にとっては15冊目の翻訳本になります。技術書の翻訳は2000年からですので、平均すると1年に1冊のペースとなります。結果として15冊ですが、当然、1冊目は初めての翻訳だったわけです。そして、技術書を翻訳するようになったきっかけを聞かれることがよくあります。

プログラミング言語Go

プログラミング言語Go


40歳になる1999年の後半に考えていたのは、40歳になったら、雑誌の記事や技術書の執筆、それに技術書の翻訳をやっていきたいというものです。フリーランスではないので、会社での仕事とは別に私的な時間にそのような活動をできたらと漠然と考えていましたが、何か具体的な手段は何も考えていませんでした。

当時、私は「Javaカンファレンス」という団体の個人会員でした。Javaカンファレンスの99年度総会(1998年9月25日)には一人で参加したのですが、翌年の2000年度総会(1999年9月13日)には会社の若手エンジニアであった相馬純平さんと一緒に参加しました。

総会の懇親会の場で、雑誌「Java PRESS」を出版していた技術評論社の編集の人と相馬さんが談話して、「相馬さんも記事を書きませんか」という話になったのですが「よい人がいますから」ということで、実際には私のところにその編集の人を連れてきて紹介してもらい、三人で談話しました。そのときに話した内容の一つが『The Java Programming Language, Second Edition』が翻訳されていないという話でした。しかし、何か記事を書く話にはなっていません。

正確な時期については憶えていないのですが、だめもとで記事を書いて投稿してみようと思い、最初の記事『「The Java Programming Language, Second Edition」について』を書いて、「Java PRESS」の編集部へ投稿してみました。幸い採用されて、2000年3月の「Java PRESS, Vol.11」に掲載されました。最初の記事を投稿した後に他に何か書けませんかと聞かれたのだとおそらく思うのですが、別の記事『AWT/Swingにおけるイベント処理のメカニズム』を書いています。これをきっかけとして、その後の「Java PRESS」、「XML PRESS」「Software People」といった雑誌に記事を書いています。40代前半は、雑誌の記事を多数書いていたことになります。相馬さんも、2000年後半から雑誌の記事を書き始めています。

話を戻すと、最初の記事では「The Java Programming Language, Second Edition」はよい本であり、翻訳されていないことは残念であるという趣旨で本の紹介を書きました。その私の記事を読まれた当時のピアソン・エデュケーションの編集担当であった藤村行俊さんからメールをいただき、第2版の翻訳に関しては時期を逃したのと翻訳する予定はありませんということでした。

その後、何度かメールのやり取りをして、藤村さんから「柴田さんも何か翻訳してみませんか」とメールで聞かれて、「やります。今度出る第3版はどうでしょうか?」という返事をして、「The Java Programming Language, Third Edition」を翻訳することになりました。これが、翻訳をするきっかけでした。

プログラミング言語Java (The Java Series)

プログラミング言語Java (The Java Series)

  • 作者: ケン アーノルド
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/06
  • メディア: 単行本

実は、こうやって翻訳した『プログラミング言語Java第3版』は、出版時期からすると私にとっては最初の翻訳本ではありません。最初に出版した翻訳本は、「Javaリアルタイム仕様」なのです。

Javaリアルタイム仕様 (The Java Series)

Javaリアルタイム仕様 (The Java Series)

  • 作者: G. ボレラ
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/12
  • メディア: 単行本


Go言語に関する日本語書籍 [golang]

これから出る本も含めてGo言語に関する日本語書籍を列挙してみました。今年は6月までに4冊であり、Go言語の普及を後押しすると思います。

【2016年】
プログラミング言語Go

プログラミング言語Go

Go言語入門

Go言語入門

  • 作者: 飛松 清
  • 出版社/メーカー: リックテレコム
  • 発売日: 2016/06/18
  • メディア: 単行本(ソフトカバー)
スターティングGo言語 (CodeZine BOOKS)

スターティングGo言語 (CodeZine BOOKS)

  • 作者: 松尾 愛賀
  • 出版社/メーカー: 翔泳社
  • 発売日: 2016/04/15
  • メディア: 単行本(ソフトカバー)
Go言語によるWebアプリケーション開発

Go言語によるWebアプリケーション開発

  • 作者: Mat Ryer
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2016/01/22
  • メディア: 大型本

【2015年】
改訂2版 基礎からわかる Go言語

改訂2版 基礎からわかる Go言語

  • 作者: 古川 昇
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2015/07/17
  • メディア: 単行本(ソフトカバー)

【2012年】
基礎からわかる Go言語

基礎からわかる Go言語

  • 作者: 古川 昇
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2012/11/21
  • メディア: 単行本(ソフトカバー)
プログラミング言語Goフレーズブック

プログラミング言語Goフレーズブック

  • 作者: David Chisnall
  • 出版社/メーカー: ピアソン桐原
  • 発売日: 2012/10/04
  • メディア: 単行本(ソフトカバー)

【2011年】
Go言語プログラミング入門on Google App Engine

Go言語プログラミング入門on Google App Engine

  • 作者: 横山 隆司
  • 出版社/メーカー: 秀和システム
  • 発売日: 2011/12/14
  • メディア: 単行本

【2010年】
はじめての「Go言語」 (I・O BOOKS)

はじめての「Go言語」 (I・O BOOKS)

  • 作者: 茨木 隆彰
  • 出版社/メーカー: 工学社
  • 発売日: 2010/11
  • メディア: 単行本


コードレビューの視点 018 [コードレビューの視点]

情報を付加しないコメントに注意する

プログラミングにおいては日本語でプログラムを書くこと、つまりクラス名、メソッド名、変数名を日本語にしてプログラミングすることはまれだと思います。しかし、コメントを日本語で書くことは普通に行われています。そうすると、次のようなコードを目にすることになります。
// モデル情報を取得する
Model m = config.getModelInfo()
これはコードを読めば分かることを説明しているコメントに過ぎないのですが、日本語で書いてあるので何らかの情報を付加しているような印象を与えます。これを英語で書いたとしたら次のようになるでしょう。
// Gets the model info
Model m = config.getModelInfo()
明らかに「同じこと」を二回書いていることになります。したがって、そもそもこのようなコメントは書かないわけです。

コメントはコードから読み取れない、あるいは分かりにくいことを説明するために書くわけです。しかし、日本語で書くことにより次のようなコメントを目にすることがあります。
  • 上記のようにメソッド名が表す意味をそのまま日本語で書いている
  • メソッド名が不適切に命名されて処理内容が読み取れないので、日本語のコメントで説明している
  • メソッド名が不適な命名で処理内容が読み取れないけれど、そのメソッド名がそのまま日本語に訳されてコメントとして書かれている
コードを読みやすく理解しやすいように書き、その上で読み手に付加情報を与えるためにコメントを書くのです。付加情報のない無意味なコメントが書かれていないか、メソッド名などを適切に変更すればコメントが不要になるのではないかという視点でコードをレビューする必要があります。

『プログラミング言語Go』翻訳作業が終了しました(3) [golang]

プログラミング言語Go

プログラミング言語Go


諸事情により、発売日が6月20日に延期されたようです。

『プログラミング言語Go』翻訳作業が終了しました(2) [golang]

プログラミング言語Go

プログラミング言語Go

  • 作者: Alan A.A. Donovan
  • 出版社/メーカー: 丸善出版
  • 発売日: 2016/06/15
  • メディア: 単行本(ソフトカバー)

目次です。
日本語版によせて iii
まえがき xiii
第1章 チュートリアル 1
第2章 プログラム構造 29
第3章 基本データ型 57
第4章 コンポジット型 91
第5章 関数 135
第6章 メソッド 177
第7章 インタフェース 197
第8章 ゴルーチンとチャネル 251
第9章 共有された変数による並行性 297
第10章 パッケージとGo ツール 327
第11章 テスト 349
第12章 リフレクション 379
第13章 低レベルプログラミング 407
訳者あとがき 423
索引
翻訳本の中のコードのコメントは翻訳されていますが、サンプルコードのダウンロードは英語版のサイト(こちら)から行ってもらいます。したがって、ダウンロードされたサンプルコード内のコメントは翻訳されていません。

「まえがき」に書かれていますが、何らかのプログラミング経験がある人が対象となっています。
この本では、みなさんが一つ以上の言語でプログラミングした経験があることを想定しています。C、C++、Java などのコンパイル言語、あるいはPython、RubyJavaScript などのインタプリタ言語のどちらでも構いません。したがって、全くの初心者向けの本のようにすべてを事細かに説明す ることはしません。
「まえがき」より
もちろん、言語仕様に関する部分はきちんと細かく説明されています。目次を見てもらえば分かるように、リフレクションやcgoを使った低レベルのプログラミングについても解説されています。

以下のサイトでも予約注文可能です。

技術書のレビュー(6) [プログラマー現役続行]

Core Java, Volume II--Advanced Features (10th Edition) (Core Series)

Core Java, Volume II--Advanced Features (10th Edition) (Core Series)


Vol.1のレビューは時間切れで全部の章を行うことができませんでした。Vol.2のレビュー依頼がきましたので、全部の章をレビューできるかどうかは分かりませんがレビューすることになりました。

前の10件 | -