SlideShare a Scribd company logo
Maxis Kao | Oct. 19, 2016
> 優化開發環境 無料提升戰⾾鬥⼒力
Maxis Kao
➔ Software Engineer at Yahoo
➔ Top Hack of Yahoo TW/JP Joint Hackday
➔ Winner of Yahoo Bot Challenge
範疇
環境決定論
⼯工程師⽣生態系
⾓角⾊色 / 需求
• RD:程式
• PM:時程
• Company:成本 + ⾵風險
• Client:產品
原始⼈人寫程式
很久很久以前
• PM:明天新功能上線!
• RD 1:⼤大部份都做好了,等等跟 RD 2 合併
• RD 2:我只差剩下的⼀一些⼩小 bug 待會修⼀一下就好
• QA:看起來還⾏行,但疑似有些 bug 無法重現 (reproduce)
• PM:沒關係,晚上衝⼀一下!明天開⼼心上線
半夜 12 點
RD
• RD 1:我們來合⼀一下 code
[ 經過漫⻑⾧長的半⼩小時,解 conflict ]
• RD 2:奇怪為什麼我的電腦上有錯你的沒有
• RD 1:等等!我現在⼜又跑出奇怪的 bug,先來速速解⼀一下
QA
• 之前壞掉的好像修好了
• 原本好的貌似變得不穩定
• 到底什麼時候可以給我最終版
PM
• 什麼?!剛剛不是說快弄好了
• 乖乖
• 踱步
• 抓頭
早上 7 點
上線
悲劇
現代⼈人寫程式
“什麼是環境?”
⼯工作環境 開發環境 開發流程
⼯工作環境
M A C B O O K P R O
蘋 果
I P H O N E
寫 很 滿 的 筆 記 本
搖 滾 樂 + 莫 扎 特
便 宜 的 咖 啡
在 講 設 計 的 書
很 普 通 的 鉛 筆
⼤大 桌 ⼦子
密 密 ⿇麻 ⿇麻 像 駭 客 ⼀一 樣
I K E A 的 檯 燈
開發環境 / ⼯工具
開發環境
• OS
• Text editors
• Command line tools
• Web Platform
OS
• Windows	
  
• Linux	
  
• Mac	
  OS	
  
• Ubuntu	
  
• Debian
Text editors
• Notepad
Text editors
• Notepad	
  
• Sublime	
  Text
Text editors
• Notepad	
  
• Sublime	
  Text	
  
• vim	
  
• emacs
Command line tools
• ZSH	
  (oh-­‐my-­‐zsh)
Command line tools
• ZSH	
  (oh-­‐my-­‐zsh)	
  
• tmux	
  +	
  htop
Web platform as a service
• AWS	
  
• Heroku	
  
• Google	
  App	
  Engine
