Questions tagged «software»

计算机软件,或者仅仅是软件,是计算机程序和相关数据的集合,提供了告诉计算机做什么和如何做的说明。

14
新开发人员无法跟上分支合并的步伐
我是新开发人员-这是我的第一个编程职位。 我的问题是:我们使用git-我从develop分支中剪切了一个分支,然后开始处理已分配的次要任务。这很慢,因为我没有经验。到我准备将我的分支重新合并到develop其他分支时,已经进行了许多更改,以至于解决冲突变得不知所措(实际上似乎更容易取消工作并重新开始工作,这当然不是可持续的解决方案)。 我该如何克服呢?除了“擅长编码”之外,我还有其他策略可以使用吗?我打算下周与我的主管讨论。


7
如何管理软件项目中的意外复杂性
当问到Murray Gell-Mann时,Richard Feynman如何解决了这么多难题时,Gell-Mann回答说Feynman有一个算法: 写下问题。 认真思考。 写下解决方案。 盖尔曼(Gell-Mann)试图解释说,费曼是另一种类型的问题解决者,研究他的方法没有任何见识。对于管理中型/大型软件项目的复杂性,我有点相同的感觉。优秀的人天生就是擅长的,并且设法以某种方式分层和堆叠各种抽象,以使整个事物易于管理,而不会引起任何不必要的麻烦。 那么,费曼算法是管理意外复杂性的唯一方法,还是软件工程师可以始终如一地应用实际方法来应对意外复杂性?

15
大型软件是否有可能达到绝对零错误状态?
我说的是20-30 +百万行代码,例如Autodesk Maya规模和复杂性的软件。 如果您只要需要就冻结开发,就可以实际修复所有错误,直到没有一个单独的错误为止(如果可以通过计算机验证此错误)?支持和反对无错误系统的存在是什么? 因为有人认为您所做的每个修复都会产生更多的错误,但是我认为那不是真的。 错误是指从用户界面中最简单的错字,到没有解决方法的更严重的预防性错误。例如,特定的脚本功能无法正确计算法线。同样,即使有解决方法,该问题仍必须解决。因此,您可以说可以手动执行此特定操作,而不使用提供的功能,但是该功能仍必须修复。

6
我如何在软件的免费试用版中实现“自毁”功能?
对于免费试用与免费增值模型(即具有受限和/或精简功能的软件的终身免费版本)的争论正在不断发展,以允许潜在的客户和用户测试其产品的运行情况。根据我的研究,我可以得出结论,免费试用是继续这样做的一种方式,既有利于使用软件的个人的用户体验,又有利于卖方的销售和最大化使用两方面。免费试用软件的诸多因素可以极大地提高用户使用率,例如免费试用的时间。 我对“免费增值”的研究再次出现的一个关键词是“令人沮丧”。许多人选择卸载软件,而不必使用某些功能无法使用的软件。同时,这些用户从来没有机会使用“付费”功能。他们不知道,并且被销售软件的自己的供应商隐藏,他们不知道也不知道Pro功能会带来什么好处。无需首先使用它们,用户将不会知道他们有“需要”某种东西的感觉。这使我进入了免费试用模型的下一个要点。 免费试用用户的一些意见是“如果没有Pro功能,我将无法想象使用此软件”。这可以追溯到“用户直到他们第一次了解拥有的感觉才知道他们需要什么”的观点。那些已经有14天使用“完整”版本功能的用户说,他们无法想象没有或没有使用那里提供的功能。因此,当十四天结束时,与从未体验过全部功能的人相比,他们更有可能花钱。免费试用的时间也是在用户身上留下持久印象的重要因素。在Visual Website Optimizer进行的一项实验中,他们注意到对于14天免费试用与30天免费试用,尽管注册和安装的次数相同,但14天试用的使用率增加了102%。 要提到的另一个非常重要的一点是,“提供产品的有用且功能齐全的免费版本”非常重要。完全免费的功能免费试用可有效地获得媒体报道,而对新软件和/或软件供应商的宣传至关重要。 另一个相关方面是用户提供反馈的重要性。在功能齐全的限时免费试用中,考虑用户提供反馈的能力。 对于我们的软件而言,另一个重要的功能是需要遥测数据,即有关用户如何使用我们的软件的定量和综合数据。一些使用情况统计信息可能会落在法律的灰色地带,因为法律根据美国和全球的地理位置而有所不同。解决此法律问题的一种方法是拥有加入功能,以收集匿名使用情况统计信息。选择加入功能将意味着为用户提供一个选项,以关闭统计信息收集,同时,用户必须非常清楚匿名使用信息收集的功能。重要的是要使用户清楚要收集哪些数据,“我们”将如何处理数据,并使其易于随时关闭,包括允许他们改变主意以打开或关闭数据。对于更详细的统计信息(例如跟踪用户的个人活动),可能会导致法律问题。Eclipse IDE会记录详细的使用情况统计信息,但是需要用户的完全同意才能进行记录。我们可能需要与法律团队一起准备同意书。 Eclipse使用信息收集收集以下信息:1.由系统启动的插件。2.通过键盘快捷键访问的命令以及通过菜单或工具栏调用的操作。3.当编辑器的“视图”被赋予焦点时。4.系统信息,例如所使用的软件版本,所使用的操作系统。5.内部错误的描述。 杀死开关 我们软件的终止开关可以通过管理来记录初始数据,用盐加密,并且当它是无效日期(即用户试图更改它)时,它将禁用该软件。另一种选择是在安装时进行Internet身份验证,将该日期记录到中央Web数据库中,并在每次打开应用程序时检查日期。 禁用软件后,我们可以删除重要的DLL。无法考虑必须付费才能生成报告的选项。 我有兴趣为现有软件实施免费试用版。我计划在最后14天进行审判。在第14天,我的软件会提示用户为付费版本付费,或者结果是无法使用它。免费试用版已完全解锁,这意味着所有付费功能都已存在。 但是,我的困境是实现最终解决方案的“最佳”方法。我是否删除重要的DLL?安装或使用时是否有用户认证系统?用盐加密使用的初始时间和日期,如果这是一个无效的日期(又称他们尝试更改其初始日期),请禁用软件? 我有兴趣了解禁用软件的一些有效措施。

