软件工程

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

5
在基于JVM的语言中是否有明确的领导者?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 这些项目的当前状态如何,有一个(或两个)以明确的领导者身份出现吗? 为了证明我提出这个问题的动机,请回想几年。原型和jQuery与MooTools等其他竞争者并肩生存。快速发展到今天,人们普遍认为jQuery是最好的通用JavaScript库。 在过去的几年中,这些基于JVM的语言发生了类似的事情吗?某些语言是否陷入失修和遗弃?从我阅读的内容来看,Scala似乎已经做好了成为备受喜爱的准备,但是话又说回来,我所阅读的几乎所有内容都已经有好几年了。 我做了更多的研究-我的想法是通过使用Google趋势来查看多年来的搜索量。似乎Jython和JRuby的兴趣相对较小,而Groovy的音量在减小,而Scala的音量是恒定的(在最坏的情况下)或在微小的(最好)在增加。这是准确的评估吗? 是的,我指的是JVM上的非Java语言,例如Jython,JRuby,Groovy,Scala,Clojure等。
9 java  scala  jvm  groovy  jruby 

11
在告知现任雇主他活跃于就业市场后,开发商会产生什么影响?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 9年前关闭。 许多开发人员,尤其是那些在同一家公司呆了多年的开发人员,尤其是那些在人力资源状况非常健康的大型公司工作的开发人员,可能会一次或两次陷入这种情况。随着时间的流逝,您会学到更多,学到新技能并承担更多责任,甚至可能会开始领导开发团队,并开始自问:我怎么会拥有相同的头衔并获得相同的报酬(调整后) (通货膨胀)) 您问您的主管,您需要做多少工作才能晋升到下一职称,而主管也认为时间已经过去了。但是,在晋升后,您的薪水仍然受到“人力资源上限”的约束,并且您意识到自己的收入比您认为的技能市场价值低10-15k。 您有两张仍可以玩的卡:1)寻找一份新工作。在很多地方进行面试,然后离开您目前的公司,或者看看他们是否能与薪水相称(个人而言,如果公司要求您在给您公允价值之前找到另一份工作,我不会留下来的当时的公司)或2)告诉您当前的雇主您的简历已发布,并且您正在积极寻找职位。您可能对管理层,您的工作,与您一起工作的人感到满意,但薪水相差1万美元很重要,而要获得真正的市场价值,唯一的方法就是将您自己推向市场。因此,这是他们找到工作并离开之前与您的薪水匹配的机会。 扑克牌2可能会产生什么影响?是否明智地公开告诉您的当前公司您打算离开当前职位?

5
使用C ++ / Java开发用于商业目的的软件
我打算开发一个程序,以后打算出售。我试图确定一种语言进行编码,并且将范围缩小到C ++或Java。 我已经通过了GNU GCC和OpenJDK的GPL v2和v3许可证(是的,我可以理解一些法律知识,但显然不是全部)。但是有一点每个人都不清楚(这应该是IMO回答的第一件事):如果我使用C ++ / Java开发程序并使用GCC编译器或OpenJDK的编译器进行编译,我是否可以出售它而不必将我的程序也置于GPL下? 据我所知,我拥有为程序分配任何许可证的全部权利,但是有一个陷阱:在许可证中说,我不应该链接到GPL下的任何库。如果是这样,我将不得不在GPL下发布我的程序。 现在,我不知道C ++ / Java中的什么是库,因此,如果我使用C ++中的常规内容(iostream,list,map等)或作为标准JDK一部分的常规Java类/接口6发行版(字符串,列表,映射等),这是否构成“链接到库”?
9 licensing  gpl 

4
您如何管理要保留在本地的较小更改?
我正在考虑将一个14年历史的cvs存储库(完整的历史记录)迁移到mercurial。我想我已经把所有的技术转换工作都弄下来了,但是我仍然对在高效工作方面有一些疑问。 我在单个开发人员的cvs沙箱(包括我自己的沙箱)中看到的很多东西是本地未提交的更改,这些更改尚未准备好推送到主线。我的理解是,这是一件坏事。我对hg进行的大多数实验都表明,未提交的更改是一件坏事。不能与它们合并就足够了。因此,我想知道的是其他每天使用Mercury编码的人如何处理它。更新存储库时,如何处理不完整的代码更改?您如何处理尚未(尚未)与其他开发人员共享的本地更改?

