软件工程

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

2
Haskell GUI:Haskell可以完成多少工作?
我一直想在Haskell中尝试图形。从我所看到的来看,可用的库要么是C / C ++库的前端,要么是功能最少的抽象。高级库似乎不适合我的需求,因此我只剩下较低级的前端。 我需要渲染图块和文本 -一个非常简单的游戏的基础。我知道如何使用C进行此操作,并且一直在考虑可以使用C编写图形并将其与Haskell接口。另一种方法是使用Haskell库编写图形。 我的问题是,可用的Haskell库能否实现我想要的?我不想向后弯腰。如果C可以做得比我想知道的要好。


4
我们为什么不能完成任何事情?
我在一个中等规模的公司的一个小团队中工作,其中大多数不参与软件开发。我是最新的,经验最少的开发人员,在开始之前没有软件方面的专业或学术背景,但是我对自己的投入受到尊重感到非常满意,并感谢在职业生涯的这么早就被认真对待。 尽管如此,我觉得我应该在如此充裕的通话时间内做更多的事情。作为一个团队,我们似乎很难完成工作。我希望能够提出一些建议来改善这种情况,并且我想如果这是个好主意,我会听取的,但是我对所提建议不知所措。 我可以确定为问题的事情包括: 对当前任务的说明很少。部分原因是管理是瓶颈,而我们没有钱或人来承担我们想要的尽可能多的详细需求。这也部分是因为我们正在开发的软件正在调查中,确切的方法尚待证明并用于确定其有效性之前尚不清楚。 首席开发人员非常喜欢他所说的“原型”,以至于他最近开始坚持认为所有东西都是“原型”,对我们其他人来说,这就像在编写不良代码并将其交给建模者一起玩。在许多情况下,尚不清楚他期望从这项练习中得到什么。然后,由于他坚持认为良好实践会花太多时间来制作原型,因此“实际”实现会遭受损失。我什至没有开始能够解开这种扭曲的逻辑,而且我不确定是否要尝试。 建模人员应该精确地告诉我们有关所需方法的所有信息,并且绝对相信他们提出的理论上是完美的。这几乎是不可能的,但是没有采取任何纠正措施。建模方面的任何人都不会以可能采取行动的结构化方式提出任何问题,也不会寻求应用最佳实践的指导。他们的被动性也没有做。 我以前曾尝试将TDD推入团队,但由于它对我来说是新事物,因此发现它很困难,尽管那些对我的工作负责的人愿意容忍它,但其他任何人都没有热情。我无法证明我花了很多时间去完成功能而不花时间,所以这个想法暂时被放弃了。我担心它不会再被捡起,因为没人喜欢被告知如何做他们的工作。 现在,我们有一个持续集成服务器,但它主要仅用于运行多个小时的回归测试。它应该也应该运行完整覆盖的单元和集成测试,但目前还没有人编写它们。 每次我与首席开发人员提出质量问题时,都会得到以下答案:“测试功能A很简单,功能B对用户来说更重要,但测试却太难了,因此我们不应该测试功能一个'。我再一次没有尝试解开这种逻辑。 .... phe 当我这样说时,它看起来比我想的要糟得多。事实证明,我想这是在寻求帮助。

