Submit Search
Upload
Effective Java 輪読会 第7章 項目38-40
•
Download as PPTX, PDF
•
2 likes
•
885 views
Appresso Engineering Team
Follow
Technology
Report
Share
Report
Share
1 of 27
Download now
Recommended
Effective Java 輪読会 第7章 項目41-42
Effective Java 輪読会 第7章 項目41-42
Appresso Engineering Team
Effective Java 輪読会 第7章 項目43-44
Effective Java 輪読会 第7章 項目43-44
Appresso Engineering Team
Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31
Appresso Engineering Team
Effective Java 輪読会 項目53-56
Effective Java 輪読会 項目53-56
Appresso Engineering Team
20150302 java8 第一回_ラムダ式(1)
20150302 java8 第一回_ラムダ式(1)
Appresso Engineering Team
Effective Java 輪読会 項目77-78
Effective Java 輪読会 項目77-78
Appresso Engineering Team
Effective Java 輪読会 項目74-75
Effective Java 輪読会 項目74-75
Appresso Engineering Team
「デザインパターン入門 マルチスレッド編」輪読会、第1回「Single Threaded Execution」のスライド。
マルチスレッド デザインパターン ― Single Threaded Execution
マルチスレッド デザインパターン ― Single Threaded Execution
Appresso Engineering Team
Recommended
Effective Java 輪読会 第7章 項目41-42
Effective Java 輪読会 第7章 項目41-42
Appresso Engineering Team
Effective Java 輪読会 第7章 項目43-44
Effective Java 輪読会 第7章 項目43-44
Appresso Engineering Team
Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31
Appresso Engineering Team
Effective Java 輪読会 項目53-56
Effective Java 輪読会 項目53-56
Appresso Engineering Team
20150302 java8 第一回_ラムダ式(1)
20150302 java8 第一回_ラムダ式(1)
Appresso Engineering Team
Effective Java 輪読会 項目77-78
Effective Java 輪読会 項目77-78
Appresso Engineering Team
Effective Java 輪読会 項目74-75
Effective Java 輪読会 項目74-75
Appresso Engineering Team
「デザインパターン入門 マルチスレッド編」輪読会、第1回「Single Threaded Execution」のスライド。
マルチスレッド デザインパターン ― Single Threaded Execution
マルチスレッド デザインパターン ― Single Threaded Execution
Appresso Engineering Team
JavaScript 勉強会、「JavaScript 第6版」の 3 章「型、値、変数」の変数、4 章「式と演算子」、5 章「文」のスライド。
JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 変数・演算子・文
Appresso Engineering Team
JavaScript 勉強会、「JavaScript 第6版」の 3 章「型、値、変数」のスライド。
JavaScript 勉強会 ― 型と値
JavaScript 勉強会 ― 型と値
Appresso Engineering Team
Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70追加
Appresso Engineering Team
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70
Appresso Engineering Team
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68
Appresso Engineering Team
Effective Java 輪読会 項目71-73
Effective Java 輪読会 項目71-73
Appresso Engineering Team
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
Appresso Engineering Team
Effective Java 輪読会 項目63-65
Effective Java 輪読会 項目63-65
Appresso Engineering Team
Effective Java 輪読会 項目60-62
Effective Java 輪読会 項目60-62
Appresso Engineering Team
Effective java 輪読会 項目57-59
Effective java 輪読会 項目57-59
Appresso Engineering Team
Effective Java 輪読会 項目49-52
Effective Java 輪読会 項目49-52
Appresso Engineering Team
Effective Java 輪読会 項目45-48
Effective Java 輪読会 項目45-48
Appresso Engineering Team
Effective Java 輪読会 第6章 項目35-37
Effective Java 輪読会 第6章 項目35-37
Appresso Engineering Team
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
Appresso Engineering Team
Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目26-29
Appresso Engineering Team
Effective java 輪読会 第5章 項目23-25
Effective java 輪読会 第5章 項目23-25
Appresso Engineering Team
Effective java 輪読会 第4章 項目18-22
Effective java 輪読会 第4章 項目18-22
Appresso Engineering Team
Effective Java 輪読会 第4章 項目13-17
Effective Java 輪読会 第4章 項目13-17
Appresso Engineering Team
第3章 項目11, 12
Effective java 輪読会 第3章 項目11, 12
Effective java 輪読会 第3章 項目11, 12
Appresso Engineering Team
3章 項目8,9,10
Effective java 輪読会 第3章 項目8,9,10
Effective java 輪読会 第3章 項目8,9,10
Appresso Engineering Team
2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
iPride Co., Ltd.
Issueやチケット、チャットなど、情報を書いて伝える場面がたくさんあります。 情報を表現するときのポイントについて、3つほど紹介したいと思います。
情報を表現するときのポイント
情報を表現するときのポイント
onozaty
More Related Content
More from Appresso Engineering Team
JavaScript 勉強会、「JavaScript 第6版」の 3 章「型、値、変数」の変数、4 章「式と演算子」、5 章「文」のスライド。
JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 変数・演算子・文
Appresso Engineering Team
JavaScript 勉強会、「JavaScript 第6版」の 3 章「型、値、変数」のスライド。
JavaScript 勉強会 ― 型と値
JavaScript 勉強会 ― 型と値
Appresso Engineering Team
Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70追加
Appresso Engineering Team
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70
Appresso Engineering Team
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68
Appresso Engineering Team
Effective Java 輪読会 項目71-73
Effective Java 輪読会 項目71-73
Appresso Engineering Team
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
Appresso Engineering Team
Effective Java 輪読会 項目63-65
Effective Java 輪読会 項目63-65
Appresso Engineering Team
Effective Java 輪読会 項目60-62
Effective Java 輪読会 項目60-62
Appresso Engineering Team
Effective java 輪読会 項目57-59
Effective java 輪読会 項目57-59
Appresso Engineering Team
Effective Java 輪読会 項目49-52
Effective Java 輪読会 項目49-52
Appresso Engineering Team
Effective Java 輪読会 項目45-48
Effective Java 輪読会 項目45-48
Appresso Engineering Team
Effective Java 輪読会 第6章 項目35-37
Effective Java 輪読会 第6章 項目35-37
Appresso Engineering Team
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
Appresso Engineering Team
Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目26-29
Appresso Engineering Team
Effective java 輪読会 第5章 項目23-25
Effective java 輪読会 第5章 項目23-25
Appresso Engineering Team
Effective java 輪読会 第4章 項目18-22
Effective java 輪読会 第4章 項目18-22
Appresso Engineering Team
Effective Java 輪読会 第4章 項目13-17
Effective Java 輪読会 第4章 項目13-17
Appresso Engineering Team
第3章 項目11, 12
Effective java 輪読会 第3章 項目11, 12
Effective java 輪読会 第3章 項目11, 12
Appresso Engineering Team
3章 項目8,9,10
Effective java 輪読会 第3章 項目8,9,10
Effective java 輪読会 第3章 項目8,9,10
Appresso Engineering Team
More from Appresso Engineering Team
(20)
JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 型と値
JavaScript 勉強会 ― 型と値
Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目71-73
Effective Java 輪読会 項目71-73
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
Effective Java 輪読会 項目63-65
Effective Java 輪読会 項目63-65
Effective Java 輪読会 項目60-62
Effective Java 輪読会 項目60-62
Effective java 輪読会 項目57-59
Effective java 輪読会 項目57-59
Effective Java 輪読会 項目49-52
Effective Java 輪読会 項目49-52
Effective Java 輪読会 項目45-48
Effective Java 輪読会 項目45-48
Effective Java 輪読会 第6章 項目35-37
Effective Java 輪読会 第6章 項目35-37
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目23-25
Effective java 輪読会 第5章 項目23-25
Effective java 輪読会 第4章 項目18-22
Effective java 輪読会 第4章 項目18-22
Effective Java 輪読会 第4章 項目13-17
Effective Java 輪読会 第4章 項目13-17
Effective java 輪読会 第3章 項目11, 12
Effective java 輪読会 第3章 項目11, 12
Effective java 輪読会 第3章 項目8,9,10
Effective java 輪読会 第3章 項目8,9,10
Recently uploaded
2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
iPride Co., Ltd.
Issueやチケット、チャットなど、情報を書いて伝える場面がたくさんあります。 情報を表現するときのポイントについて、3つほど紹介したいと思います。
情報を表現するときのポイント
情報を表現するときのポイント
onozaty
https://iotlt.connpass.com/event/318403/
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
Ayachika Kitazaki
This paper provides a comprehensive overview of motion planning for robotic manipulation, encompassing grasp planning, motion planning, MoveIt in ROS, OMPL, RRT, forward and inverse kinematics, singularity of robotic manipulators, and manipulability.
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
Satoshi Makita
第23回 Customer系エンジニア座談会 の LT 公開用スライドです。 https://customer-x-engineer.connpass.com/event/314639/ クラウド電話システム CallConnect に興味を持った方はこちら。 https://www.callconnect.jp/?slideshare お気軽にフォロー/DM お待ちしています。 https://x.com/24guchia https://www.facebook.com/eiichi.nishiguchi
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
瑛一 西口
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
CRI Japan, Inc.
Keywordmap概要資料です。
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
kokinagano2
Yufei Xu, Jing Zhang, Qiming ZHANG, Dacheng Tao, "ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation" NeurIPS2022 https://proceedings.neurips.cc/paper_files/paper/2022/hash/fbb10d319d44f8c3b4720873e4177c65-Abstract-Conference.html
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
Toru Tamaki
Research Presentation
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
TSG LIVE! 12 LT
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
iwashiira2ctf
ネットワーク可視化 振る舞い検知(NDR)ご紹介
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
Takayuki Nakayama
講演者 : 株式会社日立製作所 佐藤 竜也氏 2024年5月16日開催 Hyperledger Tokyo Meetupで講演
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperleger Tokyo Meetup
先駆的科学計算フォーラム2024の講演資料です。
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
KLab Inc. / Tech
SREが提唱された当初(2004年)とクラウドネイティブな現代(2020年代以降)では求められる役割が変わってきている。本発表では2020年代以降で求められるSREの役割についてUPWARDの取組みに基づいて紹介する。
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
Akihiro Kadohata
営業部内で実施したIT用語の勉強会資料。
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
Sadaomi Nishi
Security-JAWS【第33回】 勉強会 https://s-jaws.doorkeeper.jp/events/173294
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
keikoitakurag
Recently uploaded
(16)
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
情報を表現するときのポイント
情報を表現するときのポイント
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Effective Java 輪読会 第7章 項目38-40
1.
Effective Java 輪読会
第6回 (項目38~40) 2014/2/12 開発部 野口
2.
項目38 パラメータの正当性を検査する
3.
パラメータの正当性を検査する エラーが発生したらできるだけ速やかにエ ラーを検出すべき メソッドはパラメータへの制約をメソッド本体の 初めに検査すべき
4.
パラメータの正当性を 検査しない場合 処理の途中で訳の分からない性外で失敗する メソッドは正常にリターンするが、何も言わ ずに誤った結果を計算する
メソッドは正常にリターンするが、いくつか のオブジェクトを不正な状態のままにする 後になって、コードの全く関係のない箇所でエ ラーを引き起こす 最悪!
5.
例外を文書化する public のメソッドに対しては、パラメータ値 に関する制約が守られていない場合にスロー される例外を文書化する
Javadoc の @throws タグを使用 IllegalArgumentException、 IndexOutOfBoundsException、 NullPointerException 等 文書化さえできれば、コードを書くのは簡単
6.
アサーションを用いる 公開されていないメソッドに関しては、ア サーションを用いてパラメータを検査する DataSpider
では、独自のアサーション用ユー ティリティクラス com.appresso.ds.common.fw.Assert を用いてい る
7.
規則に対する例外 正当性検査のコストが高いか現実的でない かつ、正当性検査が計算の処理の中で暗黙に 行われる
例)Collections.sort(List) ただし、エラーアトミック性(項目64)に注意が 必要 失敗したメソッド呼び出しは、オブジェクトをそのメ ソッド呼び出しの前の状態にしておくべき
8.
注意:制約はよいものではない 制約がなくなるくらい、メソッドを一般的に 設計すべき 実際には、制約がやむをえない場合が多いの で、その際は文書化し、チェックする
9.
まとめ メソッドあるいはコンストラクタを書く際に は、パラメータの制約を考える 制約を文書化する
メソッド本体のはじめで明示的に検査し、制 約を強制する
10.
項目39 必要な場合には、防御的にコピーする
11.
Java は安全な言語 バッファオーバーランを始めとするメモリ破 壊エラーに対して、免疫がある
(疑問:「免疫がある」ということは、 completely free というわけではない?)
12.
それでも守る努力は必要 クラスのクライアントは、クラスの不変式を 破壊するために徹底した努力をする と想定して防御的にプログラムすべき
セキュリティを破ろうとする悪意のプログラ マ よりも、むしろ使用者の単純なミスが問題
13.
セキュリティホールの例 pp.178 Period
クラス コンストラクタで渡した Date を、渡したあとも 変更できる(pp.179) start / end メソッドの戻り値を変更することで、 Period の内部を変更できる(pp.180)
14.
セキュリティホールへの対処 コンストラクタで、防御的コピー(pp.179) TOCTOU
攻撃に備えるため、コピーに対して正 当性を検査する サブクラス化に対処するため、clone メソッドを 使用しない アクセッサ-でも、防御的コピー(pp.180)
15.
本当の教訓 可能な場所では、オブジェクトの構成要素と して不変オブジェクトを使用する 例)Date
ではなく、Date.getTime() の戻り値 (long)を用いる
16.
トレードオフ パフォーマンス上のペナルティはありうる クラスとその呼び出し元が同じパッケージの一部 であるような場合には、防御的コピーを行わず、 かわりにドキュメンテーションで済ませるといっ た手もある
17.
制御の移転 パッケージ境界を越えるとしても、あえて防 御的にコピーしないケース ドキュメンテーションに制御の移転が必要で あることを示し、クライアントはそれに従う
例)ラッパークラス ラッパークラスでは、一般に制御を移転したあとにオ ブジェクトを変更した場合に、クライアント自身にの み害を及ぼす
18.
まとめ クラスがそのクライアントから得たり、クラ イアントへ返したりする可変の要素を持って いるならば、防御的にコピーする コピーのコストが非常に高く、クライアント が要素を不適切に変更しないことを信頼でき るなら、その旨をドキュメンテーションに示 す
19.
項目40 メソッドのシグニチャを注意深く設計す る
20.
メソッド名を注意深く選ぶ 理解可能 同じパッケージ内の他の名前と矛盾がない
広範囲のコンセンサスと矛盾がない Java ライブラリーの API がガイダンスになる まあ、ところどころ矛盾もあるけど……。 大きさとか、歴史的な経緯とか
21.
便利なメソッドを提供し過ぎたり しないようにする 個々のメソッドは、「自分の役割を果たす」 こと 型がサポートしている個々の処理について完 全に機能すること
速記法は本当に頻繁に使用され、明らかに役 に立つ場合だけ 特にインタフェースには注意 多くのメソッドを持つインタフェースはユーザお よび実装者の人生を複雑にする 人生、シンプルな方が(精神衛生上)よい
22.
長いパラメータのリストは避ける 4 個以下を目標に
マジックナンバー 7±2 という説もありますね 同じ型のパラメータが何個も続くのは特に有 害 順序を間違えてもコンパイルエラーにならない
23.
パラメータリスト短縮法その1 メソッドを複数のメソッドに分割する 直交性を増加させ、メソッド数を減らすこともで きる
例)java.util.List の subList メソッドと、indexOf / lastIndexOf メソッド
24.
パラメータリスト短縮法その2 ヘルパークラス static
のメンバークラス 例)カードゲームを表すクラスにおいて、ランク とスートを常に同時に扱っているなら、「カー ド」ヘルパークラスを導入する
25.
パラメータリスト短縮法その3 ビルダーパターンの応用 saucepan.water(400).sugar(5).salt(10).cube(Cub e.Chicken,
2).cook()
26.
パラメータ型に関しては、 クラスよりインタフェースを選ぶ たとえば、HashMap ではなく
Map を使う たまたま HashMap 以外の Map を持っているク ライアントを煩わせずにすむ 参照)項目 52 インタフェースでオブジェクトを 参照する 『実装パターン』(Kent Beck)にも同様の議論があ りました
27.
boolean パラメータより 2
つの要 素を持つ enum 型を使用する 読みやすくなる IDE のコード補完を活用できる オプションを追加しやすい メソッドへのリファクタリングも可能
Download now