11
作为软件架构师,我应该专注于分析日志并修复其他人的错误吗?
自从我毕业(2005年末)以来,我在同一家公司工作,担任c ++软件工程师。一年前,我被提升为软件架构师,但是我发现自己越来越多地参与资格和修复错误以及2级支持。 我有50%的时间花在Notepad ++上,用于分析软件日志并试图找出问题所在。30%的人修复了其他人的错误,其余的(如果有的话)审查了开发人员的意粉代码。 我开始讨厌该产品,并开始考虑退出该公司的战略。 在这种情况下,您认为我能做什么?您还有其他软件架构师还在修复代码中的错误吗?

7
非FP人员可以理解少量的函数式编程吗?[关闭]
案例:我在一家公司工作,用Python编写一个处理数组中大量数据的应用程序。我目前是该程序的唯一开发者,但将来(1-3年)可能会被其他一些程序员使用/修改/扩展,目前我还不知道。那时我可能不会在那里直接提供帮助,但是如果有时间的话,也许可以通过电子邮件提供一些支持。 因此,作为一个学习过函数式编程(Haskell)的开发人员,我倾向于解决例如以下过滤问题: filtered = filter(lambda item: included(item.time, dur), measures) 其余的代码是OO,这只是我想解决的一些小案例,因为根据我的说法,它更简单,更漂亮。 问题:今天可以编写这样的代码吗? 没有编写/学习FP的开发人员如何对这样的代码做出反应? 可读吗? 可以修改吗? 我是否应该写文件给孩子解释该行的用途? # Filter out the items from measures for which included(item.time, dur) != True 我问过我的老板,他只是说“ FP是黑魔法,但如果它有效并且是最有效的解决方案,那么可以使用它。” 你对此的看法如何?作为非FP程序员,您如何应对代码?代码是“ googable”的,这样您可以了解它的作用吗?我希望收到反馈。

4
否定性“传统代码”的由来是什么
每个人都在谈论软件开发中的遗留代码,我听说过过去十年中用来将任何代码库描述为不良代码的术语。 对程序员一样具有如此强大内涵的这个术语从何而来? 我相信肯定有一些关于软件开发的书是这个学期的开创者。我很想找到术语“旧版代码”的由来。

5
作为“最低开发商”与技术债务作斗争?
假设您在一家公司工作,而您所要做的就是为他们开发软件。您不了解总体情况,也可能不了解。您所拥有的是通过问题跟踪系统分配给您的任务。您得到了任务,使它们按照任务描述它们的方式工作,然后将其发回。像加2个整数: function add(a,b){return a + b;} 但是后来,随着项目的进行,您注意到随着add变得越来越复杂,您意识到它应该需要某种形式的体系结构,而不仅仅是添加参数并返回值的函数。但是,您不知道。首先,他们所需要的就是这么简单add。您没想到add会变得如此复杂。 该项目具有更多功能,而您最初没有想到这些功能。最后,您将不断堆积各种技巧和功能,以免破坏/重写现有代码。 您如何处理这些情况?作为“最低开发商”,您如何应对技术债务? 澄清: 您是层次结构中最低的“实施者”。 您看到了问题,但对此没有发言权。 我不是在量化技术债务或寻找工具。 关于第三个“重复” 重构和重写-您被锁定在任务上。您无需支付额外费用。 体系结构概述-您了解整个系统,但不了解体系结构。 代码冻结-不是您的电话。您不是管理者。 模块化-不了解架构。模块随需求的变化而变化。 自动化测试-不存在。

