记一次开发过程中的思维转换

简介:

一、问题:
有一个同事接到一个新的开发任务,需要把spring框架改成springboot,但是他遇到了一个久久不能解决的问题。
原本的项目中有一个类似这样的类:


public class MyTest{
private String name;
public String getName(){
     return name;
}
public void setName(String name){
    if(name!=null&&name.length &lt= 0){
            this.name="defName";
    }
}

}

这是一个比较常规的拥有get、set方法的类,稍微特殊的是这个set方法里边有一定的逻辑处理。
之前的项目中,与这个类配套的是一个spring的xml配置文件,在配置文件中给这个类实例化,配置文件大概如下:


&ltbean id="myTest" class="com.test.MyTest">
&ltproperty name="name">
      &ltvalue>${name}</value>
&lt/property>

&lt/bean>


然后就是在properties文件中给name设置了具体的值。
那么他把spring改成springboot的打算,是去掉xml中的配置,直接用注解的方式给name属性赋值。
问题就在于,如果直接在name属性上加@value注解,就丢失了原本set方法中的逻辑处理,如果保留set方法中的逻辑处理,就无法成功从properties文件中获取需要的值。

二、思路转换
然后,他找到我一起讨论这个问题,而我实际上也不知道怎么两者兼容。
但是,经过思考和分析,我觉得在这件事上,并不是说必须要保证上述两者的兼容。
在这里,我们set的目的只是为了给name赋予一个正确的、我们想看到的值,重要的并不是set,而是get,因为get到的内容才是后边我们要拿来用的。
那么很显然我们就可以转换一下思路,并不是说一定要那段逻辑在set方法中,完全可以换到get中写。
虽然逻辑实现的地点变了,但是最终拿到的内容并没有区别,也一样实现了应有的功能。

三、感想
软件开发的过程,就是一个设计的过程,设计虽说有一些规律可循,但细节上并不是一成不变。
很多时候直线走不通,完全可以绕一点路,或许到达目的地的时间能比直线更快。
软件设计的目的并不在于软件设计的本身,而是用软件来解决实际问题,如果一味纠结与代码本身,而不是要解决的实际问题,可能很容易陷入一个死胡同,严重拉低工作的效率。

目录
相关文章
|
5月前
|
Linux 测试技术 C++
【代码实践】编码精粹:打造高效与可维护的代码艺术
【代码实践】编码精粹:打造高效与可维护的代码艺术
109 0
|
Web App开发 编解码 监控
防御性设计和开发
“防御性编程(Defensive programming)是防御式设计的一种具体体现,它是为了保证,对程序的不可预见的使用,不会造成程序功能上的损坏。它可以被看作是为了减少或消除墨菲定律效力的想法。”
813 0
防御性设计和开发
|
2月前
|
测试技术 UED
质量标准化实践问题之测试策略的本质如何解决
质量标准化实践问题之测试策略的本质如何解决
13 2
|
2月前
|
设计模式 开发者
代码复用的重要性及最佳实践
【8月更文挑战第13天】代码复用是软件开发中不可或缺的一部分。通过复用现有的、经过验证的代码,开发者可以加速开发过程、提高软件质量、降低错误率并促进团队协作。为了实现代码复用,开发者需要遵循模块化设计原则、利用现有的库和框架、封装和抽象代码、遵循设计模式以及编写可复用的代码。同时,他们还需要定期维护和更新复用代码以确保其持续有效。
|
4月前
|
敏捷开发 安全 测试技术
敏捷项目管理的原则、好处、工具、提示以及何时进行转换
敏捷项目管理的原则、好处、工具、提示以及何时进行转换
|
5月前
|
前端开发 JavaScript 测试技术
修改代码的艺术——如何高效开发、维护和重构复杂的现有系统
这篇文章回忆了作者在高三时期通过努力进入班级前列的故事,并引申到软件开发领域。作者指出,开发工作往往被认为困难重重,但实际上,通过良好的方法、设计和工具,可以提高开发效率和享受编程带来的成就感。文章以最近完成的一个复杂核心需求为例,详细介绍了如何分析、设计和实现这个需求,包括采用领域驱动设计(DDD)理念,数据库字段变更,代码实现,自动化单元测试,重构和代码维护的重要性。最后,作者推荐了几本关于软件开发的经典书籍,并鼓励开发者不断提升自己,以更好地应对挑战。
|
5月前
|
存储 安全 Java
12条通用编程原则✨全面提升Java编码规范性、可读性及性能表现
12条通用编程原则✨全面提升Java编码规范性、可读性及性能表现
|
5月前
质量内建中的精益思想
质量内建中的精益思想
|
11月前
|
存储
十种高级的代码书写方式,提高代码质量和工作效率
十种高级的代码书写方式,提高代码质量和工作效率
61 0
|
IDE 测试技术 开发工具
ALPD学习笔记 4:高效高质量编码,测试先行和意图导向的编程
# 由外而内:发现和形成设计职责 设计是一种信息不完全情况下的决策:从最开始我们并不知道要用什么数据结构可能是最好的,如果一开始就从底层数据结构开始写,需要耗费更多脑力。 我们首先应该写确定的功能性代码,一般来说外层功能相对确定,但是底层数据结构我们不一定知道。 延迟决策到最后时刻关键信息经常会自然显现 由外而内的变成允许暂时忽略不重要的细节,“意图导向编程 Programming By Inte
223 0
ALPD学习笔记 4:高效高质量编码,测试先行和意图导向的编程