Suche senden
Hochladen
Doc and Error Handling
•
2 gefällt mir
•
4,180 views
Akira Takahashi
Folgen
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 10
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
Tomohiro Yamasaki
今さらながらRSpecに入門してみた
今さらながらRSpecに入門してみた
zaru sakuraba
独りガラパゴス開発
独りガラパゴス開発
道化師 堂華
エラーハンドリングモデル考察
エラーハンドリングモデル考察
道化師 堂華
バグベアード入門
バグベアード入門
道化師 堂華
LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介
道化師 堂華
Bjarne dont speaking
Bjarne dont speaking
Akira Takahashi
C++0x総復習
C++0x総復習
道化師 堂華
Empfohlen
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
Tomohiro Yamasaki
今さらながらRSpecに入門してみた
今さらながらRSpecに入門してみた
zaru sakuraba
独りガラパゴス開発
独りガラパゴス開発
道化師 堂華
エラーハンドリングモデル考察
エラーハンドリングモデル考察
道化師 堂華
バグベアード入門
バグベアード入門
道化師 堂華
LUCIFERの設計コンセプトと 導入予定の機能紹介
LUCIFERの設計コンセプトと 導入予定の機能紹介
道化師 堂華
Bjarne dont speaking
Bjarne dont speaking
Akira Takahashi
C++0x総復習
C++0x総復習
道化師 堂華
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
Yuta Matsumura
プログラミングを早くする方法
プログラミングを早くする方法
kazukiTakahashi18
エンジニア取扱説明書
エンジニア取扱説明書
Hisanao Ichikawa
読書会Vol6
読書会Vol6
Mari Takahashi
20120529 アジャイルサムライ読書会第6回
20120529 アジャイルサムライ読書会第6回
株式会社コネクトスター(ConnectStar Co., Ltd.)
俺とGitHub
俺とGitHub
Masayuki KaToH
ログ管理でウキウキAndroid Life (Log Management in Android)
ログ管理でウキウキAndroid Life (Log Management in Android)
Tomoaki Imai
C language Sem 01
C language Sem 01
Kosei Moriyama
会議室を現場にする! リアルタイム共同編集によるプロトタイピング
会議室を現場にする! リアルタイム共同編集によるプロトタイピング
Masaru Nagaku
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
Rakuten Group, Inc.
プログラマに優しいバグレポートの書き方
プログラマに優しいバグレポートの書き方
Katsutoshi Makino
Php勉強会スライド
Php勉強会スライド
suzumurashingo
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
error handling using expected
error handling using expected
Akira Takahashi
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
女性エンジニアの1週間
女性エンジニアの1週間
x1 ichi
cochica
cochica
Hiroki Yoshida
Hacker's meetup boost_vol1発表資料_20150902
Hacker's meetup boost_vol1発表資料_20150902
真一 藤川
20150131 mvp com_camp_lt
20150131 mvp com_camp_lt
Toshiyuki Manabe
Chrome 拡張のご紹介
Chrome 拡張のご紹介
Tetsunosuke Saito
Cpp20 overview language features
Cpp20 overview language features
Akira Takahashi
Cppmix 02
Cppmix 02
Akira Takahashi
Weitere ähnliche Inhalte
Ähnlich wie Doc and Error Handling
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
Yuta Matsumura
プログラミングを早くする方法
プログラミングを早くする方法
kazukiTakahashi18
エンジニア取扱説明書
エンジニア取扱説明書
Hisanao Ichikawa
読書会Vol6
読書会Vol6
Mari Takahashi
20120529 アジャイルサムライ読書会第6回
20120529 アジャイルサムライ読書会第6回
株式会社コネクトスター(ConnectStar Co., Ltd.)
俺とGitHub
俺とGitHub
Masayuki KaToH
ログ管理でウキウキAndroid Life (Log Management in Android)
ログ管理でウキウキAndroid Life (Log Management in Android)
Tomoaki Imai
C language Sem 01
C language Sem 01
Kosei Moriyama
会議室を現場にする! リアルタイム共同編集によるプロトタイピング
会議室を現場にする! リアルタイム共同編集によるプロトタイピング
Masaru Nagaku
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
Rakuten Group, Inc.
プログラマに優しいバグレポートの書き方
プログラマに優しいバグレポートの書き方
Katsutoshi Makino
Php勉強会スライド
Php勉強会スライド
suzumurashingo
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
error handling using expected
error handling using expected
Akira Takahashi
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
女性エンジニアの1週間
女性エンジニアの1週間
x1 ichi
cochica
cochica
Hiroki Yoshida
Hacker's meetup boost_vol1発表資料_20150902
Hacker's meetup boost_vol1発表資料_20150902
真一 藤川
20150131 mvp com_camp_lt
20150131 mvp com_camp_lt
Toshiyuki Manabe
Chrome 拡張のご紹介
Chrome 拡張のご紹介
Tetsunosuke Saito
Ähnlich wie Doc and Error Handling
(20)
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
プログラミングを早くする方法
プログラミングを早くする方法
エンジニア取扱説明書
エンジニア取扱説明書
読書会Vol6
読書会Vol6
20120529 アジャイルサムライ読書会第6回
20120529 アジャイルサムライ読書会第6回
俺とGitHub
俺とGitHub
ログ管理でウキウキAndroid Life (Log Management in Android)
ログ管理でウキウキAndroid Life (Log Management in Android)
C language Sem 01
C language Sem 01
会議室を現場にする! リアルタイム共同編集によるプロトタイピング
会議室を現場にする! リアルタイム共同編集によるプロトタイピング
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
プログラマに優しいバグレポートの書き方
プログラマに優しいバグレポートの書き方
Php勉強会スライド
Php勉強会スライド
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
error handling using expected
error handling using expected
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
女性エンジニアの1週間
女性エンジニアの1週間
cochica
cochica
Hacker's meetup boost_vol1発表資料_20150902
Hacker's meetup boost_vol1発表資料_20150902
20150131 mvp com_camp_lt
20150131 mvp com_camp_lt
Chrome 拡張のご紹介
Chrome 拡張のご紹介
Mehr von Akira Takahashi
Cpp20 overview language features
Cpp20 overview language features
Akira Takahashi
Cppmix 02
Cppmix 02
Akira Takahashi
Cppmix 01
Cppmix 01
Akira Takahashi
Modern C++ Learning
Modern C++ Learning
Akira Takahashi
cpprefjp documentation
cpprefjp documentation
Akira Takahashi
C++1z draft
C++1z draft
Akira Takahashi
Boost tour 1_61_0 merge
Boost tour 1_61_0 merge
Akira Takahashi
Boost tour 1_61_0
Boost tour 1_61_0
Akira Takahashi
Boost tour 1.60.0 merge
Boost tour 1.60.0 merge
Akira Takahashi
Boost tour 1.60.0
Boost tour 1.60.0
Akira Takahashi
Boost container feature
Boost container feature
Akira Takahashi
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Akira Takahashi
Boost Tour 1_58_0
Boost Tour 1_58_0
Akira Takahashi
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
Akira Takahashi
C++14 enum hash
C++14 enum hash
Akira Takahashi
Multi paradigm design
Multi paradigm design
Akira Takahashi
Start Concurrent
Start Concurrent
Akira Takahashi
Programmer mind
Programmer mind
Akira Takahashi
Boost.Study 14 Opening
Boost.Study 14 Opening
Akira Takahashi
Executors and schedulers
Executors and schedulers
Akira Takahashi
Mehr von Akira Takahashi
(20)
Cpp20 overview language features
Cpp20 overview language features
Cppmix 02
Cppmix 02
Cppmix 01
Cppmix 01
Modern C++ Learning
Modern C++ Learning
cpprefjp documentation
cpprefjp documentation
C++1z draft
C++1z draft
Boost tour 1_61_0 merge
Boost tour 1_61_0 merge
Boost tour 1_61_0
Boost tour 1_61_0
Boost tour 1.60.0 merge
Boost tour 1.60.0 merge
Boost tour 1.60.0
Boost tour 1.60.0
Boost container feature
Boost container feature
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
Boost Tour 1_58_0
Boost Tour 1_58_0
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
C++14 enum hash
C++14 enum hash
Multi paradigm design
Multi paradigm design
Start Concurrent
Start Concurrent
Programmer mind
Programmer mind
Boost.Study 14 Opening
Boost.Study 14 Opening
Executors and schedulers
Executors and schedulers
Doc and Error Handling
1.
ドキュメントとエラーハンドリング
高橋 晶(Akira Takahashi) id:faith_and_brave @cpp_akira エラーハンドリング勉強会 2011/09/04(日)
2.
自己紹介 •
株式会社ロングゲート 取締役 • C++テンプレートメタプログラマ • Boost Geometry Libraryコントリビュータ • 『プログラミングの魔導書』 編集長。
3.
チュートリアル • チュートリアルにはエラーハンドリングが記載
されていないことが多い。 • そのまま使用すると、あとで想定していなかっ たエラーが発生してしまう場合がある。
4.
ドキュメントは大事! • 適切なエラーハンドリングを行うためには、ド
キュメントをしっかり読まないといけない。 • その関数はどういったケースでどういったエ ラーを出力する可能性があるのか。 そのエラーは、そのプロジェクトで起こること が想定できるものか。
5.
ドキュメントの読み方 • 直接記載されていないエラーが報告される可
能性がある。 • その関数自体だけではなく、引数として渡し たオブジェクトがエラーを報告する場合もある。 • その関数が引数をどのように扱うのか注意し て読む必要がある。
6.
アンドキュメントなものは使わない • アンドキュメントな機能は、将来のバージョンアップで予
告なく変更・削除される可能性がある。 • 「ライブラリをアップデートしたらリリースノートにも変更 が書かれていないのに動かなくなった」では困る。 • アンドキュメントだが有用な機能だと思うなら、それを作 者に報告し、方針を確認した上で使おう。 例. 「アンドキュメントだからまだ使わないほうがいい?」 「ドキュメントパッチを送れば取り込んでくれる?」
7.
ドキュメントに記載されていないエラー • ドキュメントに記載されていないエラーを投げ
る可能性が、実装を読んで発覚する場合が ある。 • ドキュメントバグなので報告しよう。 • アンドキュメントなエラーをハンドリングする場 合は、その旨コメントに書こう。 報告した際のチケット番号を記載するとGood!
8.
ドキュメント読むのめんどくさい • めんどくさいです。 • ドキュメント読まなくても適切なエラーハンドリ
ングがしたい! • ライブラリ作者は、間違った使い方をした場合 や、適切なエラーハンドリングを行わなかった 場合に、事前にそれを検知できる機構を用意 すべし。
9.
型付けしよう • 静的型付け言語では、型付けによって、間違った使い
方をした場合にコンパイルエラーにすることができる。 • ハンドリング洩れも、がんばればチェックできると思う (戻り値を受け取ったかのチェック、エラーチェックした か、をコンパイル時に判断するのは難しい)。 • ただし例外の型付け、ハンドリング洩れの静的チェッ クは難しい。IDEのサポートに期待。 (もしくは例外を積極的に使わない)
10.
まとめ • ドキュメントは大事 • アプリケーションコードの全ての関数までドキュメントを記
載する必要はないが、ライブラリコードはドキュメントを書 くべし。 • ドキュメントが間違っていたら報告しよう。 それはあとに続く開発者にとって有益。 • 型は大事。 型はプログラム内にプログラムで記載されたドキュメント。
Jetzt herunterladen