




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北美专业培训机构艾威中国培训学院AVTECH 简介 AVTECH总部设在美国NEW JERSEY,是北美排行第一的专业培训机构,设有4大分校,数十个培训点遍及北美、西欧和东亚;;2000年进入中国,以培育国际化的中高端信息人才为己任,专注于国际前沿的新技术研发与信息科技新兴行业的开辟教育。 AVTECH进入中国13年,属同行中历史最久。 AVTECH是国内最大的国际认证考试中心,提供上千门国际认证考试。 AVTECH的师资来自全球,在国内培训机构中独一无二的。 学院开设课程超越500门,学习培训内容涵盖IT技术及运用IT技术的医学、生物、财会、管理等相关行业一切高、中、低级知识和技艺。其中一些
2、技术课程来自于如下厂家:微软、IBM、Oracle、Cisco、SAS、ISTQB、SAP、 PMI、EXIN、IIBA、Open Group、APMG、ISACA、Vmware、EXIN、Peoplecart、EPI、BRMI、IAOP、ScrumAlliance等 艾威最新引荐: ITIL、ITIL Expert、CISSP、PMP、CISA、COBIT、Prince2、MSP、SCM、CSD、CBAP、TOGAF、CRISC、CGEIT、CISM、PGMP、PFMP、BRMP、CDCP、SGF、NPDP等认证培训.代码质量与评审内容质量管理的必要性质量管理实际看得见的改良总结互联网开发特
3、点市场竞争猛烈,需求变化快 开发周期长隐性本钱时间/迭代代码质量的影响本钱消费率质量管理实际代码质量质量角度:演化、维护高内聚、低耦合是有限制的目的群体:开发人员代码质量保证步骤代码评审继续集成对待变化的态度不只是拥抱变化,更要利用变化时间/迭代质量回绝退化重构的时机某周一早上,他的老板要求编写一个小程序,从键盘读入字符,然后输出到打印机上void Copy() int c;while (c=Rdkbd()!= EOF)wrtPrt(c);CopyCharWriterPrtCharReadKbd重构的时机boolean ptFlag=false;boolean punchFlag=false;
4、void copy()int c;while(c=(ptFlag?Rdpt():Rdkbd()!=EOF)punchFlag?wrtPunch():wrtPrt(c);几个月后,老板来找他,说有时希望Copy程序能从手写板读入信息几个月后,老板又来找他,有时希望Copy程序可以输出到U盘上ReadWriterCopyKbdPtCharCharPrtPuh质量管理平台SonarMavenJenkins插件体系构造看得见的度量目的代码反复代码单元测试复杂度圈复杂度度量代码分支情况If for while case catch throw return & | ?复杂性越高,测试本钱越高复杂度编码规
5、那么检查注释架构依赖构造矩阵DSM设计度量目的LCOM4Lack of cohesion of methods阐明类内部方法和变量之间的关系目的LCOM4=0/BadLCOM4=1 /高LCOM4=2/低SRP原那么RFCResponse For Class经过检查方法被调用的情况来反映一个类的复杂程度可以简单的了解为一个类所包含的方法多寡复杂度从类的内部描画,RFC从类的外部来描画RFC = M + R RFC = M + R M = number of methods in the class R = number of remote methods directly called by
6、methods of the class R = number of remote methods called, recursively through the entire call tree设计设计高级度量Sonar插件/display/SONAR/Sonar+Plugin+Library/插件改良效果改良架构-模块划分原那么采用Maven多Project构造,先根据职能分Project,再根据功能模块分PackageREP(重用发布等价原那么)重用的粒度就是发布的粒度CCP(共同封锁原那么)包中一切类对于同一类性质的变化应该是共同封锁的ADP(无环依赖原那么)在包的依赖关系图中不允许存
7、在环设计-变化应对之道视角描述关注点概念对象是一组责任软件要负责什么?规约对象是一组可以被其他对象或对象自己调用的方法(也称行为)怎么使用软件?实现对象是代码和数据,以及它们之间的计算交互软件怎样履行自己的责任?Martin Fowler的建议:对象的三个视角设计-变化应对之道在概念上层次上交流,在实现层次上执行,客户端无需准确知道详细操作细节,只需普通性概念性知道即可只需概念不变,客户端就可以与实现细节的变化隔分开来案例:下一节分享去哪里听设计-变化应对之道Programming to an Interface, not an Implementation客户对象和效力对象之间的职责分配运用
8、笼统类隐藏详细的实现创建和运用分别案例:评价、资料设计-变化应对之道Favor object composition over class inheritance但是设计方式中为什么承继无处不在?不要按照传统的方式来运用承继用新的行为来特化现有的详细对象案例:讲师分类讲师男女主题A男主题B男主题A女主题B女性别讲师主题女男主题A主题B设计-变化应对之道Designing for Change在设计中思索什么应该变化,并封装会发生变化的概念封装不只是隐藏数据,也可以是封装类型变化不只是算法和行为,可以是任何事情案例:委托评价讲师听众公司A公司B主办方usesusescreatecreate公司C
9、设计-变化应对之道Single Responsibility PrincipleOpen Closed PrincipleLiskov Substitution PrincipleInterface Segregation PrincipleDependency Inversion Principle注释能用代码来论述的,尽量不用注释好的注释应该解释意图,而不是解释操作什么也比不上放置良好的注释来得有用什么也不会比陈旧、提供错误信息的注释更有破坏性目录一 除了编码,开发还可以做什么 编码规范 单元测试 代码评审 静态检查 继续集成目录二 补充 动态检查 缺陷管理 性能测试 WEB前端分析 自动
10、化测试除了编码,开发还可以做什么 现状工程开发过程中,由于开发人员的阅历、代码风格各不一样,以及缺乏一致的规范和管理流程,往往导致整个工程的代码质量较差,难于维护,需求较大的测试投入和周期等问题。 措施 可以采用以下五个步骤来保证和提高整个工程的代码质量:一致编码规范、代码款式;静态代码分析static code review;单元测试;继续集成;代码评审和重构Review & Refactor。下面将针对每个步骤和其所运用的工具、方法进展详细描画。编码规范规范一致的编码能提高工程代码的可读性和可维护性,编码规范主要应包含以下几个方面:普通规那么和格式规范。例如代码缩进、程序块规范、每行最大代
11、码长度等。命名规那么。例如包名、类名、变量、方法、接口、参数等命名规范文档规范。例如类文件头声明、类注释、成员变量和方法注释等规范。编程规范。例如异常、并发、多线程等方面的处置方式。其他规范。例如日志格式、属性文件格式,前往值和音讯格式。用eclipse控制代码款式一一旦编码规范确定,就可以利用 Eclipse 来控制代码款式和格式。点击 Eclipse 的 Windows - Preference 菜单项,在翻开的Preferences 对话框的左侧栏中找到 Java 节点下的子项 Code Style,该项和它的子项允许您对 Java 代码的款式进展控制:用eclipse控制代码款式二可以
12、在 Eclipse 提供的默许代码格式配置的根底上建立自定义的格式。在 Formatter 面板中,点击 New,输入新的名字并选择一个默许的配置作为初始化格式,如下图:用eclipse控制代码款式三设置风格如下图:代码静态检查_CheckStyle CheckStyle用来检查代码格式、规范、风格。检查并强迫执行一致的代码风格;检查Javadoc;检查类、变量、方法的命名;检查类和方法的大小;检查编码错误,例如magic number;代码常见问题举例:代码中的magic-number和magic-string : String s = “0000 + Integer.toString(ch
13、, 16); 0000、16的含义,作者几周后就忘记了。CheckStyle的安装配置一 CheckStyle插件地址。 自动安装地址:/update 下载地址: /projects/eclipse-cs/develop 安装后出现:CheckStyle的安装配置二 配置项阐明: CheckStyle的安装配置三 CheckStyle检查结果: 其它工具 用于javascript静态检查的工具:Jslint -The JavaScript Code Quality Tool 代码静态检查_FindBugs FindBugs是一个java代码的静态代码分析工具,用来发现那些潜在的、常见的、很难被
14、发现的bug。与其他静态分析工具不同,FindBugs 不注重款式或者格式,它试图只寻觅真正的缺陷或者潜在的性能问题。如NullPoint空指针检查、没有合理管理资源等。 Findbugs插件地址。 自动安装地址:/eclipse 下载地址:/downloads.html?0?2Findbugs的运用 配置选项: Findbugs的运用运转,右键工程执行“Find Bugs操作: 检查结果: 单元测试单元测试单元测试是最小粒度的测试,以测试某个功能或代码块,普通由程序员来做。用例设计和评审 设计阶段需求详细思索要对哪些代码单元进展测试,被测单元之间的关系,测试战略,以及单元测试用例设计等,并最
15、终输出文档,用来指点详细的单元测试执行。 在用例设计完成之后,下一步的任务就是进展测试用例的评审。个人的了解和阅历一直是有限的,用例评审可以借集体之力,对用例设计进入查漏补缺,进一步保证测试用例的有效性。 单元测试_JUnitJUnitJUnit 是一个开发源代码的Java测试框架,用于编写和运转可反复的测试。它是用于单元测试框架体系xUnit的一个实例用于java言语。主要用于白盒测试,回归测试。下载地址 eclipse自带了JUnit,完好安装包的下载地址: /projects/junit/files/junit/4.0/ Junit中心构造JunitJUnit测试开发一下面举例描画怎样对
16、一个类编写单元测试代码,待测试的类:JUnit测试开发二JUnit3.8测试类:JUnit测试开发三JUnit4.0测试类:JUnit测试开发四setUp和tearDown方法:Junit断言一断言Assert方法:Junit断言二断言Assert方法:在Eclipse上执行Junit一 下面阐明怎样在eclipse上执行Junit单元测试添加一个需求测试的类Hello:在Eclipse上执行Junit二选中需求测试的类,右键点击,选择New-JUnit Test Case,如图:在Eclipse上执行Junit三新建测试类:在Eclipse上执行Junit四下一步选择要测试的方法:在Ecli
17、pse上执行Junit五完成HelloTest的Abs方法:在Eclipse上执行Junit六执行测试程序,右键,Run As-JUnit Test,就可以看到JUnit测试结果: 绿色表示测试经过,只需有1个测试未经过,就会显示红色并列出未经过测试的方法。单元测试_EasyMock模拟对象技术在实践工程中,开发人员本人的代码往往需求和其他的代码模块或系统进展交互,但在测试的过程中,这些需求被调用的真实对象经常很难被实例化,利用一个模拟对象来模拟我们的代码所依赖的真实对象,来协助完成测试,提高测试覆盖率。常见的模拟技术 模拟技术有很多种,如 jMock,EasyMock,Mockito,Pow
18、erMock 等等,下面用EasyMock举例阐明如何模拟对象。EasyMock一下载地址:/运用样例: 看一个用户验证的servlet: public class LoginServlet extends HttpServlet protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String username = request.getParameter(username); String password =
19、request.getParameter(password); EasyMock二 / 校验用户名和密码 if(admin.equals(username) & 123456.equals(password) ServletContext context = getServletContext(); RequestDispatcher dispatcher = context.getNamedDispatcher(dispatcher); dispatcher.forward(request, response); else throw new RuntimeException(Login f
20、ailed.); EasyMock三为测试doPost()方法,需求模拟HttpServletRequest等对象,以便脱离J2EE 容器来测试这个Servlet。建立TestCase,名为LoginServletTest: public class LoginServletTest extends TestCase 测试当用户名和口令验证失败的情形: public void testLoginFailed() throws Exception /创建mock对象 MockControl mc = MockControl.createControl(HttpServletRequest.cla
21、ss); HttpServletRequest request =(HttpServletRequest)mc.getMock();EasyMock四 /设置mock参数 request.getParameter(username); / 期望下面的测试将调用此 方法,参数为username mc.setReturnValue(admin, 1); / 期望前往值为admin,仅调用 1 次 request.getParameter(password); / 期望下面的测试将调用此方 法,参数为 password mc.setReturnValue(1234, 1); / 期望前往值为1234
22、,仅调用1 次 / 表示录制终了 mc.replay();EasyMock五 try servlet.doPost(request, null); fail(Not caught exception!); catch(RuntimeException re) assertEquals(Login failed., re.getMessage(); / verify: mc.verify();运转JUnit,测试经过!表示我们的Mock 对象正确任务了!单元测试_测试覆盖率分析为了衡量单元测试的质量和覆盖的范围,需求对单元测试的代码进展测试覆盖分析。 详细采用哪些目的可以根据工程的实践情况来定,
23、以防止因过高的目的添加了代码开发人员的任务量而影响了工程整体的进度。 。 业内比较常用的工具有: 1、 Cobertura,对应的eclipse插件: eCobertura。 2、 EclEmma是一款基于 EMMA 的 Eclipse 插件,方 便在 Eclipse IDE 中进展测试覆盖率分析。 插件下载地址:/ Eclipse测试覆盖率分析一下面说怎样在eclipse上执行测试覆盖率分析: 先安装插件EclEmma, 然后在测试用例写好后,可以在右键点击测试类,选择 Coverage As - JUnit Test.Eclipse测试覆盖率分析二单元测试执行完后,Coverage视图中会
24、显示所选择的测试的覆盖率。双击翻开某一详细的类后,可以看到高亮显示的覆盖分析结果,如图 所示。红色代表测试没有覆盖到该行,黄色表示部分覆盖,绿色的行表示该行在本次测试中被覆盖到。Eclipse测试覆盖率分析三在 Coverage 视图中可以经过点击鼠标右键将测试覆盖分析的结果导出成需求的格式,例如 HTML。单元测试-FIRST原那么Fast快速Independent独立Repeatable可反复Self-Validating自足验证Timely及时继续集成继续集成Continuous Integration是利用一系列的工具、方法和规那么,做到快速的构建开发代码,自动的测试化,来提高开发代码
25、的效率和质量 。继续集成的提出 假设工程开发的规模比较小,比如一个人的工程,假设它对外部 系统的依赖很小,那么软件集成不是问题,但是随着软件工程复杂度的添加即使添加一个人,就会对集成和确保软件组件可以在一 起任务提出了更多的要求-要早集成,常集成。早集成,频繁的集成 协助工程在早期发现工程风险和质量问题,假设到后期才发现这 些问题,处理问题代价很大,很有能够导致工程延期或者工程失败。继续集成 继续集成的常见做法是:继续集成框架+ 版本管理器+ 构建工具。 1、继续集成框架常用的有:Jenkins、Continuum、 CruiseControl等。 2、版本管理器常用的有:ClearCase、
26、Wincvs、SVN等。 3、构建工具常用的有:Ant、Maven。 后面主要以 SVN + Jenkins + Ant 实现方式举例阐明。 继续集成_版本管理器 SVN(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都运用svn作为代码版本管理软件。 效力端下载地址: /downloads/subversion 客户端下载地址:/downloads.html效力端安装运转后如图: 继续集成_自动构建 Ant 在构建过程方面非常优秀,它是一个基于义务和依赖的构建工具。下载地址: /bindownload.cgiMaven不单是构建工具,也是个工程管理
27、平台。下载地址: /download.html Maven与Ant对比,一些运用上的区别: 1、 Maven是基于中央仓库的编译,即把编译所需求的资源放在一个中央仓库里,如jar,tld等。当编译的时候,maven会自动在仓库中找到相应的包,而ant需求本人定义了。用maven编译的工程在发布的时候只需求发布源码,小得很,而反之,ant的发布那么要把一切的包一同发布。 2、 Maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。而ant都需求本人去写。 3、 Maven目前缺乏的地方就是没有象ant那样成熟的GUI界面。 继续集成_继
28、续集成框架有了自动构建后,我们就可以经过Jenkins每天定时用Ant脚本或Maven,加上JUnit、Cobertura/EMMA等的ANT 脚本调用,每一次的构建都可以把这些检查任务自动的进展一遍测试。然后生成测试报告进展查阅。JenkinsJenkins的前身可以说在安装和配置上最简单的CI产品。 Jenkins是基于java开发的,但它不仅限于构建基于Java的软件,还能构建.net、Python、Ruby等。 Jenkins提供了一组很明确和可扩展API的Jenkins组件。这批组成一个大的类库的Jenkins组件反过来又丰富了Jenkins的功能;它们都是开源的,而且它们可以直接经
29、过Jenkins的控制台来进展安装。 安装软件下载地址:/ Jenkins安装要点将jenkins.war拷贝到tomcat的webapps目录下;修正Tomcat-7.0.8confserver.xml文件,设置UTF-8编码:经过以下方式修正Jenkins_HOME的位置:在Jenkins的web.xml中找到Jenkins_HOME,默许value为空值,将其设置 为他希望的途径,然后重启。 Jenkins首页Jenkins管理界面Jenkins插件安装一Jenkins插件安装二Jenkins Job一Jenkins Job二Jenkins Job三Jenkins Job四Jenkins
30、 质量度量一Jenkins 质量度量二openEAP运用的实际一以下演示在实践的openEAP工程中,怎样自动化完成以上活动。演示的是一个web工程,目录构造如以下图所示: openEAP运用的实际二由于相关依赖资源都曾经在quality目录下了运转只依赖数据库环境,没有对数据库操作进展模拟,所以可以直接经过ant执行quality目录下的build.xml,脚本执行终了后,生成的报告在quality目录下,如以下图所示: openEAP运用的实际三也可以发布到Jenkins上执行构建: openEAP运用的实际四在Jenkins上查看报告: 代码评审代码评审Code Review是 Java
31、 工程开发过程中的一个重要步骤,代码评审可以协助发现静态代码分析过程中无法发现的一些问题,例如代码在逻辑上或者功能上能否存在错误,代码在执行效率和性能上能否有需求改良的地方等。代码评审还可以协助新进入工程组的成员快速学习和了解工程,促进阅历分享。代码评审主要包括两种方式,同级评审Peer Review和小组评审Group Review。同级评审主要指工程成员间的相互评审,小组评审是指经过召开评审会议,工程成员一同对工程代码进展评审。为了提高代码评审的有效性和效率,可以借助一些外部工具,比较常用的代码评审工具有 Jupiter 和 Code Striker。Jupiter 是一款开源的 Ecli
32、pse 插件,允许成员将评审意见定位到真实代码的详细行,由于代码评审的结果以 XML 文件的方式保管。Jupiter运用Eclipse插件下载地址:code.google/p/jupiter-eclipse-plugin/Jupiter里,代码评审(code review)分为4个流程 : 1.Configuration(配置):review发起者设置“Review ID,指定要 评审的代码,参与代码评审的人员,要讨论的问题等等。 2.Individual review(个人评审):每个人单独审查代码,把能够出现 问题的代码参与checklist。 3.Team review(团队评审):大家
33、在一同讨论之前检查出的问题代 码,并决议如何处置。 4.Rework:开发人员根据之前评审的结果,对代码进展修复。 详细操作请参考补充除了以上提到的在开发过程中我们可以采取的措施外,我们还可以经过其它手段从不同方面提升我们的系统质量。下面将简要引见动态检查、WEB前端分析、缺陷管理、自动化测试、性能测试的操作和相关工具。动态检查动态检查是指当运用在运转时,检查当前运用的对象、对象援用、内存、CPU运用情况、线程、线程运转情况阻塞、等待等,同时可以查找运用内存运用得热点,即:哪个对象占用的内存比较多;或者CPU热点,即:哪儿方法占用的较大得CPU资源。常用的检测工具有:JProfiler、JCo
34、nsole。 动态检查_JProfiler一Jprofiler功能强大,是款付费软件,官方网站:ej-technologies/ 。JProfiler监控比较耗费系统资源的,所以性能测试的普通情况下不要运转。 假设要用于相对大压力情况下,可以有选择的翻开监控项,不用一切都翻开。主要有两个,一个是内存监控,翻开的情况下可以查找内存分配热点。一个是CPU监控,翻开的情况下可以查看CPU运用热点 。动态检查_JProfiler二监控界面如以下图所示: 动态检查_JConsole一JConsole是一个基于JMX的GUI工具,用于监控正在运转的JVM 。JConsole是 jdk5.0自带的工具,所以
35、假设安装的的jdk5以上版本,那么就不用去另外安装。JConsole 毕竟是JDK 自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生什么问题。而且,提供了相对全面的系统监控功能。在待监控的JVM启动命令上添加以下参数,JConsole就可以远程衔接并监控了。 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=7080 其中7080是Jconsole衔接的端口
36、。 动态检查_JConsole二在本机运转jdkbinjconsole.exe,输入远端机器的IP、JMX端口就可以衔接上去了。如以下图所示: 动态检查_JConsole三在本机运转jdkbinjconsole.exe,输入远端机器的IP、JMX端口就可以衔接上去了。如以下图所示:动态检查_JMX一JMXJava Management Extensions,即Java管理扩展是一个为运用程序、设备、系统等植入管理功能的框架。通常运用JMX来监控系统的运转形状或管理系统的某些方面,比如清空缓存、重新加载配置文件等 。下面举例阐明怎样经过JMX监控本人的程序: 1、Hello是一个需求被管理的类:
37、 动态检查_JMX二2、要管理Hello那么必需创建一个相应Mbean: 阐明:包含在MBean中方法都将是可以被管理的。MBean起名是有规范的,就是原类名后加上MBean字样。 动态检查_JMX三3、创建Agent类注册效力MBean: 动态检查_JMX四4、运转后经过JConsole监控的情况如以下图: WEB前端分析一为什么关注前端性能分析? “系统呼应时间指运用系统从恳求发出开场到客户端接纳到一切数据所耗费的时间。这样,“系统呼应时间加上“呈现时间,才是完好的用户感遭到的呼应时间。 呼应时间 = 网络呼应时间 + 运用程序呼应时间 + 阅读器处置时间呼应时间 = N1+N2+N3+N
38、4+ (A1+A2+A3) + TbWEB前端分析二为什么关注前端性能分析? WEB前端分析三Yahoo!的Exceptional Performance团队为改善Web性能带来最正确实际。他们为此进展了一系列的实验、开发了各种工具、写了大量的文章和博客并在各种会议上参与讨论。最正确实际的中心就是旨在提高网站性能。 Excetional Performance团队总结出了一系列可以提高网站速度的方法。可以分为7大类34条。包括内容、效力器、 cookie、CSS、JavaScript、图片、挪动运用等七部分。 概略请参考附件: WEB前端分析四Yahoo!的Exceptional Performance团队为改善Web性能带来最正确实际。他们为此进展了一系列的实验、开发了各种工具、写了大量的文章和博客并在各种会议上参与讨论。最正确实际的中心就是旨在提高网站性能。 Excetional Performance团队总结出了一系列可以提高网站速度的方法。可以分为7大类34条。包括内容、效力器、 cookie、CSS、J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 整合医学背景下构建护生执业胜任力的教学模式研究
- 月饼订购合同(标准版)
- 湖南中南大学湘雅三医院招聘考试真题2024
- 四川绵阳安州区招聘乡镇事业单位工作人员考试真题2024
- 2025年高级车工(三级)技能认定理论考试题库(含答案)
- 2024年数控机床应用试题及答案
- 2025年初中英语新人教版九年级全一册《关系代词引导的定语从句》附答案
- 2025煤矿企业主要负责人安全生产知识和管理能力考试综合能力测试题及答案
- 十年(2016-2025)高考语文真题分类汇编(全国通.用)专题08 整本书阅读(全国通.用)(解析版)
- 2025年春季初中英语语法专项训练试卷及答案
- 2025至2030中国玻璃天线行业项目调研及市场前景预测评估报告
- 清晖园简介教学课件
- 政府采购招投标培训课件
- MT/T 1217-2024煤矿在用带式输送机滚筒轴超声检测方法
- 严肃财经纪律培训班课件
- 医院药学高级职称答辩
- 以生为本特色领航:上海市J小学校本课程管理策略深度剖析
- 山东省烟台市2024-2025学年高一下学期期末学业水平诊断英语试卷(含音频)
- 2024年新疆沙雅县卫生系统招聘考试(中医学专业知识)题含答案
- 学生防极端化教育
- 北京公房出售管理办法
评论
0/150
提交评论