Submit Search
Upload
Rust Error Handling
•
0 likes
•
365 views
S
ShunsukeNakamura17
Follow
第5回社内Rust勉強会MoT.rsの発表資料です RustのResult型 / ? pattern / anyhow / thiserror について話しました
Read less
Read more
Report
Share
Report
Share
1 of 27
Download now
Download to read offline
Recommended
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
- phpcon2022 の発表 - https://fortee.jp/phpcon-2022/proposal/b85ca73f-6383-4485-b2ae-4ec3e0913e72
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
レガシーコード改善勉強会 in Yahoo Japan 2014.09.27 プロジェクトに対する方法論構築と、タスクマネジメントについての紹介 後半はMikado Methodの簡易紹介です。
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
devfest tokyo 2017
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
Yusuke Suzuki
2019年8月12日に開催されたセミナー「トラディショナル企業のための、“ビジネスに効く”、アプリケーションモダナイゼーション実践法 ~アプリ開発・提供の「スピードと品質」をどう両立するか~」での基調講演「“実ビジネス”のための、アプリケーションモダナイゼーション導入ステップ なぜ「マイクロサービス“化”」が必要なのか――」の資料です。 https://itmedia.smartseminar.jp/public/application/add/2203
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
SNSのアカウントを見つけてくれるツール「Blackbird」のレビュースライドです。
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 河合 宜文(株式会社Cysharp) こんな人におすすめ ・C#を極めたいエンジニア ・パフォーマンスに興味のあるエンジニア ・プログラミング言語マニア 受講者が得られる知見 ・structに関する深い知識 ・パフォーマンス向上のヒント ・C#の新しい文法と活用法 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
Recommended
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
- phpcon2022 の発表 - https://fortee.jp/phpcon-2022/proposal/b85ca73f-6383-4485-b2ae-4ec3e0913e72
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
レガシーコード改善勉強会 in Yahoo Japan 2014.09.27 プロジェクトに対する方法論構築と、タスクマネジメントについての紹介 後半はMikado Methodの簡易紹介です。
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
devfest tokyo 2017
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
Yusuke Suzuki
2019年8月12日に開催されたセミナー「トラディショナル企業のための、“ビジネスに効く”、アプリケーションモダナイゼーション実践法 ~アプリ開発・提供の「スピードと品質」をどう両立するか~」での基調講演「“実ビジネス”のための、アプリケーションモダナイゼーション導入ステップ なぜ「マイクロサービス“化”」が必要なのか――」の資料です。 https://itmedia.smartseminar.jp/public/application/add/2203
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
SNSのアカウントを見つけてくれるツール「Blackbird」のレビュースライドです。
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 河合 宜文(株式会社Cysharp) こんな人におすすめ ・C#を極めたいエンジニア ・パフォーマンスに興味のあるエンジニア ・プログラミング言語マニア 受講者が得られる知見 ・structに関する深い知識 ・パフォーマンス向上のヒント ・C#の新しい文法と活用法 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
async/await のしくみ
async/await のしくみ
信之 岩永
https://connpass.com/event/95696/ 2018/9/15 「Unity 非同期完全に理解した勉強会」にて登壇
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
JJUG-CCC 日本Javaユーザーズグループクロスコミュニティカンファレンス 2018/12 登壇資料です。
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
第14回 全ゲ連での講演資料です。 Twitter: @Reputeless
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
より速く より運用しやすく 進化し続けるJVM (Java Developers Summit Online 2023 発表資料) 2023年2月28日(火) NTTデータ 技術開発本部 阪田 浩一
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
エヴァンス本を読んだことがない人、ネット上の情報を聞きかじったことがある程度の人、そんな人たちを対象に、ドメイン駆動設計について、わかりやすく説明してみました。
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
2021年にインフィニットループ社内の新卒向け研修で使われた資料です。
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Dockerコンテナ内からGitを利用する手順
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
Docker Meetup Tokyo #26での発表資料です。 いろいろなコンテナランタイムについて、機能、セキュリティ、パフォーマンス、開発動向に着目して比較調査および性能測定を行ないました。 ぜひ以下の記事も合わせてご参照ください。 『今話題のいろいろなコンテナランタイムを比較してみた[Docker Meetup Tokyo #26発表レポート]』 https://medium.com/nttlabs/container-runtime-d3e25189f67a unikernelベースのイメージの作り方などの技術的な話題は付録にも記載しましたが、近々、別の形でもまとめようと考えています。 [留意] 本資料中の性能測定は、コンテナランタイムのCRI命令処理(Podやコンテナの作成から削除までの各ステップのCRI命令)の性能を測定したものです。 それらCRI命令への処理はあくまでもコンテナランタイムが行うことのごく一部に過ぎず、それ単体ではコンテナランタイムそのものの性能を決定し得えないことに留意ください。
App013 ここはあえて紙と
App013 ここはあえて紙と
Tech Summit 2016
ここはあえて紙とペン!Value Stream Mapping で開発サイクルの無駄を炙り出せ!
実践 NestJS
実践 NestJS
Ayumi Goto
株式会社オロ 新規事業開発チーム 後藤歩と申します。 NestJSは弊社の2つのプロダクトで1年ほど使っています。 (個人的にも1プロダクトで使っており、合計3プロダクトでNestJSを使って開発をしています) その実例をコードを交えてご紹介できればと思います。 システム構成 認証、認可、フレームワーク、DB、API、バリデーション、キューイング、スケジューリング、マイグレーション、テスト、- Swagger、i18nをどのようにやっているかのコードを交えて実例紹介 など
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
どこに何を書くのか?
どこに何を書くのか?
pospome
コード改善 meetup #3
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
PHPカンファレンス福岡2019での発表資料です
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
JJUG CCC 2019 Springの登壇資料です。 http://www.java-users.jp/ccc2019spring/#/sessions/7fbef8cc-bf8d-4855-8534-c7fca118fb1d
Python physicalcomputing
Python physicalcomputing
Noboru Irieda
#pyconjp 2011/01
Kanazawa.js.Next
Kanazawa.js.Next
dynamis
Kanazawa.js 1.7 with Mozilla で利用したスライド 容量 10MB 制限があった時期に SpeakerDeck に UP していたもの: http://speakerdeck.com/u/dynamis/p/kanazawajavascriptnext
More Related Content
What's hot
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
async/await のしくみ
async/await のしくみ
信之 岩永
https://connpass.com/event/95696/ 2018/9/15 「Unity 非同期完全に理解した勉強会」にて登壇
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
JJUG-CCC 日本Javaユーザーズグループクロスコミュニティカンファレンス 2018/12 登壇資料です。
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
第14回 全ゲ連での講演資料です。 Twitter: @Reputeless
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
より速く より運用しやすく 進化し続けるJVM (Java Developers Summit Online 2023 発表資料) 2023年2月28日(火) NTTデータ 技術開発本部 阪田 浩一
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
エヴァンス本を読んだことがない人、ネット上の情報を聞きかじったことがある程度の人、そんな人たちを対象に、ドメイン駆動設計について、わかりやすく説明してみました。
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
2021年にインフィニットループ社内の新卒向け研修で使われた資料です。
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Dockerコンテナ内からGitを利用する手順
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
Docker Meetup Tokyo #26での発表資料です。 いろいろなコンテナランタイムについて、機能、セキュリティ、パフォーマンス、開発動向に着目して比較調査および性能測定を行ないました。 ぜひ以下の記事も合わせてご参照ください。 『今話題のいろいろなコンテナランタイムを比較してみた[Docker Meetup Tokyo #26発表レポート]』 https://medium.com/nttlabs/container-runtime-d3e25189f67a unikernelベースのイメージの作り方などの技術的な話題は付録にも記載しましたが、近々、別の形でもまとめようと考えています。 [留意] 本資料中の性能測定は、コンテナランタイムのCRI命令処理(Podやコンテナの作成から削除までの各ステップのCRI命令)の性能を測定したものです。 それらCRI命令への処理はあくまでもコンテナランタイムが行うことのごく一部に過ぎず、それ単体ではコンテナランタイムそのものの性能を決定し得えないことに留意ください。
App013 ここはあえて紙と
App013 ここはあえて紙と
Tech Summit 2016
ここはあえて紙とペン!Value Stream Mapping で開発サイクルの無駄を炙り出せ!
実践 NestJS
実践 NestJS
Ayumi Goto
株式会社オロ 新規事業開発チーム 後藤歩と申します。 NestJSは弊社の2つのプロダクトで1年ほど使っています。 (個人的にも1プロダクトで使っており、合計3プロダクトでNestJSを使って開発をしています) その実例をコードを交えてご紹介できればと思います。 システム構成 認証、認可、フレームワーク、DB、API、バリデーション、キューイング、スケジューリング、マイグレーション、テスト、- Swagger、i18nをどのようにやっているかのコードを交えて実例紹介 など
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
どこに何を書くのか?
どこに何を書くのか?
pospome
コード改善 meetup #3
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
PHPカンファレンス福岡2019での発表資料です
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
JJUG CCC 2019 Springの登壇資料です。 http://www.java-users.jp/ccc2019spring/#/sessions/7fbef8cc-bf8d-4855-8534-c7fca118fb1d
What's hot
(20)
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
async/await のしくみ
async/await のしくみ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Twitterのsnowflakeについて
Twitterのsnowflakeについて
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
App013 ここはあえて紙と
App013 ここはあえて紙と
実践 NestJS
実践 NestJS
例外設計における大罪
例外設計における大罪
どこに何を書くのか?
どこに何を書くのか?
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Similar to Rust Error Handling
Python physicalcomputing
Python physicalcomputing
Noboru Irieda
#pyconjp 2011/01
Kanazawa.js.Next
Kanazawa.js.Next
dynamis
Kanazawa.js 1.7 with Mozilla で利用したスライド 容量 10MB 制限があった時期に SpeakerDeck に UP していたもの: http://speakerdeck.com/u/dynamis/p/kanazawajavascriptnext
JJavaプログラム実行の仕組みと、高速・安定動作に向けた取り組み
JJavaプログラム実行の仕組みと、高速・安定動作に向けた取り組み
日本Javaユーザーグループ
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
fukuoka.ex
Elixirの「スーパーバイザ」を使って、シンプルかつ強力な耐障害性を実現するコードをサクっと書いてみます
The Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
2014/05/31 のめとべや東京 #4 での発表資料
JavaScript.Next
JavaScript.Next
dynamis
Developers Summit 2012 で使用したスライド 後半を抜き出し少し更新したものはこちら: http://www.slideshare.net/dynamis/kanazawajsnext
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
CHY72
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
mitamex4u
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
和弘 井之上
無料で入手できるビジュアル開発ツール「Delphi Starter Edition / C++ Builder Starter Edition」 を使って 、楽しくプログラミングを学びましょう。毎週月曜17時より、オンライン放送。1シーズン約3ヶ月ごとに、テーマを分けて学んでいきます。視覚的かつ直感的に開発を進めることのできるDelphi / C++Builderを用いれば、プログラミング知識のない方も、よりかんたんにプログラミング技術とアプリ開発のスキルを身に着けることができます。 シーズン2 C++Builderの部 第3回 ‟条件とループ„ セミナー資料
JavaScript.Next Returns
JavaScript.Next Returns
dynamis
DevSumi 2012 Kansai で使用したスライドです
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
hakoika-itwg
はこだてIKA ITWG 第4回勉強会 単体テストのすすめで使用した資料です。 発表後に資料を追加してたりします。
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
はこだてIKA 第4回勉強会
nadoka さんの m17n 対応のベストプラクティス
nadoka さんの m17n 対応のベストプラクティス
Kazuhiro Nishiyama
IRCnet の日本語チャンネルでは iso-2022-jp が使われていて、 iso-2022-jp は ascii compatible ではありません。 そのことが様々な問題を引き起こします。 その問題をどう解決したのか、 nadoka さんでの m17n 対応の最善の方法は何なのか、 ということについて話をする予定です。
Swift 2.0 で変わったところ「前編」 #cswift
Swift 2.0 で変わったところ「前編」 #cswift
Tomohiro Kumagai
2015.07.25 に開催した『カジュアル Swift 勉強会』で、Swift 2.0 での変更点をざっくりと紹介してみました。気づいた全部を紹介するつもりでいたんですけど、思いのほか量が多くてひとまずは「前編」という形で、とりわけ目立つ変更点を取り上げてみます。
Lt会01_uetch
Lt会01_uetch
Tomoaki Ueda
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
和弘 井之上
無料で入手できるビジュアル開発ツール「Delphi Starter Edition / C++ Builder Starter Edition」 を使って 、楽しくプログラミングを学びましょう。毎週月曜17時より、オンライン放送。1シーズン約3ヶ月ごとに、テーマを分けて学んでいきます。視覚的かつ直感的に開発を進めることのできるDelphi / C++Builderを用いれば、プログラミング知識のない方も、よりかんたんにプログラミング技術とアプリ開発のスキルを身に着けることができます。 シーズン2 C+Builderの部 第1回 ‟シューティングゲームのプログラム„ セミナー資料
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
Boost.勉強会 #21 札幌の発表時のスライドです。Visual C++のコード分析機能で使われるSALの導入的な説明です。
こんな辛いテストはいやだ
こんな辛いテストはいやだ
Takuya Mikami
社内LTで発表した、テストにまつわるお話の資料です
Inside FastEnum
Inside FastEnum
Takaaki Suzuki
Event : .NET Conf in Tokyo 2019 Date : 2019/10/27 .NET Core 3.0 がリリースされさらなるパフォーマンスチューニングが行われましたが、Enum は依然として遅いままです。FastEnum はその苦痛を緩和する世界最速の Enum Utility ライブラリです。 このドキュメントでは FastEnum の中で使われているテクニックや .NET Core 標準が遅い理由などについて解説し、速いコードを書くための一助となるようにします。
Jpmobileを使ってみる
Jpmobileを使ってみる
Hiromu Shioya
第1回社内勉強会「あわててはじめるRuby on Rails」 第3部「Jpmobileを使ってみる」
Similar to Rust Error Handling
(20)
Python physicalcomputing
Python physicalcomputing
Kanazawa.js.Next
Kanazawa.js.Next
JJavaプログラム実行の仕組みと、高速・安定動作に向けた取り組み
JJavaプログラム実行の仕組みと、高速・安定動作に向けた取り組み
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
The Next Generation for C# Developers
The Next Generation for C# Developers
JavaScript.Next
JavaScript.Next
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
JavaScript.Next Returns
JavaScript.Next Returns
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
nadoka さんの m17n 対応のベストプラクティス
nadoka さんの m17n 対応のベストプラクティス
Swift 2.0 で変わったところ「前編」 #cswift
Swift 2.0 で変わったところ「前編」 #cswift
Lt会01_uetch
Lt会01_uetch
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
こんな辛いテストはいやだ
こんな辛いテストはいやだ
Inside FastEnum
Inside FastEnum
Jpmobileを使ってみる
Jpmobileを使ってみる
Rust Error Handling
1.
Mobility Technologies Co.,
Ltd. Rust Error Handling 2021/04/28 @MoT.rs Shunsuke Nakamura AI技術開発部
2.
Mobility Technologies Co.,
Ltd. 今日やること 2 - Rustのエラー表現 - エラーによるフロー制御 - よくあるエラー処理 - エラー時の早期リターン - ライブラリを使用したエラー処理のベストプラクティス
3.
Mobility Technologies Co.,
Ltd. Rustのエラー表現 3 ■ Rust には Java や Python のような例外はなく、Result型でエラーを表現する ■ Result型は Result<{Ok の時の中身の型}, {Errの時の中身の型}> で定義する ■ 実体はただのEnum型
4.
Mobility Technologies Co.,
Ltd. 問題1 4 Rust playground にかかれているコードのコンパイルエラーを解消してください
5.
Mobility Technologies Co.,
Ltd. 解説1 5 Okの際には i32 を、Err の際には ZeroDivisionError を返しているため、 ここでは Result<i32, ZeroDivisionError> を返せば良い
6.
Mobility Technologies Co.,
Ltd. エラーによるフロー制御 6 Result型に対して、OkとErrで処理を分けたい場合 Result型はenumなので簡単なパターンマッチングで処理を分岐させられる ※ enumのVariantによるフロー制御
7.
Mobility Technologies Co.,
Ltd. 問題2 7 Rust playground にかかれているコードのコンパイルエラーを解消してください ヒント 1. Result<T, E>はOk<T>とErr<E>のenum型です 2. enum & パターンマッチによるフロー制御はスライドの前ページを参照してください
8.
Mobility Technologies Co.,
Ltd. 解説2 8 Okの際は改めて中身を val として受けて表示し、 Errのときは _ で受けてエラーメッセージを出しています(eprintln! 等を使うとなお良い) _ で受けると「この変数は使用しない」ということを意味します 参考
9.
Mobility Technologies Co.,
Ltd. よくあるエラー処理 9 ■ 毎回パターンマッチを書くのは面倒。よくある処理はより短いメソッドを用意してくれている ■ unwrap: Okなら中身の値を取り出し、Errなら終了する。頻出 ■ 問題点として、Errだと本当にpanic終了してしまうので、そこでコードが落ちる。 ■ 本当に落として良いところでしか使ってはいけない ■ expect: Okなら中身の値を取り出し、Errならメッセージを付けて終了する ■ 問題点として、Errだと本当にpanic終了してしまうので、そこでコードが落ちる。 ■ 本当に落として良いところでしか使ってはいけない ■ and_then: Okなら後段の処理を継続し、ErrならErrを伝播させていく ■ 例外処理を上段に任せて正常ケースだけ処理を進めていく時に便利
10.
Mobility Technologies Co.,
Ltd. 問題3 10 Rust playground にかかれているコードのコンパイルエラーを解消してください ヒント Result型に用意されているメソッド一覧です https://doc.rust-lang.org/std/result/enum.Result.html
11.
Mobility Technologies Co.,
Ltd. 解説3 11 答え unwrap, expect, and_then をそれぞれで使います and_thenの中では次に実行するfunctionを渡してあげる必要があるので、 closure形式で渡しています
12.
Mobility Technologies Co.,
Ltd. 早期リターンと?演算子 12 メソッドの中で使用している値がOkなら値を取り出して、Errなら早期returnする、というコードをよく書くこと がある 下のようにパターンマッチを書いてもいいが、毎回これを書くのは面倒なので、 syntax sugarとして、?演算子が用意されている
13.
Mobility Technologies Co.,
Ltd. 問題4 13 Rust playground にかかれているコードのコンパイルエラーを解消してください
14.
Mobility Technologies Co.,
Ltd. 解説4 14 ? を使って Err 時に早期 returnさせます。 もちろん match を使って早期 return させてもいいですが、? のほうが短く済むし、見やすいです
15.
Mobility Technologies Co.,
Ltd. 複数のErrorを扱う 15 文字列 a, b を受け取って、i32型としてパースした後に割り算を行う関数を書いたとする これは以下のコンパイルエラーとなる。
16.
Mobility Technologies Co.,
Ltd. より正確な?演算子 16 ?演算子は受け取ったErr<E1>と、returnすべきErr<E2>が異なる時(E1 != E2のとき)、 型通りにreturnできるよう、E1をE2に型変換しようとしてくれる(同じ時は同じ型に変換する) RustでのA → Bへの変換は、Bに対してFrom<A> trait が実装されていれば - let a: A = From::from(B); - let a = A::from(B); のように行うことができる つまり、?演算子はより正確には↓となる
17.
Mobility Technologies Co.,
Ltd. 複数のErrorを扱う 17 文字列 a, b を受け取って、i32型としてパースした後に割り算を行う関数を書いたとする これは以下のコンパイルエラーとなる。 ParseIntError -> &str への変換が実装されていない!
18.
Mobility Technologies Co.,
Ltd. 問題5 18 Rust playground From traitを実装してください
19.
Mobility Technologies Co.,
Ltd. 解説5 19 答え From traitの実装はこのドキュメントに詳しいです。 impl From<変換元> for 変換先 … という実装をしておくと、 変換先::from(変換元) ができるようになります 余談ですが、この実装をすると自動で Into<変換先> for 変換元 が実装されるので、 let a: 変換先 = 変換元.into() が実行できるようになります
20.
Mobility Technologies Co.,
Ltd. 問題6 20 Rust playground From traitを実装して早期returnしてください
21.
Mobility Technologies Co.,
Ltd. 解説6 21 答え 先程と同様にFrom traitを実装します これのおかげで、早期returnの?演算子がFrom::from変換を呼び出すことができます
22.
Mobility Technologies Co.,
Ltd. 複数のErrorを扱う 22 一つの関数から複数のエラー(Err<E1>, Err<E2>, ...)が返る可能性がある、ということはよくある 対策としては、 - MyErrorのようなenumを定義し、全てのE1, E1→ MyError への変換(From)を実装する - 自分で定義したエラー型に、毎回変換を実装ていくのは面倒 - Result<T, Box<dyn Error>> を返す関数である、と定義する - Box<dyn Error> は Error traitを実装した任意の型、を意味する - 自分で定義したエラー型に、毎回Error traitを実装していくのは面倒 → 最近の主流: Error周りをよしなにやってくれる便利ライブラリを使う - anyhow: アプリケーション用と言われている - thiserror: ライブラリ用と言われている
23.
Mobility Technologies Co.,
Ltd. anyhow 23 アプリケーション用Errorライブラリ - anyhow::Errorの提供 - Box<dyn Error> のようなものになっており、 std::error::Errorを実装しているものなら何でも渡せる - Err(anyhow::anyhow!(“”)) だけで anyhow::Errorを生成してくれる - anyhow::Resultを提供 - anyhow::Result<T> だけで Result<T, anyhow::Error> と同じ意味になる - anyhow::Contextの提供 - 既存のErrorにメッセージを足すことができる
24.
Mobility Technologies Co.,
Ltd. thiserror 24 ライブラリ用Errorライブラリ - thiserror::Errorの提供 - 独自で定義したstructやenumに対して thiserror::Errorをderiveさせるだけで、 std::error::Errorを実装させることができる - anyhowと組み合わせることで かなりコード量を削ることができる
25.
Mobility Technologies Co.,
Ltd. 問題7 25 Rust playground anyhow / thiserrorを使ってコードを修正してください
26.
Mobility Technologies Co.,
Ltd. 解説8 26 まずは、std::error::Errorを実装した任意の型を返せるように変更する 途中経過1 しかしこれは残念ながらコンパイルエラーになる。理由は自分で定義したMyErrorがstd::error::Errorを実 装していないから(このstructはDebugしか実装していない) 自分でstd::error::Errorを実装するのは面倒なので、thiserrorを呼び出し、deriveさせるだけで実装したこ とにしてしまう 途中経過2 最後に、Result<i32, Box<dyn std::error::Error>> がやや長ったらしいので、これを略記できる anyhowを使って完成 答え
27.
Mobility Technologies Co.,
Ltd. 参考ページ 27 ■ Rust公式docs Error Handling ■ Rust by example Error Handling ■ Rustlings Error Handling ■ thiserror / anyhow の導入の流れ: Rust エラー処理2020
Download now