Submit Search
Upload
TypeScript で型を上手く使う試み.pdf
•
1 like
•
104 views
Ryo Higashigawa
Follow
TypeScript で型を使って安全なソフトウェアを開発するために色々試行錯誤している話です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 24
Download now
Download to read offline
Recommended
C++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!
amusementcreators
コルーチンの概要とゲーム開発への応用、C++用コルーチンライブラリHamigaki.Coroutineの使い方について説明します。
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
株式会社MonotaRO Tech Team
2018/12/15 DevLOVE関西『現場でレガシーコードに立ち向かっている者達の話』で発表しました。 https://devlove-kansai.doorkeeper.jp/events/83358 <概要> レガシーコードで育ってきた私が、テストコードの力を体感し、テストが必要だと認識し、テストの導入に挑戦しはじめた体験についてお話します。 テストを書くという行為を「知らない」から「知ってる」にステップアップしたのは、どんな体験を通じてか、その時どんな気付きがあったのかということを考えたいと思います。
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
Kouji Ohno
なんとなく作ったので、こっそりアップします。
楽しいゲーム開発管理
楽しいゲーム開発管理
Maki Koiwa
社内勉強会向けに作ったプロジェクト管理の発表資料です。 会社ブログ記事 http://www.infiniteloop.co.jp/blog/2012/12/happygamedevelop/
Smalltalkだめ自慢
Smalltalkだめ自慢
Masashi Umezawa
LL Diver夜の部「帰ってきただめ自慢」の資料です。Smalltalkのだめなところのご紹介。 http://ll.jus.or.jp/2014/program#dame
凝集度と責務
凝集度と責務
Toshinori Chiba
社内向けに凝集度と責務について紹介、発表した資料です。
サービス開発における フロントエンド・ドメイン駆動設計の実践
サービス開発における フロントエンド・ドメイン駆動設計の実践
TakefumiYoshii
DeNA TechCon 2018 BLUE Stage
Recommended
C++ Template Metaprogramming
C++ Template Metaprogramming
Akira Takahashi
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!
amusementcreators
コルーチンの概要とゲーム開発への応用、C++用コルーチンライブラリHamigaki.Coroutineの使い方について説明します。
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
株式会社MonotaRO Tech Team
2018/12/15 DevLOVE関西『現場でレガシーコードに立ち向かっている者達の話』で発表しました。 https://devlove-kansai.doorkeeper.jp/events/83358 <概要> レガシーコードで育ってきた私が、テストコードの力を体感し、テストが必要だと認識し、テストの導入に挑戦しはじめた体験についてお話します。 テストを書くという行為を「知らない」から「知ってる」にステップアップしたのは、どんな体験を通じてか、その時どんな気付きがあったのかということを考えたいと思います。
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
ゲーム技術の研究所 テーマ「Narrative(ナラティブ)」
Kouji Ohno
なんとなく作ったので、こっそりアップします。
楽しいゲーム開発管理
楽しいゲーム開発管理
Maki Koiwa
社内勉強会向けに作ったプロジェクト管理の発表資料です。 会社ブログ記事 http://www.infiniteloop.co.jp/blog/2012/12/happygamedevelop/
Smalltalkだめ自慢
Smalltalkだめ自慢
Masashi Umezawa
LL Diver夜の部「帰ってきただめ自慢」の資料です。Smalltalkのだめなところのご紹介。 http://ll.jus.or.jp/2014/program#dame
凝集度と責務
凝集度と責務
Toshinori Chiba
社内向けに凝集度と責務について紹介、発表した資料です。
サービス開発における フロントエンド・ドメイン駆動設計の実践
サービス開発における フロントエンド・ドメイン駆動設計の実践
TakefumiYoshii
DeNA TechCon 2018 BLUE Stage
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
Koji Morikawa
モバイル・コンシューマ「開発比較」勉強会 #1 インターフェイスと手触り【2D格闘ゲームにおけるユーザビリティとゲームデザインについて】の修正版資料です。 https://atnd.org/events/65421 講演時の質疑応答の内容、わかりづらい点の解説を追加しました!
C++の黒魔術
C++の黒魔術
Daichi OBINATA
NSEG第13回勉強会での飛込みトークスライド 1時間くらいで作ったので、かなり荒削り。
UTP(UML Testing Profile)概要紹介
UTP(UML Testing Profile)概要紹介
Noriyuki Mizuno
ソフトウェアテストを知っている人が聞いたことがあるかもしれないけど、実際の内容について知っている人が少ないように思われるUTP(UML Testing Profileであって、Unit Test Patternじゃないよ)について、簡単に拾った情報で解釈した内容を紹介します。
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
Yoshiki Hayama
Web担当者Forum秋のイベント 11月7日(月)14:05 KA1-4 セッションのスライドです。 「ウチの事業部の商品をWebサイトとアプリのトップに載せて!」 「新機能をとにかく目立たせろ! 利用数をとにかく増やして!」 Webサイトやアプリを運用していると、社内のあちこちから、さまざまな圧力や依頼が舞い込むものです。えらい人からの現場を知らない指示であったり、発言力の強い部署からの高圧的な依頼であったり、決裁者からの思いつきの要望であったり……。その多くは「その人の視点から見た世界」の個別最適であり、全体最適でのユーザー目線に欠けていたり、Webサイトやアプリの使いやすさを毀損する内容であったりします。Web担当者やプロダクトマネージャーは社内の不要な衝突を避けながら、決裁者からは予算を引き出し、ユーザーに価値を届けられるプロダクトのかたちを守り続けなければなりません。本セッションでは、業界歴20年超の発表者が、あるあるエピソードを取り上げながら、社内政治の泣き笑いと、落としどころの見つけかたを模索します。
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
Xamarin.iOS 開発者から見た Swift
Xamarin.iOS 開発者から見た Swift
Tomohiro Suzuki
Xamarin.iOS 開発者から見た Swift
Code Contracts in .NET 4
Code Contracts in .NET 4
信之 岩永
正しいものを正しくつくる
正しいものを正しくつくる
toshihiro ichitani
2016年10月25日 PMCONF発表 http://pmconf.jp/ 2016年09月16日 デブサミ関西2016発表 http://event.shoeisha.jp/devsumi/20160916/
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
KazuoSuzuki6
Azure OpenAI ServiceのAPI と OpenAIのAPIの比較
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
AWS Summit Tokyo 2014
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
2014/3/1 Boost勉強会 #14 東京 にて https://sites.google.com/site/boostjp/study_meeting/study14 Boost勉強会なのに.NETの話で、1人だけ1時間(他の人は30分)。 本来、自分のペースでは4時間くらいかかってもおかしくない分量を1時間で。
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
Unity や MonoGame など、C# でゲームを作る環境が整ってきた昨今。メモリ?なにそれ美味しいの?という初学者が、難しいことを考えずにモノづくりができる一方で、メモリについて知らないとトラブルになることもあります。C#でゲームプログラムを書いたことがある、くらいの方を対象に、メモリとは何か、から、メモリリーク・ガベージコレクションの話、そしてガベージコレクションの回数を減らす実装方法について話します。
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
ESM SEC
2014/1/28に開催した「リーンカンファレンス2014」の講演資料です。
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
tattaka_sun
Kansai Engineer Students’ Meetup #1 で発表したスライドです。 内容は題名の通り。
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界
maruyama097
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
プロダクトのフェーズとマネジメント
プロダクトのフェーズとマネジメント
Takamasa Hirose
2017-04-05 開催 pmjp.slack.com offkai #8 発表資料です
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
オブジェクト指向設計の原則
オブジェクト指向設計の原則
Toru Koido
2010/12/11 VSUG アーキテクトアカデミー
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
オープンソースカンファレンス Hokkaido 2015 におけるセッションスライドです。
みんなのPython勉強会#62
みんなのPython勉強会#62
hiroya akita
みんなのPython勉強会#62の資料です。
More Related Content
What's hot
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
Koji Morikawa
モバイル・コンシューマ「開発比較」勉強会 #1 インターフェイスと手触り【2D格闘ゲームにおけるユーザビリティとゲームデザインについて】の修正版資料です。 https://atnd.org/events/65421 講演時の質疑応答の内容、わかりづらい点の解説を追加しました!
C++の黒魔術
C++の黒魔術
Daichi OBINATA
NSEG第13回勉強会での飛込みトークスライド 1時間くらいで作ったので、かなり荒削り。
UTP(UML Testing Profile)概要紹介
UTP(UML Testing Profile)概要紹介
Noriyuki Mizuno
ソフトウェアテストを知っている人が聞いたことがあるかもしれないけど、実際の内容について知っている人が少ないように思われるUTP(UML Testing Profileであって、Unit Test Patternじゃないよ)について、簡単に拾った情報で解釈した内容を紹介します。
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
Yoshiki Hayama
Web担当者Forum秋のイベント 11月7日(月)14:05 KA1-4 セッションのスライドです。 「ウチの事業部の商品をWebサイトとアプリのトップに載せて!」 「新機能をとにかく目立たせろ! 利用数をとにかく増やして!」 Webサイトやアプリを運用していると、社内のあちこちから、さまざまな圧力や依頼が舞い込むものです。えらい人からの現場を知らない指示であったり、発言力の強い部署からの高圧的な依頼であったり、決裁者からの思いつきの要望であったり……。その多くは「その人の視点から見た世界」の個別最適であり、全体最適でのユーザー目線に欠けていたり、Webサイトやアプリの使いやすさを毀損する内容であったりします。Web担当者やプロダクトマネージャーは社内の不要な衝突を避けながら、決裁者からは予算を引き出し、ユーザーに価値を届けられるプロダクトのかたちを守り続けなければなりません。本セッションでは、業界歴20年超の発表者が、あるあるエピソードを取り上げながら、社内政治の泣き笑いと、落としどころの見つけかたを模索します。
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
Xamarin.iOS 開発者から見た Swift
Xamarin.iOS 開発者から見た Swift
Tomohiro Suzuki
Xamarin.iOS 開発者から見た Swift
Code Contracts in .NET 4
Code Contracts in .NET 4
信之 岩永
正しいものを正しくつくる
正しいものを正しくつくる
toshihiro ichitani
2016年10月25日 PMCONF発表 http://pmconf.jp/ 2016年09月16日 デブサミ関西2016発表 http://event.shoeisha.jp/devsumi/20160916/
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
KazuoSuzuki6
Azure OpenAI ServiceのAPI と OpenAIのAPIの比較
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
AWS Summit Tokyo 2014
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
2014/3/1 Boost勉強会 #14 東京 にて https://sites.google.com/site/boostjp/study_meeting/study14 Boost勉強会なのに.NETの話で、1人だけ1時間(他の人は30分)。 本来、自分のペースでは4時間くらいかかってもおかしくない分量を1時間で。
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
Unity や MonoGame など、C# でゲームを作る環境が整ってきた昨今。メモリ?なにそれ美味しいの?という初学者が、難しいことを考えずにモノづくりができる一方で、メモリについて知らないとトラブルになることもあります。C#でゲームプログラムを書いたことがある、くらいの方を対象に、メモリとは何か、から、メモリリーク・ガベージコレクションの話、そしてガベージコレクションの回数を減らす実装方法について話します。
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
ESM SEC
2014/1/28に開催した「リーンカンファレンス2014」の講演資料です。
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
tattaka_sun
Kansai Engineer Students’ Meetup #1 で発表したスライドです。 内容は題名の通り。
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界
maruyama097
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
プロダクトのフェーズとマネジメント
プロダクトのフェーズとマネジメント
Takamasa Hirose
2017-04-05 開催 pmjp.slack.com offkai #8 発表資料です
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
オブジェクト指向設計の原則
オブジェクト指向設計の原則
Toru Koido
2010/12/11 VSUG アーキテクトアカデミー
What's hot
(20)
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
C++の黒魔術
C++の黒魔術
UTP(UML Testing Profile)概要紹介
UTP(UML Testing Profile)概要紹介
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Xamarin.iOS 開発者から見た Swift
Xamarin.iOS 開発者から見た Swift
Code Contracts in .NET 4
Code Contracts in .NET 4
正しいものを正しくつくる
正しいものを正しくつくる
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
プロダクトのフェーズとマネジメント
プロダクトのフェーズとマネジメント
オブジェクト指向できていますか?
オブジェクト指向できていますか?
オブジェクト指向設計の原則
オブジェクト指向設計の原則
Similar to TypeScript で型を上手く使う試み.pdf
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
オープンソースカンファレンス Hokkaido 2015 におけるセッションスライドです。
みんなのPython勉強会#62
みんなのPython勉強会#62
hiroya akita
みんなのPython勉強会#62の資料です。
大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】
Mitsuhito Ishino
Niigata.NET 2015-10の発表資料です。
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
KyutatsuNishiura
Python Charity Talks in Japan 2021.02のLT資料です。
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
http://vshtc.doorkeeper.jp/events/11407
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
Keisuke Takahashi
2013年7月5日、社内勉強会で使用した資料です(一部修正済み)。 ライセンスはクリエイティブ・コモンズ・ゼロとします。ご自由にお使い下さい。 ソースのPowerPointファイルはこちら => http://bit.ly/begining_fluentd_learning_big_data fluent-plugin-glusterfsはこちら => https://github.com/keithseahus/fluent-plugin-glusterfs
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flow
Keisuke Umezawa
TensorFlowについて
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
Python利用人口を増やすべく作成したスライド第3版です。PythonとRを使ったデータ分析を行うための環境整備方法などについて解説しました。 第1版との差分は、もう少し初心者にやさしい情報を加えたことと、演習っぽいスライドを追加したところです。
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
Ryohei Suzuki
HTML5 入門
HTML5 入門
NOAN
姫路IT系勉強会で発表した内容です。
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
Fujio Kojima
2009-10-23 FITEA最新技術ミニセミナー http://fitea.org/?p=112
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
身内向けpython3入門資料.Pythonの概要とインストール(Windows版)について.
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
Katsutoshi Makino
プログラミングを早くする方法
プログラミングを早くする方法
kazukiTakahashi18
勉強会資料
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
Knowledge & Experience
2024/2/27 に JASA OpenEL working group で講演した資料 https://note.com/kae_made から公開している概念モデリングに関する技術コンテンツをAzure OpenAI Studio で追加学習し、概念モデリング支援チャットを作成を試す方法を解説 デモ動画は、https://youtu.be/UGCuMwM8cEE?si=wT9YH8Hx8Zmjuolf で視聴可
プログラマ人生論
プログラマ人生論
ymmt
挫折だらけのプログラマー人生を振り返ってみました。
生存戦略~きっと何者にもなれる~
生存戦略~きっと何者にもなれる~
hayabusa333
TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
TypeScriptが好きなのでオススメする理由を考えてみた。 2015/03/30 - P33に参考にさせていただいたサイトのURLを挿入しました
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
Preferred Networks
PFIセミナー 2013/02/28 田中英行「プログラミング言語の今」
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
Tetsuya Morimoto
PyCon JP 2015
Similar to TypeScript で型を上手く使う試み.pdf
(20)
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
みんなのPython勉強会#62
みんなのPython勉強会#62
大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flow
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
HTML5 入門
HTML5 入門
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
Python勉強会 2015-12-02
Python勉強会 2015-12-02
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
プログラミングを早くする方法
プログラミングを早くする方法
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
プログラマ人生論
プログラマ人生論
生存戦略~きっと何者にもなれる~
生存戦略~きっと何者にもなれる~
TypeScriptをオススメする理由
TypeScriptをオススメする理由
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
More from Ryo Higashigawa
新しいWEBフロントの開拓.pptx
新しいWEBフロントの開拓.pptx
Ryo Higashigawa
新時代を感じさせるWEBフロントの環境を調査、考察しました。 この10年で大きく変わった JS 環境が更に変わる可能性を感じたので勉強会でお話しました。
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
Ryo Higashigawa
AWS を今すぐ始められるように初心者向けに課金周りの気をつけるべき事を発表しました。 その勉強会の資料をアップロードしています。
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
Ryo Higashigawa
雑に WEB とその仕組みをキャッチアップする資料です。 初心者向け勉強会で利用した資料となります。 https://coroutine.connpass.com/event/248254/
フロントエンド技術の変遷
フロントエンド技術の変遷
Ryo Higashigawa
2022年時点までのWEBフロント技術の変遷や現代の技術へのコメント、これからの話の所感を考察しました。
AWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptx
Ryo Higashigawa
AWS でサーバーレスを使っている話の登壇資料
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
Ryo Higashigawa
JavaScript をこれからはじめるために環境をセットアップする
Ml ch10
Ml ch10
Ryo Higashigawa
大阪 PRML 勉強会使用スライド
Ml ch7
Ml ch7
Ryo Higashigawa
大阪 PRML 勉強会使用スライド
Ml ch3
Ml ch3
Ryo Higashigawa
大阪 PRML 勉強会使用スライド
Ml ch2
Ml ch2
Ryo Higashigawa
大阪 PRML 勉強会使用スライド
More from Ryo Higashigawa
(10)
新しいWEBフロントの開拓.pptx
新しいWEBフロントの開拓.pptx
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
フロントエンド技術の変遷
フロントエンド技術の変遷
AWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptx
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
Ml ch10
Ml ch10
Ml ch7
Ml ch7
Ml ch3
Ml ch3
Ml ch2
Ml ch2
TypeScript で型を上手く使う試み.pdf
1.
TypeScript で型を上手く使う試み 株式会社coroutine 東川
諒央 featuring ChatGPT and GitHub Copilot
2.
自己紹介 1 TypeScript の型 3 TypeScript で安全性を高めるコードをどう書くか? 4 型とは 2 5
型レベルプログラミングと代数的データ型 6 まとめ
3.
自己紹介 1 株式会社 coroutine 東川 諒央 @biwakonbu 大学教員
ゲームバックエンド フリーランス 経歴 Ruby Python JavaScript 実績言語 PHP 技術顧問 エンジニア教育 業務 設計 プログラミング インフラ etc… Rust Haskell TypeScript 学習中言語
4.
自己紹介 1 TypeScript の型 3 TypeScript で安全性を高めるコードをどう書くか? 4 型とは 2 5
型レベルプログラミングと代数的データ型 6 まとめ
5.
型とは 2 ❏ メモリ上のデータの構造や意味を定義する仕組み ❏ コンピュータで扱うことが出来るデータの種類を定義 ❏
同一の型では、同じ演算が適用できる ❏ 型の仕組みとしては、動的型と静的型がある ❏ 利用目的 ❏ プログラムの正しさを保証するため:型システムは、型の整合性を確認することで、実行時エ ラーや予期しない動作を事前に防止することができる。 ❏ コードの可読性を高めるため:型付きのプログラムは、変数や関数の役割や目的を明確に示す ことができるため、理解しやすくなる。 ❏ デバッグやリファクタリングの効率化:型付きのプログラムは、コンパイルエラーが起きること で、問題の特定や修正が容易になる。
6.
型とは - 動的型と静的型 2 ❏
動的型 ❏ データの型をプログラム実行時に評価する。 ❏ 実行前に決定出来ないため、型違いによるエラーは実行時に実際に評価する事で発生する ❏ 実行前の事前計算が不要な為、実装 -> 実行 -> 修正のイテレーションが早くできる
7.
型とは - 動的型と静的型 2 ❏
静的型 ❏ 事前にコンパイルする事で実行する前に型違いなどに起因するエラーが発見できる ❏ 理論的に発生し得る問題を検出できるため、比較的安全なソフトウェアが開発できる ❏ コンパイル待ちが段々辛くなる
8.
自己紹介 1 TypeScript の型 3 TypeScript で安全性を高めるコードをどう書くか? 4 型とは 2 5
型レベルプログラミングと代数的データ型 6 まとめ
9.
TypeScript の型 3 ❏ 構造的部分型 TypeScriptは構造的部分型を採用しており、オブジェクトの型が同じであれば 互換性があると判定される。
JavaScriptの既存のコードとの互換性が高く、 型の厳密さを調整することができる。 “ 構造的部分型は実際のデータ構造に着目した型付けとなる “
10.
TypeScript の型 -
構造的部分型の例 : type にも置き換えられる 3 SubType
11.
TypeScript の型 -
構造的部分型の例 : 継承利用 3 SubType
12.
自己紹介 1 TypeScript の型 3 TypeScript で安全性を高めるコードをどう書くか? 4 型とは 2 5
型レベルプログラミングと代数的データ型 6 まとめ
13.
TypeScript で安全性を高めるコードをどう書くか? 4 ❏ コードの安全性について色々考え中 ❏
今年から実用を踏まえた上でRust, Haskell に本格的に入門しました ❏ 安全性を高めるためには型システムへの理解が必要という考え ❏ 学術的価値と実用的価値との距離 ❏ エコシステムが成熟していないと実用に耐えないため、検討中 ❏ TypeScript は高度に型を扱える言語で、ライブラリと合わせる事で強固に ❏ Rust は言語レベルで強力な安全性を提供、実用面も増えてきた ❏ Haskell は... WEB 領域では多分悟りを開くための言語でストップしそう ❏ Haskell は学術的な話が言語文化的に多いので文献のために入門という感じ ❏ 型レベルプログラミング(Type-level programming) と代数的データ型 (Algebraic Data Types) の理解が目的
14.
自己紹介 1 TypeScript の型 3 TypeScript で安全性を高めるコードをどう書くか? 4 型とは 2 5
型レベルプログラミングと代数的データ型 6 まとめ
15.
型レベルプログラミングと代数的データ型 5 ❏ 型レベルプログラミング ❏ 型システムを利用して型をプログラムの値として操作する手法 ❏
型を定義、組み合わせ、操作によって実現する ❏ コンパイル時の型検査によるチェックを厳密に行い、未来にエラーが発生する可能性のある処 理を検出する ❏ コンパイル処理の為ランタイムに影響を与えない ❏ 代数的データ型 ❏ 複数の値を組み合わせた型を定義できる ❏ 独自のデータ型も定義できる ❏ 値のパターンマッチによる場合分けに対する処理が定義できる 違い:型同士の組み合わせによって新しい型を生成するのが型レベルプログラミング。 型と値によって新しい型を生成するのが代数的データ型という現状の理解。
16.
型レベルプログラミングと代数的データ型 - TS
で API を叩く例 5
17.
型レベルプログラミングと代数的データ型 - 型を厳密に付けた場合 5
18.
型レベルプログラミングと代数的データ型 - 型を厳密に付けた場合 5
19.
型レベルプログラミングと代数的データ型 5 ❏ 記述が圧倒的に増えている(10行くらいで書けたコードが100行近くに) ❏ 型を付けまくるというのは定義が非常に多くなり、型の理解が難解になる ❏
ただし、本来存在する難しさが隠蔽されているだけで向かい合う必要はある ❏ テストコードを書いたりするとコードが肥大化するのと同じ現象 ❏ 書いた体験談 ❏ 型を解決する際に不可解な解決方法が出てくる場合がある ❏ その時は全て自分の目の前の型への不理解が原因 ❏ fetch API の戻り値に Result 型を導入する時に結構困った ❏ ChatGPT に聞きながら Copilot でサジェスト貰いながら調査で理解できた ❏ JS / TS は Promise のせいで無闇に難しくなる制御がでてくるので型解決できると コンパイル時 (やエディタのリント) でエラーが検出できる ❏ 型付けによるエディタ / IDE がプロダクトに特化する感じが非常に体感として良かった
20.
自己紹介 1 TypeScript の型 3 TypeScript で安全性を高めるコードをどう書くか? 4 型とは 2 5
型レベルプログラミングと代数的データ型 6 まとめ
21.
まとめ 6 ❏ 型レベルプログラミングは毒でもあり薬でもある ❏ チーム内の理解レベルが離れすぎてると偏重主義は良くない感じは正直ある ❏
全員が同様のレベルで、堅牢なシステムを書く場合には非常に優位な仕組み ❏ TypeScript は型の扱いの振り幅が大きい ❏ とりあえず使う場合は型の厳密性は低く、 ランタイム時でしか発見できないエラーケースはそれなりに発生する ❏ 緻密に構築された型は非常に堅牢だが、変更容易性は低くなる (ちょっと変更した場合に連鎖して変更しないとコンパイルが通らないなど ) ❏ プロダクト序盤は厳密性を求めず、安定性が欲しくなるフェーズで 型情報をリライトしていくのは結構ありかもしれない
22.
書籍宣伝 (Types-and-Programming-Language)
23.
記事を書く際に見てた参考記事 - 型について (型といえば
Haskell) - 純粋関数型言語の3つの特徴 - TypeScript と型と型が存在する事で嬉しい事 - TS の型とは何か (構造的部分型) - TS の型について - TypeScriptの型入門 - Qiita - TypeScriptの型初級 - Qiita - TypeScriptで | を使わずにユニオン型を得る方法大全 - Qiita - TypeScriptで学ぶ代数的データ型 - 型レベルプログラミング - An Introduction to Type Level Programming - GitHub - gvergnaud/type-level-typescript-workshop: Interactive exercises to get familiar with TypeScript's most advanced features - An introduction to type programming in TypeScript - Documentation - TypeScript for Functional Programmers
24.
おわり Twitter: @biwakonbu Twitter やってます。 良ければ交流してください。
Download now