處事力培訓素材(25):Fullstack

1*9npNPVH7iNJ64Koq7EcW5A.jpeg

近幾年後流行講 Fullstack,通常是指工程師的職位和技能。就是形容一些前端和後端都能夠做的人。其實筆者是有點覺得奇怪:他們在大學裡都已經學了前端和後端的工程方法,到職場工作有十多二十年的年資,還在以 Fullstack 工程師為自豪,不是太沒有志氣了嗎?

而且大部份人講的 Fullstack 往往都不是那麼 “Full"。寫一篇講下怎樣才是比較全面的圖畫。

例如以下面這個圖為例:

  1. http://www.yourApp.com 的前端首先通過 DNS (AWS Route 53 服務)
  2. 然後到達負載平衡 ELB (Elastic Load Balancer)
  3. 然後到網頁服務器 (Web Servers),當中有個 ASG (Auto Scaling Group)
  4. 然後再從 Javascript 或直接到軟件服務器 (App Servers),當中亦是包括了另一套 ELB + ASG
  5. 然後去到應用 Redis、Memcached 之類的快存服務 Elastic Cache。
  6. 然後才去到主資料庫。資料庫亦有 Master and Slave 主次之分,亦有多地區備份 Multi Available Zone Backup。
  7. 然後固態檔案從 AWS S3 (Simple Storage Service) 中取得。
  8. 亦經過前端快存 AWS CloudFront 來存取。
  9. 然後後台還有 AWS CloudWatch 之類的日志服務和服務器監控
  10. 有 AWS SNS 的監控訊息服務
  11. 有 CloudFormation 配搭 DynamoDB 一起用的自動配置服務。

AWS General

以上這個才是一個比較齊整的 Fullstack 系統。簡要來說,這包括了很多雲服務的配置知識和技能。而坊間所謂 Fullstack 工程師,往往是沒有雲服務的配置經驗。而他們覺得這是運維的事情。但實際上一套整全、各方面都照顧到的電腦系統,這是個基本的最小配套,所以這是 Fullstack 工程師都應該要知悉的事情。
有些更複雜的系統,是會包括其他例如序列服務 Service Queue;運行 Devops 的 pipeline;自動測試的硬體農場 Device Farm;或需要時才應用的 Spot Instance 之類等等。

而除此之外,工程部門 (Engineering Dept) 位於生產部門 (Production Dept) 的分類之內,生產部門所必需的技能,例如項目管理(e.g. Agile、PMP 等等的方法論)、Devops 運營管理、代碼版本管理(e.g. Git、SVN 等 CVS 系統)、產品管理等等,都是工程人員應付日常工作的必要技能。這些又是否包括進 Fullstack 裡呢?若不,那 Fullstack 的工程師能應付項目管理或代碼管理嗎?

而很多人都忽略了,測試本身也是一套 Fullstack。看一下以下這些只談測試的字眼,我加上了分類:

  1. 形式:Exploratory Test, Regression Test, White box Test, Black box Test, Grey box Test, Functional Test, Continuous Test, Destructive Test, Manual Test, Automated Test, Behavior Driven Development, Test Driven Development
  2. 場所:Unit Test, Integration Test, User Acceptance Test, Verification Test, Smoke Test, Sanity Test, Security Test, Development Test, Alpha Test, Beta Test
  3. 用途:Installation Test, Compatibility Test, Performance Test, UI Test, Usability Test, A/B Test, Grey Test, Load Test, Stress Test, Endurance Test, Vulnerability Assessment, Penetration Test

而在工程和生產以外,例如產品管理、市場推廣、商業發展,仲有行政能力、栽培訓練、投資者管理、商業法律等等,都是一個又一個的大領域,都是互聯網商業所需。那些只望著 Fullstack 的人,實在眼光太短淺了。

發表留言