当前位置:  编程技术>移动开发
本页文章导读:
    ▪大型软件项目中的机关环境        大型软件项目中的组织环境 项目管理的三大主要任务就是:计划、组织和控制。在这三大任务中,组织是其中的核心和钮带。[关键字]:PM(项目经理)、CSA(软件架构师)、SA(设计师).........
    ▪ new一个函数与直接调用一个函数的差异        new一个函数与直接调用一个函数的区别 例子一: var Test =  function(){   this.name = "qudc"; return "qudc"; } var a = Test(); var b = new Test();   例子二: var Test =  function(){   this.name = "qudc"; return fun.........
    ▪ java核心技术总结七-错误、日志、断言和调试       java核心技术总结七--异常、日志、断言和调试 第十一章 1、异常的分类:      Throwable分为Error类和Exception类。Exception类分为IOException类和RuntimeException类。       Error类层次结构描述了.........

[1]大型软件项目中的机关环境
    来源: 互联网  发布时间: 2014-02-18
大型软件项目中的组织环境
项目管理的三大主要任务就是:计划、组织和控制。在这三大任务中,组织是其中的核心和钮带。

[关键字]:PM(项目经理)、CSA(软件架构师)、SA(设计师)、TestManager(测试经理)、Tester(测试员)、Developer(程序员)、Customer(客户代表)、Consultant(咨询顾问)

软件生命周期-倒V型图



软件开发周期与角色对照表



从上面的表格中,我们可以清晰的看出,软件开发中不同角色分工是不一样的。对于一个软件开发项目来说,前四个阶段是至关重要的,所以总体架构师CSA一般都要参加,在第四、五、六阶段一般程序员参加较多,在后面测试阶段测试员参加较多。从整体来看PM和CSA是项目中的两个重要角色,在项目前和项目收尾时都有参加。这也正体现了软件开发过程中开头和收尾是两个控制重点。

另外,项目经理要要按不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段不同层次技术人员的参与情况是不一样的。下图是典型的软件开发人员参与情况曲线:



项目经理(PM)与总体架构师(CSA)的职责区别

作为软件项目管理中的两个重要角色PM与CSA两者缺一不可。从管理上应该是CSA服从PM的领导,CSA应该给PM提供技术支持。从技术上来说,CSA是项目的总负责,同时CSA也行使部分管理权力,如对开发小组长的管理。CSA可以理解为技术经理的角色。但PM与CSA在软件项目实施过程当中到底分工如何呢?我们将用下面一个表格进行说明。



    
[2] new一个函数与直接调用一个函数的差异
    来源: 互联网  发布时间: 2014-02-18
new一个函数与直接调用一个函数的区别

例子一:

var Test =  function(){

 

this.name = "qudc";

return "qudc";

}

var a = Test();

var b = new Test();

 

例子二:

var Test =  function(){

 

this.name = "qudc";

return function(){return "Test"};

}

var a = Test();

var b = new Test();

 

上面两种情况,b都是一个对象,对象的构造方法是不是Test 要看有没有返回对象,如果返回对象(例子二中),那么b.constructor  为 Function 。例子一中,b.constructor  为 Test。

 

执行方法Test,返回值的类型由方法中的return语句来决定。

 

只要new一个函数(构造函数),如果构造函数没有返回值或者返回值不是对象,那么默认返回this对象,即本对象。如果返回其他对象,那么结果即为别的对象。调用new一个函数,会创建一个新的对象,在构造函数内部 ,即被调用的函数中, this 指向新创建的对象 Object。

例子二中 a 和 b没有功能性上的区别。可以认为相似,但不相同。

 

 


    
[3] java核心技术总结七-错误、日志、断言和调试
    来源: 互联网  发布时间: 2014-02-18
java核心技术总结七--异常、日志、断言和调试

第十一章

1、异常的分类:

     Throwable分为Error类和Exception类。Exception类分为IOException类和RuntimeException类。

      Error类层次结构描述了java运行时系统的内部错误和资源耗尽错误。

      由程序错误导致的异常属于RunntimeException。派生于RuntimeException类的异常包括情况有:错误的类型转换,数组访问越界,访问空指针。

       不是派生于RuntimeException类的异常包括:试图在文件尾部后面读取数据;试图打开一个错误格式的URL;试图根据给定的字符串查找class对象,而这个字符串表示的类并不存在;

        Java语言规范将派生于Error类或者RuntimeException类的所有异常称为未检查异常,所有其他的异常称为已检查异常。

       c++中有2个基本的异常类:

              runtime_error-------相当于java中的非RuntimeException类

              logic_error--------  相当于java中的RuntimeException类

     

2、声明已检查异常:

       必须使用throws子句声明:

          调用一个抛出已检查异常的方法;

          程序运行过程中发现错误,并且利用throw语句抛出一个已检查异常;

          程序出现错误;

          java虚拟机和运行时库出现的内部异常

    对于那些可能被别人使用的java方法,应该在方法的首部声明这个方法可能跑出的异常,但是不需要声明java的内部错误,即从Error继承的错误,同样也不应该声明从RuntimeException继承的那些未检查异常。

    总之,一个方法必须声明所有可能抛出的已检查异常,而未检查异常要么不可控制,要么就应该避免。

  

   如果在子类中覆盖了超类的一个方法,子类方法中声明的已检查异常不能超过超类方法中声明的异常范围。如果超类方法没有抛出任何已检查异常,子类也不能抛出任何已检查异常。

 

   java中的throws说明符和c++中的throw说明符类似。但是在C++中,throw说明符在运行时执行,而不是在编译时执行。另外在C++中如果没有给出throw说明,函数可能会抛出任何异常。在java中,没有throws说明符的方法将不能抛出任何已检查异常。

3、如何抛出异常

     EOFException异常描述的是"在输入过程中,遇到一个未预期的EOF后的信号"。

     对于一个已经存在的异常类,将其抛出的方式是:找到一个合适的异常类;创建这个类的对象;将对象抛出。

     在java中,只能抛出Throwable子类的对象,而在c++中,却可以抛出任何类型的值。

4、创建异常类

      java程序员自己创建的异常类都是继承于Exception的。

5、捕获异常

       如果某个异常发生的时候没有在任何地方进行捕获。那么程序就会终止执行。

        要想捕获一个异常,必须设置try/catch语句块

        通常,应该捕获那些知道如何处理的异常,而将那些不知道怎样处理的异常传递出去。如果想将异常传递出去,就必须在方法的首部添加一个throws说明符。

        如果编写一个覆盖超类的方法,而这个方法又没有抛出异常,那么这个方法就必须捕获方法代码中出现的每一个已检查异常。不允许在子类的throws说明符中出现超过超类方法所列出的异常类范围。

6、再次抛出异常与异常链

      在catch子句中可以抛出一个异常,这样做的目的是改变异常的类型

       异常的包装技术: Throwable e = se.getCause();   这样可以让用户抛出子系统的高级异常,而不会丢失原始异常的细节。

7、finally子句

      不管是否有异常被捕获,finally子句中的代码都被执行。

       将需要关闭资源的子句放在finally子句中是一个很好的选择。

       强烈建议独立使用try/catch和try/finally语句块,这样可以提高代码的清晰度

8、堆栈跟踪元素

       堆栈跟踪是一个方法调用过程的列表,它包含了程序执行过程中方法调用的特定位置。

       可以调用getStackTrace方法获得一个StackTraceElement对象的数组。StackTraceElement类含有能够获得文件名和当前执行的代码行号的方法,同时,还含有能够获得类名和方法名的方法。

9、使用异常机制的建议:

      异常处理不能代替简单的测试。使用异常的基本规则是:只在异常情况下使用异常机制;

      不要过分的细化异常;

      利用异常层次结构,不要只抛出RuntimeException异常,应该寻找更加适当的子类或创建自己的异常类;

      不要压制异常;

      在检测错误时,"苛刻"要比放任好。例如,当栈空时,Stack.pop是返回一个null,还是抛出一个异常?我们认为,在出错的地方抛出一个EmptyStackException异常要比在后面抛出一个NullPointerException异常更好。

       不要羞于传递异常。有的时候让高层次的方法通告用户发生了错误,或者放弃不成功的命令更加适宜。

     




    


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android实现弹出键盘的方法 iis7站长之家
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3