软件工程

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

7
概括代码内部的变量用法
我想知道对变量进行泛化是否是一个好习惯(使用单个变量存储所有值)。 考虑简单的例子 Strings querycre,queryins,queryup,querydel; querycre = 'Create table XYZ ...'; execute querycre ; queryins = 'Insert into XYZ ...'; execute queryins ; queryup = 'Update XYZ set ...'; execute queryup; querydel = 'Delete from XYZ ...'; execute querydel ; 和 Strings query; query= 'Create table XYZ ... '; execute query …

4
生产软件中通用情况下的指数时间算法有多普遍?
我知道一般应避免使用指数时间算法,但有时是必须的。一个例子是旅行推销员。这种算法在生产软件中有多普遍?这些情况通常是必要的还是紧急工作的结果?我知道可以通过良好的启发式解决许多问题。那些不能做的人通常会做什么?
11 algorithms 

7
在高周转环境中,更多评论更好吗?
我今天在和一位同事聊天。我们为两个不同的项目编写代码。就我而言,我是唯一编写我的代码的人。在她的案例中,有多个人在同一代码库上工作,包括相当定期(每8-12个月之间)来来去去的合作学生。她说自己对自己的言论持开放态度,无处不在。她的理由是,它可以帮助她记住事情在哪里以及做什么,因为许多代码不是她编写的,并且可以由她以外的其他人更改。同时,我尝试将代码中的注释减至最少,仅将它们放在不明显的解决方法或错误的地方。但是,我对代码整体有了更好的了解,并且可以对其进行更直接的控制。 我的意见是,评论应尽量少,代码应能说明大多数情况,但她的推理也是有道理的。她的推理有什么缺陷吗?它可能会使代码混乱,但是如果有很多人在中短期内对其进行操作,则最终可能会很有帮助。

3
Scala或Clojure函数式编程最佳实践
我做了很多自学编码,并获得了并行编程模型的经验:Actor,软件事务存储,数据流。 当我尝试将这些体系结构应用于现实生活时(应用于高负载Web应用程序中),任何模型都不支持数据的持久性和持久性。现实生活中的任务需要最后保存数据。这意味着我仍然必须使用数据库并捕获数据库同步,可能的可伸缩性瓶颈等。 有谁知道使用Akka Actor 或软件事务存储器并最终实现持久性的体系结构(src或文本,图表或蓝图)的好例子吗? 欢迎在现实生活中使用事务处理内存,参与者,数据流,元组空间的任何好的示例/想法。

6
我在自欺欺人吗?业务分析师过渡到程序员
当前工作:担任四大公司的首席业务分析师,领导一个开发人员和测试人员团队从事大规模的重新平台项目(4个在岸开发人员,4个离岸开发人员,几个在岸/离岸测试人员)。在其他较小规模的项目中也以类似的方式工作。 我的职责范围:​​收集/制定需求,创建功能规范,设计UI(基本上映射系统的所有前端方面),与开发人员紧密合作以沟通/阐明需求并在遇到障碍时提出解决方案,编写测试用例(并进行大部分测试),与高级管理层和关键利益相关者合作,管理Beta测试人员,创建用户指南和领导培训课程,并提供关键技术支持。 我还使用VBA在Excel中编写了很多宏(我的几个宏现在在整个公司中都使用过,因此大约有1000个人在使用它们)并每天使用SQL,这两个程序都在SQL压缩文件上依靠我们的SQL Server数据和我创建的任何Access数据库。开发人员觉得我在这个职位上非常出色,因为我对编程,固有的系统限制,数据库的结构等了解很多,因此当我们遇到问题时,我更容易交流想法并提出建议。 我真正感兴趣的是开发软件。我在VBA中进行了大量编程,并且一直想学习C#(开发团队使用C#-我出于个人原因偶尔查看代码,但没有使用它的实践经验)。我不仅对业务流程感兴趣,而且对技术方面也很感兴趣,所以传统的BA角色并没有真正激发我对我想做的事情的胃口。现在,我有一些经理为我提供的小项目,并且我正在寻找新的方法来完成它们(例如构建自定义Access应用程序),所以这里到处都有一些让我保持兴趣的地方。 我的问题是:我想做的是为自由职业者的小型企业创建自定义Excel或Access应用程序(以单人商店形式工作;根据项目的复杂性,可能偶尔有承包商)。显然,这是在我有一份日间工作的时候开始做兼职,但最终变成了一个全职工作。我是不是想让我从BA /兼职VBA程序员转到专职从事自由职业(我将开始只是在VBA中编写自定义Excel / Access应用程序)?还是在某人获得多年全职编程经验之前通常不会尝试这种类型的事情?在小型企业(甚至中型企业)中甚至还有这类应用程序的市场吗?

2
是否有任何有关TDD的科学研究都使用产品的总拥有成本作为衡量标准?
当我阅读Batic D的Dogsa T的先前工作的摘要时。测试驱动开发的有效性:工业案例研究。软件质量杂志。2011; 19(4):643-661。令我惊讶的是,围绕TDD进行的许多研究中使用的度量都是基于诸如代码行,缺陷和开发时间所基于的。 是否有研究集中在使用TDD与传统开发或最后测试相比开发的产品的总拥有成本上? 我对购置和运营总成本特别感兴趣。