開發環境 / 流程
程式設計 ≠ 軟體開發
個⼈人開發環境
⼤大⼈人不在家,怎麼做都開⼼心
團隊開發流程
⾃自⼰己亂寫就算了,但要為別⼈人設想
“10+ Deploys per Day
Dev and Ops Cooperation at flickr”
- John Allspaw and Paul Hammond
Patrick DeBois
#devops
#devops
since 2009
– 蔣渭⽔水
“同胞須團結,團結真有⼒力”
在 DevOps 出現之前...
– an angry ops guy
“It’s not my machines,
it’s your code!”
– an angry dev guy
“It’s not my code,
it’s your machines!”
Dev Ops
改變 穩定
Dev Ops
改變 穩定
DevOps key points
• automated infrastructure (⾃自動化集成)
• shared version control (共⽤用程式碼)
• one step build and deploy (持續建構/部署)
• feature flags (主幹開發)
• shared metrics (不藏私)
• IRC and IM robots (信息整合)
A survey
• 來源: RightScale
• 受訪者: 1,060 資訊⼈人員
• 42% 就職於超個 1,000 ⼈人的⼤大公司
“XP”
“Extreme Programming”
- Kent Beck since 1996
YAHOO!+
企業經驗
Extreme Programming
• Fine-scale feedback (細微回饋)
• Continuous process (持續程式)
• Shared understanding (共識)
• Programmer welfare (⼯工程師的利益)
Fine-scale feedback (細微回饋)
• Whole team
• Test-driven development (TDD)
• Planning game
• Pair programming
Fine-scale feedback (細微回饋)
• Whole team
• Test-driven development (TDD)
• Planning game
• Pair programming
Dev ⬄ Client
Fine-scale feedback (細微回饋)
• Whole team
• Test-driven development (TDD)
• Planning game
• Pair programming
先寫測試!
先寫測試!
先寫測試!
test environments &
frameworks
Fine-scale feedback (細微回饋)
• Whole team
• Test-driven development (TDD)
• Planning game (策劃遊戲)
• Pair programming
Exploration phase
• Write a Story
• Estimate a Story
• Split a Story
Commitment phase
• Sort by Value
• Sort by Risk
• Set Velocity
• Choose scope
Steering phase
• 估計誤差
• 客⼾戶需求改變
Fine-scale feedback (細微回饋)
• Whole team
• Test-driven development (TDD)
• Planning game
• Pair programming (⼀一起寫扣)
“Is pair programming worth it?”
Continuous process (持續程式)
• Small releases
• Continuous integration
• Design improvement
Continuous process (持續程式)
• Small releases
• Continuous integration
• Design improvement
Continuous process (持續程式)
• Small releases
• Continuous integration (持續整合)
• Design improvement
– Standard Bank: Our DevOps Journey
“The Chop Chop team”
Dawie (CIO) + Dev + Ops
War Room !
2000 x
軟體交付速度的破壞性變⾰革
– Marissa Mayer
“沒有持續交付 (Continuous Delivery)
專案不得上線,我不是在說笑”
100%
Continuous Delivery
– SJ Chou, Senior Engineer at Foxconn
“有事沒事就把⼤大家寫的 code 合起來
跑看看有沒有錯”
持續 整合
– SJ Chou, Senior Engineer at Foxconn
“有事沒事就把⼤大家寫的 code 合起來
跑看看有沒有錯”
持續 整合
– SJ Chou, Senior Engineer at Foxconn
“有事沒事就把⼤大家寫的 code 合起來
跑看看有沒有錯”
持續 整合
天下武功 無堅不破 唯快不破
Continuous process (持續程式)
• Small releases
• Continuous integration
• Design improvement
“Refactoring”
Improving the Design of Existing Code
Refactoring: Improving the
Design of Existing Code
Martin Fowler
Refactoring ⬄ Users
Refactoring	
  is	
  boring.
ok, but how?
“Bad Smells”
Long Parameter List.
Divergent Change.
Shotgun Surgery.
Feature Envy.
Data Clumps.
Primitive Obsession.
Switch Statements.
Parallel Inheritance Hierarchies.
Lazy Class.
Speculative Generality.
Temporary Field.
Message Chains.
Middle Man.
Inappropriate Intimacy.
Alternative Classes with Different Interfaces.
Incomplete Library Class.
Bad smells
• Duplicated Code
• Long Method / Large Class
• Long Parameter List
• Switch Statements
• Indecent Exposure
• Feature Envy
• Comments
Duplicated Code
• 恐怖份⼦子⾸首腦
• Don't Repeat Yourself!
Long Method / Large Class
• ⼀一個 main() 上萬⾏行
• 負擔過多責任
• Extract Class / Subclass / Interface
Long Parameter List
• Hard to understand
• Inconsistent
• set	
  (a,	
  b,	
  c,	
  x,	
  y,	
  z,	
  flag,	
  amount)	
  
• set	
  (a,	
  b,	
  c,	
  y,	
  x,	
  z,	
  flag,	
  amount)
Switch Statements
• 「好的物件導向程式應該少⽤用 switch」
• open-closed principle (OCP)
Indecent Exposure
• 家⾨門要記得關,沒必要的東⻄西不要隨便 public
Feature Envy
• 特性依戀
Comments
/*	
  	
  	
  
	
  *	
  	
  This	
  is	
  a	
  add	
  function,	
  returns	
  a	
  +	
  b	
  
	
  */	
  
function	
  kerker	
  (a,	
  b){	
  
	
  	
  return	
  a	
  +	
  b;	
  
}
Comments
/*	
  	
  	
  
	
  *	
  	
  Returns	
  a	
  +	
  b	
  
	
  */	
  
