LY Corporation Tech Blog

支持 LY Corporation 和 LY Corporation Group (LINE Plus, LINE Taiwan and LINE Vietnam) 服務,宣傳技術和開發文化。

Rookie’s Adventure: A 0 to 1 Dev Journey @ 臺北教育大學資訊研究社企業參訪

前言

我是 Dong Chen,目前在 Client team 擔任 iOS Intern。從校園踏入職場,這一路走來既充滿挑戰,也蘊藏著無數學習的機會,今天我將和大家分享我作為一個開發菜鳥,如何在 LINE 這個高手雲集的環境中,展開一場從 0 到 1 的冒險,希望我的經驗能為像我一樣初次踏入職場的新手帶來一些啟發。

潛入 LINE 的世界

所有大產品,都是由一個又一個小改變累積而成。

剛進入 LINE 時,面對如迷宮般龐大而複雜的專案,難免會感到一絲迷惘。但也正是這份迷惘,使我學會了如何在這個龐大的體系中找到自己的定位,更深刻體會到想讓整個系統順利運轉,高效的團隊合作遠比單打獨鬥來得重要。每成員如同一顆顆小齒輪般的緊密合作,是成就這個巨型產品不可或缺的一環。

塑造需求的藝術

從「做什麼」到「為何而做」

在學校做專案,我們多數時候是單方面「被告知」要完成什麼任務。然而在 LINE 中,每一個新功能的誕生都是一場遠比想像的更嚴謹且縝密的探索與抉擇。這也是我在 LINE 實習中學到的第一件事 —— 要不斷追問「為什麼」。

身為開發者,我們看似處在開發週期的末端,但卻是將概念化為現實的最後一哩路。因此我們的思考不能僅僅停留在「怎麼做」,更要學會逆向思考,回到需求的源頭去探尋一個功能存在的真正意義。唯有真正理解「為什麼」要做,我們才能在開發過程中,做出更有價值、更正確的選擇。

像個 LINER 一樣開發

用技術解決困難,用思維創造價值

深入開發後才真正體會到,「讓程式運作」僅僅是基礎門檻。在 LINE Client,我們更著重於如何在維持高效交付的同時,確保程式碼具備高度的可測試性與可維護性,以支撐產品的長期穩定與持續演進。

  1. 為錯誤而設計,為品質而生

    • 預見失敗,而非亡羊補牢:我們在開發之初,就將各種失敗情境視為必然,並撰寫對應的測試案例或處理機制,確保程式具備足夠的可靠性。

    • 為你寫的程式碼負責:交付的程式碼,其價值不僅在於執行,更在於它是否易於被他人甚至是未來的自己所測試與維護。

    • 從每次錯誤中成長:我們將每一個 bug 與 outage 視為寶貴的學習契機,透過系統性的問題回顧與檢討,深入分析錯誤根源,並持續優化測試策略與開發流程,讓每一次錯誤都成為推動團隊進步的養分。

  2. 寫給未來看的程式碼

    • 先思考,再動手:在寫下第一行程式碼之前,我們會花時間深入討論需求,並透過 ATDD 及 Clean Architecture 等現代開發方法,仔細規劃整體架構與設計。這不僅能降低後續重複修改的機率,也讓每個人都能在同一個方向上協作,確保專案的穩健與一致性。

    • 勇於重構,持續精進:程式碼不是一成不變的成品,而是隨著需求與技術演進持續優化的過程。因此我們規劃並提出重構建議,透過頻繁的 Code Review,讓每一段程式碼都能被檢視與討論。這不僅提升了程式碼的品質,也讓團隊的技術能力不斷成長。

    • 追求恰到好處的頂尖品質:我們所追求的品質,不是盲目地要求完美或過度設計,而是在滿足現有需求的前提下,創造出高品質又具備彈性的程式碼。這意味著我們會根據實際情境,靈活調整設計,確保每一行程式碼都能兼顧可維護性與擴充性。

  3. 快速交付,持續優化

    • 流程框架整合:我們會根據專案規模與特性,選擇最合適的開發流程,例如 Scrum 的敏捷迭代或 Waterfall 的階段性規劃。這樣的彈性讓我們能夠在變化快速的環境中,隨時調整步伐,既能確保專案進度,也能在每次迭代中不斷檢視與優化產品方向。

    • 重質不重量:功能的多寡並不等於產品的價值。因此,在每一次開發決策中,我們都會回歸到「這項功能是否真正能解決用戶痛點、創造價值」的核心問題。這種審慎的取捨,讓我們能將有限的資源投入在最關鍵的地方,打造出真正有影響力的產品。

    • 設定明確時程,為共同的目標前進:每個任務在執行前,都會訂定明確且可衡量的時程目標,同時會花時間讓每個人都明白這項工作的最終意義與價值。這不只是為了管理進度,更是團隊溝通與協作的重要依據。唯有大家對目標有共同的認知與熱情,才能在遇到困難時互相支持,讓團隊每一步都走得更有力量、更有方向。

成長,不止於技術

真正的進步,來自於學習、合作與擁抱未知。

在 LINE 實習的這段日子裡,帶給我的不僅是技術上的進步,更讓我在思維與態度上有了全新的體會與成長。

  1. 學習如何學習 在 LINE 中,所有人每天都在持續的學習與成長,技術日新月異,知識也不斷翻新,唯一不變的是「學習」這件事。這一年來,無論是閱讀文件、請教同事,還是動手實作,都讓我能夠不斷突破自我、持續進步。學會主動尋找資源、整理知識,並把每一次挑戰都當作成長的契機,正是我在實習的過程中學到的一大道理。

  2. 適時尋求幫助 沒有人能夠獨自解決所有問題。 LINE Client 中最珍貴的,就是彼此間的信任與支持。當我卡關時,選擇勇敢舉手、主動請教同事,反而能激盪出更多元的想法與解決方案。尋求協助不是軟弱,反而是一種成熟的智慧。懂得善用團隊的力量,不僅能更快解決問題,也能讓自己站在更高的起點上前進。

  3. 懂得變通與取捨 現實世界裡,理想的答案往往難以實現。面對各種限制與挑戰,學會靈活調整思路,勇於嘗試並找到最適合當下情境的 workaround,才是工程師真正的價值。這種在有限資源下創造最大成果的能力,不僅讓我更有彈性地面對問題,也逐漸培養出屬於自己的判斷與決斷力,也讓我能夠在取捨之間做出最有利的選擇。

結語

從校園裡的小型專案,到參與 LINE 這樣服務千萬用戶的跨國產品,這段旅程讓我實現了從「Coder」到「Developer」的蛻變。過去的我,或許只專注於程式碼本身,但現在的我學會了用更全面的視角來看待每一個挑戰。

作為一名開發者,不僅要低頭鑽研每一行程式碼的細節,更要時常抬頭,關注產品發展的整體方向。除了追求功能的實現,更要用心打造一個穩定、可靠、讓團隊夥伴能安心託付的產品。這份從 0 到 1 的成長歷程,不只是技術上的提升,更是思維與態度的昇華。

image