6
当数百名开发人员正在开发一个解决方案时的开发方法?
我们是一个由大约200名开发人员组成的组织,他们正在不断开发单个产品(使用版本控制Git),并计划在某个日期发布该产品。 由于开发人员数量众多,我们正在尝试创建“跨职能”团队,每个团队中约有10个开发人员,因此组织中大约有20个开发团队。 由于我们希望在主存储库中保持产品的连续“高标准”(意味着当开发人员进行拉动时,产品至少应是可编译的,等等),因此我们想使用某种质量保证。 我不太确定如何表达这个问题,但是我想知道是否可以为如此大量开发单个产品的开发人员提供一些开发方法的建议。 我们认为,范围的一端是允许每个开发人员直接提交到主存储库,但是我们担心由于开发人员/提交的数量过多,“主存储库”可能一直处于崩溃状态,这是由于我们不能为每次提交都提供苛刻的“质量门”。 频谱的另一端可能像是树或金字塔结构(我们认为是Linus Torvalds / Linux做到了),其中“主存储库”仅具有三个拉取源,这三个仅具有少数受信任的拉取源,依此类推但是,我们认为,采用这样的结构,为了进入“主存储库”,更改需要爬很长的链。另外,如果发生合并冲突,问题将落在“原始开发人员”之外的其他开发人员上。 陈述了所有这些背景信息和意见后,我们如何才能学习和阅读针对众多开发人员的推荐开发方法?大型组织(Microsoft,Facebook,Ubuntu等)如何组织其发展?

3
软件工程中实际上是什么模块?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 根据Stephen Schach的“经典和面向对象的软件工程”,第6章: 模块由单个代码块组成,可以通过调用过程,函数或方法的方式来调用 这似乎非常模糊和广泛。因此,谁能清楚地解释它并显示一些实际的示例,以将需求分解为模块?谢谢。
18 software  modules 

5
如何创建自己的软件许可证?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 7年前关闭。 我已经看到各种软件的大量许可,例如GNU GPL,BSD许可,MIT许可和LGPL。创建新软件许可证(例如“ John Doe的通用许可证”)的过程是什么?

2
开放源代码软件转变为封闭源代码软件有哪些影响?
如果公司采用许可许可的开放源代码应用程序,然后通过重新设计应用程序的广泛部分,添加新功能并应用错误修复程序,从中开发封闭源代码应用程序... 忽略任何许可证要求... 过渡是如何发生的,可以采取什么措施防止过渡,而不仅仅是选择不同的许可证? 公司的(道德或社会)责任是什么?(例如:回馈开源项目将是道德上要做的事情) 如果开放源代码版本和封闭源代码版本均可用,那么竞争对这两种产品有何影响? 过去是否有成功或失败的公司或产品的实例?社区对这些项目的态度是什么?

5
冻结的项目-我应该留给我后面的人什么?
因此,我一直在从事的项目将无限期冻结。如果再次冻结项目时,可能不会将其分配给我或当前团队中的任何人。实际上,我们是在项目冻结之前继承了该项目,但是先前的团队没有任何东西可以帮助我们甚至了解项目的基本需求,因此我们浪费了很多时间来很好地了解项目。我的问题是,您认为我们应该怎么做才能帮助后世的人们最好地了解项目的需求,我们做了什么,为什么要这样做等?我对​​我们为什么应该离开的其他想法持开放态度。一些对其他人也可以在该项目上工作的曲目。 我们已经采取的一些步骤: 技术文档(不完整,但至少有一些); 源控制系统的历史; 估算项目的哪些部分需要改进以及我们为什么要这样做; 一堆单元测试。 我们已完成的所有票证的问题跟踪器(编辑) 您如何看待我们已经准备好的东西,我们还能做什么?

6
使用敏捷方法重写软件
假设您必须使用敏捷方法重写整个应用程序,您将如何做? 我猜您可以根据当前系统的行为编写大量用户案例。然后以小的迭代形式实现它们。但这并不意味着我们具有UP FRONT的要求? 另外,什么时候开始发布?敏捷说我们应该早并且经常发布,但是在完全重写完成之前发布并没有多大意义。

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.