|
看你怎么看这个问题了。现代的软件工程都是多人甚至多团队合作型,万一其中的一个模块外包到印度去,那边的开发人员乱写一气,污染了数据,然后下一级别的模块没有做数据效验怎么办?现实世界中总是有各种意外的。当时觉得没必要的事情,过几年之后可能会觉得是重要的。
+ _" n% @& G; f4 _/ G8 h. k! |: r7 d/ Z+ R6 ]* ^6 u) a" i
从架构设计的角度来说,这样做对于扩展性很有好处。比如,现在你只用一台机器跑所有的web service.可是明天用户忽然增多,一台机器撑不住了,必须多台机器集群作战。这时这样做的好处就出来了,软件层面基本上不用作修改就可以分布到多台机器上用。如果象你想的那样内部通讯不需要安全验证,那么扩展起来还需要重新作安全验证,这样又会从另一个方面来增加工作量。是机器便宜还是开发人员的工资便宜呢?Really depends., q! ]" r4 P. m: _3 p, @3 L, `) g
( U! s' S [; O( b! {
很多时候设计决策本身就是一个trade off. % u/ ]) {9 u7 T7 m' Z" i8 y) ]8 @$ z
( L6 a6 y( B% V' o# \, m1 m, \; _4 s+ W
* q U! {5 Y4 d8 G6 t# _
|
|