Software Engineering Computer Science

8 个科学问题 · 计算机 Computer Science

本页目录

什么是重构?

What is refactoring?

重构是在不改变软件外部行为的前提下,调整内部结构以提升可读性与可维护性,如提取函数、重命名、消除重复。它依赖充分的单元测试来保证改动不破坏功能。
Refactoring improves a program's internal structure without changing its external behavior—extracting functions, renaming, removing duplication—to boost readability and maintainability. It relies on solid unit tests to ensure nothing breaks.
难度 专业 · 适合 高中(15-18) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:著录仅给书名,无版次与年份;同一书名常对应多个版次,不臆测具体版本。

马丁·福勒《重构》

Martin Fowler, Refactoring

#重构 #可维护性 #代码质量

持续集成(continuous integration)指的是什么实践?

What practice does continuous integration refer to?

持续集成要求开发者频繁(往往每天多次)把代码合并到主干,并自动触发构建与测试,以便尽早发现集成错误。该实践源自 Kent Beck 的极限编程,并由马丁·福勒在 ThoughtWorks 的同名文章中系统推广,可显著降低「集成地狱」风险并提升交付质量。它与持续交付/持续部署(Humble & Farley 2010)一起构成现代 DevOps 流水线的基础。
Continuous integration asks developers to merge code into the mainline frequently—often several times a day—and to trigger automated builds and tests so integration errors surface early. The practice grew out of Kent Beck's Extreme Programming and was systematized by Martin Fowler's article at ThoughtWorks, sharply reducing 'integration hell' and improving delivery quality. Together with continuous delivery/deployment (Humble & Farley, 2010) it forms the basis of modern DevOps pipelines.
难度 专业 · 适合 高中(15-18) CC BY 4.0 · 已核验 · Verified 2026-10-04
来源 · Source

Fowler《Continuous Integration》(martinfowler.com,2006 修订版);Beck《解析极限编程》1999;Humble & Farley《持续交付》2010

Fowler, 'Continuous Integration' (martinfowler.com, 2006 revision); Beck, Extreme Programming Explained (1999); Humble & Farley, Continuous Delivery (2010)

#持续集成 #自动化测试 #DevOps #福勒

什么是敏捷开发?

What is agile development?

敏捷开发强调小步快跑、持续交付与拥抱变化,通过短周期迭代和频繁反馈来应对需求不确定性。Scrum 和极限编程(XP)是常见落地框架。
Agile development emphasizes small, rapid steps, continuous delivery, and embracing change, using short iterative cycles and frequent feedback to handle uncertain requirements. Scrum and Extreme Programming (XP) are common frameworks.
难度 进阶 · 适合 初中(12-15) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:著录仅给书名,无版次与年份;同一书名常对应多个版次,不臆测具体版本。

敏捷联盟《敏捷宣言》

Agile Manifesto (Agile Alliance)

#敏捷 #迭代 #Scrum

瀑布模型(waterfall)与敏捷(agile)开发方法的主要区别是什么?

What is the main difference between the waterfall and agile development methods?

瀑布模型由罗伊斯在 1970 年描述,强调需求、设计、实现、测试按顺序线性推进,适合需求稳定的项目。敏捷以 2001 年《敏捷宣言》为代表,主张小步迭代、持续交付与拥抱变化,更适合需求易变的场景。二者权衡的是可预测性与灵活性,现代团队常混合使用。
The waterfall model, described by Royce in 1970, emphasizes sequential linear phases—requirements, design, implementation, testing—suiting projects with stable requirements. Agile, represented by the 2001 Agile Manifesto, favors small iterative steps, continuous delivery, and embracing change, fitting volatile requirements. They trade predictability against flexibility, and modern teams often blend them.
难度 进阶 · 适合 初中(12-15) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:著录含书名,但缺版次 / 出版社 / 年份中的一部分,需编辑补全后才能做独立比对。

Royce 1970《Managing the Development of Large Software Systems》(IEEE WESCON);《敏捷软件开发宣言》2001(agilemanifesto.org);ISO/IEC/IEEE 12207:2017

