软件工程

针对在系统开发生命周期中工作的专业人士,学者和学生的问答

11
与缩进项相反
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我们说我们缩进代码。我正在写一个字符串生成器,它可以添加/删除制表符以缩进代码。 样品: builder.Add("<ul>"); builder.Indent(); builder.Add("<li></li>"); builder.Dedent(); // <-- what should this be named. builder.Add("</ul>"); 我应该给该方法命名什么?

3
存储脚本中使用的密码
在开发过程中,很少有情况要求用户在自动进行操作的同时提供密码。站点部署只是常见情况之一。在OS X下创建dmg文件也需要密码。脚本中使用的大多数命令行实用程序都可以通过stdin接收密码。 每次运行脚本时提供密码都违反了“自动”的目的。将纯文本存储在脚本中会破坏“密码”的目的。向需要密码的脚本提供密码的最佳方法是什么?

3
有关单元测试的视频[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 我一直在寻找有关单元测试的好的演示文稿(首选幻灯片+音频或视频),但我似乎只找到书籍和博客文章。演示文稿不应超过50分钟,因为它将在一个棕色袋子的午餐中显示。我正在寻找一般概念或如何在.NET平台上进行操作。 您可以推荐适合该描述的演示文稿吗?

2
在同一目录中有一个Git回购和Mercury
不好解释我的问题, 我目前正在使用git在内部安装gitorious。我想开始从Fog Creek测试使用汞的FogBugz和窑炉。我希望至少在短时间内继续使用这两种解决方案进行开发。 有谁知道在同一目录中拥有git和一个软件仓库会带来的长期严重影响。还是有一种更好的方式来保持git和Mercural服务器同步。 香港专业教育学院尝试过它与测试回购,我还没有看到任何问题。 谢谢你的帮助。
11 git  mercurial 

5
向Web应用程序提供给客户的可交付成果是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我已经完成了一个Web应用程序,该应用程序基本上是用PHP开发的,它只是另一个常规的Web应用程序。通常,当我交付最终产品版本时,我只是将代码文档和体系结构信息移交给客户端。但是,对于这个特定项目,客户坚持要拥有有关该项目的完整的输入和输出数据。 所以我只是想知道...除了代码和体系结构文档之外,我还可以为客户提供哪些强制性技术文档和非技术文档? (也可以向客户介绍有关该项目的各种统计数据和数据,这样他才能真正知道所涉及的工作量以及产品的实际效果如何。)

4
与图形设计师合作或将设计工作分包给承包商会更好吗?
对于图形设计,我一无所知,但我精通编程。如果您是缺乏视觉设计技能的程序员,那么最适合您的工作-与图形设计师配对或进行所有编程,然后完成特定工作? 我已经完成了一些工作,但是我并不完全满意,因为我看到太多的影响来自设计。我想发生这种情况是因为我必须明确说明承包商的要求,而承包商的创造力受到了我创建的架构的限制。 感觉有了合作伙伴可以促进更大的合作,但是我读了很多关于合作伙伴的警告的企业家书籍。

6
选择索引变量的类型
我们大多数时候使用Integer类型表示索引变量。但是在某些情况下,我们不得不选择 std::vector<int> vec; .... for(int i = 0; i < vec.size(); ++i) .... 这将导致编译器发出混合使用有符号/无符号变量的警告。如果将index变量设置为for( size_t i = 0; i < vec.size(); i++ ),(或unsigned int)它将解决问题。 当更加具体地使用Windows类型时,大多数Windows API都在处理DWORD(类型定义为unsigned long)。 因此,当我使用类似的迭代时,将再次引起相同的警告。现在,如果我将其重写为 DWORD dwCount; .... for(DWORD i = 0; i < dwCount; ++i) .... 我觉得这有点奇怪。感知可能是问题。 我同意我们应该使用相同类型的索引变量,以避免索引变量可能发生范围问题。例如,如果我们使用 _int64 i64Count; // .... for(_int64 i = 0; …
11 c++ 

9
关于编写有意义的简历而不是流行语的想法?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 我即将开始重新设计我的简历。我所坚持的是,我应该在写下所有内容和写得太少之间划清界限。 我既不希望我的简历充斥着流行语,也不希望我似乎不知道我所知道的任何事情。 请牢记这些想法,并想写出有意义的简历,我该怎么做。读过我的简历的人应该能够分辨出我是黑客文化人士还是仅仅是出于计算机教育目的而去计算机学校的人。 编辑:鉴于答案主要集中在流行词上,我想指出的是,我也在寻找使我的简历更有意义的东西-我希望读者能够分辨出黑客与他人之间的区别去了电脑学校。

10
单行声明和良好实践
我最近养成了一个习惯,我知道你们中的许多人可能会不习惯这种习惯,但是最终,这有助于我关注全局代码结构,而不是单个(有时)重复方法的结构:将数字分组单行中的语句,如下所示: textBox1.Text = "Something!"; textBox2.Text = "Another thing!"; textBox3.Text = "Yet another thing!"; 相对于 textBox1.Text = "Something!"; textBox2.Text = "Another thing!"; textBox3.Text = "Yet another thing!"; 在重复性任务中,我通常这样做,以保持整体代码“美观”并帮助我轻松地跟踪程序结构,但是我承认这可能不是一个好习惯。我实际上经常使用它,所以我想知道您对此有何想法。另外,您是否认为任何必须维护我的代码的人都对这种方法有疑问?

7
“正则表达式”,“ regex”或“ regexp”的标准缩写是什么?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我想知道什么是更简短地调用正则表达式的标准方法。我见过正则表达式和正则表达式。 Google说regex命中率几乎是regexp的2倍,但这取决于我搜索它的方式(当我在单词“ regex”变成“ regex正则表达式”之后添加“ regular expression”时,结果是不一样的)。在stackexchange上有regex标签。:) 有什么更合适的方法来缩短它? 也许没关系。:)但感谢您的回答。

