作者ripple0129 (perry tsai)
看板Soft_Job
标题[讨论] 软体定义架构
时间Sun May 28 00:18:08 2017
现今软体有许多架构
可能在不同的domain
所习惯使用的架构可能有所不同
从大一点的专案范围来看
Monolith Micro-Service
拉近一点从框架来看可能是
MVC MVVM MVP
而通常一般决定了怎样的架构
则要变动架构可能要耗费的心力是很高的
最近从SDN盛行得到一个想法
如果网路都可以从软体来定义
那麽架构是否可以由软体来定义
所有的程式可能只是一个class
而藉由软体的定义串连起来成为一个专案
当然要做到这样势必是要有接口要去实作
但是当此规范完善了起来
是否所有的功能都能像拼积木的方式来完成呢
当一个专案的开始我可以不用思考太多
轻松定义成monolith
而只要切换定义档案
功能就能够轻松的拆分为micro service
透过定义
未来开源的世界有大量的基础程式码
或许只需要写定义档就能完成一个专案?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.41.39
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1495901890.A.41C.html
1F:→ sky810684: 客制化的东西太多了,我觉得不可能,不过做成元件还是 05/28 00:38
2F:→ sky810684: 可以省下很多开发时间,最近Google IO上的Polymer2就有 05/28 00:38
3F:→ sky810684: 这种期待,让Webcomponent永存不朽 05/28 00:38
4F:推 chuegou: 只求功能的时候可以 有其他需求可能就不行了 05/28 01:08
5F:推 abccbaandy: CRUD等级的差不多符合了吧? DB开完就差不多结束了 05/28 01:15
6F:推 CoNsTaR: 如果你的class指的是type,程式指的是所有turing complet 05/28 04:49
7F:→ CoNsTaR: e程式的话,直接告诉你不可能 05/28 04:49
8F:→ CoNsTaR: 因为要是你讲的东西存在的话,那就代表所有计算结果都是 05/28 04:49
9F:→ CoNsTaR: 在计算前就能够直接预知的 05/28 04:49
10F:→ CoNsTaR: 那你还写程式干嘛? 05/28 04:49
11F:→ ripple0129: 计算结果是预知的没错,但终须有人根据需求把他定义 05/28 06:27
12F:→ ripple0129: 串连起来,这串连起来的方式可能就有许多种不同的方 05/28 06:27
13F:→ ripple0129: 式都能达到。因应不同的状况下你可能串连的方式不同, 05/28 06:27
14F:→ ripple0129: 表示使用者的需求改变。 05/28 06:27
15F:→ testPtt: 未来要做的是自动产生程式码 基础程式码会以硬体实现 05/28 07:43
16F:推 CoNsTaR: 问题是很多情况程式结果是不能预知的,所以不是所有程式 05/28 08:59
17F:→ CoNsTaR: 都能这样写 05/28 08:59
18F:→ CoNsTaR: 其实应该说几乎大部分程式都没办法这样写 05/28 09:00
19F:嘘 Ommm5566: 想太多 就算你说的可以成立 效能也是让人想哭 05/28 09:20
20F:推 Ommm5566: 光是要选择定义就是难题 不然博班为什麽要念那麽久 05/28 09:25
21F:→ TSW: 可以将系统画成图 => 可以模组化 => 可以靠定义档完成专案 05/28 09:27
22F:→ TSW: 前提是 1.有好的标准介面 2.足够大的Library 05/28 09:27
23F:推 CoNsTaR: Ommm5566 要是这个真的可行不会有效能这个概念,因为所 05/28 09:39
24F:→ CoNsTaR: 有东西都会变成可以做到直接给结果 05/28 09:39
25F:→ CoNsTaR: 一个没有function只有type的程式,所有计算都在type内完 05/28 09:39
26F:→ CoNsTaR: 成,所以所有可能都在编译时期就知道了 05/28 09:39
27F:→ TSW: 现实就是 1.标准介面不够用 2.Library不够大 05/28 09:40
28F:→ TSW: 所以需要自己写串接写商业逻辑 05/28 09:41
29F:推 CoNsTaR: 你可以把好多type组合起来,变成一个更大的type 05/28 09:48
30F:→ CoNsTaR: 最後组出来的超大type就是一个程式 05/28 09:48
31F:→ CoNsTaR: 例如你可以把vector,int组合成vector<int> 05/28 09:48
32F:→ CoNsTaR: 只不过还有更多种"组合"、"计算"type的方式 05/28 09:48
33F:→ CoNsTaR: 而这些东西全部都在编译时期就能够被决定了(因为不允许fu 05/28 09:48
34F:→ CoNsTaR: nction) 05/28 09:48
35F:推 Ommm5566: 谢谢楼上解释 05/28 10:02
36F:→ pttworld: 想想CMS那三套 05/28 10:35
37F:→ pttworld: 另外一点是商业逻辑,如果你的经历在二个不同的行业待 05/28 10:38
38F:→ pttworld: 过。你大可举例学校科系版型都一样,但那是因为仅内容 05/28 10:38
39F:→ pttworld: 呈现。 05/28 10:38
40F:推 soheadsome: MicroKernel跟你说得很像吧 功能都只靠IPC沟通 05/28 13:53
41F:→ soheadsome: 你不会太清楚对方细节 只知道要传哪些东西 05/28 13:54
42F:→ soheadsome: 效能就... 05/28 13:54
43F:推 stosto: 你讲的就是架构啊 05/29 10:10