软件工程

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


4
为什么WAR无法共享会话信息?
我已经看到一些开发人员在寻找解决此问题的方法:从不同的WAR(即使在同一EAR中)访问会话信息 -以下是一些示例:在tomcat中不同应用程序之间共享会话状态的任何方法?,访问另一个Web应用程序的会话,不同的WAR文件,共享资源,Tomcat:如何在两个应用程序之间共享数据?,crossContext属性在Tomcat中做什么?是否启用会话共享?等等... 从我搜索过的所有内容来看,有一些特定的解决方案取决于容器,但这在某种程度上“ 与规范相反 ”。我也浏览了Java EE规范,但没有找到答案的运气。 一些开发人员谈论Web应用程序之间的耦合,但是我倾向于不同意。如果不耦合,将WAR保留在同一个EAR中的原因是什么?例如,可以在本地访问EJB(即使在同一EAR中的另一个EJB JAR中也可以访问)。 更具体地说,我的一个WAR处理身份验证和授权,并且我想与其他WAR(在同一EAR中)共享此信息。在将WAR打包为JAR并将它们放入单个WAR项目(WEB-INF / lib)之前,我设法解决了类似的问题。但是我不喜欢这种解决方案(它需要在servlet命名上付出巨大的努力等等)。 而且没有解决方案可以回答第一个(也是最重要的)问题:为什么WAR无法共享会话信息?

5
CSS-使用通用的“ *”选择器与HTML还是正文选择器?
将样式应用于body标签将应用于整个页面,因此 body { font-family: Verdana } 将应用于整个页面。这也可以用 * {font-family: Verdana} 这将适用于所有元素,因此似乎具有相同的效果。 我了解这样的原理:在第一种情况下,样式将应用于整个页面的主体一个标签,而在第二种示例中,将字体应用于每个单独的html元素。我要问的是这样做的实际区别是什么,其含义是什么,导致相互使用的原因,情况或最佳实践是什么。 副作用之一当然是速度(+1 Rob)。我最感兴趣的是在功能方面选择一个而不是另一个的实际原因。

2
Resharper是否仍对Visual Studio 2012进行了重大改进?
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我目前在VS 2008 Pro中使用Resharper。我发现,由于VS中缺少一些基本的重构/快捷方式,因此几乎有必要尽可能提高生产率。 但是我想知道自VS 2008以来是否进行了改进,使其几乎与Resharper一样好?

4
保持枚举和表格同步
我正在制作一个将数据发布到数据库的程序,并且遇到了我确定熟悉的模式:一个最有可能(很可能)固定值的简短表,它用作枚举。因此,假设下表名为Status: 状态 编号说明 -------------- 0未处理 1个待处理 2已处理 3错误 在我的程序中,我需要确定另一个表的状态ID,或者可能用新的状态ID更新记录。 我可以在一个枚举中对状态ID进行硬编码,并希望没人能更改数据库。或者,我可以预取基于上述说明的值(从而硬编码即代替)。 保持这两个枚举和表同步的正确方法是什么?
11 database  enum 

6
哪个更易于维护-通过if / else或布尔表达式进行布尔赋值?
哪个将更易于维护? if (a == b) c = true; else c = false; 要么 c = (a == b); 我尝试在“代码完成”中查找,但是找不到答案。 我认为第一个更具可读性(您可以从字面上大声读出来),我也认为这使其更易于维护。第二个当然更有意义并减少了代码,但是我不确定它对于C#开发人员是否可维护(我希望在Python中会更多地看到这种用法)。

2
扩展脚本是否应该在沙箱中运行?
特别是,这是关于用lua(luajit-2.0)编写的游戏扩展的。我正在考虑是否应该限制这些脚本可以做什么,并得出一个结论,我可能不应该这样做: 很难正确。听起来很傻,但是我的沙箱很有可能最终还是漏水。 我唯一想到的好处就是在运行第三方脚本时为用户提供某种安全感。 不利之处在于,它对于扩展编写者来说是非常令人讨厌的。也就是说,就目前而言,我本人(游戏内容将主要编写脚本)。 我现在问这个问题的原因是,在我真正拥有任何可展示的东西之前,尽早添加沙箱很容易,但是也会对我自己施加恼人的限制。但是,如果我先继续使用它,然后再决定我确实需要沙箱,那我会遇到问题(我要么不得不重写已经存在的脚本,要么引入某种形式的信任管理系统这似乎比它的价值还要麻烦)。

3
模拟具体课程-不推荐
我刚刚读了《成长面向对象的软件》一书的摘录,其中解释了为什么不建议模拟具体类的一些原因。 以下是MusicCentre类的单元测试的一些示例代码: public class MusicCentreTest { @Test public void startsCdPlayerAtTimeRequested() { final MutableTime scheduledTime = new MutableTime(); CdPlayer player = new CdPlayer() { @Override public void scheduleToStartAt(Time startTime) { scheduledTime.set(startTime); } } MusicCentre centre = new MusicCentre(player); centre.startMediaAt(LATER); assertEquals(LATER, scheduledTime.get()); } } 和他的第一个解释: 这种方法的问题在于,它使对象之间的关系保持隐式。我希望我们现在已经弄清楚了,使用模拟对象进行测试驱动开发的目的是发现对象之间的关系。如果我是子类,则域代码中没有任何东西可以使这种关系可见,而只是对象上的方法。这使得很难看到支持这种关系的服务是否在其他地方有用,下次我与该类一起工作时,我将不得不再次进行分析。 他说的时候我无法确切知道他的意思: 这使得很难看到支持这种关系的服务是否在其他地方有用,下次我与该类一起工作时,我将不得不再次进行分析。 我了解该服务对应于MusicCentre称为的方法startMediaAt。 他在“其他地方”是什么意思? 完整的摘录在这里:http : …

