跳到主要內容

【COSCUP throwback】Keynote | 參與開源


什麼是 COSCUP?

COSCUP 是亞洲最大的開源會議之一,自 2006 年開始由開源社群舉行的年度會議,也是台灣自由開源軟體運動 (FOSSM) 的主要倡導者。COSCUP 包含演講、贊助商、社群攤位,以及 BoF 社群同樂會等,COSCUP 的宗旨在於提供一個聯結開放原始碼開發者、使用者與推廣者的平台。

可惜今年因為疫情關係改為線上,但也不減大家參與 COSCUP 的熱情!

參與社群活動一直是我很喜歡做的事情之一,從演講中分享自己這段日子學習的經驗、攤位上與每位社群朋友交流意見、甚至到坐下來一起研究某段程式碼/專案的可行性,而若能在 COSCUP 中分享任何主題對我來說都是一個非常棒的肯定,因此除了在攤位與大家分享外,我也踴躍於 COSCUP 中投稿(2019, 2020),今年也很榮幸可以代表 LINE 講一場 Keynote!

Open Up with LINE - From Beginning TO THE NEXT

歡迎大家收看影片,頻道中也有許多很棒的分享喔!

今年是 LINE 的十週年,很高興可以在 COSCUP 上與大家一起分享這個喜悅,對於 LINE 來說,過去的十年只是一個開始,10 週年概念口號 “To The Next“ 表達了 LINE 將繼續傾聽用戶的聲音,並在未來 10 年繼續創造更好服務的理念。

在十週年的今天若你也對於 LINE 的工程團隊、抑或是 LINER 在 COSCUP 上分享內容有興趣,歡迎參考以下回放文章,當中都有許多很精彩的分享!

支持開源專案

或許大家很常用也熟知 LINE Chatbot、LINE Login、LIFF 等等的技術與服務,在提供服務之虞 LINE 也花了很多心力建置了許多開源專案,希望藉由分享我們的使用情境、經驗、開源貢獻來幫助每位開發者,在開發的路上能夠更高效、更有彈性的去創造許多創意的產品,以下列幾個讓大家稍微瞭解一下:

Open Source 的程式碼以及任何內容,都是經由內部縝密的各項審查才可以對外開放,因此大家在使用上不太需要擔心喔~

line/armeria

Armeria 是個讓 Java 開發者能夠使用的微服務框架,在現在容器化這麼盛行,開發上會因應許多技術需要開發,如 gRPC、Spring Boot、Kotlin 一條龍開發等等,都可以透過 Armeria 更輕易使用到許多的技術。像是 http/2、日誌記錄、監控、追蹤也都有提供,並且有 async 架構提供出色的性能跟高併發能力

另一方面,在 2020 年也正式釋出 1.0 的版本,1.0 對於大型開源專案來說都是個里程碑,意味著開源專案是能夠 Production。此外還有一個重點,就是有超多 Contributor 第一次貢獻 Pull Request 就是給 Armeria 啦,當然送 Pull Request 除了新刪修程式之外,大家也可以從修改文件、增加範例程式開始著手,此舉也可以讓你更快速地學習如何貢獻開源專案喔!

更多開源專案細節可以參考此篇文章 LINE 開發社群計畫: 「手把手教你建立自己的開源專案」

Central Dogma

隨著 CI/CD 越來越盛行,集中式管理 Config 也越來越重要,透過 Git 來做版本管理也就成為趨勢之一,查過往修改的內容、透過 Pull Request 管理、全縣管例、Git-to-CD 等等都是透過 Git 管理很重要的一環,雖然原生是透過 Java 撰寫,當然也還有其他版本的 SDK 提供給大家使用,如果大家對於 GitOps 相關實作有興趣可以使用看看。

一起參與開源

1. 動手寫作比較有印象

上述提到這麼多開源專案相關的內容,或許大家有疑問,一定要送程式碼才是參與開源嗎?當然有,就是把你所學的內容透過文章/部落格的方式記錄下來,可以是短短的一篇解決某個問題(如上圖),也可以是一整篇來解釋緣由,並分享到社群上讓更多人知道,可能你現在紀錄的問題,也正好是其他人正在卡關的問題,如果能透過分享的方式幫助到別人,是否也覺得很棒呢?

2. 開口講印象更深

另一方面,時常我們在公司內部的活動中也都鼓勵每位開發者出外至社群分享自己的經驗/心得,透過分享,驗證自己在技術領域上的理解是否正確,雖然上台講看起來是分享給觀眾們相關技術,但實際上學最多的一定是講者,從事前準備/前一天趕 Demo/整理資料/開口分享,一切都是會幫助思緒整理,讓自己更能掌握技術本身的脈絡。

