软件工程

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

5
Scrum每日会议:守时超过团队的全部成员?
我的理解是,每日Scrum会议应该非常迅速,以友好的方式召开,并且需要所有团队成员在场。因为这样做的目的是使每个人都了解其他人在做什么。 我喜欢这样举行的Scrum每日会议。 在我最新的项目中,我们的每日Scrums更像是状态更新会议。尽管我们的立场是持有Scrums并练习适当的敏捷。 我们是一个分散的团队,在2个不同的国家中,并且同一国家/地区的人不在同一办公室。结果,我们有了虚拟Scrum。 问题在于我们的会议总是按时开始,很多人在实际开始时间之前打电话,所以他们实际上是在会议的第一秒开始。对小延迟没有任何容忍度。 例如,上次我们打通电话时,协调会议的人员检查了每个人的出席情况,而我们说团队中的一位成员尚未出席,但他正在打电话。有人告诉我不用等待我的团队成员就可以开始共享。 另外,每个人都有很多会议,有时他们在Scrum会议中背靠背,因此,如果他们在会议的第一或第二分钟到达,这是可以理解的。 这对于练习每日Scrum的团队来说是正常的吗?这是我第一次发生。 我找不到直接的参考书目。尽管强调了所有团队成员的出席,但也强调会议应始终同时开始。但是我想可能会有小的延迟容限。 我什至在博客上读到有人建议,如果有人迟到“ 5秒”,Scrum Master可以判罚。我以为Scrums应该很友善,而那样的罚款似乎适得其反。 在这种情况下,推荐的方法是什么?
9 agile  scrum 

2
GFS替代TFS中的架子
我将git用于我的个人项目,因此我从未遇到过有关Git的任何问题,但是我今天在工作中进行了讨论,而这是我没有想到的。 在TFS中,您可以将变更集存储到架子集中,其他开发人员可以查看此架子集,例如进行同行评审。 根据我在github中的了解,您正在处理存储库的本地副本(可能具有针对不同功能的自定义分支),然后提出了进行同行评审的重点。您将如何与他人共享本地存储库上的特定更改?

2
Javascript MVC应用程序设计(画布)
我很难掌握如何在Javascript中使用类似于MVC的方法来构造/构造画布应用程序。用户界面将非常流畅和动画化,游戏也将非常简单化,但会重点强调补间和动画。我了解了MVC的工作原理,但实际上却没有。我已经从中搜查了一些漏洞,阅读了很多文章,现在和我刚开始时一样困惑。 有关应用程序区域的一些详细信息: 多屏幕游戏框架-多个游戏将位于该框架内常见的UI“屏幕”包括:设置,信息,选择难度,主菜单等。 多种输入法 常见的UI元素,例如某些屏幕上的顶部菜单栏 使用不同渲染方法(画布/ DOM / webGL)的可能性 目前,我有一个AppModel,AppController和AppView。从这里开始,我计划添加每个“屏幕”并将其附加到AppView。但是,诸如顶部菜单栏之类的东西又应该是另一个MVC三合会吗?在不紧密耦合组件的情况下,我将在何处以及如何安装它? 将一个MVC三合一组合在另一个中是否被接受?即我可以将每个“屏幕”添加到AppView吗?“ triad”甚至是公认的MVC术语吗? 我的想法在这些选择下融化了……我觉得这里缺少基本的东西。我已经有一个不使用MVC方法就可以启动并运行的解决方案,但是最后却得到了紧密耦合的解决方案-逻辑和视图,目前已经结合在一起。这个想法是打开它并使视图更容易更改(例如,将画布视图换成基于DOM的视图)。 当前使用的库:require.js,createJS,下划线,GSAP,手动MVC实现 任何指针,示例等,特别是关于事物的实际设计以及将“屏幕”划分为适当的M,V或C的指针,示例等都将受到赞赏。 ...或除MVC以外更合适的方法 [注意,如果您之前曾看过这个问题,是因为我在另外两个不正确的stackexchange社区中提出了这个问题……我的大脑已经停止运作了]

2
序列化是否排除了依赖注入的使用?
一个简单的问题:我了解C#中的序列化需要默认构造函数。这将消除使用构造函数注入的DI的可能性(在我的阅读中,通常是DI的首选样式[需要引用])。那么,这真的是一种非此即彼的情况,还是我错过了一些东西? (附带问题):IoC容器是否以某种方式回避了这种折衷方案?

1
设计接口和异步
假设我已经IFolderRepository使用以下方法创建了接口: IEnumerable<Folder> GetAllFolders(); Folder GetFolderWithId(int id); void AddFolder(Folder newFolder); void ModifyFolder(Folder folderToModify, Folder folderAfterModification); void RemoveFolder(Folder folderToRemove); 并且我已经实现了DatabaseFolderRepository,可以说CacheFolderRepositoryDecorator。现在,“数百行”之后,我想添加SkyDrive文件夹的功能,因此我准备添加SkyDriveFolderRepository。不幸的是,当DatabaseFolderRepository实现使用同步方法与数据库进行通信时,skydrive使用了很多async和await。在这种情况下该怎么办?在使用void方法将其标记为异步的情况下,这不是解决方案(需要进行异常处理)。我应该更改接口返回Task<T>吗?当然可以在上面的示例中使用,但是它们只是2个接口实现类。还是我的大多数接口都应该具有Task返回类型(因此您不需要规则)?
9 c#  async 

