软件工程

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

6
从2000年代开始的软件解决方案,我应该尝试修补还是重新制作整个产品吗?
我被派去讨论某个公司当前正在使用的系统以及应该如何处理。 该公司生产各种纸箱展示架。开发该系统是为了跟踪客户,订单和价格。自从创建系统以来,发生了很多事情,并且正如经理所描述的那样,系统现在已“ 锁定 ”和“ 有问题 ”,我将其翻译为“非动态”和“不稳定”。 有关系统的一些信息 它是在2000年左右开发的 相当小的系统,2-5个用户,6个表格,〜8个表,平均数据量 建立在早期的Visual Basic上,是通过拖放设计创建的表单。界面基本上只是一个带有菜单和某些形式的窗口 使用MSSQL数据库(SQL2005服务器)存储数据并使用ODBC驱动程序进行查询,在此系统之前,数据是从excel迁移而来,在excel之前,它是用手工和纸来处理,计算和编写的 用户在Microsoft XP环境(及更高版本)中工作 他们的主要问题是他们无法正确地调整和计算价格,无法添加新的纸箱类型等,因为它们无法(或者更确切地说,他们不知道如何)触摸服务器上的数据。 我建议了3种可能的解决方案 尝试修补当前系统 创建一个全新的界面(最好是类似的环境,基于VB.net或VB) 考虑到它是一个很小的系统,请将其重新带到Excel解决方案中 可能还有更多选择,但是这些是我能想到的。 我的问题是 我应该推荐什么,为什么? 这些替代方案的利弊是什么? 还有其他(可能更好)的选择吗?

7
如何应对频繁的需求变更?
我目前在我的工作场所中正面临压力很大(我认为)的情况。 我们已经开始开发新项目,获得一些需求,实施它,然后向您展示可以称为“业务顾问”的人(知道业务需求但不会使用该程序的人)。该人员应该从客户的角度评估应用程序,进行测试等。 以下是“过程”的外观: 商业顾问在晚上与我的老板在Windows Messenger上进行一两个小时的交谈 第二天,我收到包含该对话副本的电子邮件。我应该从中选择任务,检查报告的错误(通常不是错误,只是测试不善,忘记了过去的机构) 我实施变更,实施被接受,然后一两个星期后,事实证明他们不想要他们(他们与一些潜在客户进行了5分钟的交谈,他提出了修改建议)-我必须进行新的变更 不要误会我的意思,我知道有时候需求会改变。让我不高兴的是,这种变化在我的工作场所发生的频率如何,而“管理”的难易程度是两个因素提出了新的要求,或者有时是对现有功能的根本性更改。 同时,我们在紧迫的期限内进行工作,我给人留下的印象是,与其使用我们的软件,不如继续前进。 我寻求您的建议如何处理这种情况?这是正常情况,我对此很敏感吗?


5
是否有证据表明,远程开发人员的生产力低于现场工作?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 因此,几天前我在这里与我一起工作的一个人交谈,他们抱怨说,由于生产力下降,他们的公司不再允许工人进行远程工作。作为一个听说过此借口的人,我在寻找远程机会时只为现场人员提供了理由,我想知道是否有任何经验证据完全证实了这一点,还是我和我在行业中认识的其他人被告知了一个故事。

