软件工程

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


3
当一家公司请求未经授权使用开放源代码的权限时该怎么办?
我有一个目前在MIT许可下的开源项目。我收到某公司的要求,将我的代码用于他们的商业项目,而无需注明出处或归属。 老实说,当我发布代码时,我的唯一意图只是帮助同一个程序员,而我并没有真正考虑自己是否值得赞扬。选择许可证只是我在Codeplex上设置项目所要做的步骤之一。 一方面,我感到很荣幸和欣赏,他们实际上不愿问,另一方面,我觉得如果我允许他们免费这样做,只会破坏开源精神。 我或其他代码所有者可以做或要求公司做些公平交易的典型事情是什么?我应该允许吗? 我正在考虑要求该公司写一份正式的意向书,我将反对它只是为了使其更加正式。并要求捐款给我选择的项目/慈善机构或在我的愿望清单上购买一些东西作为补偿(不是很昂贵)。那会太多吗?


7
如何说服队友遵守一些基本规则
我的队友有问题。长话短说:我们是三个学生,正在为一个竞赛项目工作。该项目包含2个独立的应用程序:一个用于Windows(由我开发)和一个用于Android(由我的同事负责开发)。我们的代码库永远不会相交,应用程序将通过第三方工具进行通信。 问题如下:去年我在一家大公司实习时,我有一些在团队中工作的经验,并且我尝试为我们的代码强制执行一些编码标准。我还设置了一个git仓库/ wiki /协作软件,可以用来推送代码/编写想法,文档协议等,但是看来我是唯一使用这些工具的人。 我试图告诉他们,从长远来看,编写高质量的代码和记录每一个步骤将使我们受益,但他们似乎没有看到它的好处。我也在考虑添加一些集成测试,但是据我所见,只要他们不使用当前的工具来简化他们的生活,我想我就无法说服他们集成测试的用处。 同行的大多数代码都驻留在他们的计算机上,他们没有共享通用的代码库,而且正如我发现的那样,他们通过使用usb棒开会和共享代码来集成自己的代码。 我的问题是:我对此事是否太苛刻?我是否执行一些荒谬的规则?请记住,这是一个小项目,要求非常明确(我创建了说明应用程序应该做什么的文档),三个熟练的开发人员可以在3-4天之内完成此操作,因此他们可能看不到书写质量的额外复杂性代码,只要它们当前的方法可以正常工作。 有什么方法可以向他们展示使用git等记录代码的好处吗?

7
哪个更好:将HTML包含在PHP代码之内还是之外?
看这个: <?php echo "Hello World"; ?> <br /> <?php echo "Welcome"; ?> 现在看一下: <?php echo "Hello World"; echo "<br />"; echo "Welcome"; ?> (至少从性能的角度来看)以上示例中的哪一个更好? 我知道这些示例很简单,但是我想从一开始就遵循良好的实践习惯,因此,当我有越来越多的台词时,它们不会影响性能或其他负面影响。

2
为什么XMLHttpRequest似乎没有遵循命名约定?
我最近一直在使用JavaScript 处理XMLHttpRequest对象,我不禁注意到该名称的大小写毫无意义。为什么“ XML”全部大写而“ Http”没有大写?他们都是缩写! 当然,将名称用作以下内容之一会更有意义: XmlHttpRequest (PascalCase,JavaScript中类名的最佳实践) xmlHttpRequest (camelCase,虽然不是类,但也很常见) XMLHTTPRequest (大写字母缩写,很少在编程中使用?) 我敢肯定一定有一些原因,并且我不愿意认为它现在是一成不变的,因为当时没有人对此提出质疑。我没有意识到另一种命名约定吗?


6
SVN合并有何困难?
可能重复: 我是Subversion极客,为什么我应该考虑或不考虑Mercurial或Git或任何其他DVCS? 有时,您会听到有人说分布式版本控制(Git,HG)本质上比集中版本控制(如SVN)更好,因为在SVN中合并非常困难且痛苦。关键是,我在合并SVN方面从未遇到任何麻烦,并且由于您只听说过DVCS倡导者而非实际SVN用户提出的主张,所以这往往使我想起电视上那些令人讨厌的广告,试图让演员冒充假装您已经拥有并且可以正常工作的东西很难卖给您,从而卖给您不需要的东西。 总是提出的用例是重新合并一个分支,这再次使我想起那些稻草人产品广告;如果您知道自己在做什么,则一开始就不应该(也永远不必)重新合并分支。(当然,当您从根本上做错和愚蠢的事情时,这很难做到!) 因此,撇开荒谬的稻草人用例,SVN合并中有什么比DVCS系统中合并更难?
28 git  svn  mercurial  dvcs  merging 

