软件工程

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

2
如何组织重复代码?
我的团队创建了很多一次性的Web表单。这些表格中的大多数仅发送电子邮件,而一些表格进行简单的数据库写入。 现在,每种形式都存在于Visual Studio Team Foundation Server中自己的单独解决方案中。这意味着我们有将近100个不同的表单项目,这使得保持一致性变得很困难。每种形式都是唯一的,因为字段是不同的,但是它们几乎都做相同的事情。 我希望以某种方式压缩这些内容,并且我确实可以使用一些指导。 我是否应该尝试在其中包含所有表单项目的情况下创建一个解决方案文件?尽管我可以创建一些帮助程序类来帮助进行电子邮件格式化等,但是没有很多管道代码。能够在项目之间共享CSS,JavaScript,控件和图像将非常有帮助。 既然我们是Microsoft商店,那么针对这种特定情况,通过Webforms使用MVC之类的东西有什么明显的好处?整个MVC的概念使我受宠若惊,但是如果该表格仅发送电子邮件,是否可以帮助我更有效地整理15字段数据收集表格?我想到的表单具有很多内置的逻辑,可以根据用户的响应显示和隐藏字段,并且似乎使用MVC和jQuery的效率较低。

6
您如何衡量软件的价值?
敏捷性的原则之一是您应该测量工作软件: 工作软件是进度的主要衡量标准-敏捷的12条原则 事实是,虽然我可以根据完成的故事,被压缩的错误或缺陷报告的数量减少来衡量我的软件,但我仍然坚持如何衡量我的软件的价值。 如果我以迈克·科恩(Mike Cohn)为例,他帮助SalesForce.com为客户带来的价值比上一年增加了500%*,我该如何衡量这一增长?如何衡量我现在的位置? 他使用的其他指标是功能数量和每个开发人员的功能数量。如果我的待办事项井井有条,而且故事被“功能”所截断,那么我可以解决这个问题,但是我们只是从敏捷开始,所以我需要一些方法来确定我们现在提供的价值,然后在六个月内使用类似的指标来查看我们是否增加了产量。 我听说过通过增加收入来衡量软件的价值,或者通过提高客户满意度来衡量软件的价值(但是您如何衡量?),但是这些增长可以归因于公司的任何东西(销售,会计,支持),而不是直接涉及我部门正在做的工作。 那么,你们如何衡量软件的价值以及您是如何开始的呢? * 敏捷的成功 -Mike Cohn
11 agile  scrum 

4
非基于英语的编程语言
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 在安蒂奥基亚大学哥伦比亚教授在介绍编程课程词曲,基于西班牙,面向对象的.NET语言。目的是在介绍基于英语的主流语言之前,以学生的母语教授编程概念。 还有许多其他基于非英语的编程语言,并且Stack Overflow中甚至还有一个相关的问题。关于这些语言,我有几个问题: 该网站上的任何人都学会了使用非英语语言进行编程吗?如果是这样,过渡到第一种基于英语的语言有多困难? 是否有任何基于研究的证据表明,非英语使用者使用带有母语的语言而不是基于英语的语言来学习编程更快/更好。

