你不可能在我的软件中找到哪怕一个重复的代码块!-- 撸码的最低标准
前言
最近在对公司的一个已有客户端进行bug的修复以及功能的扩展开发。很不愉悦的一件事情是,当看到一个很小很小的bug,例如Label的背景显示出问题了,Label的字体大小不符合文档要求,我们最直接的想法应该就是找到这个Label的相关代码段,进行一两处代码的修改应该就能简单完事了。然而就是这么简单的bug,我至少修改了十几处代码!十几处!十几次啊!!(重要的事情讲三遍!)原因是什么呢?无疑是代码抽象层次太低,复制粘贴代码太多!太多!太多了!
浅谈软件体系结构与软件设计模式
在《软件体系与设计》一书中,软件体系结构定义如下:软件体系结构意指“软件的整体结构和这种结构为系统提供概念完整性的方式”;设计模式定义如下:设计模式描述了在某一个特定场景与可能影响模式应用和使用方式的“影响力”中解决某个特定设计问题的设计结构。众所周知的,当下常用的设计模式有MVC,MVVM,MVP等,MVC已经是个老生常谈的设计模式了,现在也在逐步被其他设计模式,例如MVVM,MVP所替代。这几个设计模式具体是什么,有什么不同,我就不说了,谷歌,百度一下,一搜会有一大堆的文章介绍这些模式,毕竟是当下流行的东西。各位看客在这里只需要简单知道,虽然软件的规模越来越大,程序越来越复杂,MVC已经不能满足要求了,为了进一步降低耦合度,开发出更加高质量的程序就不能再继续使用老牌的MVC了。一个良好的设计模式,可以有利于我们开发出结构清晰,后期利于长期维护以及功能扩展的软件,也有利于在开发过程中快速构建开发软件。
模块化
除了要有良好开发模式,另外一个不得不谈的就是模块化。所谓模块化,可以理解化一个简单的构件,这个构件可以是一个图形的组件,或者一个处理数据逻辑的单元。比如一个图片轮询播放的组件,或者是一个处理网络请求的库。最简单的理解应该是模块与模块之间应该是相互独立,信息隐蔽,高聚合度,低耦合度,只通过简单接口进行交互的。
抽象
要想模块化就必须要学会抽象。一个抽象可以简单理解为只单纯负责处理一件事情的方法、类或者过程函数。一个理解抽象时机的简单方法是,如果你在写代码的时候还在使用复制粘贴,或者还在一处又一处的码着重复的代码,那么你就该思考一下你有没有必要把重复的地方抽象成一个函数,或者一个类了。
最后一言
不要复制粘贴代码!不要复制粘贴代码!不要复制粘贴代码!即使你学不会什么是模块化,什么是设计模式,什么是软件体系结构,起码也要懂得起码那么一丁点的抽象好么!!请不要做一个耿直的把代码撸了一遍又一遍的人!
文/Calvix_Xu
关键字:产品经理, 代码
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!