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
程式設計師的自我修養
Search
Kudo Chien
October 01, 2016
Programming
3
490
程式設計師的自我修養
TechCCU 2016
Kudo Chien
October 01, 2016
Tweet
Share
More Decks by Kudo Chien
See All by Kudo Chien
阿迪仔, 你為什麼不寫 Unit Test @ TestCorner#14
kudochien
1
130
工程師的生涯規劃,從 React Native 開始
kudochien
11
1.2k
React Ecosystem
kudochien
0
190
如果下半輩子只想 DEBUG 怎麼辦?
kudochien
12
2.7k
如果下半輩子只想成功怎麼辦?
kudochien
2
270
flowstatd
kudochien
1
330
Other Decks in Programming
See All in Programming
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
520
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
110
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
810
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
110
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
580
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
500
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
WebViewの現在地 - SwiftUI時代のWebKit - / The Current State Of WebView
marcy731
0
100
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
850
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1.1k
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
220
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
GitHub's CSS Performance
jonrohan
1031
460k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Embracing the Ebb and Flow
colly
86
4.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Bash Introduction
62gerente
614
210k
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
Designing for humans not robots
tammielis
253
25k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Facilitating Awesome Meetings
lara
54
6.4k
BBQ
matthewcrist
89
9.7k
Transcript
程式設計師的 ⾃自我修養
[email protected]
github.com/Kudo . @kudochien .
[email protected]
ABOUT ME ▸ CCUCSIE 2002
- 2008, BS + MS (GAIS Lab) ▸ CNA 2002 - 2008 ▸ Trend Micro, startups… ▸ TechCCU 2014 / 2015 ▸ 打雜⼯工,⼈人⽣生立志解 Bugs ▸ 今年年是 CloudMosa 偽前端⼯工程師
序 TECHCCU 2014
序 TECHCCU 2015 ⼯工程師的⽣生涯規劃 從 REACT NATIVE 開始
TEXT Balance CC From: https://www.flickr.com/photos/54027476@N07/5000518184/
CC From: https://www.flickr.com/photos/drb62/2623135401/ CC From: https://www.flickr.com/photos/anned/8700093610/ CC From: https://www.flickr.com/photos/maf04/5966652501 美感
追根究底 快速學習
美感 CC From: https://www.flickr.com/photos/maf04/5966652501
CC From: https://www.flickr.com/photos/iamshinji/3063220244/ Code level beauty
BREAK COMMON CODE
美感 DESIGN PATTERNS ▸ Factory ▸ Singleton ▸ Decorator ▸
Adapter ▸ Strategy ▸ Composite ▸ …
⼤大話設計模式 程杰
美感 SOLID ▸ SRP ▸ Single responsibility principle ▸ OCP
▸ Open/close Principle ▸ LSP ▸ Liskov substitution principle ▸ ISP ▸ Interface segregation principle ▸ DIP ▸ Dependency inversion principle
Beautiful Code 美麗程式
FUNCTIONAL PROGRAMING
美感 TEST ▸ Unit test ▸ Functional test ▸ Integration
test
美感 UNIT TEST ▸ 寫出好測試的程式 ▸ Dependency Injection (DI) ▸
Mock object ▸ Case: USB pendrive test program
CC From: https://www.flickr.com/photos/75487768@N04/16577863294/ Architecture level beauty
TEXT All in one controller From: https://www.flickr.com/photos/127130111@N06/15843976929/
ALL PROBLEMS IN COMPUTER SCIENCE CAN BE SOLVED BY ANOTHER
LEVEL OF INDIRECTION. David John Wheeler 美感
美感 MVC (MODEL VIEW CONTROLLER) From: https://en.wikipedia.org/wiki/Model-view-controller
美感 MVVM (MODEL VIEW VIEW-MODEL) From: https://en.wikipedia.org/wiki/Model-view-viewmodel
美感 MVP (MODEL VIEW PRESENTER) From: https://en.wikipedia.org/wiki/Model–view–presenter
MVW WHATEVER Ref: https://plus.google.com/+AngularJS/posts/aZNVhj355G2
美感 FLUX From: https://facebook.github.io/react/blog/2014/07/30/flux-actions-and-the-dispatcher.html
美感 MODEL 的分層 - DDD (DOMAIN-DRIVEN DESIGN) From: https://github.com/zkavtaskin/Domain-Driven-Design-Example
美感 THE EVOLUTION OF A SOFTWARE ENGINEER ▸ https://medium.com/@webseanhickey/the-evolution-of-a- software-engineer-db854689243
▸ 獨孤求敗 ▸ 劍器資料
追根究底 CC From: https://www.flickr.com/photos/drb62/2623135401/
程式設計師的⾃自我 修養-連結、載入、 程式庫 俞甲⼦子、⽯石凡、潘愛⺠民
跟 BUG 正⾯面對決
追根究底 是否曾經遇過這樣的狀狀況 !? ▸ 把⼀一⾏行行拿掉程式就正常了了 ▸ 先做 A 再做 B
就不會 crash 了了 ▸ 降低 thread 的數量量就可以了了 ▸ 不要跑 Daemon mode 就可以了了
追根究底 DEBUG CASE - I ▸ 程式不正常,好像沒有在跑 ▸ 看 Debug
log ▸ 沒 Debug log ▸ Process Monitor by SysInternals ▸ IE Protected Mode
追根究底 DEBUG CASE - II ▸ 使⽤用⼿手機瀏覽器開了了多個分⾴頁之後,⼿手指滑動會很慢、耗電 量量⾼高、⼿手機變燙 ▸ Profiling
▸ CPU / RAM / Power Consumption ▸ Gesture Recognizer ▸ Reverse Engineering
PROFILING AS SINGLE TRUTH
追根究底 充滿好奇⼼心 ▸ 好奇別⼈人的 Bug 怎麼解的 ▸ 好奇⼈人家的技術是怎麼做到的 ▸ 好奇為什什麼⼈人家的程式就是比較快、比較省記憶體
快速有深度 的學習 CC From: https://www.flickr.com/photos/anned/8700093610/
愛上看CODE ▸ Thinker ⼤大⼤大的⽂文章 ‣ 讀 code 和讀⽂章應該差不多 ‣ http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/498
‣ 閱讀程式碼的⼼理層⾯ ‣ http://www.codemud.net/~thinker/GinGin_CGI.py/show_id_doc/497
快速有深度的學習 擁抱新技術 !? ▸ ROR 開發速度很快 ▸ NodeJS 執⾏行行速度很快 ▸
Swift 是⼀一個很棒的程式語⾔言 ▸ AngularJS, ReactJS ▸ NoSQL MongoDB ▸ 不要⼈人云亦云 ▸ 要知道⾃自⼰己要的是什什麼 ▸ 深度研究
快速有深度的學習 依程式語⾔言特性因地制宜 ▸ ElasticSearch reindex ▸ ⽤用 NodeJS 超痛苦 ▸
先天 asynchronous 特性 ▸ 改⽤用 Python 好多了了
REACT IS NOT ONLY VDOM
快速有深度的學習 跟上 FRONTEND 技術變化 ▸ JavaScript ▸ jQuery ▸ BackboneJS
▸ AngularJS ▸ ReactJS ▸ VueJS ▸ AngularJS2 ▸ CSS ▸ CSS ▸ SASS ▸ CSS Modules
快速有深度的學習 * WEEKLY ▸ CodeTengu Weekly ▸ Android Weekly ▸
iOSGoodies ▸ Python Weekly ▸ CSS Weekly ▸ egghead.io ▸ Livecoding.tv
CONTRIBUTION To open source projects
快速有深度的學習TEXT FLOWSTATD ▸ https://speakerdeck.com/kudochien/flowstatd
快速有深度的學習TEXT 如果下半輩⼦子只想 DEBUG 怎麼辦 ▸ https://speakerdeck.com/kudochien/ru-guo-xia-ban-bei-zi-zhi-xiang-debug-zen-mo-ban
快速有深度的學習TEXT ⼯工程師的⽣生涯規劃,從 REACT NATIVE 開始 ▸ https://speakerdeck.com/kudochien/gong-cheng-shi-de-sheng-ya-gui-hua-cong-react-native-kai-shi
CC From: https://www.flickr.com/photos/drb62/2623135401/ CC From: https://www.flickr.com/photos/anned/8700093610/ CC From: https://www.flickr.com/photos/maf04/5966652501 美感
追根究底 快速學習
@kudochien on twitter
REFERENCES ▸ iOS Architecture Patterns ▸ Demystifying MVC, MVP, MVVM
and VIPER ▸ Flux ▸ https://facebook.github.io/flux/ 裡⾯面這段影片值得⼀一看 ▸ Contribution ▸ Check React Native - https://github.com/facebook/ react-native