7
在项目结局严重后寻找工作[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 8年前关闭。 我的公司刚刚取消了我正在从事的项目,因为他们对项目的执行情况不满意。我对此感到非常失望,因为我认为该项目进展顺利,并且我已经解释了由于时间限制该软件的局限性。我已经决定现在寻找新工作,但是我担心项目结局严重会给我带来一些困难。关于如何最大程度地减少这给我带来的困扰而又不诚实的任何建议?
11 failure 

4
嵌套类:有用的工具还是违反封装的?
因此,对于是否应使用这些功能,我仍然持保留态度。 我感到它极度违反了封装,但是我发现我可以在某种程度上实现封装,同时在代码中获得更大的灵活性。 以前的Java / Swing项目在某种程度上使用了嵌套类,但是现在我进入了C#中的其他项目,因此避免使用它们。 您如何看待嵌套类?

7
耦合。最佳实务
从这个线程开始,我开始 单例模式 这让我开始思考班级之间的耦合程度以及如何最好地实现松散耦合。请记住,我是一名新程序员(我的第一份工作开始已经四个月了),这确实是我对此的首要考虑,并且非常热衷于理解这一概念。 那么,究竟是松耦合还是重耦合呢?在当前(也是第一个项目)中,我正在研究ac#winforms项目,该项目的GUI部分创建对象和对其事件的订阅,当它们被触发时,GUI创建另一个对象(在本示例中为datagridview(一个类是我创建的,它包装了一个标准的datagridview并添加了其他功能)并将其附加到GUI。这是不好的结合还是好的? 我真的不想养成不良习惯并开始编写不好的代码,因此,我感谢您的答复。

3
在项目的初始阶段应编写什么样的用户故事?
刚开始一个项目时,您将一无所有--没有UI,没有数据层,之间也没有任何东西。因此,像“用户应该能够查看其foos”这样的单一故事将需要大量工作。一旦有了这个故事,诸如“用户应该能够编辑其foos”这样的故事就更现实了,但是第一个故事将涉及设置UI层,表示逻辑层,域逻辑层和数据访问层。 这与我的“任务”概念不符:对我来说,我宁愿有以下“任务”之类的东西: 在HTML中显示源自JavaScript对象的用户foo的伪数据。 设置表示逻辑层,并将JavaScript对象连接到该逻辑层。 设置域逻辑层,并将表示逻辑层连接到该域。 设置数据访问层,并将域逻辑层连接到该数据访问层。 所有这些都属于上面的单个“故事”吗?如果是这样,我觉得故事在项目的早期并不是一个非常有用的框架。如果是这样,那很好--我只是想确保我没有错过任何东西,因为我真的在尽我所能尝试学习这种敏捷方法。

3
Firefox 4已禁用HTML Web套接字,是否有替代方法?
我一直在检查HTML中一些最新的多人游戏引擎,它们都支持多用户游戏(非常好)-我相信所有这些引擎都使用Web套接字进行通信。 因此,由于协议级别的安全性问题,我们决定从beta 8开始禁用Firefox 4中对WebSocket的支持。Firefox Beta 7支持-76版本的协议,与Chrome和Safari包含的版本相同。Firefox 4的Beta 8将删除该支持。Opera的Anne van Kesteren还宣布Opera将放弃对Websocket的支持。我们相信其他浏览器开发人员也会效仿。 来源:在FireFox 4中禁用的Websockets 我刚刚遇到了上面的问题,所以Firefox 4或Opera中没有套接字....那太大了。是否有人知道替代产品还是Chrome?还是我们需要坐下来等主要浏览器的下一个版本。 更多信息:Rocket Engine似乎可以与包括IE8(http://rocketpack.fi/engine/)在内的所有浏览器一起使用,它将用作通信方式吗?
11 html5  sockets 

12
多个人如何在一个网站上工作?
我最近看了《社交网络》,这可能是一个愚蠢的问题,但是,多人如何在一个网站上工作呢?我的意思是,如果他们在同一页面上工作,那怎么可能?而且,是否可以将文件上传到在线主机而不进行直播?
11 hosting 

4
开源赏金
我在纸上有一个R(开放源统计数据包)库。我已经开始对不同的功能进行编码,但是我意识到我没有足够的时间在合理的时间内完成此操作。我知道我可以将代码放在仓库中,并呼吁其他人来帮助填补空白。但是我想激励一下。我正在考虑对$ 5- $ 20的每个功能进行奖励。对于开发人员编写每个功能,$ 20的准时回报是不可能的。但是我认为现金(或亚马逊礼券)将是人们实际从事该项目的一项发明。这将使我对我最感兴趣的功能有更多的赏识。 我有几个与此有关的问题: 好主意? 我要使开发工作更快或更慢?我已经阅读了Predictable Irrational,并且担心通过为功能提供可观的报酬,实际上可能会阻碍开发人员。 是否有专门从事此类活动的网站?您可以根据个人经验推荐一个吗? 您会建议一种完全不同的方法吗?我愿意接受想法!


8
如何保持一支训练有素的团队?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我目前正在指导由小型软件公司组成的4人初级开发小组。他们非常聪明,经常通过高质量的工作来完成任务,但我确信他们仍然可以做得更好-实际上,我对自己的感觉完全相同:)-。此外,其中一些比其他的更“初级”。 因此,除了他们在日常工作中获得的经验之外,我想找到一种有趣的方法来提高其CS技能(设计,编码,测试,算法...)。例如,我正在考虑设置不超过2个小时的每周课程,在这里我们可以聚在一起进行富有挑战性的CS练习。有点像编码道场。 我确定团队会喜欢的,但这真的是个好主意吗?在专业环境下会高效吗?他们已经花了整整一周的时间来编码,所以我应该如何组织它们以便使他们获得一些好处? 欢迎任何反馈!
11 learning  team  skills 

4
使用哪个基于Java的Web ui框架?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 便门 请点击 GWT 瓦丹 据我了解,这些框架都允许使用Java创建GUI组件(具有其所有优点),而无需执行大量的html / javascript。 除了考虑技术因素之外,我还想知道是否有任何一种正在迅速普及。是一个特定的框架正在成为包的领导者,这也会影响决策。

3
最佳实践:数据库应用程序编程模式
到目前为止,我已经写了许多数据库(MySQL)Web应用程序,但是我始终认为我的结构有点笨拙。我想改善我使用的编程/设计模式,希望在这里提供一些建议。特别是,我找不到一种可以补充OOP方法的结构,该方法封装了数据库的实现(模式)。一世 认为我的问题可以用例子来最好地解释。我现在使用2种方法说我有一个发票对象/类: 首先是使用静态成员函数 class Invoice { int id; string ref; int customer_id; date created; date due; static id create(); static bool update(id, field1, field2, ...); static bool delete(id); static bool get(id); }; 第二种方法是将所有内容放入数据库对象中: class Database extends ProprietaryDBConnecter, Singleton { id createInvoice(); bool updateInvoice(id, field1, field2, ...); bool deleteInvoice(id); bool getInvoice(id); …
11 database 

4
有什么好的方法可以清理旧项目?
我有大约2年前写的一些软件,并且需要添加一些功能。我已经意识到这是在一个烂摊子,和我有冲动走动的一切,收拾一下,等我读过的软件乔尔约不重新启动的文章,让最新最好的方式前进?

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.