面向对象-----
从学习编程开始老师就叫我们要以面向对象的方式来看待事物,以面向对象的思想来理解事物,以面向对象的编程模式来开发程序。听得很多,也很晕。到后来也逐渐明白对象的意义,属性与方法二元结构的确立架起了对象的框架,继承多态的使用才使得对象有了思想,虽说封装不是对象说独有的,但对象却使得封装独具意味。没有深入体味过面向工程编程,对结构化查询语言也只是停留在其定义(sql定义)上,函数式编程也是粗枝大叶。但在工作中却对对象有了更深的认识,周围有人很关注封装、重用,编程初期无可厚非这是值得鼓励的,就像当初刚学接口时发现其具有很好的扩展性,从而大用特用,导致后来滥用。封装、重用也一样,不是说可用就用,不可用就不用,一切定夺还在项目、产品,在对象本身,重产品使用的角度来定夺功能,重产品、功能的角度定夺对象,重对对象抽象的角度来封装、重用。这也从一方面击破了某些人的空想--妄想编写出一个完美而通用的项目。完美,纵观整个软件行业历史,恐怕没有那一款软件称得上是完美的,存在的只是在源源不断地修复bug非完美产品。通用,因为通用,所以没有需求,因为通用就是所有需求都是需求。这样的需求恐怕没有人能够分析得透。
所以说面向对象是面向需求,面向产品的,没有通用的产品,也没有通用的项目。
面向产品-----
以前只关心技术,认为技术至上,学习软件就是为了学习技术。这样想的恐怕不止我一个吧。。。。这样的想法或许在学校很适用,但在工作中可就不那么吃得消了。之前也听老师提及过说要从产品,从功能的角度来思考,来解决问题。可始终没能放在心里,没有在心里烙根。记得刚从学校出来面试时,洋洋得意,拿着手中的项目向人家讲解:这是我们小组用Java做的QQ,实现了点对点即时通讯,后台用的是Oracle数据库。当面试官问起一个简单的点对点通讯为什么要用Oracle这种巨型的数据时,我的回答是:这是学校做的项目,为了练习,熟悉技术。从技术人员的口中谈论技术似乎没有错,可是我直到现在才懂得,技术不是拿来展示的,他是用来做产品的,为产品服务的。没有产品使用技术,那技术也只能称之为艺术了。。。
这种转变不仅仅是口头上的,而是内心的,潜意识的。以前碰到一个问题总是从一个技术点讨论到另一个技术点,完全陷入了如何用各种技术去实现一个目的,却不知这个目的是为什么功能块服务,这个功能块是否可以通过其他目的、方式去实现------纠结于一个死胡同。刚工作时也碰到不少类似的问题,总是在请教老大、老总后才豁然开朗。不禁心生崇拜。后来渐渐才认识到自己思维方式的错误。通过各种心理暗示,渐渐的在碰到问题时也能潜意识的从需求出发,从产品功能出发来思考解决方案了,不过这还不够。
面向客户-----
做技术的似乎很少能和客户打交道,往往不能深知客户需求。程序员按照需求办事,应该是软件行业的一个通例。但对需求的理解程序员,需求分析员,经理,客户或许都有不少差异,客户的需求往往需要转口两三次,甚至更多次才能到达程序员的脑袋,而且像上面讲面向产品一样,相同的信息到达不通程序远的脑袋,他之间的理解也是大有不同的。如何最小化这种转口需求和思维需求的差异,文档肯定是比不可少的。但对于后者更重要的是培养一种面向客户的思维方式。不同于面向产品,面向客户是在功能模块之上的思考,他需要考虑到客户的基本需求,又要顾及到客户的使用习惯和偏好,更要为客户提供及时的帮助。这些都是为定夺产品功能必须的思考,只有学会从这个层次的思考,产品才能做得彻底,做的令客户满意。相信Iphone的成功事例就不必再累述了。
工作中的一点小体会,突然感觉编程和对产品的关注以及对客户的理解其实是很一致性的.^-^........
分享到:
相关推荐
pta题目java的继承覆盖综合题源码,全部内容为自己原创,能够运行但是有些代码可能写的不是很精简,这个摘要也太长了吧,凑不够字数啊
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
memory : dbutils java面向对象 - 类与对象 java面向对象 - 类与对象 java面向对象 - 类与对象 java面向对象 - 类与对象 java面向对象 - 类与对象
在Java编程语言中,面向对象(Object-Oriented Programming,OOP)是一种核心特性,它使得代码更加结构化、可维护且易于复用。在这个"java面向对象---宠物领养系统"案例中,我们将深入探讨如何运用面向对象的三大...
Educoder题目:Java面向对象 - String类答案解析
面向对象--多态.md
面向对象---导出为图片版.PNG
面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向...
面向对象编程是软件开发中的一个核心概念,它允许我们通过模拟真实世界中的对象和概念来组织和设计代码。在这个“面向对象--卡内基--ssd3”主题中,我们可以推测这可能是一门关于卡内基梅隆大学(Carnegie Mellon ...
JAVA面向对象---多态(完结)
本项目"0原生js-面向对象-无缝轮播图.zip"旨在通过原生JavaScript和面向对象编程思想,创建一个无缝轮播图特效。无缝轮播图是一种常见的网页元素,它为用户提供了一种优雅的方式来展示多张图片或内容,让它们看起来...
面向对象-OOP.md
资源名称:Python系列视频教程 面向对象资源目录:【】python视频教程-课堂实录-面向对象-01(类-对象-属性)【】python视频教程-课堂实录-面向对象-03(类-构造-析构)【】python视频教程-课堂实录-面向对象-04(类...
本资源摘要信息涵盖了面向对象编程的基础知识点,包括类和对象的概念、面向对象编程的特点、类和对象的关系、面向对象编程的三个基本特征、面向对象和面向过程的比较等。 一、类和对象的概念 在面向对象编程中,类...
- **软件工程实践**:除了理论知识外,还涉及软件工程实践中如何应用面向对象技术来提高软件产品的质量和生产效率。 #### 教学安排及相关问题 - **学时与课程安排**:课程通常会根据教学目标合理安排学时,确保...
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它强调将数据和操作数据的方法封装在对象之中,以提高代码的可重用性、可维护性和可扩展性。在这个"面向对象-学员管理系统"项目中,...
Educoder题目:Java面向对象 - 类与对象答案解析
c#面向对象练习-----奥特曼打小怪兽完整源码,100%正确可运行,欢迎下载!有问题可留言哈哈哈哈
Educoder题目:Java面向对象 - 包装类 答案解析