曾經看過下面這篇 blog 的童鞋,應該回首前塵,驚嚇不已
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
懶得看英文版的同學,可以看一下中文翻譯版
https://kknews.cc/tech/zl9q93.html
我的老天爺,這世道變了,就只是到資料庫取些資料,然後顯示在網頁上,怎麼看起來沒個三年五載是不可能的?
我從以前就一直有個想法,研發工程師是要分等級的,我很喜歡拿醫師來做比喻,你敢給一個才剛畢業的小夥子開刀嗎? 即使只是割個盲腸?
可是,在軟體業,很多真正厲害的人是不寫程式的(至少很少寫),寫程式的很多都是非資深工程師。
為什麼? 我個人認為,是因為工具太原始,或是換個角度說,相對於其他發展多年的學科,軟體開發還處在草莽期。整個開發環和工具還處於大航海時期,百家爭鳴,但是極不穩定,這可以從上面這篇 blog 看出一些端倪。如果您的資歷夠深,經歷過從
MS-DOS(DbaseIII) --> Windows --> Win95(Client-Server) --> Web1.0 --> Web2.0 --> Cloud --> HTML5
這些作業環境,每更新一次作業系統或是開發工具,對很多軟體公司而言,可能都是生死交關的事,很多公司就此消失。經歷了幾次這種生不如死的煎熬,生命當然就會想辦法找出路,所以很多新的想法、工具就會不斷地推出,所以 blog 所描述的情境就隨之而生,但這真的解決了問題? 還是創造了更多的問題?
舉個類似的例子,我只是要輛車子,可是每個工具都說它們的輪子有多麼美好、剎車皮有多棒,前燈有多閃亮,等等等。只要回去買 A的xx 、B的oo、C的qq 再請10個工人弄一個生產線,購買一些工具,在花個120天就可以搞出宇宙超級無敵戰艦。能不能別鬧了,大哥,我叫你大哥行不行,生命是多麼的短暫、美好,不應該浪費在這些事情上吧。
michael: 早安, AI-zen
AI-zen: Good morning, michael
michael: 我昨天和 goo 公司討論過 CRM部分程式外包,咱們來 kick-off 一下
AI-zen: ok
michael: 你先弄個雛型給我,goo 是男性美妝的領導品牌,希望能追蹤並記錄客戶的體驗及 Issue,它們希望網頁 UX 風格類似 handbook,功能項目和之前為 giant car 開發類似,欄位不要太多,xxxx,xxxx 等需求
AI-zen: 他都是 B2C 的需求,需要 B2B 嗎 ? xxxx, xxxxx 等
michael: 我想 xxxx, xxxx
AI-zen: 請稍後,我先搞一個 demo 版出來,請先喝個 coffee ...
michael: after coffee
AI-zen: michael, 請看一下我弄得 xxx, xxxx
michael: 這個功能要多加一些紀錄,那個 UX 要能動態設定,app 也好了嗎?
AI-zen: (經過幾個來回)
michael: 難起來不錯,丟到 demo server 請 AI-test 測試一下 ....
AI-tool:
AI-zen:
等等
以上是我現在所能想像的最完美開發情境,如果可以這樣寫程式,我應該可以一直寫到天荒地老。不過讓我們回到現實,雖然 AlphaGo 已經可以打敗人類棋王柯潔,但是我們現在還是得一行一行寫程式。
有沒有更有效率的解決方案? 能不能多善用已經經過驗證、成熟的現有技術?
現在的主流做法是革命,我們已經聽過一個又一個、一代又一代、層出不窮的新技術,真是標準的長江後浪推前浪,前浪死在沙灘上,但是,新就是好? 舊技術真的就很差? 真正在軟體公司上班就會知道,除了極少部分新創,大部分的軟體公司都不會採用最新的技術,而是傾向使用已經經過驗證的工具或解決方案。在本系列文中,我會不斷地提出一個核心想法 [以資料庫為開發核心],就是在這種反思下的產生的一個想法,而且這個想法,已經實際開發出整套完整的小型ERP系統(大約 360 個 Tables)。
搞企業資訊系統的都知道,資訊系統簡單的說就是
設計表單輸入資料 --> 儲存到資料庫 --> 報表統計分析數字
當然,中間還有無數細節、無數的過帳、無數的商業邏輯,但是,最核心的還是對資料庫的存取。
對於 [以資料庫為開發核心] 的詳細說明,會在後面的系列文詳細說明,簡單的說就是 [專業分工、化繁為簡]
專業分工:就是前端處理 UI,後端處理 Data
化繁為簡:則是用一支通用 server 端的 js 程式,處理 95% 以上的資料存取功能
今天就先聊到這,希望您會喜歡。
Have a good day