3
如何向专注于瀑布的人们展示敏捷项目[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我们的团队被要求在项目计划中代表我们的开发工作。没有人会对我们的工作感到不满意,也没有人质疑我们的交付能力,我们只是参加了IT牛呼唤项目计划。麻烦的是我们是一个敏捷的团队,还没有考虑正式的项目计划来考虑我们的工作。 虽然我们对下一步的工作有一个大致的了解,但在计划迭代之前,我们尚不确定100%。到目前为止,我们的团队基本上是在真空中运作的,不需要向外部各方介绍我们的方法或指标。我们遵循极限编程中所倡导的大多数实践。 我们每季度举行一次计划会议,以大致了解我们将要开展的季度的故事。就是说,我们的故事记录在3x5卡上,并且仅在将要使用它们的迭代开始时进行估算。经过估算,我们将故事记录在Team Foundation Sever中。在迭代过程中,我们将代码附加到故事并在完成后将故事标记为完成。根据这些数据,我们可以生成燃尽图和速度图。最重要的是,我们知道一次迭代的平均速度,可以防止我们咬下去而无法咀嚼。 我不想改变我们的开发方式,而是希望在报告中介绍我们的开发活动,只有熟悉瀑布的人才能理解。在肯特·麦当劳(Kent McDonald)的《敏捷项目计划的外观》中,他很好地阐明了敏捷项目计划和瀑布式项目计划之间的区别。他指定了消耗性子弹的区别: 敏捷项目计划基于功能 敏捷项目计划被组织为迭代 敏捷项目计划的详细程度取决于时间范围 团队拥有一个敏捷项目计划 能够解释差异很棒,但是如何最好地呈现数据呢?

4
代码许可问题。客户偷了我的代码
我做了一个项目的客户不小心遇到了该项目的源代码。愚蠢的我知道。安排是他们将获得产品,而不是源代码。但是,很明显,他们现在正试图快速入门,并使用源代码为其他客户创建自己的产品。 现在,我不想花很多钱,但是我正在考虑将代码作为一个开源项目发布,以供任何人使用,以便他们的“独特”卖点(我的代码)没有意义。 你们建议我做/发布有关该问题的*代码吗?

6
我应该尝试在组装中练习问题吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我当时在看欧拉计划问题48: 系列1 1 + 2 2 + 3 3 + ... + 10 10 = 10405071317。 找到该系列的最后十位数字,1 1 + 2 2 + 3 3 + ... + 1000 1000。 在Python中,我可以单行执行此操作: sum((x**x for x in xrange(1,1001)) 但是,这相当于100条装配线,这确实是一个挑战。 我是否应该在组装中解决这些难题,以便对底层编程有所了解并了解计算机的实际工作原理?

4
您放在影响分析文档上的内容是什么?
因此,您要修复错误,然后遇到一个可能会影响软件产品其他模块的错误。您的数据不足以支持您对修复效果的主张,因此您被要求创建影响分析文档。 是否有明确的流程来做到这一点? 需要哪些关键信息? 该文档有任何已知的格式/模板吗?

3
考虑日期和时间时-过去或将来的今天是午夜吗?
这一直是我的难题-我意识到,严格来说,这并不是编程或软件开发中的问题,但在我们领域似乎是一个合理的常见问题。 例如,如果我将到期日期时间设置为2011-04-08 00:00:00-并且鉴于我当前的本地时间是8日的10:45-我已经过期了吗?还是我还有半天左右的时间? 一天中午夜“属于”哪个标准? 还是我应该从英国军方那里取一片叶子,说一天结束于23:59:59,开始于00:00:01,并且没有午夜?

5
我们怎么知道偏爱合成而不是泛泛总是正确的选择?
无论对象是否物理存在,我们都可以选择以不同方式对其进行建模。在许多情况下,我们可以随意使用归纳或组合。但是,GoF的“偏爱组合胜于一般化”原则指导我们使用组合。因此,例如,当我们对一条线进行建模时,我们将创建一个包含两个类型为Point(组成)的PointA和PointB成员的类,而不是扩展Point(广义化)。这只是我们可以随意选择合成或继承进行建模的简化示例,尽管对象通常要复杂得多。 我们怎么知道这是正确的选择?至少很重要,因为如果做错了,可能要进行大量的重构?

3
在软件中,“嵌入式”一词意味着什么?
因此,我一直在寻求将我的知识扩展到嵌入式和较低级别的硬件编程中,但是,每次寻找“嵌入式”工作时,它总是高级的东西。对我而言,这没有任何意义。 那么“嵌入式”到底需要什么呢?当我想到嵌入式系统时,我想到的是较低级别的微控制器编程等。如果嵌入式不是此的适当标题,那么我应该搜索什么?

4
用户可以将LGPL许可为GPL或GPL许可为AGPL吗?
LGPL(为方便讨论,我们将假设所有版本均为3),它是GPL的限制较少的版本,同样的,AGPL是GPL的限制较高的版本,但是可以使用LGPL代码,添加(或不添加),并将其重新许可为GPL或AGPL;GPL代码可以修改为AGPL并获得许可吗?
9 licensing  gpl  lgpl 

6
在PHP中是否需要框架?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 在PHP中确实需要框架吗? 使用一个的优缺点是什么?
9 php  frameworks 

2
这个学习领域是什么?
假设我正在设计一个鞋经销商的网站。他们有不同的品牌和种类的鞋子,当然,他们想要一个很好的搜索功能。 因此,鞋子可以具有不同的属性。它们可以具有专有属性,例如大小,宽度,性别和儿童/成人。或者它们可以具有非排他性,例如颜色(鞋子上可能有两种或更多种颜色)。有些类别可能与某些其他类别发生冲突,例如“礼服”和“休闲”(鞋子既不能是正装鞋又不能是运动鞋(在此示例中,忽略“舒适”的正装鞋)),而它们尚不冲突。其他,例如“礼服”和“靴子”(鞋子可以是正装靴子)。专有属性易于建模,但是潜在冲突的属性又如何呢?这对于集合论会是个问题吗? 通常将这种应用计算机科学称为什么?数据建模还是更具体的东西?我想了解更抽象的哲学原理,例如排他性和非排他性,并了解如何在代码,数据结构和数据库模式中实现这些原理。 我正在谈论的一个很好的例子是修改后的预排序树遍历算法。这是制作嵌套层次分类系统的好方法。因此,您遇到了一个现实的组织问题:类别,然后有了一个可以对该问题进行建模的数据结构。 我在哪里可以了解有关此类物品的更多信息?

3
为C ++程序创建Web端
我想知道什么是创建与服务器上的C ++程序接口的Web端的最佳方法。起初,我只是以为仅使用Web服务器端语言(如shell_exec()PHP)中的Shell执行,但是我想知道是否存在“更好”的方式。也许是更原生的东西,或者由于某种原因这是不好的做法吗?

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.