3
<< >>乘法和除法的速度
当我对它们进行计时时,可以使用python中的数字&lt;&lt;进行乘法和&gt;&gt;除法,发现使用二进制移位方法比将常规方法除法或乘法快10倍。 为什么使用&lt;&lt;和&gt;&gt;比*and 要快很多/? 什么是现场处理事情,使落后*和/这么慢?

5
没有“专用”测试人员角色的开发团队的生存能力
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 最近我一直在思考如何建立精益开发团队。最终,我想与少数志同道合的人一起开设自己的小软件商店。目标不是致富,而是拥有一个健康的工作环境。 到目前为止,我将精益团队定义为: 小; 自组织; 所有成员都必须牢记质量保证; 成员必须能够执行多个角色 最后一点是我有点担心,因为随着口头禅的发展…… 开发人员会成为糟糕的测试人员。 虽然我知道开发人员通常与他们的代码或同事的代码“过于接近”,无法对质量进行更高级别的评估,但我并不认为他们实际上是糟糕的测试人员。相反,我认为优秀的开发人员的素质与优秀的测试人员的素质有很大的重叠。 假设这是正确的,我一直在思考解决开发人员/测试人员问题的不同方法,我相信我已经提出了一个可行的模型。 我的模型要求: 一个带有2个以上项目的小型软件公司 开发和交付的敏捷(迭代)方法 每个项目1个团队 所有团队成员均为软件开发人员 他们的工作描述将清楚地说明开发,质量保证,测试和交付为职责 如果满足所有这些先决条件,那么可以按以下方式组织项目(此示例将引用两个项目A和B): 每个团队成员将在开发人员角色和测试人员角色之间交替 如果团队成员是项目A的开发人员,那么他们将是项目B的测试人员 会员将在时间上只有1个项目上工作,因此预计将充当无论是一个开发或测试员。 甲角色周期由3次迭代作为开发和2次迭代作为测试仪(再次,在两个不同的项目) 项目团队将始终具有3个开发人员和2个测试人员。 成员角色周期应相差1次迭代。 这样可以最大程度地减少团队变更的突然性。对于每个迭代,2个Devs和1个Tester将与上一个迭代相同。 鉴于以上所述,我看到以下优点和缺点: 优点 在整个公司范围内分配项目知识。 确保团队成员没有测试他们帮助编写的代码。 角色周期异相意味着没有项目拥有100%的成员切换。 交替角色打破了无聊项目的单调性。 缺点 两个项目的迭代紧密耦合。如果一个项目要在中途取消迭代并重新开始,则这两个项目将不同步。这将使角色周期难以管理。 聘请开发人员的铰链也开始充当测试人员的角色。 与朋友和同事讨论这种方法时,我收到了好坏参半的评价。有些人认为很少有开发人员会愿意像这样的角色,而另一些人则告诉我,他们个人愿意尝试。 所以我的问题是: 这样的模型可以在实践中起作用吗?如果没有,是否可以将其调整为可行的模型? 注意: 为了简洁起见,我仅关注Dev和Tester角色。如果需要,我将继续介绍其他角色。

4
在不希望所有者参与的小型项目上使用Scrum
最近,我一直在阅读和学习有关Scrum的很多知识,我非常喜欢它。但是,我确实有一些我不知道解决方案的可能情况。假设我想组织一个由(例如)四个Web开发人员(其中一个是UI / UX设计人员)组成的敏捷团队。该团队将按照Scrum原则运作。 最初,我们可能会开展一些项目,例如为普通百姓的小型企业提供登陆页面,例如出租公寓,出售Cookie……这类客户根本无法设置为“产品所有者”角色(IMHO),因为他们通常希望雇用一家公司,向他们提供总体项目目标的详细信息,然后期望工作尽可能少地完成(包括大量决策)(在他们看来,他们有更多重要的事情要做)。假设我想让自己参与开发人员/ Scrum主管的角色(我知道即使是一次小组成员和Scrum主管也值得商)),所以我根本不应该担任产品所有者的角色好。 关于我的问题:如果我是公司的企业主,我是否也需要简单地成为产品所有者(这些角色是否彼此包含)?我可以雇用可能担任产品负责人的销售人员吗?如果它是经验丰富的开发人员而不是销售人员,会更好吗?这甚至是明智之举吗?最后,还有另一种更适合我职位的敏捷方法吗? 编辑:谢谢大家的良好投入。我添加了一些评论,任何附加信息将不胜感激。
9 agile  scrum 