function	
  add	
  (a,	
  b){	
  
	
  	
  return	
  a	
  +	
  b;	
  
}
@use JSDoc
Shared understanding (共識)
• Simple design
• System metaphor
• Coding standard
• Collective code ownership
Shared understanding (共識)
• Simple design
• System metaphor
• Coding standard
• Collective code ownership
Shared understanding (共識)
• Simple design
• System metaphor
• Coding standard
• Collective code ownership
Shared understanding (共識)
• Simple design
• System metaphor
• Coding standard
• Collective code ownership
long_function_name	
  
vs	
  
longFunctionName
Shared understanding (共識)
• Simple design
• System metaphor
• Coding standard
• Collective code ownership
– SJ Chou, Senior Engineer at Foxconn
“有事沒事就把⼤大家寫的 code 合起來
跑看看有沒有錯”
持續 整合
version control
• 根據定義,可以⽤用以下 check list 判斷是否 version control
Version Control check list:
[ ] record changes over time
[ ] recall a specific version
version control
• 根據定義,可以⽤用以下 check list 判斷是否 version control
Version Control check list:
[v] record changes over time
[v] recall a specific version
“collective”
version control systems
Git ≠ Github
Git flow
A successful Git branching model
Vincent Driessen
2 main + 3 supporting branches
main branches
• develop	
  
• master
supporting branches
• feature	
  
• release	
  
• hotfix
Commit Messages
* fde679b	
  -­‐	
  very	
  hot	
  fix	
  <allen>	
  
* d0ad381	
  -­‐	
  Kerker.	
  <maxis>	
  
* f007579	
  -­‐	
  test	
  <jason>	
  
* 09b9813	
  -­‐	
  fix	
  bug.	
  <maxis>	
  
* 2430918	
  -­‐	
  fix	
  bugs	
  <allen>	
  
* fde679b	
  -­‐	
  abc123	
  <jason>	
  
* b6c7ee1	
  -­‐	
  hot	
  fix	
  <allen>
7 rules of a great commit message
• Separate subject from body with a blank line
• Limit the subject line to 50 characters
• Capitalize the subject line
• Do not end the subject line with a period
• Use the imperative mood in the subject line
• Wrap the body at 72 characters
• Use the body to explain what and why vs. how
* fde679b	
  -­‐	
  Fix	
  typo	
  in	
  the	
  Search	
  Box	
  <allen>	
  
* d0ad381	
  -­‐	
  Revamp	
  Search	
  Box	
  UI	
  <maxis>	
  
* f007579	
  -­‐	
  Add	
  new	
  Search	
  Box	
  UI	
  <jason>	
  
* 09b9813	
  -­‐	
  fix	
  bug.	
  <maxis>	
  
* 2430918	
  -­‐	
  fix	
  bugs	
  <allen>	
  
* fde679b	
  -­‐	
  abc123	
  <jason>	
  
* b6c7ee1	
  -­‐	
  hot	
  fix	
  <allen>
Programmer welfare (⼯工程師的利益)
• Sustainable pace
“40-Hour Work Week”
雅⻁虎經驗
• Training - Ninja Kata
• DevOps - Docker
• CI/CD - Jenkins
– Peter Drucker
“Do the right thing”
Thanks :P
Q / A
可以這樣找到我
• Maxis Kao
• maxis1718@gmail.com
• http://maxis1718.github.io

More Related Content

What's hot

Drop the Pressure on your Production Server
Drop the Pressure on your Production ServerDrop the Pressure on your Production Server
Drop the Pressure on your Production Server
Microsoft TechNet - Belgium and Luxembourg
 
Transforming IT Infrastructure
Transforming IT InfrastructureTransforming IT Infrastructure
Transforming IT Infrastructure
tim_evdbt
 
Dueling duplications RMAN vs Delphix
Dueling duplications RMAN vs DelphixDueling duplications RMAN vs Delphix
Dueling duplications RMAN vs DelphixKyle Hailey
 
ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?
Jagadish Venkatraman
 
Fail over fail_back
Fail over fail_backFail over fail_back
Fail over fail_back
PostgreSQL Experts, Inc.
 
Sql server 2012 ha dr 24_hop_final
Sql server 2012 ha dr 24_hop_finalSql server 2012 ha dr 24_hop_final
Sql server 2012 ha dr 24_hop_final
Joseph D'Antoni
 