6
通用存储库有真正的优势吗?
正在阅读一些有关为新应用创建通用存储库的优势的文章(示例)。这个主意看起来不错,因为它让我可以使用同一个存储库同时为几种不同的实体类型做几件事: IRepository repo = new EfRepository(); // Would normally pass through IOC into constructor var c1 = new Country() { Name = "United States", CountryCode = "US" }; var c2 = new Country() { Name = "Canada", CountryCode = "CA" }; var c3 = new Country() { Name = "Mexico", …

15
在两种编程语言之间来回切换是否明智?[关闭]
近两年来我一直在写很多PHP。现在,我正在进行.NET(主要是C#)开发。但是,有时我回去做一些php。 我的主要问题是,继续执行此操作是否明智?还是应该继续使用C#开发?从长远来看,这会对我造成伤害吗(请注意,我的主要目标不是成为所有交易的杰克)还是这样做是一种好习惯?

10
简单vs复杂(但性能高效)解决方案-选择哪个,何时选择?
我已经编程了两年,经常发现自己陷入了困境。 有两种解决方案- 一种是简单的,即简单的方法,易于理解和维护。它涉及一些冗余,一些额外的工作(额外的IO,额外的处理),因此不是最佳的解决方案。 但是其他方法则使用复杂的方法,难以实现,通常涉及许多模块之间的交互,是一种高效的解决方案。 当我没有硬性能SLA甚至简单的解决方案都可以满足性能SLA时,我应该争取哪种解决方案?我对开发人员的简单解决方案不屑一顾。 如果您的性能SLA可以通过一个简单的解决方案来解决,那么提出最佳最佳复杂解决方案是一种好习惯吗?

6
重构转换语句,转换语句是否真正有用?
我正在阅读本文,并想知道,是否通过用Dictionary或Factory替换它们来摆脱所有switch语句,以便我的项目中根本没有switch语句。 有些东西加起来还不够。 问题是,switch语句是否有任何实际用途,还是我们继续将其替换为字典或工厂方法(当然,在使用工厂方法时,将最少使用switch语句来创建对象)使用工厂...但仅此而已)。

6
HTML / CSS命名约定(语法)的实际注意事项
问题: 和值中的语法有哪些实际考虑因素?classid 请注意,我并不是在询问语义,即所使用的实际单词,例如本博客文章中所述。命名约定方面已经有很多资源,事实上,这使我对各种语法位的实用信息的搜索变得困难,这些信息包括:-大写,插补(特别是破折号)的使用,要使用或避免的特定字符等。 总结一下我问这个问题的原因: 命名限制的ID和类不自然导致任何约定 命名约定在语义方面的资源丰富,使得对句法方面的考虑变得模糊 我在此找不到任何权威来源 SE程序员对此主题还没有任何问题:) 我考虑过使用的一些约定: UpperCamelCase,主要是作为服务器端编码的交叉习惯 lowerCamelCase,与JavaScript命名约定保持一致 css-style-classes,这与css属性的命名一致(但在选择Ctrl + Shift + ArrowKey文本时可能会令人讨厌) with_under_scores,我个人没见过用过 alllowercase,简单易记,但长名称很难读 UPPERCASEFTW,这是惹恼其他程序员的好方法(可能与选项4结合使用以提高可读性) 可能我也遗漏了一些重要的选项或组合。那么:命名约定有哪些考虑因素,它们导致了哪些约定?


9
我应该记录一些小错误吗?
我在两个人的代码库中。而且,尽管我知道在程序数量大于或等于1的情况下,错误跟踪器很有用,但我并不太相信记录错误,更改和修补程序是微不足道的时间。当我发现一个简单的错误时,便会理解,修复并通过一些测试运行它。然后我意识到我需要对其进行记录。 从理论上讲,我知道应该在发现错误和修复错误之间的某个地方进行错误日志记录,但是如果修复它的速度比记录日志更快,那么这似乎很麻烦。在大型代码商店中,老板会注意谁在做什么,很高兴知道其他人在做什么。 我发现自己描述了已经解决的问题,然后立即将其关闭。我怀疑有人还会再看这个封闭的bug。是时候减少加工脂肪了吗?

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.