4
为什么科学编程语言如此怪异?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 在我看来,与通用语言相比,用于科学和工程的编程语言一直很奇怪。我脑海中浮现出一些例子: 在Matlab中,每个函数都必须放在单独的文件中 在R中,&lt;-是赋值运算符,与几乎所有其他语言中的=相对 Matlab,R,Julia等都被1索引 Matlab使用%进行注释,而不是标准的#或// 当然,这些语言都具有几种设计功能,实际上使它们更易于用于科学应用,例如更自然的矩阵符号。尽管如此,他们全都莫名其妙地做出了所有这些奇怪的选择,这些选择并没有使任何事情变得容易,并且如果语言设计者只是选择做其他99%的语言所做的事情,就很容易避免。是供应商锁定的原因吗?缺乏与更广泛的软件开发社区的联系?还有吗 我阅读了此主题,但并没有找到令人满意的解释。仅仅因为R被设计为科学语言并不意味着它必须完全忽略约定并使用&lt;-代替=。

5
如何使从外部访问函数显而易见?
这是一个特定于C的问题。我试图将所有可能的内容都保留在翻译单元的边界之内,仅通过.h文件公开一些功能。也就是说,我正在static链接到文件级对象。 现在,其他模块需要调用几个函数,而不是直接调用。我的模块/文件/翻译单元订阅其他模块,将指针传递给函数。然后,在发生特定事件时,将使用一些参数来调用指针。 因此,我想知道如何使这些功能从某个晦涩难懂的位置调用变得非常明显。 它们应该是static还是extern(并将它们显示在中.h)? 我应该在函数名称中包含一些提示吗? 还是发表一个“由X调用”的评论就足够了?

1
如何将贡献者添加到LICENSE文件?
我是图书馆的主要开发人员,已获得MIT许可,并托管在Github上。Github存储库包含一个LICENSE文件。 当有人向我发送请求请求时,我是否必须在随附的license.txt中将这些人列为版权所有者,还是应该在此处的特殊部分中列出这些人?我需要这样做吗? 我是否可以假设贡献者在发送请求请求时同意将其代码包含在LICENSE中指定的许可中?

3
跳过循环主体时,BASIC如何查找无序的NEXT语句
设置WABAC机器 Sherman。这个问题通常与BASIC有关,尤其与Microsoft的BASIC-80有关。老派基本。带行号。 当循环主体未执行且NEXT语句出现故障时,老式的BASIC解释器如何(或更确切地说,是)如何处理FOR ... NEXT循环? 与之前时间无序的NEXT语句: 这是David H. Ahl的“ 101基本计算机游戏”中Awari游戏的子例程: 200 K=M:GOSUB 600 205 E=0:IF K&gt;6 THEN K=K-7 210 C=C+1:IF C&lt;9 THEN F(N)=F(N)*6+K 215 FOR I=0 TO 5:IF B(I)&lt;&gt;0 THEN 230 220 NEXT I 225 RETURN 230 FOR I=7 TO 12:IF B(I)&lt;&gt;0 THEN E=1:RETURN 235 GOTO 220 这就是除流量控制之外的所有内容: 200 GOSUB …

2
学习Scala,感到灰心[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我来自Java背景,试图学习Scala。目前,我感到非常不知所措,使用Scala似乎需要学习的东西更多,做同样事情的方法也很多。 我想知道是否有人对从何入手提出任何建议,以及他们花多长时间才能感到该语言相当称职? 甚至for循环理解之类的小功能似乎都非常强大,但这只是您需要记住的另一种语法!
9 java  scala 

4
垂直用户故事的缺点
在敏捷方法是组织工作纳入垂直用户故事,并提供有重点,但功能完备的片从应用的终端到终端。因为这是构建软件的新方法,所以我读了很多关于为什么它比水平故事更好的文献,但是我对这种方法的弊端知之甚少。 我已经喝了敏捷的冷却剂,我也同意垂直切片蛋糕比水平切片有很多优势。以下是我可以提出的一些缺点: 开发人员起初可能会较慢地实现功能,因为他/她必须了解开发故事所需的所有技术(UI +服务层+数据访问+网络等)。 总体架构设计(成为应用程序的骨干)并不能完全满足这一要求(但是有些人可能会认为开发/更改总体架构是用户故事的一部分) 垂直切片用户故事还有哪些缺点? 注意:我现在要问这个问题的原因是因为我将试图说服团队开始以“垂直方式”撰写故事,并且我希望能够提前提出可能的取舍,以便他们获胜。当他们面对弊端时,不要认为这种方法是失败的。

3
当编程语言设计人员决定取模运算结果采用什么符号时,使用什么原理?
通过走出去模运算(同时探索之间的区别我走进林荫道rem和mod我碰上了): 在数学中,模运算的结果是欧几里得除法的余数。但是,其他约定也是可能的。计算机和计算器具有多种存储和表示数字的方式;因此,它们对模运算的定义取决于编程语言和/或底层硬件。 问题: 通过欧几里得除法运算,我发现此运算的余数始终为正(或0)。底层计算机硬件的哪些限制迫使编程语言设计师与数学有所不同? 每种编程语言都有其预定义或未定义的规则,根据这些规则,取模运算的结果将得到其符号。制定这些规则时采用什么理由?并且如果底层硬件是问题所在,那么规则是否不应该根据编程语言而独立于编程语言而改变?

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.