還有沒有其他方法呢?來跨國公司實習也很實在

或許有些同學對自己的要求比較高,覺得自己目前能力需要磨練,或者是覺得文章需要一系列、內容深度要夠等等(準備時間需要較多),那這邊推薦一個做法 - 「實習」,實習過程中除了可以了解企業用的技術趨勢之外,也能透過與 Mentor 互相學習琢磨軟/硬實力,讓能力能透過實習的時間大幅提升。

過程中也可以透過 讀書會/工作坊/公司公開活動 爭取機會把自己學習的經驗分享給他人,同步增進自己的實力,因此,若你希望透過類似的方式來嘗試看看,除了期待接下來 TECH FRESH 招募時間外,也可以看看學長姐們的經驗分享喔!

秋季場正火熱加開中,不想錯過在跨國公司實習機會趕快手刀投下你的履歷,此次期間即日起至 2021.11.12 截止,趕快把握機會~

團隊介紹

Frontend 工程團隊

LINE 裡有許多服務都是使用 Web 相關技術打造而成的,而作為前端的一份子,就是要讓用戶可以在 Client 端與 Web 端使用起來的體驗一致,以下這些服務你使用時是否也覺得跟 APP 差不多呢?

且由於前端產品線很多,許多時候需要打造共用的工具來讓不同服務可以使用共同的元件,把已有成效的解決方案有計畫的打造出來,除了品質統一與避免重造輪子之外,也讓往後新進來的人員能夠有個標準化的內容參閱來維護既有的產品。

而接下來公司的方向將會漸漸將重心轉換到自然流量上,因此 Frontend 團隊就會更多處理 SEO 與 Web 效能優化 相關的工作內容,同時也引入 SSR 以及 AMP 來對齊公司的目標。

當然在裡面也會與不同團隊的成員合作,讓產品可以更快速地交付、維護、更安全以外,內部也會透過分享來讓更多團隊了解不同的解決方案的優點。

最後,Frontend 團隊由於成員會持續協助不同專案以及產品的開發,在大家學習到不同的經驗之後也會透過許多的讀書會來分享不同專案間的差異與經驗,藉由交流也讓彼此可以更快速的上手且了解不同專案的屬性。

今年 Front-end Engineer 正在擴大招募,尋找在前端領域的高手們來一同來打造驚艷的產品於 LINE 生態系中。

LINE Pay 團隊

除了大家平常所使用且熟悉的支付服務以外,其實日常也需要處理金融相關信用卡回饋等等的專案內容,而從 TECHPUSE 2020 之後,LINE Pay 陸續提供了 Extra Service 來達到在地化服務,像是 我的會員卡廣告投放與透過LINE Pay 地圖讓大家知道到底有哪些商家支援 LINE Pay,不用出門就可以知道可去哪邊使用 LINE Point 回饋點數了。

在日常處理不同的專案之外,LINE Pay 也含有許多內部 PoC 專案,身為工程師一定會有很多想法想用,想實驗很多新學的東西,透過這些專案去驗證想法的可行性,讓想法有機會進入產品之中。

若認同 LINE Pay 文化,歡迎加入 LINE Pay:

Q: 請問不熟 Java 可以投 LINE Pay backend 嗎? 例如: Python, Go。
A: 都歡迎來面試,不過可以多花一點時間準備 JAVA 會比較好。

Q: 請問專案開發,包括 planner, dev, security, qa 總共有多少人執行一個專案?
A: 實際上人數沒辦法透露,但參與人數會跟專案大小有關。

LINE TODAY 團隊

作為大家天天會用的主流新聞平台,除了日常提供大家許多新聞相關題材外,其實裡面也含有許多不同的內容,如:賽事直播(近期很火紅的 NBA 季後賽也有轉播)、
電影訂票選情專區泰國限定的樂透電影…等等,擁有這麼多功能都是為了讓用戶可以在 LINE TODAY 中看到大家最新、最值得關注的內容。

擁有這麼多功能的平台,同時也是一個跨國的產品,同時也提供給泰國、印尼以及香港,為了服務這麼廣大的用戶,在開發流程上也採取了 Large Scale Scrum 的方式(這部分可參考 TECHPULSE 議程)來管理這麼龐大的團隊,目前也正積極找 FrontendServer-SideQA AutomationQA 的工程師,若您對於更詳細的介紹大家可以參考 Recruitment Day 的影片喔!

LINE 電商團隊

