Submit Search
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
4 likes
43,236 views
Yoshifumi Kawai
for students.
Technology
Read more
1 of 44
Download now
Downloaded 21 times
1
2
3
4
5
Most read
6
7
8
9
10
11
12
13
Most read
14
15
16
17
18
19
20
Most read
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
More Related Content
PDF
MagicOnion入門
torisoup
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
PDF
A quick tour of the Cysharp OSS
Yoshifumi Kawai
PDF
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
PDF
.NET Core 3.0時代のメモリ管理
KageShiron
PDF
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
PPTX
世界一わかりやすいClean Architecture
Atsushi Nakamura
MagicOnion入門
torisoup
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
A quick tour of the Cysharp OSS
Yoshifumi Kawai
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
.NET Core 3.0時代のメモリ管理
KageShiron
Go 製リアルタイムサーバーの Kubernetes での運用について
KairiOkumura
世界一わかりやすいClean Architecture
Atsushi Nakamura
What's hot
(20)
PPTX
テストコードの DRY と DAMP
Yusuke Kagata
PDF
Unityではじめるオープンワールド制作 エンジニア編
Unity Technologies Japan K.K.
PDF
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
PPTX
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
PDF
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
PDF
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
PDF
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
PDF
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
PDF
例外設計における大罪
Takuto Wada
PDF
こわくない Git
Kota Saito
PDF
Unityでオンラインゲーム作った話
torisoup
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
PDF
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
PDF
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
PDF
MQTTとAMQPと.NET
terurou
PPTX
マイクロサービスにおける 結果整合性との戦い
ota42y
テストコードの DRY と DAMP
Yusuke Kagata
Unityではじめるオープンワールド制作 エンジニア編
Unity Technologies Japan K.K.
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
例外設計における大罪
Takuto Wada
こわくない Git
Kota Saito
Unityでオンラインゲーム作った話
torisoup
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
MQTTとAMQPと.NET
terurou
マイクロサービスにおける 結果整合性との戦い
ota42y
Ad
Similar to ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
(16)
PDF
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
Yoshifumi Kawai
PDF
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
UnityTechnologiesJapan002
PDF
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
PDF
LINQ in Unity
Yoshifumi Kawai
PDF
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
PDF
Linq To Fun
deflis
PDF
UniRx - Reactive Extensions for Unity
Yoshifumi Kawai
PDF
.NET最先端技術によるハイパフォーマンスウェブアプリケーション
Yoshifumi Kawai
PDF
MlnagoyaRx
Shoichi Kakamu
PDF
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
PDF
The History of LINQ
Yoshifumi Kawai
PDF
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
PPTX
C# 3.0 以降
Fujio Kojima
PPTX
C#の書き方
信之 岩永
PPTX
C#の書き方
信之 岩永
PDF
いろいろ見せますLord of Knightsのクライアント開発事例紹介
Kouji Hosoda
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法
Yoshifumi Kawai
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
UnityTechnologiesJapan002
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
LINQ in Unity
Yoshifumi Kawai
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
Linq To Fun
deflis
UniRx - Reactive Extensions for Unity
Yoshifumi Kawai
.NET最先端技術によるハイパフォーマンスウェブアプリケーション
Yoshifumi Kawai
MlnagoyaRx
Shoichi Kakamu
linq.js - Linq to Objects for JavaScript
Yoshifumi Kawai
The History of LINQ
Yoshifumi Kawai
Reactive Extensionsで非同期処理を簡単に
Yoshifumi Kawai
C# 3.0 以降
Fujio Kojima
C#の書き方
信之 岩永
C#の書き方
信之 岩永
いろいろ見せますLord of Knightsのクライアント開発事例紹介
Kouji Hosoda
Ad
More from Yoshifumi Kawai
(20)
PDF
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
Yoshifumi Kawai
PDF
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
PDF
Implements OpenTelemetry Collector in DotNet
Yoshifumi Kawai
PDF
Deep Dive async/await in Unity with UniTask(EN)
Yoshifumi Kawai
PDF
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
Yoshifumi Kawai
PDF
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
PDF
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
PDF
Binary Reading in C#
Yoshifumi Kawai
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
PPTX
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
PPTX
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
PDF
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
PDF
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
PDF
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
PDF
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Yoshifumi Kawai
PDF
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
PPTX
Clash of Oni Online - VR Multiplay Sword Action
Yoshifumi Kawai
PDF
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
PDF
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
Yoshifumi Kawai
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
Implements OpenTelemetry Collector in DotNet
Yoshifumi Kawai
Deep Dive async/await in Unity with UniTask(EN)
Yoshifumi Kawai
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
Yoshifumi Kawai
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
Binary Reading in C#
Yoshifumi Kawai
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Yoshifumi Kawai
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
Clash of Oni Online - VR Multiplay Sword Action
Yoshifumi Kawai
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
2.
河合 宜文 /
Kawai Yoshifumi / @neuecc Cysharp, Inc. Cygames C#大統一理論 C#
5.
作ろう、公開しよう なぜ? ・知識を深めるため => エンジニアとしての実力の向上 ・キャリアを作るため
=> より高い地位や収入 両者が合わされば、更により大きなことができるようになります! なにを、どうやって、どのように? ということ、私自身を事例として紹介していければと思っています
6.
#01 2009-04-04 linq.js https://github.com/neuecc/linq.js #02
2009-10-29 AnonymousComparer https://github.com/neuecc/AnonymousComparer #03 2010-04-07 DbExecutor https://github.com/neuecc/DbExecutor #04 2010-04-30 DynamicJson https://github.com/neuecc/DynamicJson #05 2010-07-15 XStreamingReader https://github.com/neuecc/XStreamingReader #06 2010-09-12 ReactiveOAuth https://github.com/neuecc/ReactiveOAuth #07 2011-02-22 ChainingAssertion https://github.com/neuecc/ChainingAssertion #08 2011-10-17 ReactiveProperty https://github.com/runceel/ReactiveProperty
7.
#09 2012-02-18 ImplicitQueryString https://github.com/neuecc/ImplicitQueryString #10
2012-04-02 HashMapper http://hashmapper.codeplex.com/ #11 2012-12-03 MemcachedTranscoder https://github.com/neuecc/MemcachedTranscoder #12 2013-02-27 AsyncOAuth https://github.com/neuecc/AsyncOAuth #13 2013-04-05 CloudStructures https://github.com/neuecc/CloudStructures #14 2013-12-06 OwinRequestScopeContext https://github.com/neuecc/OwinRequestScopeContext #15 2013-12-08 Owin.RedisSession https://github.com/neuecc/Owin.RedisSession #16 2013-12-23 LightNode https://github.com/neuecc/LightNode
8.
#17 2013-12-23 RespClient https://github.com/neuecc/RespClient #18
2014-05-28 UniRx https://github.com/neuecc/UniRx #19 2014-09-24 LINQ to BigQuery https://github.com/neuecc/LINQ-to-BigQuery #20 2014-10-28 LINQ to GameObject https://github.com/neuecc/LINQ-to-GameObject-for-Unity #21 2015-01-14 Open on GitHub https://github.com/neuecc/Open-on-GitHub #22 2015-03-30 NotifyPropertyChangedGenerator https://github.com/neuecc/NotifyPropertyChangedGenerator #23 2015-11-03 EtwStream https://github.com/neuecc/EtwStream #24 2016-03-18 SerializableDictionary https://github.com/neuecc/SerializableDictionary
9.
#25 2016-05-23 MarkdownGenerator https://github.com/neuecc/MarkdownGenerator #26
2016-05-31 PhotonWire https://github.com/neuecc/PhotonWire #27 2016-06-07 ObserveEveryValueChanged https://github.com/neuecc/ObserveEveryValueChanged #28 2016-11-08 ZeroFormatter https://github.com/neuecc/ZeroFormatter #29 2017-01-09 MasterMemory https://github.com/neuecc/MasterMemory #30 2017-03-05 RuntimeUnitTestToolkit https://github.com/neuecc/RuntimeUnitTestToolkit #31 2017-03-13 MessagePack for C# https://github.com/neuecc/MessagePack-CSharp #32 2017-04-20 ReMotion https://github.com/neuecc/ReMotion
10.
#33 2017-04-24 DatadogSharp https://github.com/neuecc/DatadogSharp #34
2017-06-05 MagicOnion https://github.com/Cysharp/MagicOnion #35 2017-07-09 MicroResolver https://github.com/neuecc/MicroResolver #36 2017-08-18 MySqlSharp https://github.com/neuecc/MySqlSharp #37 2017-09-27 Utf8Json https://github.com/neuecc/Utf8Json #38 2018-02-16 HyperMapper https://github.com/neuecc/HyperMapper #39 2019-04-05 ConsoleAppFramework https://github.com/Cysharp/ConsoleAppFramework #40 2019-03-28 Ulid https://github.com/Cysharp/Ulid
11.
#41 2019-05-06 RandomFixtureKit https://github.com/Cysharp/RandomFixtureKit #42
2019-05-27 LitJWT https://github.com/Cysharp/LitJWT #43 2019-06-06 UniTask https://github.com/Cysharp/UniTask #44 2019-08-26 ValueTaskSupplement https://github.com/Cysharp/ValueTaskSupplement #45 2020-01-30 ProcessX https://github.com/Cysharp/ProcessX #46 2020-02-19 ZString https://github.com/Cysharp/ZString #47 2020-05-01 ZLogger https://github.com/Cysharp/ZLogger
12.
車輪の再発明をしよう 世の中、新しいものはない、全ては何かの再発明 そして自分で実装することが深くその領域を知ることになる LINQをJavaScriptに移植(linq.js) → LINQについて RxをUnityに移植(UniRx)
→ Rxについて, Unityについて ORM作成(DbExecutor) → 低レベルDB操作(ADO.NET)について MySQL Driver作成(MySqlSharp) → MySQLプロトコルについて Webフレームワーク作成(LightNode) → HTTP/1について gRPCフレームワーク作成(MagicOnion) → gRPCとHTTP/2について
13.
小さくっても全然良い AnonymousComparer DynamicJson XStreamingReader
ChainingAssertion ImplicitQueryString OwinRequestScopeContext RespClient SerializableDictionary ObserveEveryValueChanged Ulid
14.
経験値を貯めよう 小さなライブラリでの経験が、大きなライブラリに繋がる リリースを乗り越えていくことが大きな能力向上に繋がる 人に見せるものを意識する 「自分のために作ってる」ではなく、人が使うことを意識する コードの書き方、見せ方、ウリを作るための機能の取捨、他人に 使ってもらうことを意識すると考え方の吸収がだいぶ違ってくる 機会はそんなに多くない!(10年間で、ある意味「たった」40回) なので、一つ一つの機会を大事にして欲しい
15.
人が使うものを意識して作る 多くの人が使うことで、多くの人の視点を得られる (普通のOSSはコントリビュートは得られません!けれど、Issueを 報告してもらうと、自分とは違う別の視点を得ることができます) なので、人が使って有益なものにするため差別化要素を設ける ・他言語からの移植 → その言語のエコシステムにはないもの ・単機能(シンプル/イージー)→
複雑でない = 最高の機能 ・ハイパフォーマンス → 性能 = 最高の機能 得られる体験を
16.
LINQってJavaScriptでもできそうだね やるからには勝ちたい
17.
LINQってJavaScriptでもできそうだね やるからには勝ちたい
18.
枯れた技術の水平思考 「世の中、新しいものはない、全ては何かの再発明」 「小さなライブラリでの経験が、大きなライブラリに繋がる」 自分自身の経験からバリエーションを産む 経験を血肉にする 何度も似たようなテーマを重ねることで、 より、その領域で深い洞察を繰り出すことができる そして完成度の高いライブラリを生み出すことができる 結果多くの支持を得られて多くのフィードバックが得られる それが更に深い視点を得られて完成度が更に上がり能力も高まる
19.
枯れた技術の水平思考 「世の中、新しいものはない、全ては何かの再発明」 「小さなライブラリでの経験が、大きなライブラリに繋がる」 自分自身の経験からバリエーションを産む 経験を血肉にする 何度も似たようなテーマを重ねることで、 より、その領域で深い洞察を繰り出すことができる そして完成度の高いライブラリを生み出すことができる 結果多くの支持を得られて多くのフィードバックが得られる それが更に深い視点を得られて完成度が更に上がり能力も高まる
20.
AnonymousComparer UniRx LINQ to BigQuery LINQ
to GameObject EtwStream ReactiveProperty linq.js
21.
AnonymousComparer UniRx LINQ to BigQuery LINQ
to GameObject EtwStream ReactiveProperty linq.js
22.
LightNode PhotonWire MagicOnion ConsoleAppFramework DbExecutor
23.
LightNode PhotonWire MagicOnion ConsoleAppFramework DbExecutor
24.
ZeroFormatter MessagePack-CSharp Utf8Json MySqlSharp HyperMapper MicroResolver Ulid DynamicJson
25.
ZeroFormatter MessagePack-CSharp Utf8Json MySqlSharp HyperMapper MicroResolver Ulid DynamicJson
26.
むしろ小さくなければならない
27.
むしろ小さくなければならない
28.
むしろ小さくなければならない
29.
自分自身の技術に拘泥しない 時代の変化で、当時良いものもいつか必ず老朽化する 永遠に良いソフトウェアなどない、作った瞬間から腐敗は始まる レガシー化した自分の技術に拘ってるのは時間を無駄にすること 良いものには乗っかり、捨てるべきタイミングを誤らない 捨てるためにも小さく作る 小さければ小さいほど「捨てやすい」 これはOSSじゃなく会社の共通ライブラリを作るときなどもそう 薄く、小さく作り、捨てる時は躊躇なく捨てることがなにより大事 厚いライブラリは厚いというだけで大きなマイナスを背負っている
30.
自分自身の技術に拘泥しない 時代の変化で、当時良いものもいつか必ず老朽化する 永遠に良いソフトウェアなどない、作った瞬間から腐敗は始まる レガシー化した自分の技術に拘ってるのは時間を無駄にすること 良いものには乗っかり、捨てるべきタイミングを誤らない 捨てるためにも小さく作る 小さければ小さいほど「捨てやすい」 これはOSSじゃなく会社の共通ライブラリを作るときなどもそう 薄く、小さく作り、捨てる時は躊躇なく捨てることがなにより大事 厚いライブラリは厚いというだけで大きなマイナスを背負っている
31.
キャリアパスと生存戦略
32.
結果としてキャリアに繋がった https://github.com/neuecc/Resume 2008 新卒入社 2011 Microsoft
MVP for C#受賞 2012 gloops入社 2012 Grani設立, CTO 2018 Cysharp設立, CEO/CTO
33.
結果としてキャリアに繋がった https://github.com/neuecc/Resume 2008 新卒入社 2011 Microsoft
MVP for C#受賞 2012 gloops入社 2012 Grani設立, CTO 2018 Cysharp設立, CEO/CTO
34.
結果としてキャリアに繋がった https://github.com/neuecc/Resume 2008 新卒入社 2011 Microsoft
MVP for C#受賞 2012 gloops入社 2012 Grani設立, CTO 2018 Cysharp設立, CEO/CTO
35.
結果としてキャリアに繋がった https://github.com/neuecc/Resume 2008 新卒入社 2011 Microsoft
MVP for C#受賞 2012 gloops入社 2012 Grani設立, CTO 2018 Cysharp設立, CEO/CTO
36.
結果としてキャリアに繋がった https://github.com/neuecc/Resume 2008 新卒入社 2011 Microsoft
MVP for C#受賞 2012 gloops入社 2012 Grani設立, CTO 2018 Cysharp設立, CEO/CTO
37.
最初は「LINQの人」として linq.jsが名刺代わりの一品として機能した 継続的な情報発信をLINQ中心に展開して立ち位置を確立した 「Unity」で知名度を得るために UniRxが名刺代わりの一品として機能した Unityは(.NET Frameworkの)C#とは別の文化圏で、人も違う 知名度ゼロからスタートするのにUniRxが媒介になった 今は「パフォーマンスの人」として MessagePack for
C#が名刺代わりの一品として機能した C#のエキスパートと認識されるためには性能は一番分かりやすい
38.
linq.js, UniRx, LINQ
to GameObject, LINQ to BigQuery LINQとは何であるかの掲示 ReactiveProperty MVVMへの異質なアプローチ NotifyPropertyChangedGenerator Roslyn時代のコーディング手法 LightNode, PhotonWire, MagicOnion 現代的な観点でのRPCの再評価 MessagePack for C#, Utf8Json 真に高速なシリアライザの証明 ライブラリは思想の塊であり、 言葉だけよりも、むしろずっと 流暢に語ってくれる 言葉に、より強い証明、よ り強力な説得力をもたらす ブログだけ、Qiitaだけ、講演だけで は成し得ない立ち位置を作りやすい
39.
C#大統一理論 現在のメインテーマで、MagicOnionがそれを表現する クライアントとサーバーを、API通信とリアルタイム通信を 全てをC#で統合するという夢想を具現化 理想は、理想だけでは実現できない 現実に実現するためのフレームワークを作り提供する 世界中の人に使ってもらうような ワールドスタンダードを自分が作るという気概でやっている
40.
手触り駆動設計(Scenario First, API
First) ライブラリにおいて何が一番大事かというと、APIの手触り 私にとって設計とは良いPublic APIの手触りを考えることから ・最も頻度の高いユースケースで直感的で最短 ・入力補完でガイドされ機能が想像つく その後に APIの手触りを損ねない拡張性を組み込んでいく
41.
手触り駆動設計(Scenario First, API
First) ライブラリにおいて何が一番大事かというと、APIの手触り 私にとって設計とは良いPublic APIの手触りを考えることから ・最も頻度の高いユースケースで直感的で最短 ・入力補完でガイドされ機能が想像つく その後に APIの手触りを損ねない拡張性を組み込んでいく
42.
Conclusion
43.
GitHubだけが全ての指標ではない 表に名前の出ていない凄腕の人はいっぱいいる 企業での大きな仕事でしか得られない経験もある しかし近道ではある 全体的には、どんどんオープンな世界に近づいている また、誰にでも平等にチャンスがある (良い環境で良い仕事に恵まれていなくても、一発逆転できる)
44.
未来の競合になる 作り出したものは、未来の誰かのリファレンスになる それは、その領域を進化させる鍵になれるということ そして自分のためになる ただの社会貢献だけではなく 自分の実力向上に繋がり、キャリアの成功に繋がっていくでしょう 競合を調べまくって、他所より完璧に、最高の機能を載せる 何度も似たようなテーマを重ね完成度の高いライブラリを生み出す
Download