草庐IT

架构设计三原则

作为程序员,很多人都希望成为一名架构师,但并非简单地通过编程技能就能够达成这一目标。事实上,优秀的程序员和架构师之间存在一个明显的鸿沟——不确定性。编程的本质是确定性的,也就是说,对于同一段代码,无论由谁编写,在何时执行,其结果应该是确定的(尽管有可能存在bug)。相比之下,架构设计本质上是不确定的。同一系统,不同公司的架构可能存在较大的差异,但最终都能正常运转。在面对多种可能性时,架构师需要进行选择,而这种选择往往会让人陷入两难的境地。例如:是否选择业界最先进的技术,还是选择团队目前最熟悉的技术?是否选择Google的Angular或Facebook的React?是否选择MySQL或Mong