電商已成為現代人不可或缺的一部份,在本次的議程中很詳細地透過不同的例子(母親節、送禮優惠…)來解釋在 LINE 電商服務中的不同使用情境,讓大家可以更快速的了解透過 LINE 來購買相關東西時的好處以及可用性。

接著再透過大家常見的 LINE Point 點數回饋來解釋從 LINE SHOPPING 導購服務中所延伸的整體架構流程,讓大家了解到為了整體的延展性與維護性需要透過怎樣的設計才能夠達到。

而在電商這麼大的團隊中也與其他團隊一樣,是透過 Scrum 的方式來管理與交付產品,除了有效管理交付內容之外,也可以讓團隊成員以最有效的方式來完成產品內容。

當然團隊裡不可少的 code review 與內部分享會都會有,透過這些流程讓大家在更了解不同成員的思路之外,也能讓團隊中有更多的交流來有效的促進產品的活力!

QA 工程團隊

開場 Richard 帶大家了解 Quality Assurance(QA) 以及 Quality Control(QC) 的差別,很多時候會覺得當產品(服務)要上線前只要讓 QA 測完後就可以上線,而若在上線前的階段才做測試,往往所遇到的問題以及付出的代價都會相對高許多。

而在 LINE Taiwan QA 部門這邊為了確保整體服務的品質,會在專案早期就參與計劃定製,與 Developer、Design、Planner…等等不同部門的角色一起討論整個流程,協助訂定不同的 Scenario 讓初期的討論可以更加完整。

而在開發階段時,QA 同仁則會開始建立許多不同情境的測試案例,同時也與 developer 討論相關情境與測試自動化的相關問題,讓 QA 的同仁可以有更好的切入點找出問題,同時也透過自動化讓整體作業更加順暢。

同時 QA 團隊除了建置自動化流程外,也會打造 CI/CD 輔助優化整體流程。我們透過自動化讓我們獲得了不少的好處。更多精彩內容也歡迎各位參閱影片內容。

若您對於優化提升品質與以及自動化工程等等的工作內容有興趣的話歡迎參考以下職缺,目前也正如火如荼地找尋優秀人才!

結論

在一年一度 COSCUP 的活動與每一位開發者交流都讓讓我們同仁收穫非常多,感受到開源同伴們的熱情參與,如果你也想參與開源專案的開發,不妨參考 LINE GitHub 中的專案,從發送一個增加功能的 Pull Request 開始,抑或是從修改、整理文件內容,我們也都很歡迎你勇敢跨出第一步來一起加入開源行列喔!

那我們就下次見!

活動小結

立即加入「LINE 開發者官方社群」官方帳號,就能收到第一手 Meetup 活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE 開發者官方社群」官方帳號 ID:@line_tw_dev

關於「LINE 開發社群計畫」

LINE 今年年初在台灣啟動「LINE 開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦 30 場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

留言

這個網誌中的熱門文章

利用 Jitsi 建立個人化的視訊會議平台

  近期因為疫情的關係,越來越多企業開始實施分流或在家工作,視訊會議的需求也日益增加。 在商用解決方案選擇上,有不少企業會選擇知名品牌的產品,例如  Cisco Webex 、 Google Meet 、 Microsoft Teams 、 Zoom  都是很不錯的方案。 KKBOX 集團在去年便試行及做好充分 work from home 的準備,今年五月也因應疫情升溫,全員 work from home 至今兩個月有餘。 當然,取之 Open Source,也要對社群有些貢獻。在這一屆 COSCUP,我們要來介紹 Open Source 圈中也很知名,效果也很不錯的一套視訊會議平台: Jitsi 。 除了基本的視訊會議功能外,在最後我們也會示範如何透過 Jitsi 畫面輸出到 YouTube/Twitch 或其他支援 RTMP 的平台進行直播。 由於篇幅有限,且 Jitsi 可以調整的細節非常多。今天我們純粹很快速的示範,如何簡單的建置出一個 Jitsi 環境,並提供單場會議內容錄影或直播。 Jitsi 的文件可以在 這裡 找到。 今天透過 AWS Lightsail 的 $10/month instance(1 core CPU + 2GB RAM + 60GB SSD),作業系統則是 Ubuntu 20.04 來示範。當然,使用其他 VPS 亦可,大同小異,這邊直接跳過 VPS 相關的建置過程。 *firewall 相關資料參考 這裡 及 這裡 。 針對系統做必要的更新 基本的 apt repository 更新: $ sudo apt update 因為後面要示範的會議錄影及直播需要使用 ALSA loopback device,如果是 EC2 or Lightsail 則需要額外安裝 generic kernel( 註 ): $ sudo apt install linux-image-generic linux-headers-generic linux-image-extra- virtual 接著做系統套件們的更新: $ sudo apt dist-upgrade $ sudo apt autoremove 如果是 AWS EC2 or Lightsail 則需要另外再將預設的 AWS optimized kernel...

