概述
最近做了影子设备项目(device shadow),就是建立设备模型,对真实设备进行映射。
本人主要负责设备注册, (使用 guava缓存),处理前台发送的mq 消息, 使用 OTS 进行保存,修改,更新
使用技术
- Java 回调,任何语言环境下的代码,调用方式有三种
- 同步,平常一般都是同步调用;
- 异步,如果一些操作比较耗时,可以开新的线程去做.
- 回调, 类A的a()方法调用类B的b()方法 类B的b()方法执行完毕主动调用类A的callback()方法
- 回调的核心就是回调方将本身即this传递给调用方,这样调用方就可以在调用完毕之后告诉回调方它想要知道的信息
Guava 不可变集合( Immutable):不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。
为什么要用immutable对象?immutable对象有以下的优点:
- 对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象
- 线程安全的:immutable对象在多线程下安全,没有竞态条件
- 不需要支持可变性, 可以尽量节省空间和时间的开销. 所有的不可变集合实现都比可变集合更加有效的利用内存
- 可以被使用为一个常量,并且期望在未来也是保持不变的
- immutable对象可以很自然地用作常量,因为它们天生就是不可变的对于immutable对象的运用来说,它是一个很好的防御编程(defensive programming)的技术实践。
dozer : 简单对象之间的 convert 使用 BeanUtil; 复杂对象之间的转化使用 dozer
数据库表设计 deviceInfo uk 加uk后,如果出现删除两次就无法删除的情况,可以删的时候把status置为 -id
日志: 日志分类, 可以根据不同的业务,把日志打印到不同的日志文件,方便排查问题
设计上外部一个对象 转成内部的一个核心对象后,我们就一直操作我们自己的这个对象,无论是持久化到db还是查询
心得:
- 写代码习惯不好.首先应该理清思路,一步一步需要干什么搞清楚; 可以写一个框架,然后把独立的每一步都抽成方法; 不要等到代码写了几百行了,看不下去了再抽方法。这其实是一种重复性的工作,没有效率。
- 培养业务的敏感性;面对一个需求的时候,应该想想还有哪些潜在的需求可以顺手写掉;自己写的东西是不是容易扩展,会不会对后续的工作有什么影响.毕竟软件行业是一个流动性很大的行业,要方便其他人维护和扩展应用。
- 这次做项目可以看到自己和别人还是有一些差距,但差距没有以前想象的那么遥不可及。时刻保持一个学习的心态,戒骄戒躁,赶上别人还是有可能的。
- 发现了很多类似的代码逻辑。这次组合数据持久化到ots的过程和上次云集持久化到mysql是类似的。基本上都是多个list转map,然后进行merge. Java 是一门技术,这就意味着它的一切都是有规律可循的, 并不是混沌的。掌握相关的规律,就会事半功倍.
- 应该对自己更加有信心!这是最重要的一点。
最后
以上就是呆萌咖啡为你收集整理的影子设备心得的全部内容,希望文章能够帮你解决影子设备心得所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复