[討論] 軟體定義架構

看板Soft_Job作者 (perry tsai)時間7年前 (2017/05/28 00:18), 編輯推噓9(10132)
留言43則, 11人參與, 最新討論串1/4 (看更多)
現今軟體有許多架構 可能在不同的domain 所習慣使用的架構可能有所不同 從大一點的專案範圍來看 Monolith Micro-Service 拉近一點從框架來看可能是 MVC MVVM MVP 而通常一般決定了怎樣的架構 則要變動架構可能要耗費的心力是很高的 最近從SDN盛行得到一個想法 如果網路都可以從軟體來定義 那麼架構是否可以由軟體來定義 所有的程式可能只是一個class 而藉由軟體的定義串連起來成為一個專案 當然要做到這樣勢必是要有接口要去實作 但是當此規範完善了起來 是否所有的功能都能像拼積木的方式來完成呢 當一個專案的開始我可以不用思考太多 輕鬆定義成monolith 而只要切換定義檔案 功能就能夠輕鬆的拆分為micro service 透過定義 未來開源的世界有大量的基礎程式碼 或許只需要寫定義檔就能完成一個專案? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.41.39 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1495901890.A.41C.html

05/28 00:38, , 1F
客製化的東西太多了,我覺得不可能,不過做成元件還是
05/28 00:38, 1F

05/28 00:38, , 2F
可以省下很多開發時間,最近Google IO上的Polymer2就有
05/28 00:38, 2F

05/28 00:38, , 3F
這種期待,讓Webcomponent永存不朽
05/28 00:38, 3F

05/28 01:08, , 4F
只求功能的時候可以 有其他需求可能就不行了
05/28 01:08, 4F

05/28 01:15, , 5F
CRUD等級的差不多符合了吧? DB開完就差不多結束了
05/28 01:15, 5F

05/28 04:49, , 6F
如果你的class指的是type,程式指的是所有turing complet
05/28 04:49, 6F

05/28 04:49, , 7F
e程式的話,直接告訴你不可能
05/28 04:49, 7F

05/28 04:49, , 8F
因為要是你講的東西存在的話,那就代表所有計算結果都是
05/28 04:49, 8F

05/28 04:49, , 9F
在計算前就能夠直接預知的
05/28 04:49, 9F

05/28 04:49, , 10F
那你還寫程式幹嘛?
05/28 04:49, 10F

05/28 06:27, , 11F
計算結果是預知的沒錯,但終須有人根據需求把他定義
05/28 06:27, 11F

05/28 06:27, , 12F
串連起來,這串連起來的方式可能就有許多種不同的方
05/28 06:27, 12F

05/28 06:27, , 13F
式都能達到。因應不同的狀況下你可能串連的方式不同,
05/28 06:27, 13F

05/28 06:27, , 14F
表示使用者的需求改變。
05/28 06:27, 14F

05/28 07:43, , 15F
未來要做的是自動產生程式碼 基礎程式碼會以硬體實現
05/28 07:43, 15F

05/28 08:59, , 16F
問題是很多情況程式結果是不能預知的,所以不是所有程式
05/28 08:59, 16F

05/28 08:59, , 17F
都能這樣寫
05/28 08:59, 17F

05/28 09:00, , 18F
其實應該說幾乎大部分程式都沒辦法這樣寫
05/28 09:00, 18F

05/28 09:20, , 19F
想太多 就算你說的可以成立 效能也是讓人想哭
05/28 09:20, 19F

05/28 09:25, , 20F
光是要選擇定義就是難題 不然博班為什麼要念那麼久
05/28 09:25, 20F

05/28 09:27, , 21F
可以將系統畫成圖 => 可以模組化 => 可以靠定義檔完成專案
05/28 09:27, 21F

05/28 09:27, , 22F
前提是 1.有好的標準介面 2.足夠大的Library
05/28 09:27, 22F

05/28 09:39, , 23F
Ommm5566 要是這個真的可行不會有效能這個概念,因為所
05/28 09:39, 23F

05/28 09:39, , 24F
有東西都會變成可以做到直接給結果
05/28 09:39, 24F

05/28 09:39, , 25F
一個沒有function只有type的程式,所有計算都在type內完
05/28 09:39, 25F

05/28 09:39, , 26F
成,所以所有可能都在編譯時期就知道了
05/28 09:39, 26F

05/28 09:40, , 27F
現實就是 1.標準介面不夠用 2.Library不夠大
05/28 09:40, 27F

05/28 09:41, , 28F
所以需要自己寫串接寫商業邏輯
05/28 09:41, 28F

05/28 09:48, , 29F
你可以把好多type組合起來,變成一個更大的type
05/28 09:48, 29F

05/28 09:48, , 30F
最後組出來的超大type就是一個程式
05/28 09:48, 30F

05/28 09:48, , 31F
例如你可以把vector,int組合成vector<int>
05/28 09:48, 31F

05/28 09:48, , 32F
只不過還有更多種"組合"、"計算"type的方式
05/28 09:48, 32F

05/28 09:48, , 33F
而這些東西全部都在編譯時期就能夠被決定了(因為不允許fu
05/28 09:48, 33F

05/28 09:48, , 34F
nction)
05/28 09:48, 34F

05/28 10:02, , 35F
謝謝樓上解釋
05/28 10:02, 35F

05/28 10:35, , 36F
想想CMS那三套
05/28 10:35, 36F

05/28 10:38, , 37F
另外一點是商業邏輯,如果你的經歷在二個不同的行業待
05/28 10:38, 37F

05/28 10:38, , 38F
過。你大可舉例學校科系版型都一樣,但那是因為僅內容
05/28 10:38, 38F

05/28 10:38, , 39F
呈現。
05/28 10:38, 39F

05/28 13:53, , 40F
MicroKernel跟你說得很像吧 功能都只靠IPC溝通
05/28 13:53, 40F

05/28 13:54, , 41F
你不會太清楚對方細節 只知道要傳哪些東西
05/28 13:54, 41F

05/28 13:54, , 42F
效能就...
05/28 13:54, 42F

05/29 10:10, , 43F
你講的就是架構啊
05/29 10:10, 43F
文章代碼(AID): #1PAQR2GS (Soft_Job)
文章代碼(AID): #1PAQR2GS (Soft_Job)