开发者社区> 涂宗勋> 正文

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

简介:
+关注继续查看

一、问题:
有一个同事接到一个新的开发任务,需要把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中写。
虽然逻辑实现的地点变了,但是最终拿到的内容并没有区别,也一样实现了应有的功能。

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
将现实问题转换为编程问题
考虑到一共五个人,直接模拟推理有些太难,计算机最擅长的遍历此时就会派上用场,将每个人从第1到第5来一遍,则一共会产生5^5种可能性,这个只需要一个5层循环即可搞定。但是这样会导致一些不期望出现的结果出现,因为并没有查重,所以会出现两个人抢名次的情况,也就是两个人或者更多的人名次相同的情况,例如两个第二,三个第三这样的,所以即使满足了条件,也要查看一下五个人的名次是否重复,这个交给一个函数来执行,只要五个人名次并列,那就返回0,否则返回1即可。有了这个思路,就能完成以下代码。
9 0
前端工程化中重要概念之检验/格式化/规范化
前端工程化中检验/格式化/规范化的重要性及其工具介绍 在前端开发中,代码的质量非常重要。为了确保代码的质量,开发者需要对代码进行检验、格式化和规范化。下面介绍一些在前端工程化中常用的检验/格式化/规范化工具及其作用:
11 0
ALPD学习笔记 4:高效高质量编码,测试先行和意图导向的编程
# 由外而内:发现和形成设计职责 设计是一种信息不完全情况下的决策:从最开始我们并不知道要用什么数据结构可能是最好的,如果一开始就从底层数据结构开始写,需要耗费更多脑力。 我们首先应该写确定的功能性代码,一般来说外层功能相对确定,但是底层数据结构我们不一定知道。 延迟决策到最后时刻关键信息经常会自然显现 由外而内的变成允许暂时忽略不重要的细节,“意图导向编程 Programming By Inte
93 0
框架设计思维符合语义即可使用,而不用关心底层的实现
框架设计思维符合语义即可使用,而不用关心底层的实现
58 0
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
77 0
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
98 0
如何用“心流”提升编码工作效率?
“心流”是人在做一件事情时投入到忘我的一种精神状态,常见于运动员、艺术家和科研人员身上。 “心流”如何影响工作?我们可否解决“心流”带来的相关问题?
194 0
重构-改善既有代码的设计--重构,第一个案例
什么是重构 在不改变代码外在行为的前提下,对代码做出修改以改进程序内部的结构简单地说就是在代码写好后改进它的设计 谁该阅读这本书 专业程序员(能够提高你的代码质量) 资深设计师和架构规划师(理解为什么需要重构,哪里需要重构) 阅读技巧 带着疑问去读: 如果你想要知道重构是什么。
904 0
+关注
涂宗勋
认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
《前端智能化实践》——逻辑代码生成
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多