鑽石級贊助商 - KKBOX 帶你打造具備 NLP 功能的 Telegram Bot (上)

打造具備 NLP 功能的 Telegram Bot(上) 最近因為一些契機學了 Python 3,用它做了一個 Telegram Bot ( GitHub 連結 ),裡面用到 NLP Service,用上下兩篇文章記錄一下實作過程還有眉角。上篇首先教大家如何做一個最基本的回聲 Chatbot,接下來我們可以透過 NLP 服務,讓 Chatbot 根據使用者不同的訊息做回答,這樣就變成更加人性化的聊天機器人囉! 使用的工具及服務: Python 3 (for develop) pipenv (for dependency management) OLAMI (for NLP) ngrok (for testing) Step 1. Creating new bot Telegram 很有趣的地方在於,與其他通訊軟體(Line、Messenger)相比,開發者管理 Bot 的方式也是透過官方提供的一位 Bot 在處理的,它叫做 BotFather (眾 Bot 之父 XD)。如果已經有 Telegram 帳號,只要加 BotFather 為好友,就可以開始管理你的 Bot。 加入 BotFather 好友後,它會親切地問候,並告訴你他能為你提供什麼服務。 I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual ([https://core.telegram.org/bots](https://core.telegram.org/bots)). You can control me by sending these commands: /newbot - create a new bot /mybots - edit your bots [beta] /mygames - edit your games ([https://core.telegram.org/bots/games](https://core.telegram.org/bots/games)) [beta] Edit Bots /setname - change a bot's name /setdescr...

機器學習的五大實務問題:對企業的影響與相應的化解方式

Appier 首席機器學習科學家 林守德博士 正如 Jason Jennings 及 Laurence Haughton 在《以快吃慢–如何藉速度在商戰中克敵制勝》一書中指出──未來,不是大公司吃掉小公司,而是速度快的公司吃掉速度慢的公司。 從現在開始,唯有善用適當的資訊快速做出決策的企業,才能成為戰場上的贏家。 機器學習技術驅動了這場變革。無論企業是嘗試向顧客提出建議、改進生產製造流程或應對市場的變動,都能運用機器學習技術處理大量的資料,進而提高自身的競爭優勢。 然而,機器學習雖能創造大好機會,卻也同時帶來了相應的挑戰。機器學習系統需要大量的資料,以及執行複雜的運算能力。顧客期望改變、出乎意料的市場波動等等外部因素,都意味著機器學習模型的運作並不是百分之百的自動,往往仰賴許多外部的資源來作監控及維護。 此外,機器學習也有不少尚待解決的實務問題。以下將深入探討機器學習的五大實務問題,以及這些問題對企業應用會產生的影響。 1. 資料品質 機器學習系統仰賴資料進行訓練,而訓練資料在廣義上可分為「特徵」及「標籤」兩種類別。 「特徵」是輸入機器學習模型的資料,像是來自感測器、顧客問卷、網站 cookie 或歷史資訊等等。 然而這些特徵的品質可能良莠不齊。舉例而言,顧客在填寫問卷時可能會隨便填寫,或對題目略而不答;感測器可能因失靈而回傳錯誤資料;即使使用者的網頁行為明確,網站 cookie 回報的資訊也可能不完整。 此外,資料也可能包含雜訊,當無謂的資訊夾雜其中時,機器學習模型將會受到誤導而做出不正確的預測。 相較於「特徵」,「標籤」的正確性與穩定度更為重要。標籤是機器學習模型最後輸出的結果。所以需要在訓練的時間利用正確的結果教導機器學習模型。標籤的稀疏性也是個問題,這是當系統已掌握大量輸入的資料卻對輸出的結果沒有把握時出現的現象。在這樣的情況下,將難以針對該模型偵測其特徵與標籤之間的關聯性優化,甚至需要耗費額外的人力干預,將標籤與輸入資料關聯起來。 機器學習需仰賴輸入與輸出資料的關聯,才能具備足夠的泛化能力以預測未來行動並提供相關建議。因此,如果輸入資料過於雜亂、殘缺或有所偏差時,將可能難以理解某輸出/標籤的產出原因。近年來機器學習也開發出許多先進的方法如半指導式學習,轉移學習來處理這樣的問題。 2. 複雜性與品質的取捨 建立強大的機器學習模型需要大量的計算資源來處理特徵和...