6
“推荐”文件的长度和线宽[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我很好奇是否有人知道有信誉的来源给出的关于给定文件的最大代码行数的建议。例如,Google的Closure Linter建议每行不应超过80个字符。

3
如何构造表现出相同行为的多个对象的单元测试?
在很多情况下,我可能有一个具有某些行为的现有类: class Lion { public void Eat(Herbivore herbivore) { ... } } 我有一个单元测试 [TestMethod] public void Lion_can_eat_herbivore() { var herbivore = buildHerbivoreForEating(); var test = BuildLionForTest(); test.Eat(herbivore); Assert.IsEaten(herbivore); } 现在,发生的事情是我需要创建一个与Lion具有类似行为的Tiger类: class Tiger { public void Eat(Herbivore herbivore) { ... } } ...由于我想要相同的行为,因此我需要运行相同的测试,因此我需要执行以下操作: interface IHerbivoreEater { void Eat(Herbivore herbivore); } ...然后重构测试: …

3
通过REST API调用跟踪应用使用情况是否不道德?
我正在构建一个应用程序,它通过ASIHTTPRequest 与我的网站通信到服务器端基于PHP的REST API。 自然,在我的应用程序中,我在服务器端具有不同的终结点,通常返回JSON数据。 记录每个端点被击中多少次的计数器是不道德的吗? 我想捕获如何使用该应用程序来捕获命中的终结点,用户代理,一天中的时间,可能还有其IP(用于组访问等)。 我应该征求许可吗?

6
您如何跟踪过去的项目?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在几年前试图记住我过去的项目的细节后,我想知道程序员通常如何跟踪这些情况? 此类信息可用于求职面试等。 您是否写下某种“巨型简历”使用的技术,面临的挑战等?还是您只是相信自己的记忆?


5
如何将新秀开发人员纳入您的项目?
我们正在考虑教一些具有零或一般业余爱好者编程经验的员工来减轻我的工作量。 我们使用Python / Django,它具有一些最友好的文档,并且学习起来很轻松。 我目前是我公司的一个IT部门,我没有足够的时间来开发公司所需的一切。我们不是软件公司,但是它可以帮助内部IT自动化任务,开发客户服务功能,分析数据等。 您如何缓慢集成在您的代码库上工作的菜鸟?假设您有一个实习生-他们做什么?我完全不愿意让他们设计或开发核心代码,因为多年来我们将一直在处理他们的错误/奇怪的设计模式。作为主要开发人员,我将成为必须解决其代码的人。 我的想法是让菜鸟仅修改现有代码,而不构建核心功能。构建功能本身后,我可以通过简单的任务将工作分担给他们。 我们希望我们的员工在公司中学习/发现价值,并且通常我们会让人“升职”。 用普通/爱好者级别的编程教人是否是标准做法?软件公司中的“升职”对初级程序员是如何工作的?他们什么时候开始处理核心代码? 我正在尝试确定是否会造成比帮助更大的损害,或者是否有一种方法可以使用他们的帮助而不会冒潜在的核心站点代码(隔离环境?)的风险。
9 team  business 

5
如何解决错误修复迭代?
在过去的5个月中,我们已经非常成功地实施了Scrum。虽然,我们是从PROD3周远没有以往做任何终端到端到端的集成测试。哎哟!我需要帮助。在此之前(现在),无需解决造成这种情况的原因,我们需要计划当前的迭代,该迭代包括较小的改进和许多仍未知的错误修复。您如何考虑这种情况?您如何计划迭代以修复尚未发现的错误?
9 scrum  bug  planning 

1
如何获得双重许可?
我想在GPL v3下开源我的一个项目。另外,我想为那些希望在专有应用程序中使用代码的人出售许可证。 如何在GPL v3下发布我的源代码,同时又保留根据自己选择的另一个许可证发布它的权利?是否仍将GPL标头放在每个源文件的顶部? 我对软件的法律方面比较陌生。

6
您可以学习C语言中的函数式编程吗?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 4年前关闭。 作为此处评论讨论的结果,我想知道您是否可以学习C语言中的函数式编程?
9 c  paradigms 

7
产品负责人还是您团队中的开发人员吗?
我对PO的职责感到困惑。我是游戏功能团队的开发人员,也是PO。开发人员的日常工作几乎是全职的,因此我必须加班工作以履行我的PO职责,而PO的职责似乎违背了开发人员的想法。 作为采购订单,我将在下一个冲刺中选择更多功能。否则,我会告诉自己不要这样做,因为我是开发这些功能的团队成员。这种情况使我感到困惑,所以我想听听你们的一些想法。 我是Scrum和Game Dev的新手(大约一年半),也是这里和英语的新手。

3
分支获得BSD许可的项目时有哪些法律考虑因素?
我有兴趣分叉以两条款BSD许可发布的项目: 版权所有(c)2010 {版权所有者}保留所有权利。 如果满足以下条件,则允许以源代码和二进制形式进行重新分发和使用,无论是否经过修改,都可以: (1)源代码的重新分发必须保留上述版权声明,此条件列表以及最后的免责声明。二进制形式的重新分发必须在分发随附的文档和/或其他材料中复制以上版权声明,此条件列表以及以下免责声明。 (2)未经明确的事先书面许可,不得使用{版权所有人}的名称或其贡献者的名称来认可或促销从本软件衍生的产品。 免责声明 版权持有者和贡献者按“原样”提供此软件,不提供任何明示或暗示的保证,包括但不限于针对特定目的的适销性和适用性的暗示保证。版权拥有者或贡献者在任何情况下均不对任何直接,间接,偶发,特殊,专有或后果性的损害(包括但不限于,替代商品或服务的购买,使用,数据,或业务中断),无论基于合同,严格责任或侵权行为(包括疏忽或其他方式),无论出于任何责任,无论是否出于使用本软件的目的而作出的赔偿,均已经事先告知。 我以前从没有分叉过一个项目,但是这个项目与我需要/想要的东西非常相似。但是,我不确定会走多远,所以我的计划是从他们的存储库中获取最新信息并开始工作。也许最终,我会把它放到想要的地方,然后能够释放它。这是正确的方法吗? 确切地说,这如何影响项目的分叉?如何跟踪谁拥有哪些组件或部分(一旦我开始踩踏他们的代码库,我的版权是什么,原始创作者的版权是什么)?我可以分叉这个项目吗?在发布之前,以及何时/如果我决定发布从BSD许可的作品中衍生的软件,我必须做什么?

3
敏捷开发部署过程。质量检查和业主在哪里进行测试?
最近,我一直在大量阅读使用SVN或GIT进行的各种Web应用程序部署过程,以期重新设计我们目前在我的工作地点进行部署的方式。 就像许多种敏捷方法一样,我们假设提交给主服务器或主干的任何东西都已准备就绪。GitHub和Etsy(http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/)都说他们是在此基础上工作的(尽管Etsy实际上有一个暂存环境)。 此过程假定所有单元测试和CI测试都已运行。您在本地和CI上运行测试,然后提交到中继。所以,在这一点上,您的代码在技术上是正确的。 您的代码在技术上可能是正确的,但是用户/功能测试可能会发现更多错误,尤其是在涉及前端测试时。 我的问题是这个。质量检查和企业所有者在哪里测试您实施的功能更改?在提交中继之前是在本地开发计算机上还是在QA /登台计算机上? 如果您有一台在主干上运行的登台计算机,并且假定提交到主干的所有代码都已准备好投入生产……嗯..那么,什么时候该代码已被批准,并且可以从技术和业务上投入生产透视?如果您只有一台登台计算机,并且有许多开发人员,并且要对这些代码进行质量检查,那么随着许多开发人员的更改可能正在等待注销,您如何从主干进行部署。 我很想听听其他人如何做到这一点?

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.