5
在开源软件项目中如何确定需求?
在公司内部软件开发中,通常需要通过正式流程来确定需求,从而创建许多需求文档。在开源软件开发中,这似乎常常不存在。因此,我的问题是:如何在开源软件项目中确定需求? “确定需求”仅表示“确定应将哪些功能等开发为特定软件的一部分”。

3
小型团队的Git工作流程
我正在制作一个git工作流程,以在一个小型团队中实施。工作流程中的核心思想: 有一个共享的项目主管,所有团队成员都可以写 所有开发仅在功能分支上完成 功能分支由分支作者以外的团队成员审阅的代码 功能分支最终合并到共享母版中,并且循环再次开始 本文详细解释了此循环中的步骤: https://github.com/janosgyerik/git-workflows-book/blob/small-team-workflow/chapter05.md 这有意义还是我错过了什么?

5
计算函数是否纯函数
根据维基百科: 在计算机编程中,如果关于函数的以下两个语句均成立,则函数可以描述为纯函数:在给定相同的参数值的情况下,函数始终求值相同的结果值。函数结果值不能依赖于任何隐藏的信息或状态,这些信息或状态可能随着程序执行的进行或程序的不同执行之间的变化而变化,也不能依赖于I / O设备的任何外部输入。结果评估不会引起任何语义上可观察到的副作用或输出,例如可变对象的突变或输出到I / O设备。 我想知道是否有可能编写一个可以计算一个函数是否纯净的函数。JavaScript中的示例代码: function sum(a,b) { return a+b; } function say(x){ console.log(x); } isPure(sum) // True isPure(say) // False

4
是否有用于确定国会选区的API?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我正在根据用户提供的地址确定国会选区。这将避免让用户自己查找。 是否存在此类API? 注意 通过我的尝试,我只遇到了以下问题: http://www.govtrack.us/developers/api (但是不确定如何提交地址或邮政编码) API中提供以下资源 ... 1973年以来在美国国会(第93届国会)上的法案和决议。 ...一对(帐单,人员),表示共同赞助,并有加入和退出日期。 ……建国以来的国会议员和美国总统。 ...任期由国会议员和美国总统担任。每届任期与一次选举相对应,这意味着众议院每届任期为两年(一个“国会”),总统任期为四年,而参议院为期六年(三个“国会”)。 ...自1789年以来在美国国会进行的投票表决。人们如何通过Vote_voter API进行投票。 ...自1789年以来人们如何在美国国会进行唱名表决。请参阅Vote API。筛选投票字段以获得特定投票的结果... http://www.opencongress.org/api (似乎是一种查找国会信息的方法,但不是地区) 该API为程序员提供了对OpenCongress上所有数据的结构化访问,从官方账单信息到新闻和博客报道,再到用户生成的账单投票等等,... 该API默认为返回XML。所有查询也可以返回JSON ... https://groups.google.com/forum/?fromgroups=#!topic/opendems-discuss/CeKyi_aANaE (类似的问题,无解决方法) 我一直在研究Open Dems,看看此时暴露了什么,没有发现什么。我与国外民主党人合作,并且对使用实验室中的网站作为他们的网站感兴趣。 我迅速查看了Precinct API,该API的功能比我需要的多或少。理想的资源是至少将地址转换为CD的任何方式(获取州地区数据也将是很好的),因为这将使DA的会员更容易在上个月的NY26比赛等比赛中发挥作用。 。 更新资料 我正在寻找govtrack.us网站的资源,“ doGeoCode”功能可能会有用。 查看源代码:http://www.govtrack.us/congress/members 如果没有人提出任何建议,我将尝试脱离他们的所作所为。
11 api 

8
与C / C ++相比,Java难于“调整”性能吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 JVM的“魔力”是否会阻碍程序员对Java的微优化的影响?我最近用C ++阅读,有时数据成员的排序可以提供优化(在微秒级环境中是允许的),并且我想程序员在压缩Java性能时会束手无策吗? 我很欣赏体面的算法可以提供更高的速度增益,但是一旦有了正确的算法,由于JVM控制,Java很难进行调整吗? 如果不是这样,人们能否举例说明您可以在Java中使用哪些技巧(除了简单的编译器标志)。

1
修改并许可MIT许可代码是否合法?
我有一个项目,并且想使用现成的脚本,该脚本已在MIT的许可下使用。但是单独使用此脚本将是多余的。 因此,我决定将我的代码和MIT许可脚本合并到同一文件中。(假设我将对其进行修改,改进和/或添加新功能。) 我打算在市场上出售这件作品,但是(合法)公平吗? 注意:同时,我将把MIT许可脚本的版权(已参考)放在最终文件中。

2
用多个“屏幕”构建Winform应用程序的正确方法是什么
构建具有多个“屏幕”的Winform应用程序的正确方法是什么?例如,我正在尝试编写一个小的备份程序(主要用于咯咯笑),并且我一直在将控件和容器转储到表单上。 我正在使用面板和组框来分隔不同的屏幕(例如:我正在使用一个面板来保存“设置”窗口的所有控件,而另一个面板来显示已设置的所有当前备份)。好吧,我的form.cs文件膨胀成大量的代码,我感觉自己做错了什么。我几乎找不到文件中的任何内容,现在可以重新开始了。这个项目只是为了扩展我对C#和.NET的了解,因此开始一个新项目并不是一件大事。
11 c#  gui  winforms  gui-design 

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.