4
将Web应用程序直接从SVN部署到生产环境是否可以接受
题 是否有合理的理由不使用SVN进行生产部署,或者这仅仅是个人喜好而没有针对SVN的真实案例? 背景 我的工作场所具有在SVN中标记发布的文化,然后使用(svn co或svn switch直接包括)将这些发布直接部署到各种Web服务器。 我个人对此有一个问题,因为我相信如果不使用构建和部署脚本,某种形式或自动部署,就会丢失集成环境设置,因为它们没有文档说明。然而,不仅如此,我有一种直觉,认为这样做可能存在隐藏的危险,而这种危险尚未被抬起头来。 我已经向负责将代码部署到我们的各种环境(阶段,预生产,生产)等中的运营人员提出了自己的担忧。他们的观点几乎是到目前为止效果很好,没有理由进行更改。 编辑: 我的意思是关于构建和部署: 例如,如果开发人员需要为特定环境添加web.config设置。Web.config通常不保存在svn中,因此无需任何形式的自动构建脚本即可手动更新这些文件。因此,如果它们丢失或OPS忘记为发行版在web.config中添加字段,则可能会遇到问题。 可以使用XMLPoke自动生成适合于特定环境的web.config的构建脚本非常理想,因为您有一个可版本化的脚本,该脚本记录了每个环境所需的所有更改。 当前的构建和部署方法 对于有问题的项目,开发人员可以手动构建发行版,而其他项目则可以使用NANT或MSBuild将构建步骤自动化。 对于大多数项目,数据库迁移是通过DB脚本,迁移脚本(Migrator.NET)或CMS程序包进行的。 CI通常是由Team City在每次签入的基础上完成的,我们有一个代码审查过程,所有票证都在分支机构中完成,然后在进入中继线之前进行同行审查,以确认其有效性和正确性/质量(运作良好)。 但是,实际的代码部署几乎总是通过SVN来进行,或者是通过签出带标记的版本,或更通常是通过SVN Switch来进行。在我们使用存储库作为部署过程的一部分时,这让我感到奇怪。 配置通常不会经常更改,配置文件中唯一会发生的事情就是特定于环境的信息。其他所有内容都在数据库中。 不要误会我的意思,这行之有效。但是,我想尝试推动自动化的构建和部署。我已经在Rails和Capistrano以及用于Cygwin,Nant和SSH的个人项目中使用了它。 更重要的是,我需要非常具体的有效参数来使我的同事转变为使用自动生成和部署。 还是没有真正的有效论据反对使用SVN专门部署到生产环境?

7
您如何衡量自己的每日供款?
我最近完成了帕特里克·伦乔尼(Patrick Lencioni)的《悲惨工作的三个信号》,他的核心思想之一就是您需要某种形式的测量方法。 我有一个非常标准的内部开发人员工作,我在其中开发新工具,并对我以前编写的工具进行一些支持/错误修复。 纯粹出于个人满足的原因,您每天会衡量哪些内容?(这不是给管理人员的报告,也不是要博弈的东西,只是可以帮助我标记进度的东西)。 目标是找到不仅能衡量生产力,而且能衡量您的工作水平的事物(因此,客户服务人员除了记录来电数量外,还可以记录积极的互动)。 我的目的是每天测量两件事:打开/关闭支持请求以及源代码管理的签入次数。 我知道这是否可以解决,但这再次不是关于管理的问题,而是关于作为程序员/软件开发人员的个人开发的问题。

2
动态语言运行时和C#4.0之间有什么关系?
假设我想在当今存在的.NET平台上创建动态语言编译器/解释器,或者是Scheme解释器。使用动态语言运行时(DLR)还是使用C#4.0来实现我的语言的动态功能,我会更好吗?还是我都需要? 我知道在这方面还有其他工作要做,尤其是IronScheme和IronPython。这两种语言都使用DLR。我相信IronPython使用的是最新版本的DLR(大约有一年的历史了),而IronScheme使用的是早期版本的DLR的早期,经过大量修改的分支。但是创建这些编译器时C#4.0不可用。 我已经看过Rob Conery与Massive的合作,它使用C#4.0的动态功能。这是非常令人印象深刻的。但是C#是否能够承受动态语言编译器/解释器的全部工作?DLR中是否存在C#中缺少的功能,或者DLR本质上已集成到C#4.0中?如果仅使用C#4.0,我会缺少DLR的任何重要功能吗?

1
Git和Mercurial如何同时发展?
Git和Mercurial遵循相似的模型,并且具有相似的术语。Mercurial的最初发布仅在Git发布之后的12天。在最初的开发中,这两个项目如何最终如此相似?有人知道历史吗?
11 git  mercurial  dvcs 

2
使用持续的构建结果作为绩效评估指标的一部分?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我的老板计划使用我们持续构建的指标(每次提交都要构建并运行测试)作为我们绩效评估的一部分(在“质量”指标中)。对我来说,这似乎是个坏主意,但我想知道是否有人研究过此方法或以前曾尝试过此方法。 我的想法是,由于担心测试将失败,因此我们的开发人员将不会像他们本来那样进行尽可能多的测试。我觉得他正在将一种有价值的开发人员工具变成一支棍子,以击败开发人员。 明显的反论点是,这将促使人们在做出承诺之前更加谨慎,从而提高他们的素质。 我在这里基地吗?请抛开我们是否应该进行绩效评估的问题,该问题已在其他地方得到解答。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.