`
xuhuankeven
  • 浏览: 35672 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

面向对象-面向产品-面向客户

阅读更多
面向对象-----

    从学习编程开始老师就叫我们要以面向对象的方式来看待事物,以面向对象的思想来理解事物,以面向对象的编程模式来开发程序。听得很多,也很晕。到后来也逐渐明白对象的意义,属性与方法二元结构的确立架起了对象的框架,继承多态的使用才使得对象有了思想,虽说封装不是对象说独有的,但对象却使得封装独具意味。没有深入体味过面向工程编程,对结构化查询语言也只是停留在其定义(sql定义)上,函数式编程也是粗枝大叶。但在工作中却对对象有了更深的认识,周围有人很关注封装、重用,编程初期无可厚非这是值得鼓励的,就像当初刚学接口时发现其具有很好的扩展性,从而大用特用,导致后来滥用。封装、重用也一样,不是说可用就用,不可用就不用,一切定夺还在项目、产品,在对象本身,重产品使用的角度来定夺功能,重产品、功能的角度定夺对象,重对对象抽象的角度来封装、重用。这也从一方面击破了某些人的空想--妄想编写出一个完美而通用的项目。完美,纵观整个软件行业历史,恐怕没有那一款软件称得上是完美的,存在的只是在源源不断地修复bug非完美产品。通用,因为通用,所以没有需求,因为通用就是所有需求都是需求。这样的需求恐怕没有人能够分析得透。

    所以说面向对象是面向需求,面向产品的,没有通用的产品,也没有通用的项目。

面向产品-----

    以前只关心技术,认为技术至上,学习软件就是为了学习技术。这样想的恐怕不止我一个吧。。。。这样的想法或许在学校很适用,但在工作中可就不那么吃得消了。之前也听老师提及过说要从产品,从功能的角度来思考,来解决问题。可始终没能放在心里,没有在心里烙根。记得刚从学校出来面试时,洋洋得意,拿着手中的项目向人家讲解:这是我们小组用Java做的QQ,实现了点对点即时通讯,后台用的是Oracle数据库。当面试官问起一个简单的点对点通讯为什么要用Oracle这种巨型的数据时,我的回答是:这是学校做的项目,为了练习,熟悉技术。从技术人员的口中谈论技术似乎没有错,可是我直到现在才懂得,技术不是拿来展示的,他是用来做产品的,为产品服务的。没有产品使用技术,那技术也只能称之为艺术了。。。

    这种转变不仅仅是口头上的,而是内心的,潜意识的。以前碰到一个问题总是从一个技术点讨论到另一个技术点,完全陷入了如何用各种技术去实现一个目的,却不知这个目的是为什么功能块服务,这个功能块是否可以通过其他目的、方式去实现------纠结于一个死胡同。刚工作时也碰到不少类似的问题,总是在请教老大、老总后才豁然开朗。不禁心生崇拜。后来渐渐才认识到自己思维方式的错误。通过各种心理暗示,渐渐的在碰到问题时也能潜意识的从需求出发,从产品功能出发来思考解决方案了,不过这还不够。

面向客户-----

    做技术的似乎很少能和客户打交道,往往不能深知客户需求。程序员按照需求办事,应该是软件行业的一个通例。但对需求的理解程序员,需求分析员,经理,客户或许都有不少差异,客户的需求往往需要转口两三次,甚至更多次才能到达程序员的脑袋,而且像上面讲面向产品一样,相同的信息到达不通程序远的脑袋,他之间的理解也是大有不同的。如何最小化这种转口需求和思维需求的差异,文档肯定是比不可少的。但对于后者更重要的是培养一种面向客户的思维方式。不同于面向产品,面向客户是在功能模块之上的思考,他需要考虑到客户的基本需求,又要顾及到客户的使用习惯和偏好,更要为客户提供及时的帮助。这些都是为定夺产品功能必须的思考,只有学会从这个层次的思考,产品才能做得彻底,做的令客户满意。相信Iphone的成功事例就不必再累述了。

    工作中的一点小体会,突然感觉编程和对产品的关注以及对客户的理解其实是很一致性的.^-^........
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics