<aside> 💡 如果與開發團隊有比較密切的合作與討論,而你又並非資工/資管背景畢業的話,很可能會發現除了前幾章提到的一些專有名詞、開發方法之外,還有一些比較貼近工程面的東西是你沒聽過的。但也不是所有工程端的東西你都要很熟悉,只需要了解一些比較常使用、或工程師較常提及的用詞即可,因此以下整理了一些我個人比較常聽到或使用到的用詞,方便大家可以先做一些認識和學習。
</aside>
Programming languages(程式語言):所謂程式語言,就是人類用來與電腦溝通的方式。而現今發展出的程式語言百百種,前端目前最常用的就是HTML、CSS、JavaScript(JS),後端則有廣泛應用的 JAVA、 PHP、主打機器學習和數據分析而很夯的 Python、新創團隊愛用的 Ruby 等等。
個人覺得了解團隊內每個工程師擅長寫什麼語言還蠻重要的,最基本的就是知道誰寫前端、誰寫後端、誰可以全端,然後前後端又分別是寫哪個語言,因為可能同樣是後端工程師,但一個是寫 JAVA、一個寫 Python,那他們擅長的任務和領域可能也就不同了,也會知道什麼樣的任務找誰可以處理得比較快。
Software frameworks(軟體框架):意即軟體開發的模板,簡單來說是一個讓工程師能加快軟體開發的標準程式結構、類似基礎設施,而不同語言可使用的框架也不同:例如:Java 可使用 Spring、Ruby 可使用 Ruby on Rails(RoR)、PHP 可使用 Laravel、Python 可使用 Djando 等等,不過這部分 PM 通常不會接觸到,只是可能會聽到工程師們在討論時提及到。
JavaScript frameworks:JS 框架也是能幫助工程師加速開發、不需圖法煉鋼、又能減少維運成本的工具,常見的 JS 框架如 Angular.js、Vue.js、React.js 等等,像我就有聽過 RD 提到自己使用 Vue.js 、React 在進行開發。
**jQuery:**JavaScript libraries(函式庫)的一種,小一點的還有 LightBox,讓工程師寫 code 可以更輕鬆一些。
**Bootstrap:**最常見的 UI frameworks 之一,也就是前端基本的 CSS 框架。
Font Scripts:字體樣式,例如我們常用的 Google Fonts、Font Awesome。
Database:簡單來說就是資料庫,用來儲存各種系統和內部的資料,我們在溝通時會直接簡稱 DB ,通常分為關聯式資料庫 (Relational database) 和非關聯式資料庫 NoSQL databases (Non-relational Databases)。 常見的關聯式資料庫像是 Mysql, Oracle, PostgreSQL, Microsoft SQL Server,其特色是每個欄位的定義與限制比較明確,讓資料儲存較為一致,像我們內部後端就有使用 Mysql。 而常見的非關聯式資料庫像是 Redis , MongoDB, Cassandra,每種非關聯式資料庫會為了因應不同的需求而衍生出不同的儲存資料格式。 如果我們在前端增加了一些新的欄位或功能、後端基本上也會需要建立一個用來儲存對應資料的 DB。
Web Servers:意即網頁伺服器,最常見的是 Nginx。會接收 user 端打來的 web request 並解析 URL 去處理 request 、再透過 HTTP 將資料傳送到網頁瀏覽器(使用者端)。若以我們的產品 Kuadio 為例,就會像是在 user 端向我們發出 widget recomend request 之後,我們的 web server 會在接收相關資訊後去 DB 裡撈出要在網頁上推薦的文章、並且回傳到瀏覽器。