软件开发最佳实践 手机软件测试最佳实践
发布日期:2021-04-25摘要:软件开发为什么需要最佳实践呢? 与许多古老的职业相比,人们从事软件开发的时间并不长。但就在这短短的几十年中,人们根据软件行业的经验,并从其他行业(如建筑业、制造业)借鉴,总结了不少最佳实践。特别是最近...
软件开发为什么需要最佳实践呢?
与许多古老的职业相比,人们从事软件开发的时间并不长。
但就在这短短的几十年中,人们根据软件行业的经验,并从其他行业(如建筑业、制造业)借鉴,总结了不少最佳实践。
特别是最近十年以来,这些最佳实践似乎分裂成为两大阵营:重型方法学和敏捷方法学。
这两大阵营的拥护者都不少,并且领军人物都是德高望重。
软件项目的目标 在讨论这些最佳实践之前,先明确一下软件项目的目标,因为所有的最佳实践都是为实现项目目标服务的。
Alistai Cockun在他的著作《敏捷软件开发》中指出,软件项目的目标有两个,取得当前项目的成功并进行积累,为后续的项目做准备。
关于第一个目标,一个比较麻烦的事情就是如何定义成功。
一般来说,大家认为在预算范围和进度计划之内交付客户想要的产品,项目就算是成功的。
但这样的理解似乎过于初级。
Dewys Lasdon曾指出,我们的工作不是用限定的费用及时地给客户他想要的东西,而是给他从未梦想过的东西当他得到的时候,他意识到这就是他一直想要的东西。
&dquo如果你结合iPod取得的成功来看,就能很好地理解这段话的含义了。
[考试大提供] 关于第二个目标,主要有两层意思。
第一层意思是锻炼队伍。
在项目中,团队共同工作一段时间,进行了许多战术配合&dquo方面的练习,大家相互之间更有默契。
对于个人来说,通过具体的开发实践,学习了不少新知识,也积累了经验。
第二层意思是为后续项目提供积累。
后续项目可能是运维项目,也可能是产品的下一个版本,或其他项目。
不少项目开发工作对于后续项目有重要意义,如项目文档和回归测试套件等。
如果你曾接手过别人的项目,或者只是花时间读过别人的程序,就一定会对此深有感触。
顺便提一下,项目的第二个目标不一定是次要目标。
对于某些领航项目或概念验证项目来说,为后续项目提供经验积累就是项目的首要目标,也是项目成功的衡量标准之一。
RUP 根据IBM的官方说法,Rational Unified Pocess是一个灵活的软件开发流程平台。
借助它可配置的构架,RUP 使你能够只选择和部署项目的每个阶段需要的流程构件。
RUP 平台以业界公认的软件工程最佳经验为核心,它包含配置 RUP 以满足项目特定需求的工具。
从这种意义上说,RUP 是一个软件开发方法框架,以及一个公认的、灵活的、实用的流程平台,用于成功的软件项目。
RUP提出了六项最佳实践: 1. 迭代的开发软件 2. 需求管理 3. 使用基于构件的体系结构 4. 可视化软件建模 5. 验证软件质量 6. 控制软件变更 让我们来看看其中的需求管理。
一项调查(James Matin An Infomation Systems Manifesto,Pentice Hall,1984)表明56%的缺陷其实是在软件需求阶段被引入的。
而这其中的50%是由于需求文档编写有问题、不明确、不清晰、不正确导致的。
剩下的50%是由于需求的遗漏导致的。
更重要的是,许多需求缺陷直到很晚才被发现。
而缺陷发现得越晚,修复缺陷所需的代价就越大。
所以在传统软件工程方法中,非常重视需求工作,甚至称这部分工作为需求工程。
需求工程的主要出发点是减少需求中的缺陷,从而降低项目风险。
Joel Spolsky 指出:“首先,没有编写规格说明是软件项目中你所承担的一个最大的、不必要的风险。
”特别是在外包项目中,绝大多数客户都不会同意没有需求规格说明书的开发方式,因为这样做风险太大,实在不值得冒这个险。
需求工程的另一项重要使命是发现机会,即发现创新的产品,为用户提供更多价值的机会。
如果你草率对待需求工作,将丧失这种机会。
例如,在我们进行业务流程分析时,应该适当关注企业流程再造,业务管理创新,实现更多客户价值的机会。
只有这样,才能可能做出Dewys Lasdon所说的“客户从未梦想过的东西”。
需求工程中的一个重要方面是管理需求的可追踪性,即从项目的总体目标追踪到业务用例,再追踪到实现用例和具体需求,最后追踪到实现和测试的能力。
如果忽视了这个方面,项目的开发可能会偏离方向。
我们在写需求时,常常会用到一些文档模板,如需求规格说明书模板和用例模板。
某些模板非常全面、细致,以至于某些部分我们初看上去甚至觉得可以忽略掉。
但是当你打算忽略掉模板中的这些部分时,千万要小心,因为模板的主要作用之一就是降低遗漏需求的风险。
有一次一名项目经理打算在开发团队中引入用例模板,查找了一些资料之后,写了一个草稿让我复查一下。
我发现他的模板中没有用例的使用频度,问他时他说,觉得没有太大作用就裁掉了。
于是我告诉他,用例使用的频度对系统的设计和实现有很大的影响,这属于系统的非功能需求,不能省略。
如果你想进一步了解需求工程,推荐你读一下《掌握需求过程》这本书。
XP 在各种敏捷方法学中,极限编程(XP)是知名度最高的一种。
XP的主要实践有:Sit Togethe(坐在一起)、Whole Team(完整团队)、Infomative Wokspace(信息化工作场所)、 Enegized Wok(精力充沛地工作)、Pai Pogamming(结对编程)、Stoies(用户故事)、Weekly Cycle(每周开发循环)、Quately Cycle(每季度开发循环)、Slack(松弛计划)、Ten-Minute ...
Struts开发的最佳实践是什么?
本文向您讲解了如何使用灵活的 Stuts 框架调节 We 应用程序开发。
在这里,本文作者向您展示了一些最佳实践,您可以遵循这些实践来优化这个成熟的开源框架。
此外,您还可以学习使用一些十分有价值的标准 Stuts 组件,包括 ActionFom、Action 类和 ActionEos. Stuts:简介 Stuts 是一种开源框架,可用来构建 We 应用程序,它基于流行的 Model-View-Contolle (MVC2) 设计范型。
该框架构建在一些标准的技术之上,比如 Java Sevlets、JavaBeans、 ResouceBundles 和 XML,并且可提供灵活和可扩展的组件。
Stuts 以 ActionSevlet 的形式实现了 Contolle 层,并建议使用 JSP 标记库构建 View 层。
Stuts 通过 Action 类提供了围绕 Model 层的包装器。
图 1 展示了基于 Model-View-Contolle 设计的 Stuts 框架。
图 1. Stuts 和 MVC Stuts 组件概览 首先,我们在最佳实践上下文中解释 Stuts 组件,以及它们在 We 应用程序开发中所起的作用。
Action 应用程序的每个 Action 都会扩展 Stuts 的 og.apache.stuts.action.Action 类。
这些 Action 类为应用程序的 Model 层提供了一个接口,充当围绕业务逻辑的包装器。
每个 Action 类都必须向 pefom() 方法提供其特定于用例的实现。
pefom() 方法经常返回类型 ActionFowad 的一个值。
ActionFom 应用程序的 ActionFom 扩展了 Stuts 的 og.apache.stuts.action.ActionFom 类。
ActionFom 是一些封装和验证请求参数的简单 JavaBean.要验证请求数据,ActionFom 的 validate() 方法必须给出一个特定于该情况的实现。
ActionFom 作为运载工具,向 Action 类提供请求数据。
一个 JSP 对象与各自的 ActionFom 对象相结合,构成应用程序的 View 层。
在该层,几乎 JSP 对象的每个表单字段都映射到相应的 ActionFom 的属性。
JSP 定制标记库 JSP 定制标记库是用标记表示的一组行为的集合。
这是 JSP Specification 1.1 的一个强大特性;它将其他应用程序层的表示区别了开来。
这些库易于使用,而且可以以一种类似 XML 的方式来读取。
只要尽量少地在其中使用 Java sciptlet,就可以轻松维护 JSP 组件。
Stuts 提供的 JSP 标记包括 HTML、逻辑和 ean 标记。
ActionEos 可以使用 ActionEo 来支持异常处理。
ActionEo 捕捉应用程序异常,并将其传送给 View 层。
每个异常都是一个 ActionEo 实例的集合。
ActionEo 可以封装错误消息,而 Pesentation 层中的 可以呈现 ActionEo 集合内的所有错误消息。
最佳实践 1. 跨多个 ActionFom 重用数据 熟悉了 Stuts 组件之后,就可以继续学习如何充分利用这一框架。
首先,Stuts 建议将每个 JSP 对象与一个 ActionFom 相关联,后者可以封装屏幕上显示的数据。
可以通过 ActionFom 内的附加方法来访问 JSP 对象内的表单数据。
清单 1 展示了 ActionFom 标记在 View 层中的传统方法。
清单 1. 使用 ActionFom 这个 ActionFom 被称为 “BP1AFom”,它包括属性 atti1 及其 gette 和 sette 方法。
在配置文件 stuts-config.xml 中,行为 “p1” 通过 name 属性映射到 p1AFom.这有助于在 JSP 中显示数据。
1、要实现这一最佳实践,Stuts 建议您进行以下两个操作: 2、创建一个 JavaBean(BP1BFom),且其属性是 BP1AFom 属性的子集,还要创建这些属性的 gette 和 sette 方法。
通过将这个 ean 与 BP1AFom 关联,用 ean BP1BFom 的属性替代 BP1AFom 中的属性。
现在就可以通过 BP1BFom 访问 BP1AFom 中的属性子集了。
清单 2 展示了访问的方式。
清单 2. 访问 JSP 中的表单属性 要点 这种实践的主要优势是可用于多个 ActionFom 访问一个属性集。
在遵循这一最佳实践的同时,需要记住以下几点: ● Stuts 实现 标记。
● 当代码 指向 stuts-ean.tld 时, 标记开始在 JSP 组件内工作。
● 由 ActionFom 扩展而来的 BP1AFom 验证框架必须验证 BP1BFom 的数据。
当在应用程序中创建 Action 类时,不需要直接扩展 og.apache.stuts.action.Action,可以通过扩展 og.apache.stuts.action.Action 创建一个 Action 类(IntemediateAction),用于处理应用程序中的常见事务。
所有其他的 Action 类都扩展 IntemediateAction 类。
最佳实践 2. 使用 Action 类处理请求 通常,在使用这个 Stuts 框架时,对于 JSP 组件请求应用程序执行的每个动作,应用程序都必须扩展 Stuts 的 og.apache.stuts.action.Action 以创建 Action 类。
在处理请求时,单个的 Action 类与应用程序的 Model 层连接。
要实现这一最佳实践,Stuts 建议您遵循以下步骤: 1、通过扩展 og.apache.stuts.action.Action 创建一个 Action 类,比如 BP2Action. 2 、通过扩展 BP2Action 在 We 应用程序中创建所有其他 Action 类。
3、在 BP2Action 类中创建一个方法 pefomTask(),就像在公共抽象类 ActionFowad pefomTask(ActionMapping mapping, ActionFom fom, HttpSevletRequest equest, HttpSevletResponse esponse) thows IOException, SevletException 中一样。
4、在 BP2Action 类中向应用程序添加一个或多个泛型方法,比如 seveSideValidate()。
考虑以下因素后决定方法的访问修饰符: ● 如果所有 Action 类都必须实现此方法,则让其为抽象。
● 如果某些 Action 类提供...
急求计算机软件开发专业的社会实践报告,2000字以上!
(一)自我分析: 1)优点:喜欢挑战和让自己兴奋的事情,聪慧,许多事情都比较拿手,致力于自己才干和能力的增长;有很强的创造性和主动性,绝大多数是事业型的。
好奇心强,喜欢新鲜事物,关注事物的意义和发展的可能性。
通常把灵感看得比什么都重要,多才多艺,适应性强且知识渊博,很善于处理挑战性的问题。
善于快速抓住事物的本质,喜欢从新的角度和独到的方式思考问题,对问题经常有自己独到的见解。
机警而坦率,有杰出的分析能力,并且是优秀的策略家。
不喜欢条条框框的限制和因循守旧的工作方式,习惯便捷的问题解决方法。
喜欢自由的生活并善于发现其中的乐趣和变化;认为“计划赶不上变化”,并以实际行动证明大部分规定和规律都是有弹性,可伸缩的,通常会超出被认可和期望的限度。
善于理解,而非判断他人。
乐观,善于鼓舞他人,能用自己的热情感染他人。
2)可能的盲点: 总是充满热情的寻找新鲜事物,但行事缺少稳定的计划和流程,经常依靠临场发挥,可能因为忽视必要的准备工作,而草率地身陷其中。
注意力容易游移,对目标的韧性和坚持性不够,缺乏足够的耐心,有时不能贯彻始终。
一旦主要问题被解决了,就会转移到下一个目标,而不能坚持将一件事完完整整地结束。
非常注重创造力和革新,容易忽略简单、常规的方法和一些重要的细节,不愿遵守规则和计划。
建议多关注解决问题的常规方法。
通常同时展开多项任务与活动,不愿丢掉任何一种可能性,致力于寻找新的变化,可能使别人的计划和时间安排受到影响。
要好好考虑一下自己的行动给他人带来的影响,这有助使自己变得更可靠。
有天生的直觉和预知能力,会误认为知道了别人的想法。
应当认真倾听他人,避免表现的不耐烦。
(2).职业兴趣探索报告:职业兴趣前三项是企业型(8.0)、艺术型(8.0)、社会型(6.1)。
1)有明显的艺术趣味,喜欢和人打交道,对经营性活动很感兴趣,乐于施展自己的口才,喜欢去影响别人,喜欢创造性活动,性格外向、冒险、抱负心强。
2)在工作中,有热情,喜欢在工作自由展开想象,做事倾向于追求完美,但也追求新意;胆大,爱冒险,希望有独立主见;对过程和目的都有兴趣,但对教条的制度并不感兴趣,喜欢随机应变,往往根据环境变化而变化个人的策略,具有强烈的内心感受性和言语表达能力;喜欢出入公共社交场所,喜欢说服和劝导他人的活动。
3)适应的工作环境:有创造性、要求人际交往、有自由度而不过分约束的环境,能发挥个人智慧和支配性。
(3)学习风格探索报告:行动型(9.2,非常强烈的偏好)1)能从新体验、新问题、新机遇中学习,在以下活动中学习效果最佳:全神贯注于短时间、当时当地的活动,诸如商业游戏、竞赛型的团队任务等练习;能引人注目,如主持会议,主导讨论或进行陈述;思维活跃,适合尝试一下。
2)在以下活动中学习效果最差:听讲座,阅读,分析及解释杂乱的数据等。
(4)技能报告(最擅长的五项技能):人员管理 积极倾听 监测 时间管理 口头表达(5)职业价值观:崇尚独立,注重关系1)期望在工作中能够独立工作、独立决策,而且能够表现出自己的创新,发挥自己的责任感、自主性。
而且能够以自我监督的形式使自己的工作按照自己的计划顺利进行。
2)期望工作的内容是能够给予别人帮助,并希望在这样的职位上同事之间关系融洽,大家都有积极的道德观念和社会服务意识。
自我分析小结:一个人应该学会取长补短。
精力旺盛、热情、性情平和、乐于助人、忠诚、责任心强、富于创新精神、工作和生活井然有序是我的优点;可也存在着有时过于理想话,据个人价值观进行判断,容易做出草率的决定和对于批评比较脆弱的缺点。
我会不断的去完善自己(二)职业分析:人才素质测评报告给出了很多建议,结合相关书籍、老师和这次测评报告,我对影响职业选择的外部环境进行了系统分析,分析结果成为了职业定位考。
1.家庭环境分析:爸爸、妈妈和我组成了这三口之家,爷爷和奶奶不和我们一起住。
父亲是一名油漆工人,月收入2000;母亲是一个小型机械厂的普通工人,月收入1000。
家里并不富裕,父母一直给我以关爱和生活上的支持与鼓励!爸妈对我的期望就是将来能够像大鹏鸟一样展翅飞翔!2、学校环境分析:1)学校:我现在就读的南京交通职业技术学院是一所专科层次普通高等学校,隶属于江苏省交通厅。
学院设有汽车工程系、公路工程系、管理工程系、信息工程系、机电工程系、建筑工程系、人文社科系和体育部等“七系一部”。
学院实行毕业生“双证书”制,学院国家职业技能鉴定所为“江苏省职业技能鉴定基地”,连续多年被评为省优秀鉴定所。
多年来为交通行业及其相关产业培养了两万多名高素质高技能人才。
2005年,学院以优秀等次通过了教育部高职高专院校人才培养工作水平评估。
将在江苏省交通厅的正确领导努力把学院建设成国家示范性高职院校。
2)专业:我学习的专业是电子信息工程技术,该专业的目标是培养具有一定的电子信息技术基础理论知识;熟练掌握电子信息工程技术的应用、电子信息设备的维护技术和电子信息产品研发技术...
elementUI,iview开发后台管理系统的最佳实践是怎样的
那怕你理论学得再好:其实他们终止的原因很简单,就是嫌麻烦,那好吧,告诉你,这点麻烦都能对你造成影响,但毕竟天才太少了!对于开发,看到一定时候发现,实在进行不下去了,所以,先摆正心态吧!如果有十个人,可能有5个人以上会是上面这种情况,并且定期的去回顾7对于读项目源代码来说!我要读好久啊!算了,或者自己设计一个类似的、如果有条件和原作者请教项目思路4、从最先启动的Activity开始。
心态问题解决了,你才能学到,还是看小Demo吧,点了几下鼠标,然后就没有下文了,又开始重新梳理自己的思路。
这样是很浪费时间的,其实对于读一个项目,最好按照以下步骤进行(个人意见,仅供参考):1、使用这个应用或者游戏、最重要的一点:我认为要自己动手写,那怕是重新写一遍这个项目。
首先,第一个障碍:看到项目,不是学习1+1,你会遇到问题,你就会解决问题,这样、遇到不懂的代码。
解决法,首先找搜索引擎(一般都能解决),动手写一下、花精力,再或者只写这个项目中的一部分。
为什么要自己动手呢?大家都知道coder这个东西、还要有面对困难的准备。
想一步登天,有可能,除非你是天才,干脆就胡乱的一通看,可能对大多数人是件困难的事,一定要总结下来,你就必须花时间,那也是毫无意义的!所以,不动手,直到熟悉它的使用流程和功能2、根据自己的体验分析代码实现(整体)3。
还不行就可以请教他人了6、对新学到的知识点,分析其想法,就已经放弃,也有解决苦难的信心,所以这样,他们也就只是把这个项目导入到eclipse中,弄懂每个Activity功能如何实现以及它的布局实现5,你要学到它,其实你的开发之路也可以终止了。
任何东西,那就是读代码的技巧了,很多人拿到一个项目不知道怎么入手,那要具备怎样的心态呢?那就是:有面对困难的准备:这么多的代码,我要怎么读啊 展开
DB2存储过程开发最佳实践是什么?
本文以 DB2 开发人员的角度介绍了在 DB2 存储过程开发中需要注意的事项和技巧。
新手如果能够按照本文介绍的最佳实践来开发存储过程,可以避免一些常见的错误,从而编写出高效的程序。
本文从初始化参数、游标、异常处理、临时表的使用以及如何寻找并 eind 非法存储过程等常见问题进行了着重讨论,并且给出了示例代码。
在存储过程中,开发人员能够声明和设置 SQL 变量、实现流程控制、处理异常、能够对数据进行插入、更新或者删除。
同时,客户应用(这里指调用存储过程的应用程序,它可以是 JDBC 的调用,也可以是 ODBC 和 CLI 等)和存储过程之间可以传递参数,并且从存储过程中返回结果集。
其中,使用 SQL 编写的 DB2 存储过程是在开发中常见的一种存储过程。
本文主要讨论此类存储过程。
最佳实践 1:在创建存储过程语句中提供必要的参数 创建存储过程语句(CREATE PROCEDURE)可以包含很多参数,虽然从语法角度讲它们不是必须的,但是在创建存储过程时提供它们可以提高执行效率。
下面是一些常用的参数 容许 SQL (allowed-SQL) 容许 SQL (allowed-SQL)子句的值指定了存储过程是否会使用 SQL 语句,如果使用,其类型如何。
它的可能值如下所示: NO SQL: 表示存储过程不能够执行任何 SQL 语句。
CONTAINS SQL: 表示存储过程可以执行 SQL 语句,但不会读取 SQL 数据,也不会修改 SQL 数据。
READS SQL DATA: 表示在存储过程中包含不会修改 SQL 数据的 SQL 语句。
也就是说该储存过程只从数据库中读取数据。
MODIFIES SQL DATA: 表示存储过程可以执行任何 SQL 语句。
即可以对数据库中的数据进行增加、删除和修改。
如果没有明确声明 allowed-SQL,其默认值是 MODIFIES SQL DATA。
不同类型的存储过程执行的效率是不同的,其中 NO SQL 效率最好,MODIFIES SQL DATA 最差。
如果存储过程只是读取数据,但是因为没有声明 allowed-SQL 使其被当作对数据进行修改的存储过程来执行,这显然会降低程序的执行效率。
因此创建存储过程时,应当明确声明其 allowed-SQL。
返回结果集个数(DYNAMIC RESULT SETS n) 存储过程能够返回 0 个或者多个结果集。
为了从存储过程中返回结果集,需要执行如下步骤: 在 CREATE PROCEDURE 语句的 DYNAMIC RESULT SETS 子句中声明存储过程将要返回的结果集的数量(nume-of-esult-sets)。
如果这里声明的返回结果集的数量小于存储过程中实际返回的结果集数量,在执行该存储过程的时候,DB2 会返回一个警告。
使用 WITH RETURN 子句,在存储过程体中声明游标。
为结果集打开游标。
当存储过程返回的时候,保持游标打开。
在创建存储过程时指定返回结果集的个数可以帮助程序员验证存储过程是否返回了所期待数量的结果集,提高了程序的完整性。
最佳实践 2:对输入参数进行必要的的检查和预处理 无论使用哪种编程语言,对输入参数的判断都是必须的。
正确的参数验证是保证程序良好运行的前提。
同样的,在 DB2 中对输入参数的验证和处理也是很重要的。
正确的验证和预处理操作包括: 如果输入参数错误,存储过程应返回一个明确的值告诉客户应用,然后客户应用可以根据返回的值进行处理,或者向存储过程提交新的参数,或者去调用其他的程序。
根据业务逻辑,对输入参数作一定的预处理,如大小写的转换,NULL 与空字符串或 0 的转换等。
在 DB2 储存过程开发中,如需要遇到对空(NULL)进行初始化,我们可以使用 COALESCE 函数。
COALESCE函数返回第一个非空的参数,
软件开发工作人员必读的书籍有哪些,特别是刚刚工作的
管理---协调管理》 《质量、软件。
十分难读,但的确是经典,中文版、管理---系统思维》 《程序员开发心理学》 《走查,这个书写的不错 《高质量软件项目管理》(清华大学出版社) 这本书将项目管理。
质量保证人员应该看得一本书, 《borland传奇》 想了解PC软件的发展,对于一般的开发人员,可以本科很难理解它的重要性。
项目组长必读的东西,软件工程都写到一起了,对于希望做项目管理和质量保证的人员很有用、审查、技术复审手册》 还有其他的书,其中许多深刻的道理对质量保证人员也有很大的帮助 《计算机程序设计艺术》1,2,3卷 不知道怎么评价这三本书,让我们知道我们是怎么回事 《IT项目管理》(机械出版社) PMP的管理书籍,建议5年以上工作经验的同志们好好读一下,一套,使开发人员改进自己代码的教科书 《过河卒》 开发人员如何确定自己的技术人生,一本不错的书,你可以了解你以后的技术生涯需要那些技能和技巧,为以后的发展打下一个基础最后一个系列 软件与系统思想家温伯格精粹译丛(清华大学出版社) 《质量、软件, 《重构》 《重构手册》 这两本书是中国电力出版社的书,读这个书最好,使你对软件的发展和计算机系统有一个更深刻的了解。
《Java夜未眠》 不仅仅是讲java语言的数。
也是在网上下载吧 《软件工程:实践者的研究方法》 最经典的软件工程书籍,如何从开发人员变为项目管理人员,开发人员的床头必备的书籍,就是一个字---牛 《软件工艺》 告诉你什么是软件开发,什么是程序员《人月神化》 《人件》 《软件发布方法》 《数据仓库项目管理》 《自适应软件开发》 《功能点分析》 《创建软件工程文化》 《OO项目开发》(这本书的名字记得不是很清楚) 这些书是一个系列丛书。
清华大学出版社出的 《微软项目:求生法则》 《微软研发:致胜策略》 《微软团队:成功秘诀》 原来关于微软开发的系列丛书。
很难买到了,但网上的下载很多 《微软的秘密》 很不错的一本书,很多大学拿它做教材,但我只有这几本《代码大全I,英文已经到今天为止版了...
-
给我们打电话
7*24小时服务热线:1399999999
全国客服热线:400-0000-000 -
百度地图
福建省三明市 -
给我们发邮件
E-mail:[email protected]
在线沟通