這篇文章不寫技術,寫一些其他。說明下為什么要開始做一個基於Angular4的后台系統。
我的工作是做系統集成,做物聯網項目。大部分做的都是那種只有國家指定的大型國企,才准許進入某個行業的項目。這個行業很有錢,也很賺錢。但是這幾年,國家政策變化,某些力度不斷加大。這個行業的系統集成,物聯網項目越來越不好做了。錢多一些的,超過700萬的。項目周期會很長,並且物聯網項目實施周期更長,回款周期也非常長。在加上人員數量龐大,最后項目結項時候,多是盈利並不高。單以利潤比來說,100萬左右的小項目,快速完成並結項。利潤比到是很出色。
去年和一個業界的人聊天,他做這個行業十幾年。但去年也退出了。當時聊天他的思路:“做系統集成,做項目的項目型公司。在目前的大環境下,要是公司沒有自己的核心競爭力。自己的產品,還是按項目的方式來做。接一個項目成立一個項目專項組,在項目當地招人。在加上長久的實施周期。最后公司是沒有利潤的。或者利潤會非常少”。我這有個資料,是在網上可以查到的。這是一個今年上新三板的公司,做系統集成、物聯網型項目的項目型軟件公司。公司公開的財務報表顯示:“去年1月到10月。收入1750萬,但是純利潤是59萬”。這其中1700萬都被消耗了。
到這似乎產品化是必須的。有了產品化軟件,項目組人員可以是動態調整,需要組建的時候一些人員組合形成專門項目組。在開發周期更多的研發人員加入項目組。在實施周期保留一個研發配合修改,一堆實施人員上前去實施。這樣人員達到最大的利用率。給公司最大的利潤比。這種思路是正確的,對某一行業,某種類型系統集成項目或物聯網項目要產品化,大家都有的思路是第一年做了某地某廠的項目。第二年在做類似的項目會用第一年的項目改,第三年繼續在改。提取行業通用的功能點。單獨開發特別,定制的功能點。這樣大概四年左右,就可以積累出針對對某行業,某種業務的專門產品化平台。可以為公司實現最大利潤比。
但是實際上很難,尤其100人以下的小公司更是很難做到,原因如下:
1、人員問題:做系統集成,物聯網項目本就利潤小,人員工資低,比互聯網項目公司員工的工資低上一個層級。在加上甲方強勢,必須駐場開發。一旦人員是已經結婚,有家庭的人。誰能接受一次出差6-7個月。所以人員就不穩定,除了有特殊原因的人,其他研發基本上是做一段時間就走人。公司只能不斷的招聘新人或者在項目當地招人來做。但優秀的技術人才大多在北上廣,項目當地人員工資是低一些,但是能力普遍不行,也沒有項目經驗的積累。於是能做產品化的人就不斷流失。
2、環境問題:做產品化,做底層就要脫離項目現場。但公司是項目型公司,離開項目現場就意味着一切都不受重視,邊緣化。這個項目,那個項目,不論那個項目要人就得去支持。很難靜下心來事。就算是作出一個軟件產品去項目現場要測試、替換。現場的大項目經理也輕易不會同意,應為產品化項目組已經離開現場項目環境好幾個月,誰敢把現有的系統用你的產品化系統代替。出了問題,誰能負責。對於全新的項目,現場研發更喜歡用上一個完成的項目來改造。應為這樣對他來說最熟悉。
今年三月的時候我有個思路,改變下產品化的方式。后端的功能寫成一個一個功能點,前端JS發指令調用后端的功能點,傳遞參數。接收后端反饋。 比如前端post一個復雜json類對象,里面有功能點調用序列: {功能點1:參數;功能點2:參數; 功能點3:參數1,參數2,參數3;} 。
后端接受以后按功能點依次調用后端封裝功能點開始執行。最后返回對應數據結構給前端。實現在前端JS內就可以控制后端業務功能和流程這個最終目的。
每個項目提煉一些通用后端功能點,比如第一個項目提煉30個,第二個項目在提煉20個。最后當通用功能點大約100個的時候。也可以算是一種產品化。對現有項目,可以一個頁面一個頁面的替換。一個模塊一個模塊修改。並讓現場人員一起參與,減小阻力。
當時選擇了angular2框架開始搭建。這幾個月對angular有了更深的了解。現在看來。后端功能點,用restful地址代替更合適。angular APP 是有非常復雜的地方。但也有能簡單調用的方法。每個組件ts文件內,一些關鍵的函數固定化,現場的人員只要簡單的了解就可以使用。這樣優點如下
1、后端都是restful接口可以在公司開發,確定接口json格式后,前后端可以分為兩個項目,並行開發;
2、開發中可以用固定json數據代替接口返回,這樣兩個項目開發相互不牽制;
3、angular APP內做好封裝,現場人員只要會簡單調用必要的函數即可。減少現場人員的培訓周期;
4、angular是完整框架,可以徹底的前端后端分離。其他前端非完整框架多是要寄存在后端頁面內才可以執行;
對應的理想化開發流程如下
angular新版的未來能走到那里,走多遠誰也不清楚。但我現在嘗試用angular新版做后台管理系統。驗證下我的想法。看看它能不能代表web后台管理系統的未來。如果真得能實現流水線式開發,能給這類項目的利潤比提升帶來多大的提升。