当我读到软件架构(MVC、SOA等)时,我有一些问题:为什么需要这么多架构?这些架构的优势是什么?如何为我的项目选择合适的架构?我需要遵循哪些准则?
我读了scottGu的博客,他指出MVC将有助于搜索引擎优化。这个架构对SEO有什么帮助?
发布于 2009-08-14 18:29:28
没有证据表明需要这么多架构。只是太多的人相信他们可以想出一个新的完美的架构来解决世界上所有的问题。标准委员会,公司的研发部门,大学部门的人试图在科学界获得动力,不断地发明……嗯,几乎任何事,真的。
我可能会因为过度引用Joel而被否决,但他一直在写很棒的东西。阅读这篇文章,它将提供对正在发生的事情的更多洞察力。
Fire And Motion
回想一下微软的数据访问策略的历史。ODBC,RDO,DAO,ADO,OLEDB,现在是ADO.NET -所有新的!这些是技术上的要求吗?一个不称职的设计团队每年都需要重新发明数据访问的结果?(实际上,可能就是这样。)但最终的结果只是掩护火力。竞争对手别无选择,只能把所有的时间都花在移植和跟上上,而不是花在写新功能上。仔细观察软件环境。做得好的公司是那些最不依赖大公司的公司,并且不必花费所有的周期来迎头赶上,重新实现和修复仅在Windows XP上突然出现的错误。跌跌撞撞的公司是那些花了太多时间阅读茶叶来弄清楚微软未来发展方向的公司。人们开始担心.NET,并决定为.NET重写整个架构,因为他们认为他们必须这样做。微软正在向你射击,它只是掩护火力,这样他们就可以前进,而你不能前进,因为这就是游戏的方式,巴比。你会支持冰暴吗?肥皂?RDF?你支持它是因为你的客户需要它,还是因为有人向你开火,而你觉得你必须做出回应?大公司的销售团队了解掩护火力。他们对客户说:“好吧,你不必从我们这里购买。从最好的供应商那里购买。但要确保你得到的产品支持(XML / SOAP / CDE / J2EE),否则你会被锁在后备箱里。”然后,当小公司试图向那个账户销售产品时,他们听到的只是听话的首席技术官们模仿的“你有J2EE吗?”他们不得不浪费所有的时间在J2EE上构建,即使它并没有真正的销售,也没有给他们任何机会让自己脱颖而出。这是一个复选框特性--您之所以这样做,是因为您需要一个复选框来说明您拥有它,但是没有人会使用它或需要它。这是掩护火力。
发布于 2009-08-14 17:50:48
您所指的是MVC,而不是一般的ASP.NET模式。ASP.NET MVC非常强调构建干净和描述性的URL,并使开发包含干净和自然URL的应用程序变得容易和自然。
干净和描述性的URL在搜索引擎优化中是一个很大的优势,因为典型的搜索引擎对与URL匹配的文本的评分很高。
例如,在stackoverflow上看看这个问题的网址,如果它的网址是https://stackoverflow.com/q=1279226&page=1,它就不会在谷歌排名那么高
发布于 2009-08-14 17:58:44
一些随机的漫游:
(注意:我谈论的是概念的架构,而不是构件的架构)
系统的体系结构是系统的总体设计和组成。架构总是存在的,但您可能希望确保您的架构足够好。基本上,架构是作为开发过程的一部分来完成的;在开发之前,在开发过程中,或者是偶然的。避免最后一个。
做一些前期架构的一个原因是找出关于系统的哪些决策需要及早做出(例如,由于互操作性),以及哪些决策可以推迟到实际需要时再做。
如果你在开发过程中一直关注你的架构,确保你总是有一个干净的结构(并且在给出正确的理由时不怕改变它),你的系统将更容易根据需要进行扩展和修改。
我发现两者的结合是好的,试着及早找出必要的重大决策,并尽量延迟做出它们(但不是更晚!)当你有尽可能多的信息来做决定的时候。早期架构对于确定获得最小工作系统所需的最小部分也很有用,该系统可以随着需求变得清晰而增长。
此外,体系结构可以被视为一种通信工具;通过使用众所周知的体系结构模式和隐喻,将您的系统的意图和工作方式与其他人进行沟通变得非常容易。体系结构良好的系统可以通过易于理解分成几个部分来识别;您可以理解一个部分,而不必了解所有其他部分的细节。它基本上是系统的导游和路标:)
https://stackoverflow.com/questions/1279140
复制相似问题