軟體系統功能開發有很多常識,不過常識多寡也不太影響太多。因為現在有很多產品/open source,跟框架,大幅降低了開發難度,只要選好框架應用,只要會設定、寫一點程式就有東西跑出來了。Google 「tutorial」就一堆,各式教學Blog,學習筆記,資源很多,一步步照著做入門也不會太難。
所以也不能怪說ChatGPT會寫程式,程式基本上就是個工具,把他當做一把剪刀來看,能拿得起剪刀,可以剪出正方形,長方形,圓形,就有50分,再來就是有聽懂人話 +10分,剪得快 +10分,剪得邊角乾淨俐落 +10分,懂得減少廢料 +10分…。在分層分工的社會中,靠著管理團隊(X)命令手下(O),依據各種理論與方式手法,就能達成想要的成果。
有時後也不是不肯想,而是在高度分工下,輪不到你來想(不在其位,不謀其職),也不用有想法(會打亂原定的分工計劃),需要得是專才技巧純熟,確實完成命令,速度越快越好。若是很有想法(嘴砲)的人,選一條龍開發模式的公司,可能會覺得比較自由,就比較偏通才,只是要處理的面向跟事情也變得很多(又要被嫌血汗,打雜工沒前途QQ)。
扯遠了,回歸正題,現代可以做到高度分工,有一部份也是因為各種程式技術日漸成熟,前人累積的經驗與智慧,成就了眾多的函式庫。而計算機科學的研究也提出各種方法,各種概念來加快軟體發展,降低入門門檻,減少低級錯誤(對開發者防呆),加上可能各派的擁護者想要成為主流(付出就有沉沒成本,主流才會出名,主流才會被大量採用,有被人用才有綁定的機會,才能驗證有成功案例再成長),總之現在軟體開發都是使用現成框架、服務居多。
而在框架選取上,通常都是看會什麼就用什麼!除非有顧問導入,搭配教育訓練,有學習成本在,也就是要多花時間跟人力。小本經營的還是找已經會的,已經被培養好的,比較快。所以框架選定通常很快,通常都是在比選用那個版本的問題。
因為時代發展太快,或是商業化好賺錢(升版就有機會可以收一次錢)的關系?!不管是產品,或是程式、框架生命周期明顯都變短,大多落在一年,或一年半就不再維護。而系統上線底層可能要用到五年,十年以上,所以選擇LTS(Long-term support,wiki:https://zh.wikipedia.org/zh-tw/%E9%95%B7%E6%9C%9F%E6%94%AF%E6%8F%B4 )的版本就相對重要。
版本支援資訊,可以上官網查是最準,只不過有些會藏在不好找的地方,也可以參考網站整理:https://endoflife.date/ 這個我覺得還蠻方便的。
這次開發的版本,我會選擇以下幾個項目:
其他像是OS,DB 只用基本功能,因為Java特性都有良好的支援,就是有什麼用什麼,不用特別挑版本了。