5
将24小时降水值列表转换为按小时总计
假设我有一个按小时排列的降水值列表,每个值都显示按日期排序的前24小时内发生了多少降雨。例如: { '2012-05-24 12:00': 0.5, // .5" of rain from 5/23 12:00 - 5/24 11:59 '2012-05-24 11:00': 0.6, // .6" of rain from 5/23 11:00 - 5/24 10:59 '2012-05-24 10:00': 0.6, // .6" of rain from 5/23 10:00 - 5/24 09:59 ... '2012-05-23 10:00': 0 } 是否有一项策略/算法来确定每个小时中的降雨量?我似乎无法解决这个问题。我知道这并不像对差异求和那样简单。 数据集的可视化 P(N) [.....======================] …

5
与Java相比,Ceylon有哪些优势?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 在网上寻找最近​​和功能强大的编程语言时,我遇到了锡兰。我进入了ceylon-lang.org,上面写着: 锡兰深受Java影响。您会看到,我们是Java的粉丝,但是我们知道它的局限性。Ceylon保留了Java的最佳功能,但改进了我们认为烦人,乏味,令人沮丧,难以理解或容易出错的东西。 与Java相比,Ceylon有哪些优势?


3
如何仅向少数几个用户推出功能
我想问的一个很好的例子是Facebook的新时间轴功能。开始时,只有少数几个被允许访问时间轴。随着该功能在其工作方式上变得更加牢固并修复了一些错误,允许其他用户访问该功能。后来,允许大量用户访问该功能,现在,所有用户都可以使用该功能。开发团队如何管理这种功能? 我一直在考虑使用配置设置来通过配置文件和代码中的条件if语句有选择地控制访问(如果正在测试或生产中)。现在,尽管可以使用简单的功能,但我相信,如果我们尝试在更大的功能集中实现这一点,将变得难以管理。 以这种方式管理功能推出的最佳方法是什么?

4
重新发布没有回应的作者的oss项目是否合法/道德?
几个月前,我在某人的博客中找到了一个小的oss项目(一个文件)。许可证是“ Attribution-ShareAlike 2.5 Generic”。如果可以将其放在github中,我就向作者发送了一封邮件,但没有回复。同时,他的博客已被关闭。 我不是律师,但是在github中重新发布代码(具有适当的署名)似乎合法。我对吗?这是道德的吗?也许那家伙只是想消失片刻...

3
如何处理有关编程风格的面试问题
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 作为面试中的C ++程序员,我反复发现自己处在这种情况下,即面试官想探究我对良好编程风格的了解。这些通常以OOP的基本知识为中心。 我知道OOP对封装概念很有用,我每天都会使用它。但是,由于像C ++这样的语言允许许多不同的样式,并且某些C ++方法(如TMP或STL算法)根本不是OOP(而是更像是函数编程),我发现自己陷于如何最好地“出售”我对其他方法的知识的过程中,不会遇到自高自大的人,或者不了解基本知识的人。我担心问者对OOP的这种强调来自于他们在90年代被社会化,而OOP被认为是万能药,但这是一个傲慢的观点。 我将如何充分利用此类问题?

3
在将字符串变量与带有.equals()的字符串文字进行比较时,是否存在关于项目顺序的标准做法?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 每个都有好处,我了解其中的区别,但是什么是最佳/标准做法?又为什么呢? 例如 : "myString".equals(myStringVar) 避免潜在的NPE,并且不需要空检查。(好东西?) 读取的更干净,因为不需要空检查。 如果null不是期望值,则您的程序可能会中断而没有任何明智之举。 然而 myStringVar.equals("myString") 如果null为期望值,则需要进行null检查。(好东西?) 可以使用空检查使复合条件变得混乱。 允许NPE通知我们是否发生了故障。 哪个变体被认为是Java使用的标准,为什么?

3
设计音乐软件的适当编程语言
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 我想为我的乐器设计一种有节奏的软件(没有旋律)。我想要这些软件做的是: 使用户能够创作音乐 播放用户撰写的内容 为此,我需要记录该乐器的不同声音,并使每个信号与适当的声音匹配。 哪种编程语言足以满足此目的?

5
由于什么原因,我应该在C#中保持“使用”部分的整洁?
重构代码后,我将IDE转到C#类的using部分,并清除了未使用的名称空间和重复的名称空间,并对它们进行了排序。 我的一对(配对编程)问我原因。我不知道为什么要这么做。我这样做是出于保持我的所有代码整洁的习惯。我的意思是,我告诉他,一般而言,拥有简洁的代码是一个好主意,但是当然,这并不是一个很好的理由,因为我什至不花时间在任何C#代码页的using部分中。 由于多次将类或枚举(或通常的类型)从一个名称空间移动到另一个名称空间,这会在代码中添加新的using语句(通过手动在代码窗口中向上并自己编写using语句,或通过编辑器使用Alt+ Ctrl+ F10组合),并且由于这些新的using语句将添加到using节的末尾,这使得它们不会按字母顺序排序,并且由于编译器从不抱怨这些问题中的任何一个,因此我们为什么要关心这样做节整洁?我们可能有什么原因?

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.