coscup 2016: project 52 每週一個小專案來學習 golang

80
COSCUP 2016 Project 52 蝰Ӟ㮆ੜ䌕礯㬵 䋊聜 Golang Evan Lin @ LinkerNetworks http://www.slideshare.net/EvansLin/coscup-2016-project-52-for-golang

Upload: evan-lin

Post on 16-Apr-2017

3.225 views

Category:

Software


2 download

TRANSCRIPT

Page 1: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

COSCUP 2016Project 52

GolangEvan Lin @ LinkerNetworks

http://www.slideshare.net/EvansLin/coscup-2016-project-52-for-golang

Page 2: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

About Me• Cloud Architect @ Linker

Networks • Top 10 Taiwan Golang open

source contributor (github award)

• Developer, Curator, Blogger

Page 3: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 4: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 5: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 6: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

!

Page 7: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 8: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 9: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

http://www.slideshare.net/yuyuopop/coscup-24906600

Page 10: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

?

Page 11: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

https://speakerdeck.com/jeffersonlam/reflections-from-52-weeks-52-projects

Page 12: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

https://speakerdeck.com/jeffersonlam/reflections-from-52-weeks-52-projects

Page 13: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

What is Pokemon Go?

Page 14: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

What is Go(lang)• Create by Google • Design by

• Ken Thompson • Rob Pike • Robert Griesemer,

• Feature:

• Compiled • Statically Typed • Garbage Collection

Page 15: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Why Golang?

Page 16: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Why Golang

• GO Fast! • Compile Fast! • Run Fast!

Page 17: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Go is Fast

Page 18: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Why Golang

• Make programming fun again.

Page 19: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

gofmt / goimport

Page 20: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 21: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 22: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

After file save..

Page 23: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

GoRoutine:Multiple Thread in C

Page 24: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

GoRoutine:Multiple Thread in Go

Page 25: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Golang - HTTPS Server

Page 26: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Golang - HTTPS Server

Supported HTTP/2

After Go 1.6

Page 27: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Golang - Built-In Test

Page 28: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Golang - Built-In Benchmark Test

Page 29: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

GoMobileOriginal Work Flow

Golang Sample Console

Sometime Failed

Work

Failed on Some Model

Page 30: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

GoMobileUsing Golang in Mobile

GolangGoMobilePackage

Golang Sample Console

Page 31: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Project 52

https://github.com/kkdai/project52

Page 32: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Project 52Constraint

• The project could be small or big, but it should be something new not just refactoring an old project.

• The Programming language is not limited, feel free to write any language you have just learnt.

• Don't need to create brand new project, you could rewrite some exist project. (but on your own way, not allow to fork and refine.)

Page 33: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Let’s start Project 52

Page 34: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

1. goFBPages

github.com/kkdai/project52

Page 35: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

2. goInstagram

Github: http://github.com/kkdai/goInstaram

Page 36: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

3. iloveptt

Github: http://github.com/kkdai/iloveptt

Page 37: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

4. webpic

Github: http://github.com/kkdai/iloveptt

Page 38: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 39: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Write what your interest first

Github https://github.com/tzangms/iloveck101

Page 40: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Learn from Good Code

Page 41: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 42: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Tools

Page 43: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

5. ms translator

Github: https://github.com/kkdai/mstranslator

Page 44: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

6. jsonop

Github: https://github.com/kkdai/jsonop

Page 45: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

7. twitter

Github: https://github.com/kkdai/twitter

Page 46: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

8. photomgr GoMobile

Github: https://github.com/kkdai/photomgr

Page 47: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

8.5: iOS

Github: https://github.com/kkdai/PhotoViewer

Page 48: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

9. youtube

Github: https://github.com/kkdai/youtube

Page 49: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

10. oxford-face

Github: https://github.com/kkdai/oxford-face

Page 50: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

11. oxford-face-cli

Github: https://github.com/kkdai/oxford-face-client

Page 51: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

12. oxford-emotion

Github: https://github.com/kkdai/oxford-emotion

Page 52: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

13. Slack-console

Github: https://github.com/kkdai/slack-console

Page 53: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Other tools14. A github notification (starred, follower, followed) RSS feed in Golang

15. A simple Github Status RSS feeder server in Golang

16. plurk-makerserver: IFTTT Twitter Plurk

Page 54: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Algorithms &&Data Structure

17. KMP

Page 55: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Algorithms &&Data Structure

Page 56: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

GorillaFB: Time Series DB

Page 57: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

MaglevGoogle: Maglev : A Fast and Reliable

Software Network Load Balancer

Page 58: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Algorithms &&Data Structure

18. PAXOS

Page 59: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Algorithms &&Data Structure

PubSubBloom Filter

Radix Tree

jsonop

Skip List

Consistent Hashing

Trigram

Ngram

React-Diff

Aho–Corasick Algorithm

Page 60: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

CourseraAutomata

cyk dfae-nfa

nfa

re2epsnfa PCP (Post Correspondence Problems )

Turing Machine

Page 61: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Network Related

DiskQueueCoAPMQ

CoAP PubSub

Page 62: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Raft

Raft RPCRaft

Page 63: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Useful Tool?

Page 64: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Line Bot TemplateLineBot PetNeedYou

Page 65: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

?

Page 66: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Project52

Page 67: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

?

Page 68: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 69: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 70: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Trello

Page 71: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 72: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Project 52

Page 73: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Project 52

Page 74: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Project 52

Page 75: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Project 52

Page 76: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

?

Page 77: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

? Code ?

?

Page 78: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 79: COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Page 80: COSCUP 2016: Project 52 每週一個小專案來學習 Golang

Go Call For Speaker