#NetflixEverywhere Global Architecture
#NetflixEverywhere Global Architecture#NetflixEverywhere Global Architecture
#NetflixEverywhere Global Architecture
Josh Evans
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification StoryDVClub
 
Elite Bug Squashing
Elite Bug SquashingElite Bug Squashing
Elite Bug Squashing
Tony Brown
 
Delphix database virtualization v1.0
Delphix database virtualization v1.0Delphix database virtualization v1.0
Delphix database virtualization v1.0Arik Lev
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to Production
C2B2 Consulting
 
DSL Construction rith Ruby
DSL Construction rith RubyDSL Construction rith Ruby
DSL Construction rith Ruby
ThoughtWorks
 
Accelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | DelphixAccelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | Delphix
DelphixCorp
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUsDVClub
 
Troubleshooting K1000
Troubleshooting K1000Troubleshooting K1000
Troubleshooting K1000
Dell World
 
UKGSE DB2 pureScale
UKGSE DB2 pureScaleUKGSE DB2 pureScale
UKGSE DB2 pureScale
Laura Hood
 
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
Amazon Web Services
 
5 Ways to Avoid Server and Application Downtime
5 Ways to Avoid Server and Application Downtime5 Ways to Avoid Server and Application Downtime
5 Ways to Avoid Server and Application Downtime
Neverfail Group
 

What's hot (20)

Drop the Pressure on your Production Server
Drop the Pressure on your Production ServerDrop the Pressure on your Production Server
Drop the Pressure on your Production Server
 
Transforming IT Infrastructure
Transforming IT InfrastructureTransforming IT Infrastructure
Transforming IT Infrastructure
 
Dueling duplications RMAN vs Delphix
Dueling duplications RMAN vs DelphixDueling duplications RMAN vs Delphix
Dueling duplications RMAN vs Delphix
 
ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?ApacheCon BigData - What it takes to process a trillion events a day?
ApacheCon BigData - What it takes to process a trillion events a day?
 
Fail over fail_back
Fail over fail_backFail over fail_back
Fail over fail_back
 
Sql server 2012 ha dr 24_hop_final
Sql server 2012 ha dr 24_hop_finalSql server 2012 ha dr 24_hop_final
Sql server 2012 ha dr 24_hop_final
 
#NetflixEverywhere Global Architecture
#NetflixEverywhere Global Architecture#NetflixEverywhere Global Architecture
#NetflixEverywhere Global Architecture
 
Zhang rtp q307
Zhang rtp q307Zhang rtp q307
Zhang rtp q307
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification Story
 
Elite Bug Squashing
Elite Bug SquashingElite Bug Squashing
Elite Bug Squashing
 
Zehr dv club_12052006
Zehr dv club_12052006Zehr dv club_12052006
Zehr dv club_12052006
 
Delphix database virtualization v1.0
Delphix database virtualization v1.0Delphix database virtualization v1.0
Delphix database virtualization v1.0
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to Production
 
DSL Construction rith Ruby
DSL Construction rith RubyDSL Construction rith Ruby
DSL Construction rith Ruby
 
Accelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | DelphixAccelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | Delphix
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
 
Troubleshooting K1000
Troubleshooting K1000Troubleshooting K1000
Troubleshooting K1000
 
UKGSE DB2 pureScale
UKGSE DB2 pureScaleUKGSE DB2 pureScale
UKGSE DB2 pureScale
 
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
CPN208 Failures at Scale & How to Ride Through Them - AWS re: Invent 2012
 
5 Ways to Avoid Server and Application Downtime
5 Ways to Avoid Server and Application Downtime5 Ways to Avoid Server and Application Downtime
5 Ways to Avoid Server and Application Downtime
 

Similar to 優化開發環境 無料提升戰鬥力

Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
FoundationDB
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
Roger Xia
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting example
corehard_by
 
Sista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performanceSista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performance
ESUG
 
Into The Box 2020 Keynote Day 1
Into The Box 2020 Keynote Day 1Into The Box 2020 Keynote Day 1
Into The Box 2020 Keynote Day 1
Ortus Solutions, Corp
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
Eonblast
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
John Adams
 
Ltc Meeting 20120507
Ltc Meeting 20120507Ltc Meeting 20120507
Ltc Meeting 20120507
LearningTech
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
Dashlane
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
Jesse Warden
 
