应用软件>程序员考虑问题(一)

  • 应用软件程序员考虑问题
    • 程序员的迷茫
    • 程序员的思考
    • 程序员的架构
    • 程序员的理解
    • 程序员的认识

应用软件>程序员考虑问题

本文主要介绍程序员的“日常理解”,程序员的思维不应该被限制,不应该以自己岗位所在的方向考虑问题,应该把眼光放长远。不妥之处,敬请见谅。

程序员的迷茫

  • 程序员大多很迷茫,不仅是面对繁杂技术的无力感,还有因为长期埋没于软件世界的分工体系中,无法看清从业务到软件架构的价值链条,无法清楚定位自己在分工体系的位置,处理不好自身与技术、业务之间的关系所致。

  • 程序员大多不喜欢开会、谈需求、谈业务,更愿意搞框架、技术组件等的研究。

程序员的思考

  • 大多互联网公司依靠软件系统提供业务服务,从而创造价值,我们通过构建或维护公司的软件创造价值。

  • 大多互联网公司借助大规模的软件系统承载业务,使其拥有巨大的服务能力并借助互联网技术突破空间限制,高效低廉解决业务问题,创造丰厚的利润。

程序员的架构

  • 架构是将人员、技术等资源组织起来用以解决业务问题,支撑业务增长的一种活动。

  • 架构师通过探索和研究业务领域的知识,构建自身看待业务的“世界观”。然后基于这种认识,拆分业务生命周期,确立业务边界,构建一套解决特定业务问题的领域模型,并确定模型之间、领域之间的关系与协作方式,从而完成对业务领域内的要素的组织工作。

  • 为了能在计算机世界中运作人类社会的业务模型,架构师需要选用计算机世界中合适的框架、中间件、编程语言、网络协议等技术工具,依据之前设计方案组织起来形成一套软件系统方案。软件系统更像一种技术组织。即技术组件、技术手段依据某种逻辑被组织在一起。

  • 架构师还需关注软件系统的构建过程,以实现软件系统为号召,组织一批工程师,并按不同工种、不同职责、不同系统进行组织,确定这些人员的协作方式,并关注这个组织系统是否运行良好,产出是否达到要求,能否按时间完成等。

  • 架构师首要目标是解决业务问题,推动业务增长。

    *所以软件架构不仅仅只是选用什么框架、选用什么技术组件这么简单,它贯穿了对人的组织、对技术的组织、对业务的组织,并将这三种组织以解决业务问题这一目标有机结合在了一起。

程序员的理解

  • 软件系统只有在运行的时候才能创造价值。

  • 软件系统的成本体现在软件的构建过程,到此我们就能理解那些工程技术如项目管理、敏捷开发、单元测试、持续集成、持续构建、版本管理等的价值了。它们有的是保证软件系统的正确性,有的是为了降低沟通成本,有的是为了提升开发效率等。但总的来说是为了降低软件的构建成本。所以在提升系统服务能力,创造更多业务收益的同时,降低构建成本也是一种提升收益的有效手段。

程序员的认识

  • 不要仅限于自己的岗位职责,分一点精力关注软件运维、软件测试、产品经理,因为关注的越多就越能看清全局的价值目标。做全局性思考,把遇到的问题进行拆分,把学习到的事物串联起来,努力形成自身的价值链条。

本文主要参考链接,借此感谢先行的前辈们
http://www.jianshu.com/u/24f464006eaf

如有不妥之处,欢迎批评指正,感谢平台的贡献,本人原文链接如下:

https://my.oschina.net/llzhang/blog

你可能感兴趣的:(程序员必备思考)