Hackpads are smart collaborative documents. .

Elvis Lin

307 days ago
Unfiled. Edited by Elvis Lin , Tsai Mark , Shawn Chen , 阿耀 , Terence Liu 307 days ago
Elvis L JCConf 2016 Day1 (R2)
  • Day1 R0
共筆位置:JCconf 2016 Day1 R0
  • Day1 R1
共筆位置:JCConf 2016 Day1 R1
  • Day1 R2
共筆位置:JCConf 2016 Day1 R2
  • Day2 R0
共筆位置:JCConf 2016 Day2 R0
  • Day2 R1
共筆位置:JCConf 2016 Day2 R1
 
 
Ching C
  • [快講] Jenkins Pipeline 簡介
Tsai M 詹景翊(qrtt1)
 
Pipeline (from Continuous Delivery)
Shawn C Jenkins Workflow Plugins
Job <- Workflow <- Pipelines
Tsai M 由多個 Pipeline 由多個 Step 組成,並且支援 Pause / Resume
  • Build 成 Library 後交到下一個 step 動作
  • Pipelline 內的狀態必須可序列化(Serializable)
  • 為了儲存每個 Step 的狀態並可以繼續作下去
 
為什麼要寫 Pipeline
可以為每個階段標出很多stage...?
阿耀 Pipeline 設計成DSL型式
mutil-branch pipeline -> stagging uat production, 可以一次建立
 
填git位置跟branch 就可以從SCM建立 Pipeline
 
pipeline 可以用  gradle 或 maven 去建立
pipeline 語法是 groovy 
 
pipeline step 萬用解是去呼叫 shell(Unix base) 或 cmd(WIndows base) 外部指令
 
不建議自己去實作 pipeline plugin 
node {
  • job:"",war:"",context:""
}
checkout->build->test->war
 
 
Tsai M Pipeline DSL
 
建立單一 pipeplie
或是從 SCM 的方法
 
Pipeline 規劃
 
Refactoring Pipeline
Pipeline Shared Library
 
Q&A
  1. Pipeline 是否可與 Gradle 使用
  1. 很新,Library 很少多使用 sh bat 
  1. 升級後很多功能失靈?
  1. plugin 有很多地方不太相容
  1. 1.0 + Plugin 使用最好
  1. 可以將 XML 匯出並使用版本控制,但不好用
 
有什麼想討論的可以開 issue 
 
 
Elvis L
  • [Workshop] Introduction to Scala 
 
 
Elvis L
  • Using Armeria to write your RPC  
 
 
 
305 days ago
Unfiled. Edited by Elvis Lin 305 days ago
 
 
 
老闆接手離職員工電腦,發現有大量的腳本,解決 Routine 的工作
 
307 days ago
Unfiled. Edited by Giggs Tsai , Elvis Lin 307 days ago
Elvis L JCConf 2016 Day1 (R0)
 
  • Kotlin 以 Android 為主
 
306 days ago
Elvis L JCConf 2016 Day2 (R0)
Hudson W
  • sulong: Sulong, a dynamic runtime for LLVM-based languages
Ian.wu (like 背)
(like 背)
Jim H
  • Deoptimization
Ian.wu (like 背下來)
Jim H
  • On-stack replacement (OSR)
Ian.wu (like 用梯形公式)
Elvis L JCConf 2016 Day2 (R0)
Ian.wu (like 用梯形公式)
Elvis L JCConf 2016 Day2 (R0)
共筆位置:JCConf 2016 Day2 R0
共筆位置:JCConf 2016 Day1 R2
共筆位置:JCConf 2016 Day2 R0
 
  • Renaissance of JUnit - Introduction to JUnit 5 
jameslong Jimmy Lu
 
 
Agenda
 
 
Why Rewrite JUnit
  • JUnit 4.0 was release a decade ago
  • at the time of Java 5 and now java 9 is almost out
  • Modularity-big ball of mud
  • Test discovery and execution-tightly coupled
  • Extensibility
  • Runner API
  • Entire testing lifecycle-haveyweight
  • Only one runner allowed
  • Rule API
  • limited to executing some code before, during, and after a test was run
JUnit 4 modularity
  • Single junit.jar rules them all
 
 
jameslong JUnit Lambda
  • Crowdfunding campaign
  • The code name of JUnit 5
  • milestone 2stone 2
  • Main contributor
JUnit5 Overview
Jian-De L
  • JUnit Platform + JUnit Jupiter + JUnit Vintage
  • JUnit Platform 
  • JUnit Jupiter:JUnit 5 Test Engine
  • JUnit Vintage:JUnit 3 and JUnite4 Test Engine
jameslong
  • Extensible
  • Modern
  • Backward compatible
Architecture
  • JUnit the tool 
  • APIs for writing test
  • JUnit Platform
 
 
jameslong Annotations
  • @Nested 
Meat-Annotations
@Tag("fast")
 
Assertions
  • assertEquals(),assertNotNull(),etc.
  • assertThrows() and expectThrows
  • assertAll()
  • Message is now the last parameter
張協和
  • Lambda syntax
jameslong Assumptions
  • Abort test if assumptions fail
Tagging and Filtering
  • Be used to filter test discovery and exection
Nested Tests
張協和
  • Express logical group
  • No @BeforeAll and @AfterAll in nested tests