Royce (1970), 'Managing the Development of Large Software Systems', IEEE WESCON; Manifesto for Agile Software Development (2001), agilemanifesto.org; ISO/IEC/IEEE 12207:2017

#瀑布模型 #敏捷 #迭代 #敏捷宣言

什么是版本控制?

What is version control?

版本控制记录文件随时间的变化,让多人能并行修改并随时回到旧版本,常见工具有 Git。它像一份带时间戳的修改日记,避免改动互相覆盖。
Version control records how files change over time, letting many people edit in parallel and revert to old versions; common tools include Git. Like a timestamped change log, it prevents edits from overwriting each other.
难度 进阶 · 适合 初中(12-15) CC BY 4.0 · 已核验 · Verified 2026-08-23 · 2 条独立证据
来源 · Source

Robert C. Martin,《Clean Code》Prentice Hall,2008;中译《代码整洁之道》人民邮电出版社

R. C. Martin, Clean Code, Prentice Hall, 2008; Chinese ed.

#版本控制 #Git #协作

什么是持续集成?

What is continuous integration?

持续集成要求开发者频繁把代码合并到主干,并由自动化构建和测试立即验证,尽早发现集成错误。它减少了集成地狱,是 DevOps 实践的重要一环。
Continuous integration has developers frequently merge code into the main branch, immediately verified by automated builds and tests to catch integration errors early. It reduces integration hell and is a key part of DevOps practice.
难度 进阶 · 适合 初中(12-15) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:此条未指向带版次的可引用著作(通识性内容、机构文件或未展开的英文书名),本库不提供独立书目出处;如需精确引用,需由编辑补全具体篇目与版次。

马丁·福勒关于持续集成的论述

Martin Fowler on Continuous Integration

#持续集成 #自动化测试 #DevOps

为什么说『向落后的软件项目增加人手,反而会让它更落后』?

Why is it said that adding people to a late software project makes it later?

布鲁克斯在 1975 年的《人月神话》中提出:软件项目的工作量不等于人数乘以时间,新增成员需要时间上手且加剧了沟通成本,因此赶工期时加人往往适得其反。他同时指出软件本质的复杂性没有『银弹』可一举解决。这部著作是软件工程管理领域的经典。
In 'The Mythical Man-Month' (1975), Brooks argued that software effort is not simply people times time: new members need ramp-up time and add communication overhead, so adding staff to catch up often backfires. He also argued there is no single 'silver bullet' for software's essential complexity. The book is a classic of software engineering management.
难度 入门 · 适合 大众 CC BY 4.0 · 已核验 · Verified 2026-11-03
来源 · Source

Brooks 1975《人月神话》(Addison-Wesley);Brooks 1986《No Silver Bullet: Essence and Accidents of Software Engineering》(IFIP Congress)

Brooks (1975), The Mythical Man-Month, Addison-Wesley; Brooks (1986), 'No Silver Bullet: Essence and Accidents of Software Engineering', IFIP Congress

#人月神话 #布鲁克斯 #项目管理 #银弹

什么是软件工程?

What is software engineering?

软件工程是用系统化、可度量的方法开发、运行和维护软件的学科,关注质量、成本与进度。它涵盖需求分析、设计、编码、测试到运维的完整生命周期。
Software engineering is the disciplined, measurable approach to developing, running, and maintaining software, concerned with quality, cost, and schedule. It spans the full life cycle from requirements, design, coding, and testing to operations.
难度 入门 · 适合 大众 CC BY 4.0 · 已核验 · Verified 2026-11-03
来源 · Source

Brooks 1975《人月神话》(Addison-Wesley);Brooks 1986《No Silver Bullet: Essence and Accidents of Software Engineering》(IFIP Congress)

Brooks (1975), The Mythical Man-Month, Addison-Wesley; Brooks (1986), 'No Silver Bullet: Essence and Accidents of Software Engineering', IFIP Congress

#软件工程 #生命周期 #质量