你好,我是小牛
很多同学成功转行软件测试之后,做了一段时间功能测试,会感觉也不过如此。日常工作没什么提升,总是在做重复性工作。
当你有这种感觉的时候,就是是时候提升一波了,而寻求的突破口,就是建议大家首先从编程入手。
学完编程,学自动化,然后跳槽加薪,迎娶白富美,走上人生巅峰,岂不美哉,哈哈哈哈……
继续说编程,当你学完编程的基础语法之后比如变量,条件,循环等之后,接下来要学的就是面向对象编程了,它更多的是一种编程思想。
可能你还会听说一句话,叫万物皆对象,那什么是面向对象编程呢?
在理解这个概念之前,首先要知道的就是面向过程编程。这两个对比来学习就比较容易理解。
如果你大学学的是工科专业,可能很多人都会在大一的时候学习一门编程语言叫做C语言,这个就是典型的面向过程编程语言。
然而比较可悲的是,学了这门语言,其实能做的事情很有限,每天对着黑窗口写代码,很多人在还没培养起兴趣之前就放弃了。
所以计算机相关专业的同学接下来就会学习面向对象编程语言,像做自动化使用的java,python语言,还有其它的C#等都属于这类语言。
那么面向过程编程思维和面向对象编程思维有什么区别呢?
举个例子:
比如你准备使用洗衣机洗衣服。
面向过程的解决方法:
1.执行放衣服方法
2.执行加洗衣粉方法
3.执行加水方法
4.执行洗衣服方法
5.执行甩干方法
可以很容易看出,它是按照执行过程拆分成一个个方法,然后通过执行一个个方法来解决问题。
面向对象的解决方法:
1.先弄出两个对象,洗衣机对象和人对象
2.针对对象洗衣机加入一些属性和方法:洗衣服方法,甩干方法。
3.针对人对象加入一些属性和方法:加衣服方法,加洗衣粉方法,加水方法。
4.然后执行
人.加衣服
人.加洗衣粉
人.加水
洗衣机.洗衣服
洗衣机.甩干
同样是洗衣服,可以看出,面向对象编程思维就是先抽象出对象,然后使用对象去执行方法的方式解决问题。
面向过程和面向对象是两种截然不同的编程思维方式,说完它们的区别,那么它们有什么优缺点呢?
简单来说,面向过程写出来的程序就是一份蛋炒饭,面向编程写出来的程序就是盖浇饭。
蛋炒饭是将饭和鸡蛋一起炒,而盖浇饭可以将饭和菜分开,对饭店来说当你想吃土豆盖浇饭,就在米饭上浇土豆,想吃红烧肉盖浇饭,就浇红烧肉。
盖浇饭有无穷种组合,大大提高了灵活性。用软件工程的专业术语来说就是,可维护性好,可拓展性好,代码耦合度低。
既然面向对象编程这么优秀,那么为什么还需要面向过程编程呢?
原因也简单,因为像C语言这种面向过程语言属于底层语言,更接近操作系统。运行速度更快,性能更好。
因为面向对象编程时,类需要实例化对象,开销比较大,更消耗资源。处理速度也更慢。
所以,一般面向过程C语言用在硬件开发比较多,还有就是操作系统开发。比如嵌入式开发,单片机开发,Linux/Unix开发等等。
面向过程这些就不用多说了,主要用在开发各类web网站,自动化测试等等领域。
聊完它们的优劣对比,接下来不得不提到的就是面向对象编程的三大特性,封装,继承,多态。这三个也是面试时必问的问题。
这三个特性,每一个拓展开来都可以写一篇文章,限于篇幅,先不展开了,之后文章会一一安排,敬请期待!!