网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容

谈谈软件设计的几个矛盾

时间:2024-11-24 00:04:38

1、拆与不拆没有对错Windows是微内核架构,Linux是单内核架构。微内核意味着内核很小,你可以通过很多个模块去补充它,内核与模块是解耦的。Linux是单内核,就表示所有内核功能会在编译时就确定。可能大家都觉得微内核更好,很多时候它确实更好,但是Linus有个经典的论断:“你不需要管理各个模块,但是你需要处理模块之间的依赖,这个可能比模块本身更复杂”。因为事物本身就是互相联系的,你觉得他们不存在耦合,只是当前使用场景用不到而已。

2、系统内部实现对外部透明,保留拆或者不拆的选择权。项目自身的复杂度,完全可以靠内部实现解决,对外保持约定好的API,这样对于以后内部的重构,会简单得多。相反,如果暴露了内部实现,那么修改就很困难了。

3、对于项目拆分,如果没有充足的理由支持拆分,就不要拆。不成熟的拆分,最常见的结果是,随着需求的变化,你不得不打破这种解耦关系,这样反而会带来更多的问题。建议是需求稳定之后,再考虑拆分。

4、在系统内部多多进行代码级别的拆分,管理复杂度。相比项目的拆分,函数和类级别的拆分成本非常低,值得多用。

© 2025 小知经验
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com