zoukankan      html  css  js  c++  java
  • 我对软件开发的一点思考

    但凡是搞IT的
    对软件架构、设计模式、XP编程(极限编程)或是敏捷开发、代码重构
    这些软件开发的思想或方法都不陌生
    但是它们之间究竟有什么联系???
    在实际的开发过程应该如何做???
    才能构建一个好的程序……

    简单来说
    开发一个软件的常规做法是
    先设计整个系统的总体架构
    架构包含一些“层”的思想
    (希望你了解“层”的好处,分“层”是我们解决问题的常用方法,不仅限在计算机领域)
    再考虑各“层”采用的模式
    最后是编写代码
    不遵循这个过程的惨痛教训令很多计算机前辈们记忆犹新
    提稍早的开发过程意义其实不大
    它只会勾起我们的“痛苦”回忆
    所以我们才思考新的软件开发思想~~~
    在这个过程中
    我们比较关注软件设计的架构和模式问题
    所以花费的时间也相对多些
    但XP编程(或敏捷开发)改变了这一切
    它不会在设计软件的架构和采用的模式上花费太多时间
    因为我们不断地体会到
    即使再好的设计也会在稍后的开发过程中改变
    与其这样
    倒不如在开发中不断地改善和完善设计
    使软件具有良好的可维护性、可扩展性和健壮性

    软件架构(Software Architecture)它是一个系统的草图,是一系列抽象
    它抽象的事物可以直接构成系统的组件
    来指导软件各个方面工作——设计工作
    软件架构的几个基本概念包括组件(元件)、连接器和配置以及任务流等
    在实际项目中
    组件可以是某个类或是程序集
    组件之间的连接器通常为接口
    将这里的“接口”理解为面向对象思想中的“接口”是狭隘的
    而是类或程序集公开的、供其他类和程序集调用的方法和属性
    早在六十年代时戴克斯特拉就已经涉及了结构化设计的问题
    此后的Rational Software Corporation、Microsoft和卡内基梅隆大学以及加州大学埃尔文分校都做了很多研究
    我们常说的“三层架构”就是软件架构的一种

    设计模式(Design Pattern)是90年代由“GoF(四人帮)”提出的
    “GoF”指的是四个人——Gamma、Helm、Johnson•Vlissides、Addison•Wesley
    他们将建筑学的设计思想引入到计算机领域
    并于1995年出版《设计模式》一书
    第一次将软件的设计提升到理论高度
    要注意软件架构比设计模式更加抽象
    简单地说
    至少软件架构不会涉及具体的类或程序集
    而软件模式考虑的就是具体的类和程序集

    XP编程(Extreme Programming)是由Kent•Beck于1996年提出
    它属于轻量级的软件开发方法
    而重构(Reflectoring)是实现XP编程的一种方法或手段
    它的两位最早的拥护者是Ward•Cunningham和Kent•Beck
    重构既不修正错误,又不增加新的功能
    而是用于提高代码的可读性或改变代码内部的设计和结构
    并删除死代码,使其在将来更容易维护
    重构和XP编程是密切联系的

    软件架构、设计模式和XP编程是一种软件开发思想
    代码重构则是一种的方法和手段
    虽然软件架构和设计模式决定软件的生死
    但设计软件架构和考虑使用的模式是一个相对漫长的过程
    毕竟
    只有充分了解了客户需求后才能设计得当
    这必然会延长软件开发的时间、增加成本
    这是任何一个老总都不希望看到的~~~
    所以才出现XP编程、敏捷开发
    既然再好的设计都会改变
    那么就在开发中不断地去改善和完善
    缩短开发时间
    但有一点
    XP编程和重构并不意味着不再需要设计
    而是在不断变化的需求中
    让软件的设计去适应这些变化
    软件才能具有足够的灵活性、较强的生命期

    ????????????????????????????
    ?那么作为一名开发人员、程序员                                    ?
    ?我们是应该关注软件的功能,还是软件的设计                  ?
    ?是关注软件的功能是否满足客户当前和未来的需要            ?
    ?还是关注软件的设计是否满足客户当前和未来的需求         ?
    ????????????????????????????

  • 相关阅读:
    myeclipse 8.5 workspace无故初始化
    过 DNF TP 驱动保护(二)
    LogMiner
    过 DNF TP 驱动保护(一)
    驱动列举进程输出到应用层
    [转]hookQQAPI拦截QQ聊天记录有图有码
    Oracle Grid 下载地址
    Oracle 分区表 总结
    NtQuerySystemInformation的使用
    oracle asm之添加和修改asm磁盘组
  • 原文地址:https://www.cnblogs.com/liuning8023/p/2152677.html
Copyright © 2011-2022 走看看