7
如果我的LOC /天比率过高,是否应该打扰我?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我目前正在从事一个独立项目,因此我没有进行整个人工测试或外部代码审查的全部精力–但是,我在当前代码中看不到任何困难的错误(我已将其修复,因为我看到了这些错误) ,而且在大多数情况下,它们只是错误的字段名称等,您需要在一两分钟之内解决的问题),并且在实现任何功能之前,我会先进行测试,然后再进行推送。最近,我的LOC号码每天大约为400(根据记录,它是C#),我不仅在实现新系统,还重写了我已经写的东西并修复了一些错误。 我应该打扰吗?这是否是我需要停止并查看我到目前为止一直在写的所有代码并对其进行重构的标志?
9 c#  refactoring 

5
使用新代码管理新团队的提示/技巧
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 在一个新团队中,您如何处理自己?在这个团队中,您是最高级的开发人员,而团队中的其他大多数人都比您小很多。团队之前的任务是其他人(包括您在内)在他们的职业生涯中没有完成的。 管理层坚持要提高整个团队的工作效率,作为高级开发人员,您有责任。 在这种情况下胜出的任何技巧?显然,整个团队需要时间来学习,我们不要忘记团队的新成员。但是,截止日期也要提前...

3
我应该在JAX-RS @PathParam中使用Date类型吗?
这就是我正在考虑使用Jersey在JEE Glassfish服务器上执行的操作。 @GET @Path("/{name}/{date}") public String getMessages(@PathParam("name") String name, @PathParam("date") Date date) 我喜欢能够告诉使用RESTful Web服务的人们“这里的日期是Java中与Date类一起使用的任何东西”的想法。从他们可以仅查看Date规范的角度来看,这非常简单,并且他们已经有了可以测试的工作模型。 我担心的问题是,当执行此操作时,当Date()不喜欢其在构造函​​数中获得的内容时,JAX-RS并不是很好。由于Date()如果无法解析给出的内容,则会引发错误(例如,如果您将字符串“ today”(而不是实际日期)传递给它),那么JEE服务器将返回404错误。 这是一个好习惯吗?有我没有想到的更好的方法吗?

6
如何作为.NET开发人员开发业务线平板电脑应用程序?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我公司在.NET开发方面有丰富的经验,并且在ERP系统中是我们的产品之一。最近,一位客户问我们是否可以为该系统提供平板电脑界面,即允许客户查看产品信息并在平板电脑上创建订单的软件。 当然,我们不为在此项目上投入大量时间和金钱来学习Objective-C,购买Mac开发工作站,向Apple付费等想法而感到兴奋(我们也许可以出售该应用程序之后又吸引了一些其他客户,但市场很小,因为它只会对我们ERP系统的现有客户有用)。 那么,我们该怎么办?据我所知,我们有以下选择: 编写一个“ 普通的旧版Windows应用程序 ”(WPF),然后在Windows 7平板电脑上运行它,例如Samsung Slate或Acer Iconia。 缺点:运行时间短的重型,昂贵设备(与“真实”平板电脑相比)。 等待基于Windows 8 ARM的平板电脑并编写Metro(WinRT)应用程序。 缺点:至少等待一年;尚不清楚Windows 8 ARM是否将不通过应用商店而支持安装自定义B2B应用。 在Android上使用Mono,并在Android上编写.NET应用。 缺点:另一个UI库(与WPF和Silverlight不同);一些提供商不允许侧面加载应用程序。 到目前为止,选项1和3似乎是最现实的。我是否错过任何明显的缺点或优势?我还没有考虑其他选择吗?您是否遇到过类似情况,并且(成功)选择了一个特定选项?

1
为什么Java的Iterator和ListIterator指向元素之间?
ListIterator的Javadoc说: A ListIterator没有当前元素;它的光标位置始终位于调用返回previous()的元素和调用返回的元素之间next()。 为什么Java的ListIterator实现指向元素之间而不是当前元素?看来,这使得客户端代码的可读性,当它必须反复调用getNext(),getPrevious(),所以我认为必须有一个很好的理由选择。 作为一个方面说明,我只是写了一个小图书馆称为peekable-ArrayList的扩展ArrayList,Iterator以及ListIterator提供一个peekAtNext()和peekAtPrevious()类似的方法来实现: @Override public synchronized T peekAtNext() { T t = next(); previous(); return t; }
9 java  iterator 

7
在家托管网站[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 8年前关闭。 如果我想在家中托管一个网站,我会购买一个域名。然后,我从ISP获得了一个静态IP。接下来,我将其指向我的家庭系统的IP地址。我什至可以使用系统中安装的SQL Server,而不必担心大小。我在这里不是在谈论成堆的服务器。仅一台服务器。 我想知道它是否那么容易,为什么不这样做呢?我在这里缺少什么吗?我说的是中等简单的网站。但这有关系吗?


6
我应该在URL中使用标题大小写吗?
我们目前正在确定具有多个Web应用程序的网站上的一致命名约定。从历史上看,我一直倡导“小写所有字母!” 创建网址时: http://example.com/mysystem/account/view/1551 但是,在过去的一两年中,特别是自从我开始使用ASP.NET MVC并开始处理基于REST的URL以来,我一直喜欢将URL中每个节/单词的首字母大写更容易阅读(恕我直言)。 http://example.com/MySystem/Account/View/1551 我们不会处于人们需要阅读或能够理解URL的情况,因此这本身不是驱动程序。我们追求的主要目标是一种合理且有意义的一致方法。 是否有任何标准声明一种方法或另一种方法是好的,或者我们可能会遇到(至少现实地是现代的)设置会优先选择另一种设置的问题?目前对此辩论的普遍共识是什么?


6
就我而言,MongoDB是正确的选择吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 我将在Rails中构建我的第一个真实项目,该项目包含一个由3个主要部分组成的网络应用程序: 不使用数据库的静态部分 用户注册部分将需要一个数据库,我可以使用MySQL,因为每个用户的行将具有相同的字段 用户可以在其中创建,组织,编辑...项目的“应用”,并与其他用户共享 将有几种项目类型,每种类型都有不同的选项,例如,我可能有带有以下选项的“视频”项目: ID 用户身份 collection_id 标题 平台(如果嵌入式) 网址(如果已嵌入) 文件名(如果托管在我的应用程序中) 文件大小(我的应用程序上托管的ID) 和“地图”项: ID 用户身份 collection_id 标题 平台(谷歌地图,必应地图...) 位置 网址 地图尺寸 对于用户,我可能会使用MySQL作为项目,因此MongoDB的灵活性可能会很有用,因为每个项目可能需要与另一个项目不同的选项 到目前为止,我一直使用PHP和MySQL(始终在小型项目的共享主机上使用),而可扩展性对我来说是一个全新的词。 我有时间学习,但我希望能够在1个月内完成一些具体的工作。 我已经阅读了很多有关MongoDB和NoSQL以及RDMS和MySQL的文章,尝试之后,我不得不说我喜欢MongoDB的工作方式:没有表,没有行以及它的文档JSON像这样: 在我的情况下,您会推荐什么?为什么? 关于可伸缩性,MongoDB可能存在问题?如果是的话(以数据库大小计),是否会出现这些问题,从而使我的应用程序速度大大降低? 编辑:应用程序将如何工作 由于许多人问这是我希望该应用程序如何工作: 用户注册 他已登录 他创建了自己的第一个收藏系列,可以创建无限的物品 项目是各种类型的,每种类型需要在数据库中保存不同的数据,并且可以添加或修改项目的类型 用户可以在其中创建其他集合和项目。 因此,对于集合及其内部的项目,我们都有CRUD,每个集合/项目都针对特定的用户 MySQL的主要问题是它没有灵活的架构,有办法解决这个问题(解决方法?)? 考虑NoSQL时,我唯一的疑问就是联接,例如,鉴于某个特定的选择,我想检索与集合中id = user_id的User相关的数据 编辑:继续使用MySQL的想法 在“项目”表中创建带有可选设置的字段,每个设置均用|分隔。或其他符号。 然后,我将在某处保存每个项目的可选设置的结构,例如,“ notes”项目类型需要两个可选设置“ colour”和“ strange_setting”,当我从MySQL获取数据时,我会将可选设置的字段拆分为一个知道数组中的第一项是用于“颜色”的,依此类推。 …

7
我如何记录别人的过去工作?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我们处于一种糟糕的境地,因为过去的工作人员对关键业务系统所做的定制文档很少。对我们的ERP软件的Crystal Reports,数据库实体和专有配置/编程文件进行了许多更改。 当前文档通常读取如下内容: 该程序在开具发票之前运行。已知错误:无。 安装软件X后运行此程序。 更改了此报告中的以下字段:(未解释如何或为什么) 我们的IT部门很小,就ERP软件而言,大多数工作都集中在一个人上(现在就是我),所以这里没有其他人知道我们所做的一切。IT和会计部门了解点点滴滴(有时很有帮助),但这还不够。 另一个问题是我们的会计部门似乎认为我们有据可查。的确,我们保留了很多错误记录,但很少有解释(如果有的话)解决这些问题的方法。我们有数百篇论文解释错误,但是解释更改的文档(如上所示)几乎没有用。 当我不知道所做的全部工作时,如何记录过去的更改?我可以先记录一下我们所做的更改:文件,数据库表等等,这些是系统正常运行所必需的。我还可以记录我们做的 ; 运行报表时,为什么要告诉人们使用X报表/程序。但是当这些定制的东西之一出现问题时,我总是回到正题。 我如何主动为自己和他人记录这些内容?

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.