草庐IT

java - 从 DAO 层向 Controller 抛出异常是好习惯吗?

我正在编写一个RESTapi。在我的DAO层中可能有两个异常,即Exception_X和Exception_Y。如果我在DAO层遇到异常Exception_X,我的Controller应该返回状态码200,如果Exception_Y那么401如果一切顺利,Controller应该返回201。现在我在想什么我会抛出遇到的异常,因为它是从DAO层通过服务层到Controller,在Controller的catchblock中我将返回响应。是否可以接受或是否有其他标准方式? 最佳答案 是的,这是一种可以接受的方式。但是,我建议不要使用tr

java - 使用空参数调用重载方法是一种好习惯吗?

这是一个关于编程最佳实践的问题,我不知道如何在标题中表达这个问题,抱歉,我们开始吧。我在管理器或Controller中有一个方法,是这样的:publicbooleanmyMethod(Param1param1);而且,由于应用程序发生了变化,我不得不像这样重新定义它,因为它调用了其他需要param2和param3的方法:publicbooleanmyMethod(Param1param1,Param2param2,Param3param3);现在我意识到带有3个参数的方法“总是”(现在,也许将来会有变化,我需要用非空参数调用它)将用param2=null和param3=null,所以在

养成15个好的代码习惯,让老大对你刮目相看

大家好,我是林三心,上一篇基础很好?总结了38个ES6-ES12的开发技巧,倒要看看你能拿几分?,为什么我要写那一篇文章呢?因为群里兄弟,或者其他兄弟,他们在问我问题时,我发现他们使用的语法还停留在ES5的阶段,所以我想总结一下我用过的ES6-ES12的语法,让大家了解一下基本使用,有不足之处,请多多包涵。今天,我写这篇文章,还是因为一些兄弟在问我问时,我发现他们的代码习惯貌似达不到合格水平,会写很多冗余代码,或者明明一行代码就能搞定的,却要写好几行代码。所以我总结了我开发中,我认为达到及格水平的个代码习惯。如果有不足之处,请多多指教。缘由我想写这篇,是因为看过太多不符合规范的代码,这是前几天

c# - 使用静态变量来存储全局的、不断变化的信息是一种好习惯吗?

使用静态变量来存储不同类所需的全局变化信息是否是一个好的OOP实践?与传递参数以便被调用的类可以访问它相反。 最佳答案 这不是一般一个好主意,不...它绝对可以简化一些事情,但它使测试更难(例如,意味着你不能并行运行测试)。某些方面(例如日志记录)通常是这样实现的,但我倾向于尽量不这样做。依赖注入(inject)让测试变得简单多。(当你需要将依赖项传递给类Foo只是为了将它传递给Bar,然后将它传递给Baz等时,这会变得很痛苦。我认为我们在依赖注入(inject)方面仍然不完全“那里”。我认为一些关于作用域/生命周期的更高级的东西作

java - 为简单功能创建内部类是一种好习惯吗?

对于简单的内部类存在一些不同的看法,所以我想知道对于什么是好的以及何时使用私有(private)内部类是否存在普遍共识。这是我找到的一个示例,我认为没有必要为其创建内部类。这是好/坏的做法?privatestaticclassInternalCounter{intcount;publicInternalTabManager(){count=0;}publicintincrement(){returncount++;}}请注意,在这种特殊情况下,一个实例保留在周围的类中以跟踪计数。 最佳答案 是的,在这种情况下,它看起来确实没有必要,

java - 绑定(bind)到 TypeLiteral 是 google guice 中的好习惯还是坏习惯

Googleguice使用newTypeLiteral>(){}克服我们不能使用C.class的事实.现在常见的有:bind(newTypeLiteral>(){}).to(MyCSubclassTypedToT.class);然而,想象一个不同的场景。我们有一个通用接口(interface),我们想要注入(inject)它,我们拥有的实现由一个通用类提供。Guice允许您这样做:bind(newTypeLiteral>(){}).to(newTypeLiteral>(){});另一种方法是像这样扩展MyGenericClass:MyTypedClassextendsMyGeneric

java - 使用包私有(private)方法以促进单元测试是一种好习惯吗?

有时我发现自己处于这样的情况下,如果我将某些方法的可见性从私有(private)更改为包私有(private),以便促进单元测试模拟、断言...,单元测试会更容易。一个例子就是这个假设我有一个包含4个属性X、Y、Z和R的对象A,其中X、Y和Z是集合,R是每个集合的不同元素之间的关系,例如关系将由元素组成X,Y的一个元素和Z的一个元素。对象A不允许直接访问X、Y、Z或R,相反它提供了丰富的API,允许您在X、Y和Z上创建新元素,也允许您将这些元素混合到新的R元素中。对于单元测试,拥有publicgetX()、publicgetY()、publicgetZ()和publicgetR()方法

SQL编写:十个在实践中养成的好习惯

写在前面写SQL是数据分析和数据库管理的重要技能之一。养成以下好习惯可以帮助你编写高效、可靠和易于维护的SQL语句:1.使用格式化和注释:在编写SQL查询时,使用适当的缩进和换行来增加可读性。添加注释来解释查询的目的、步骤或任何重要的决策。这将使你和其他人更容易理解和修改代码。--查询所有订单的订单号和购买日期SELECTorder_id,purchase_dateFROMorders;2.遵循统一的命名规范:使用有意义且一致的命名规范来命名表、列和其他数据库对象。命名应该清晰、简洁,并且易于理解。遵循一个命名约定可以帮助你和团队成员更好地理解和维护代码。--例如,使用下划线分隔单词,并在表名

java - 编写返回 void 的方法是一种好习惯吗?

我正在开发一个用java编码的复杂企业应用程序,该应用程序由复杂的对象组合驱动。例如:在特定场景中,要执行操作,流程如下:login()->Followedbydefinedsequenceof10to20methodcallsindifferentclasses->Followedbyalogout()在框架内,包括登录、注销在内的几乎所有操作以及10到20个方法调用中的许多操作都没有返回类型。任何错误行为都由框架处理。说,在登录publicvoidlogin(){try{//loginactions//chainedsequenceofcalls}catch(){//framewo

java - 在方法开始时使用 return 是不好的编码习惯吗?

我发现自己在使用以下练习,但每次使用它时我内心都会有些畏缩。基本上,这是对参数的先决条件测试,以确定是否应该完成实际工作。publicstaticvoiddoSomething(Listthings){if(things==null||things.size() 最佳答案 最好尽早返回。这样可以执行和评估最少量的代码。不运行的代码不可能出错。此外,它使函数更易于阅读,因为您不必处理所有不再适用的情况。比较下面的代码privateDatesomeMethod(Booleantest){Dateresult;if(null==test)