jameslong
  • @Nested  
  •   class InnerTest{
  •     @BeforeEach
  •     void pushAnElement(){
  •     }
  •   }
Dependency Injection
  • No arguments are allowed in previous version of JUnit in test methods
  • ParameterResolver
朱宏文
  •  TestInfoParameterResolver
  •  TestReporterParameterResolver
jameslong
  • Applied to test constructor, @Test, @TestFacotry, @BeforeEach, @AfterEach, @BeforeAll,@TesetReporterParameterReSolver, @ExtendWith
Interface Default Methods
  • Enables multiple inheritance in tests
  • @Test, @TestFacotry,@BeforeEach,@FaterEach
Dynamic Tests
  • Test cases are generated at runtime
  • Via method annotated with @TestFactory
...
307 days ago
Unfiled. Edited by Elvis Lin 307 days ago
Elvis L jCconf 2016 Day1 (R1)
  • Day1 R0
共筆位置:JCconf 2016 Day1 R0
  • Day1 R1
共筆位置:JCConf 2016 Day1 R1
  • Day1 R2
共筆位置:JCConf 2016 Day1 R2
  • Day2 R0
共筆位置:JCConf 2016 Day2 R0
  • Day2 R1
共筆位置:JCConf 2016 Day2 R1
 
郝瑞尼 (Reinhard Pointner)
 
621 days ago
  • 範圍=時程x速率
 
Walkingice C
  • 這次的演講會圍繞在「變」與「不變」兩個議題,從物理學來說,變化就是 entropy。一個東西如果沒有外力去干預它,它會慢慢朝向毀壞的方向前進
  • 電腦也是無法避免 entropy,裡面的程式預算,狀態持續改變。電腦如果擺在那邊好幾天不碰它,也許哪一天它就當了。也許能夠借用生物的機制,減少變化的狀態來對抗 entropy
Elvis L
  • 使用 Immuttable Infrastructure 可以「低成本」的方式解決 service 內在 entropy  的增加
Walkingice C
  • 演算法的領域也說,immutable 的東西會比 mutable 的東西來得好設計
  • Christian Posta: don't hotdepoy/redeploy your java service in production at runtime,不要太仰賴 Java hotswap 的機制,Infrastructure 藉由汰舊換新來維持
  • 每次更改程式,都重新生產一個 'Image'
  • 不要企圖去改變執行中的 Image
Annie C
  • Why immutable infra?
  • Simplify change mangement 簡單很多
  • hard to keep or restore "desired state" in-place
  • Enforce dev/prod 一樣
Walkingice C
  • Why not immutable infra? (什麼時候不適合用 immutable infras)
Annie C
  • Cost可能太高 
  • DevOps maturity level 流程不夠暢通也不適用
Walkingice C
  • Golden Image / Phenix server 就是在講 immutable infra 這種形式的母體
  • vm image
  • container image (ex: docker)
Walkingice C
  • 作業系統也當成 library,只抽出 os 裡頭必要的服務,一同打包進去 image 裡面
Elvis L
  • 母體 => 增生 => 替換 => 自動化
  • Jenkins 是地表最強的自動化工具
 
 
Simon Su Sunny Hu
Chen C
  • DemoCode:
  • Slide:
  • Automatically Scale
  • Scale UP  / Scale OUT
  • Container類似Docker
  • PipeLine平台-Pub/Sub
陳瑋良
Chen C
  • GCLOUD安裝
  • cloud.google.com/sdk
 
jserv
 
Elvis L jserv事先準備好的共筆 R0: JDK8 JIT 行為和效能分析
 
Chung C
  • 靠北JVM: 想掌握以下,非搞懂JVM不可
  • JVM Crash
Elvis L
  • OutOfMemeryError
  • Bytecode
  • Constant pool
Annie C
  • Hadoop Performance
Chung C
  • JVM: execute bytecode first
  • 產生最佳化的程式碼要付出很大的代價
  • GC: 多核心系統特別明顯  stop-the-world
  • JIT在學術上叫dynamic compilation
  • 最後要deoptimation才確認結果是一致的
  • JIT會產生machine code,但涉及到整個路徑的改變,所以要check
  • OSR: on-stack replacement
  • 在聯發科工作的時候,大家都是看安兔兔benchmark
  • 在大量迴圈、往前往後(back branching)乾脆在執行時候換成比較快的碼(偷吃步的技巧)
  • bytecode指令的實作: iadd
  • Hotspot VM: template-based interpreter
  • 動態執行時期產生機械碼
  • 可以精準控制產生的機械
  • Template: iconst
 
 
陳逸嘉
  • stack
 
Shin-Wen H Eclipse MAT
Shallow vs. Retained Heap
 
Yen T Extreme case 2
 
Annie C
  • GC log要開,可用GCViewer來看
  • Summary
  • Understand Java memory model
  • Enable GC logging, OOM heap dump
  • After crashing, collecting the body(heap dump)
  • You can solve heap/Metaspace OOM
 
 
許均揚
Elvis L
  • Continuous Delivery
  • 將 Development 跟 Operation 團隊整合在一起
  • Dev 跟 Operation 績效目標不同
  • 持續交付的解決方法:當某件很痛苦,就一直坐他 
  • 交付很痛苦,所以就用「自動化交付」每天做
...

Contact Support



Please check out our How-to Guide and FAQ first to see if your question is already answered! :)

If you have a feature request, please add it to this pad. Thanks!


Log in