软件开发这一行业要么是突飞猛进,要么是深陷囹圄。一方面,我们推动它向前发展,重塑我们构建软件的方式。另一方面,我们不断忘记过去的好,而且软件团队仍然在日常工作上没有什么惊人之举。
软件架构在成功的交付软件中扮演着关键角色,然而令人沮丧的是许多团队都是会忽视这一点。无论是一个人执行还是团队共享,架构角色都存在于敏捷团队中,但前期的平衡与进化的思考方式常常反应的是愿望而非现实。大问题是,在过去十年左右的时间软件体系架构已失宠。
1.软件架构并不是重大的前端设计
历来,软件架构都与大型前端设计和瀑布式项目有关,这时团队必将确保每一个软件设计的最后元素,在编码之前都有考虑到。软件架构基本上讲是软件系统的高层结构,以及你如何去理解它。这条小技巧是关于做出重大决策来影响软件系统状态,而不是理解数据库中的每一列应该是多久。
2.每一个软件项目都需要考虑软件架构
忽略规模和复杂性,所有的软件项目都需要考虑软件架构。你会问为什么?简单说,如果他们考虑不到,就会有不好的事情发生。如果软件架构是关于结构和愿景的,不考虑的话往往会导致结构不合理,内部软件系统不一致,难以理解;难以维护,以及可能无法满足一个或多个重要的非功能性需求,例如性能、可伸缩性和安全性。软件架构显性思考给你提供了一种方法来引入技术领导,并且可能会以你喜欢的方式堆栈出成功的交付。
3.软件架构就是编码、培训和协作
软件架构师的形象,很多人认为是传统的,“象牙塔”软件架构师,听写式指导一个完全信任他的开发团队。其实他并不需要这样,因为现代软件架构师更倾向于自己喜欢的编码、培训和协作设计。软件架构角色并不需要单一的一个人来承担,另外编码是了解架构最终是否有效一条很好的途径。
4.不必使用UML
再次,传统的软件架构视图常常让人联想起巨大的统一建模语言(UML)模型,试图捕捉每一点滴的细节。虽然创建并传达一个共同的愿景很重要,但你并不需要使用UML。事实上,你可能会说,UML软件对于交流软件架构并不是一个很好的方法。如果你的脑中有一些简单的指南,轻量级”框线”草图是软件架构有效沟通的一种方式。
5.好的软件架构需具备敏捷性
一直有人误解架构和敏捷是两股相互竞争的力量,他们之间存在着冲突。然而,事实并非如此。相反,好的软件架构需要具备敏捷性,帮助你拥抱并实现变化。好的软件架构不会靠自己构建,但需要做一些努力是必要的。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
华为软件开发云平台:“一多二全三高”能否满足企业的需求?
在2017年3月22日,华为青岛软件开发云上线大会上,华为也表示,中国的软件与信息服务业,2016年总收入达到4.9万亿,软件从业人员是570万。
-
把软件架构演进体现在栈上
曾几何时,企业架构师要为了得到承认和支持而抗争,但这种时候正在过去。大多数企业现在已经意识到实现业务流程中敏捷性和效率需要业务目标、人力资源以及信息技术的结合。
-
成为Java开发禅师的7个技巧
在旧金山举行的JavaOne 2015上,Martijn Verburg抛开了他Diabolical Developer(魔鬼开发者)的身份,以禅师的面目出现,用比喻的方式向Java开发者介绍了相关的注意事项。
-
软件开发者:适应性决定你的前途
作为有15年经验的软件工程师的Bernard Mesa,加入了TCI,担当据库管理员和中间件工程师的职位,角色转变,对于Bernard Mesa是好是坏?