zoukankan      html  css  js  c++  java
  • 組合的藝術

    众所周知,在软件开发过程中,每名软件工程师都要掌握大量的编程知识,比如如何访问数据库,如何控制线程的推进顺序等,掌握这些知识

    是顺利进行开发的必要条件。然而,仅有这些就够了吗?仅仅掌握了这些编程知识就足以开发出优秀的软件?

    在我看来,开发者还需要掌握“组合”的艺术,你必须知道在某个完成特定功能的程序中,你可以组合哪些基本的构造块,而这些基本的构造

    块又以何种方式优雅地组合在一起,构成一个有机的整体。

    基本的构造块不仅仅指可以直接拿来复用的软件组件(或者是SOA中的Service),还包括可以在不同项目间复用的典型代码(比如如何将一个

    double类型的数字保留两位小数的典型代码段)、技术解决方案(比如各种设计模式)或软件架构(比如成熟的多层分布式组件化系统框架、

    基于管道的系统架构)等等。

    如何开发出好的软件,不取决于你基于什么平台,使用什么技术,甚至也不完全取决于你的技术能力和对技术内幕的深刻把握,而取决于你是

    如何组合这些基本构造块的。

    在某项软件技术的学习过程中,你实际上完成的是“形成软件构造块”的任务,而在软件项目实际开发过程中,你实际上完成的是“使用现有

    软件构造块”拼“七巧板”的过程。

    自学的过程,就是“形成软件构造块”的过程。

    开发的过程,就是“将软件构造块”组合为完成某一特定功能的程序的过程。

    软件技术教学的过程,就是将“软件构造块”组合为真实软件的过程展示给学生的过程,先让学生进行模仿,然后他就学会了创造。

    重要的是学会方法,而非掌握知识。

  • 相关阅读:
    Windows Console 程序中定时器的使用
    AT91SAM7SE应用 IRQ
    AT91SAM7SE应用 PIT 周期中断(1ms)
    AT91SAM7SE应用 UART
    Modelsim图像处理算法的仿真——图像数据操作
    按照一定的间隔,从视频中截图并保存(OpenCV)
    MacBook Pro下关闭全局网络代理
    jmeter的HTTP取样器设置重连的次数
    【C#】比较 Random 与 RandomNumberGenerator 生成随机字符串
    KendoGrid基础
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940779.html
Copyright © 2011-2022 走看看