Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Looking back on JavaScript
Search
linyows
April 27, 2017
Technology
4
520
Looking back on JavaScript
GMO pepabo Tech Meeting/Hosting#3 で話した資料です
linyows
April 27, 2017
Tweet
Share
More Decks by linyows
See All by linyows
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
110
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
550
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
linyows
0
340
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
470
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative deployment in non-container environments
linyows
0
270
メール送信サーバの集約における透過型SMTP プロキシの定量評価 / Quantitative Evaluation of Transparent SMTP Proxy in Email Sending Server Aggregation
linyows
0
1k
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
510
研究の再現性を高める 仕組みをGoでつくる / Creating a system to improve the reproducibility of research using go
linyows
1
270
奥が深いメールのシステム / The depth of Email system
linyows
4
630
Other Decks in Technology
See All in Technology
AlarmKitで実現する 新時代のシステム通知
tsuzuki817
0
230
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
2
1.3k
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
4
1.4k
20250905_MeetUp_Ito-san_s_presentation.pdf
magicpod
1
140
そのJavaScript、V8が泣いてます。V8の気持ちを理解して書くパフォーマンス最適化
riyaamemiya
0
140
使いやすいプラットフォームの作り方 ー LINEヤフーのKubernetes基盤に学ぶ理論と実践
lycorptech_jp
PRO
2
220
株式会社島津製作所_研究開発(集団協業と知的生産)の現場を支える、OSS知識基盤システムの導入
akahane92
1
1.6k
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
210
非エンジニアによるDevin開発のためにSREができること
shonansurvivors
0
110
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
140
組織を巻き込む大規模プラットフォーム移行戦略 〜50+サービスのマルチリージョン・マルチプロダクト化で学んだステークホルダー協働の実践〜 / Platform migration strategy engaging all stakeholders
toshi0607
2
360
はじめてのOSS開発からみえたGo言語の強み
shibukazu
4
1.1k
Featured
See All Featured
How GitHub (no longer) Works
holman
315
140k
Writing Fast Ruby
sferik
628
62k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Designing for humans not robots
tammielis
253
25k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
For a Future-Friendly Web
brad_frost
180
9.9k
What's in a price? How to price your products and services
michaelherold
246
12k
Visualization
eitanlees
148
16k
KATA
mclloyd
32
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Transcript
ͳΜͱͳ͘+4ॻ͍ͯΔਓ 5PNPIJTB0EB(.01FQBCP *OD 5FDI.FFUJOH)PTUJOH +BWB4DSJQUͷ;Γ͔͑Γձ
ϓϦϯγύϧΤϯδχΞ 5PNPIJTB0EB!MJOZPXT ٕज़෦ٕज़ج൫νʔϜ
͓΅͍͑ͯ·͔͢ʁ
'BOJDઑͬͯ·ͨ͠ʢ࣌ wϦΞϧλΠϜը૾มʢࠓͱͳͬͯී௨ w''NQFHϥούʔͰNQɺBBD૬ޓมKPC wTͷϦιʔεΰϛߴআKPC ʑɺ/PEFKTΛ༻͍ͯΠϕϯτϧʔϓ ϊϯϒϩοΩ ϯάΛ׆༻͍ͯͨ͠
͜Μͳํ͕ରͰ͢ wK2VFSZΛͱΓ͋͑ͣͬͯ·͢Α wQSPUPUZQFͬͯԿɺK2VFSZͷલʹྲྀߦͬͨͭʁ w&$."4DSJQUʁॳΊͯฉ͖·ͨ͠
XFCΞϓϦέʔγϣϯ։ൃͯ͠Δ ͕ɺKT͕ϝΠϯ͡Όͳ͍
ͳΜͱͳ͘+4ॻ͍ͯ·͢ʂ
+BWB4DSJQUͷ͜Ε·ͰམͪͿΕ wॳ಄ϒϥβͱͱʹੜ w&$."ઃཱʢ+TDSJQUͱ+BWB4DSJQUޓͷಈ͖ʣ wͱ͜Ζ͕ҙݟ͕·ͱ·Βͳ͍ wͦͷؒʹ"DUJPO4DSJQUͷ'MBTI͕·Δ w/BUJWF+4ͳΜͯཁΒΜͷ͡Όͱ͍͏งғؾʜաڈͷͷ
+BWB4DSJQUͷ͜Ε·Ͱ࠶ͼ w(PPHMF.BQͰ"KBY͕ར༻͞Ε+4͕࠶ͼΛ͋ͼ࢝ΊΔ w$ISPNFͱͱʹWNܕͰߴͳ+4Τϯδϯ7͕ެ։͞ΕΔ w7ΛͬͨαʔόαΠυͷSVOUJNF/PEFKT͕ੜ͢Δ wࠒ͔Β#BDLCPOFKTච಄ʹ"OHVMBS+43FBDU7VFKTͳͲ ͷํόΠϯσΟϯάϑϨʔϜϫʔΫ͕ొ͍ͯ͘͠ w&$."4DSJQUUIFEJUJPO͕ެ։͞ΕΔ
ํσʔλόΠϯσΟϯάͱ w6*ͱσʔλͷํͰใʢมԽʣΛڞ༗͢Δ w6*ʢJOQVUʣΛมߋͨ͠Βσʔλʹө͠ɺσʔλ͕ߋ৽͞ΕͨΒ6* ͕มԽ w۩ମతʹWJFXNPEFMํͰΓͱΓ͢Δ
&$."4DSJQUUIFEJUJPO w͍ΘΏΔ&4&4 wݴޠ༷Λ࠶ఆٛ wࠓޙԿόάमਖ਼ͱখ͞ͳػೳՃͰຖϦϦʔε w͜Εʹ߹Θͤɺαʔόͱϒϥβͷ+4͕౷߹ʹ ͔͍ͬͯΔʁͣ
&4ͬͯ͑Δͷ w&4͕͏͙͢ʜ w֤αʔϏεͷޓදIUUQLBOHBYHJUIVCJP DPNQBUUBCMFFT wओཁϒϥβɺ࠷৽/PEFKTͰ΄΅ରԠࡁΈͳͷͰେ ମ͑Δͱݴ͑Δ wେମͳͷͰτϥϯεύΠϧΔͷ͕ແ
5SBOTQJMF τϥϯεύΠϥ w#BCFM w#VCMF τϥϯεύΠϧ͕ඞཁͳݴޠ w5ZQF4DSJQU w$P⒎FF4DSJQU
Ͱɺ&4Կ͕͏Ε͍͠ͷʁ
&4Ͱ͏Ε͍͜͠ͱ wQSPUPUZQFϕʔεͰઃܭ͠ͳͯ͘ྑ͘ͳΔDMBTTͱ FYUFOET w͖Ε͍ͳTZOUBYʢBSSPXGVODUJPOQSPNJTFʜ ʣ w4ZNCPMΒ.BQͳͲศརػೳ ৄ͘͠IUUQQPTUEDDFTDIFBUTIFFU
ʘͦͦ Α͘Θ͔Βͳ͍Ͱ͢ ϓϩτλΠϓϕʔε ʢͪͳΈʹ͖Ͱ͢ʣ
Ͱ͢ΑͶ ??
ܧঝͷྫ function Employee() { this.name = ""; this.dept = "general";
} function Manager() { Employee.call(this); this.reports = []; } Manager.prototype = Object.create(Employee.prototype); function Worker() { Employee.call(this); this.projects = []; } Worker.prototype = Object.create(Employee.prototype); function Engineer() { Partner.call(this); this.dept = "engineering"; } Engineer.prototype = Object.create(Worker.prototype); var opo = new Engineer(); opo.dept; // => "enginneering"
֦ுͷྫ function Point(x, y) { this.x = x; this.y =
y; } var p = new Point(3, 4); p.x // => 3 p.y // => 4 Point.prototype.r = function() { return Math.sqrt((this.x * this.x) + (this.y * this.y)); }; p.r();
ײ wܧঝͱ͍͏ΑΓίϐʔʹ͍ۙ wநԽ͞Εͨͷͱ࣮ଶͷ͕ؔͳ͍શ࣮ͯଶ wͳͷͰΑΓૄ݁߹ͳΦϒδΣΫτ
·ͱΊ w͍ྺ࢙ΛܦͯͬͱҰ؏ੑ͕ग़͖ͯͭͭ͋Δ wͨͩ͠ɺաظͳͷͰ༷ʑͳπʔϧपลϥΠϒϥϦ ͕ࢁग़ݱͯ͠ফ͍͍͑ͯͬͯΔ wࠓͳ͓৽͍͠ϓϩϙʔαϧ͕HJUIVCʹ্͕͍ͬͯͯ มԽ͍ͯ͠Δதɺϒϥβ͔ΒαʔόαΠυͨ·ͨ ϞόΠϧΧόʔ͢ΔݴޠແࢹͰ͖ͳ͍ͷͰ͋Δ
߈Ί͍ͯ͜͏+BWB4DSJQU
܅αϩϯʹ͓͍Ͱʁ ࠷৽ใΛνΣοΫˠ !MJOZPXT
͓ΘΓ