Endeca Performance Considerations
Endeca Performance ConsiderationsEndeca Performance Considerations
Endeca Performance Considerations
Cirrus10
 
Art of refactoring - Code Smells and Microservices Antipatterns
Art of refactoring - Code Smells and Microservices AntipatternsArt of refactoring - Code Smells and Microservices Antipatterns
Art of refactoring - Code Smells and Microservices Antipatterns
El Mahdi Benzekri
 
Cassandra Summit 2014: Deploying Cassandra for Call of Duty
Cassandra Summit 2014: Deploying Cassandra for Call of DutyCassandra Summit 2014: Deploying Cassandra for Call of Duty
Cassandra Summit 2014: Deploying Cassandra for Call of Duty
DataStax Academy
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
C4Media
 

Similar to 優化開發環境 無料提升戰鬥力 (20)

Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Voldemort Nosql
Voldemort NosqlVoldemort Nosql
Voldemort Nosql
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting example
 
Sista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performanceSista: Improving Cog’s JIT performance
Sista: Improving Cog’s JIT performance
 
Into The Box 2020 Keynote Day 1
Into The Box 2020 Keynote Day 1Into The Box 2020 Keynote Day 1
Into The Box 2020 Keynote Day 1
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Ltc Meeting 20120507
Ltc Meeting 20120507Ltc Meeting 20120507
Ltc Meeting 20120507
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Endeca Performance Considerations
Endeca Performance ConsiderationsEndeca Performance Considerations
Endeca Performance Considerations
 
Art of refactoring - Code Smells and Microservices Antipatterns
Art of refactoring - Code Smells and Microservices AntipatternsArt of refactoring - Code Smells and Microservices Antipatterns
Art of refactoring - Code Smells and Microservices Antipatterns
 
Migrating big data
Migrating big dataMigrating big data
Migrating big data
 
Cassandra Summit 2014: Deploying Cassandra for Call of Duty
Cassandra Summit 2014: Deploying Cassandra for Call of DutyCassandra Summit 2014: Deploying Cassandra for Call of Duty
Cassandra Summit 2014: Deploying Cassandra for Call of Duty
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
 

More from Maxis Kao

User first! 前端的最後一塊拼圖
User first! 前端的最後一塊拼圖User first! 前端的最後一塊拼圖
User first! 前端的最後一塊拼圖
Maxis Kao
 
2016 前端潮玩意兒
2016 前端潮玩意兒2016 前端潮玩意兒
2016 前端潮玩意兒
Maxis Kao
 
Bot 甘苦談,使用者至上
Bot 甘苦談,使用者至上Bot 甘苦談,使用者至上
Bot 甘苦談,使用者至上
Maxis Kao
 
Enjoy privacy on Gitlab
Enjoy privacy on GitlabEnjoy privacy on Gitlab
Enjoy privacy on Gitlab
Maxis Kao
 
Timelapse News
Timelapse NewsTimelapse News
Timelapse News
Maxis Kao
 
[Frontend 101] JavaScript OOP
[Frontend 101] JavaScript OOP[Frontend 101] JavaScript OOP
[Frontend 101] JavaScript OOP
Maxis Kao
 

More from Maxis Kao (6)

User first! 前端的最後一塊拼圖
User first! 前端的最後一塊拼圖User first! 前端的最後一塊拼圖
User first! 前端的最後一塊拼圖
 
2016 前端潮玩意兒
2016 前端潮玩意兒2016 前端潮玩意兒
2016 前端潮玩意兒
 
Bot 甘苦談,使用者至上
Bot 甘苦談,使用者至上Bot 甘苦談,使用者至上
Bot 甘苦談,使用者至上
 
Enjoy privacy on Gitlab
Enjoy privacy on GitlabEnjoy privacy on Gitlab
Enjoy privacy on Gitlab
 
Timelapse News
Timelapse NewsTimelapse News
Timelapse News
 
[Frontend 101] JavaScript OOP
[Frontend 101] JavaScript OOP[Frontend 101] JavaScript OOP
[Frontend 101] JavaScript OOP
 

Recently uploaded

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 

Recently uploaded (20)

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 

優化開發環境 無料提升戰鬥力