软件工程

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

4
如何开始学习J2EE,尤其是JPA [关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我正在尝试开始学习的J2EE一部分Java。但是我不知道从哪里开始。我与熟悉并且Core Java主要,我想学习JPA和基础知识Hibernate和Spring Framework。这样做的主要原因是我正在开发一个使用所有这些东西的项目。而且大多数代码是由一些资深人士开发的,我必须对此进行一些修改。所以基本上我需要了解他们的代码。 有人可以给我一种路线图,例如我需要事先知道哪些事情以及我应该按什么顺序去做?有参考资料,例如链接,书籍吗?

5
如何更好地检查代码?
首先,我坚信代码审查过程,始终希望其他人来审查我的代码。我的问题确实围绕着如何在为他人执行代码审查方面做得更好? 我知道要执行代码审查,您需要了解现有代码的工作方式以及本地标准是什么,我都非常了解这两个方面。我仍然觉得自己从来没有对其他人做过足够好的代码审查。我也知道某些人似乎比其他人做得更好,所以我想知道对于那些优秀的代码审阅者来说,您使用什么技术?

10
程序员是否拥有生产资料?
我当时听来奴性国家通过Hilare贝洛克今天上午琢磨我是否拥有生产资料,就像中世纪的农民; 在英格兰的寡头迫使他沦为奴役之后,他的后代就没有这样做。 生产资料是农奴所坐的耕地,尽管这不是合法的,但仍是非法的。 因此,作为程序员,在迄今为止还没有提供免费工具和资源的情况下,我们是否像其他工人一样,将生产工人重新称为工人阶级?如果有机会,一台中型PC和稳定的Internet连接,我们岂不是每个人都完全自给自足,而不仅仅是赚钱的人吗?
11 economics 

4
对数据对象使用依赖注入?
我只是在学习有关依赖项注入的知识,并且陷入了困境。依赖注入建议通过构造函数发送依赖类,但是我想知道对于数据对象是否需要这样做。由于单元可测试性是DI的主要优点之一,因此仅存储数据而不对任何过程进行数据测试的数据对象都会使DI成为不必要的复杂性层,或者它甚至仍然有助于显示依赖性与数据对象? Class DO{ DO(){ DataObject2List = new List<DO2>(); } public string Field1; public string Field2; public List<DO2> DataObject2List; } Class DO2{ public DateTime Date; public double Value; }

7
从设计的角度来看,记录的最佳实践是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我想将日志记录添加到当前正在处理的应用程序中。我之前添加了日志记录,这不是这里的问题。 但是从面向对象语言的设计角度来看,遵循OOP和模式的最佳记录实践是什么? 注意:我目前正在C#中执行此操作,因此显然欢迎使用C#中的示例。我也想看看Java和Ruby中的示例。 编辑:我正在使用log4net。我只是不知道插入它的最佳方法是什么。

5
使用Web的PHP开发时,Linux给我带来什么好处?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我将与一个朋友开始一个大型的PHP项目。这是我第一次使用PHP,我一直想知道是否应该尝试在Linux上进行开发,因为它是如此流行。 我曾经在Linux上有过一些经验,自从我知道vim以来,选择编辑器就很容易了(尽管我看过VS.PHP并让我从更改中退缩了)。 在开发PHP(或任何网络语言)时使用Linux是否有优势?

3
我如何估算一个开源项目的价值?
我正在尝试为公司节省成本的目标制定指标。为此,我想估计通过使用开源Web应用程序而不是从头开始构建或购买COTS解决方案所实现的节省。该过程的第一步是估算我们自己开发应用程序将花费多少。不幸的是,我不知道如何通过一个完整的估算过程来做到这一点。 由于我拥有源代码,因此我认为应该进行一些启发,以粗略估算出编写它所需的开发人员时间。不幸的是,我在该主题上的网络搜索大部分是关于代码行如何不是生产力或质量的良好指标的文章和意见。 到目前为止,我最好的解决方案是选择开发人员一天可以写的行,然后从那里算出开发人员的小时数。如果我采用这种方法,我希望有一些(最好是基于研究的)证据来支持我对开发人员生产力的主张。 我要做的一件事就是生成最终指标,我真正需要的只是降低开发人员的工作时间或项目成本。估算值越高,我的指标就越好,但是我宁愿估算技术无可比拟,而不是拥有很高的数值。 有没有更好的方法来估算开源项目的价值?

2
为什么将Oracle目录命名为/ u01 / u02等?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 4年前关闭。 我使用Oracle RDBMS已经有几年了,今天,第n次安装了Oracle RDBMS之后,我不禁要问,为什么要在/ u01,/ u02等中安装它? 当然,您可以将其安装在其他位置,但是由于某种未知的原因,此约定在所有地方都使用,并且在/ opt中,我还没有看到过任何认真的Oracle安装信息。 我错过了任何历史课吗?
11 oracle  unix 

1
如何为两个单独的开源项目贡献相同的源代码?
假设有两个类似的开源项目A和B,都在Apache Software License 2.0下获得许可。 我想为这两个项目做出改进(因为我不知道哪个项目管理得更好,并且我希望看到我的改进出现在这两个项目中)。 有没有一种方法可以以一种简单的方式对两个项目做出改进?(一种明显的方法是启动一个在Apache 2.0下获得许可的开源项目C,但这由于种种原因而令人头疼;我不想自己维护一个项目)

4
如何在PHP中以面向对象的方式传递数据?
我发现即使使用MVC框架(例如CodeIgniter),我也经常采用传递嵌套数组而不是对象的方法。 这不符合我对面向对象的理解。例如,如果我要将代码移植到Java,那么我就不会梦想像这样传递数组(或Vector,或其他任何东西)。 我想知道这是否是处理数据的适当方法。为什么有这样的原因在PHP中这样传递数组,或者为什么不使用对象呢?传递数据的最佳方法是什么?

5
何时使用MVC
我正在用PHP和MySQL后端构建一个站点。但是,我目前不使用任何类型的框架。我应该使用Model View Controller吗?

3
编写高质量的软件建议[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 最近,我一直在阅读有关软件项目的一些建议,但我对所看到的内容有些担心。我经常觉得提案很仓促和/或考虑不周。 提案很有可能不需要像一篮子水果,但是如果您要投身工作或寻求资金支持,则必须有一些准则来构成“体面的”提案。 我想知道是否有人知道编写软件建议的良好指导方针,或者是否可以将我指向书籍/网站等?

2
流程图和方法调用
我正在做一些流程图,想知道我是否正确地做到了这一点。本质上,我有几个方法调用,并且每个都分别流程图。但是,这些方法中的几种使方法调用某些信息,然后继续。请参阅以下示例: 我还有另外3个也调用GetQueue()的方法,我想知道自己是否正确表示了这一点。AddQueue()流在外观上看起来已损坏。 注意:我的流程图中所做的更改:
11 flowchart 

8
变量命名约定?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我刚刚开始使用ReSharper(用于C#),我有点喜欢它的代码气味查找器,它向我展示了我很久以前就打算解决的一些内容(主要是变量命名约定)。 这使我重新考虑了一些方法和实例变量的命名约定。ReSharper建议实例变量为小写字母并以下划线开头。有一阵子,我打算让我所有的局部变量都变成小写,但是下划线是必要的吗?你觉得舒服吗?我不喜欢这个约定,但是我还没有尝试过,您对此有何看法? 促使我重新评估的第二件事是我对GUI事件处理程序的命名约定。我通常使用ControlName_Action的VS标准,而我的控件通常使用匈牙利表示法(作为后缀,以帮助在代码中阐明用户可见的内容以及在处理类似命名的变量时不可见的内容),所以我最终得到OK_btn_Click( ),您对此有何看法?我应该屈从于ReSharper公约还是其他同样有效的选择?
11 c#  naming  resharper 

1
架构模块化服务应用程序
我正在考虑设计一种本质上是模块化的新解决方案,并希望创建一个支持该设计的结构,以便将来轻松进行扩展,明确分离关注点,按模块进行许可等。在网络上发现的关于模块化或组合应用程序的是以UI为中心的,专注于Silverlight,WPF等。就我而言,我正在开发WCF服务应用程序,该程序将由从事各种UI项目的其他开发人员使用。 背景 我的项目的目标是创建一个集中的业务/域逻辑源,以支持我们的多个当前重复流程,规则等的业务应用程序。虽然并非可以实现模块化的所有好处,但我想抓住建立一个可以利用我们可以利用的那些部分的框架的机会。 我通过查看服务应用程序公开的API来开始设计。显然,可以按照我所考虑的模块化路线来隔离服务。例如,我将拥有FinanceService,InventoryService,PersonnelService等服务,这些服务将我的服务操作分组以在API中提供高内聚性,同时保持较低的耦合度,因此客户端仅需使用与他们的应用程序相关的服务。 对于我来说,我可以为每个服务分别拥有单独的模块,例如MyApp.Finance,MyApp.Inventory,My.Personnel等。跨领域关注点和共享类型将在MyApp共享程序集中。从这里我有点束缚。 (哦,我应该提一下,我将使用IoC容器进行依赖注入来保持应用程序的松散耦合。我不会提及哪个容器,因为我不想打开Pandora的盒子!) 在MyApp.ServiceHost中,我将创建一个与每个模块相对应的服务宿主文件(.svc),例如FinanceService.svc。服务主机需要服务的名称,该名称与配置文件中的信息相对应,该配置文件包含定义服务合同的接口。然后,将IoC配置用于映射要使用的接口的具体实现。 1.服务层应该实现API并委托给模块,还是应该使模块自包含(因为它们包含与该模块相关的所有内容,包括服务实现)? 解决该问题的一种方法是拥有一个MyApp.Services“模块”,其中包含服务合同的实现。每个服务类都简单地委派给包含该操作的域逻辑的相应模块中的另一个类。例如,MyApp.Services中的FinanceService WCF类委托给另一个接口,该接口在Finance模块中实现以执行操作。例如,这将使我能够维护精简的服务外观并将实现“插入”到服务实现中,并且无需使模块担心WCF。 另一方面,也许每个模块都是独立的,因为它具有接口和实现。服务主机引用模块中的服务合同接口,并且IoC也配置为使用模块中的适当实现。这意味着除了添加新的.svc文件和IoC配置信息外,无需更改服务层即可添加新模块。 我正在考虑如果从标准WCF切换到RESTful服务接口,或者转而使用RIA服务之类的影响。如果每个模块都包含服务合同的实现,那么如果我更改服务技术或方法,则必须在每个模块中进行更改。但是,如果外观是其自己的模块,那么我只需要换出该部分即可进行更改。然后,这些模块将必须实现一组可能在共享程序集中定义的合同(接口)的不同集合??? 2.处理模块之间的资源共享和/或模块之间的依赖关系的最佳方法是什么? 以接收操作为例。乍一看,这很有意义,因为进货是库存功能,因此进入库存模块。但是,在财务方面,我们还需要生成收据并授权付款。 一方面,我希望使用某种类型的域事件/消息传递来传达操作。库存模块引发一个GoodsReceivedEvent,该事件由Financial模块处理以生成收据并启动付款过程。但是,这意味着财务模块需要了解已收到的库存项目。我可以简单地通过ID来引用它们,但是如果我需要收据的其他信息,例如名称和/或描述,单位成本等,该怎么办?每个模块都拥有自己的版本的清单项目以适应该模块的需求是否有意义?在这种情况下,财务模块在处理GoodsReceivedEvent时将必须执行自己的库存项目查找。 ... 我之所以使用此示例,是因为我已经与各种ERP系统进行了大量合作,并且知道它们是采用这种类型的模块化设计的-我只是不知道如何操作。我上面也没有明确提及,但是我更喜欢遵循域驱动设计原则来设计解决方案,并相信这种类型的模块化恰好适合该领域。 非常感谢我对此有所帮助。

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.