影落离风

The shadow falls away from the wind

0%

如何写出别人难以维护的代码呢?

各位看官且听我娓娓道来。。。

注意:以下图示代码或言语仅代表个人看法,可能会引起感官不适,望注意。

ps. 以下图示代码可能为本人、现任同事、或前任同事所写;大家相互学习,共同进步!

  1. 将很久不用的代码注释起来,最好注释上百行

    阅读全文 »

前言

需求:当新用户注册时,需要给用户发放各种礼品、积分、短信、邀请人奖励等。

常见写法

  1. 直接将上述后续操作堆到注册方法里,搞的注册方法又臭又长;当有其他注册如app注册、小程序注册、第三方注册时,然后将同样的发放逻辑复制的到处都是,可读性、维护性极差

  2. 优化:可以将发放逻辑抽成一个方法,然后供调用,这个应该是最常用的;

    但随着业务的扩张,可能不止普通用户、还有承包商、供应商等。可能都已经是不同的表了,他们也有不同的发放逻辑。

    然后发放逻辑建好几个方法,将之前的逻辑复制过去改一改;最后这个发放逻辑就会变得很臃肿难以维护。

  3. 再优化:可以套用事件驱动模式肢解该逻辑,当然也可以不使用。一切都要从业务出发,业务不复杂就完全没必要使用。因为不管用到什么设计模式都会建好多个类,虽然在单个类里维护性很强,但找起来可能不方便、整体使用还是不如直接调用方便。

    就是说不能为了使用设计模式而使用设计模式

    阅读全文 »

步骤

  1. 调试模式:打开浏览器按F12进入调试模式
  2. 命令窗口:按ctrl+shift+p打开命令窗口
  3. 局部截图:命令窗口输入“Capture full size screenshot ”,选取要截的图
  4. 当前网页截图:命令窗口输入“Capture full size screenshot ”

前言

在平时开发中,经常会遇到很多业务都有相同的处理逻辑;但是具体的处理规则又各不相同。

那我们就可以把相同的方法提取出来,规则可由调用者自己编写。

其实说到这里,用Thread跑过线程的同学就知道了;run方法里编写自己要用的业务,最后调用start方法

最简单的线程使用示例

1
2
3
4
5
6
7
new Thread(new Runnable() {
@Override
public void run() {
// 编写自己的业务
System.out.println("线程测试");
}
}).start();

但其实在阿里规约中不建议这样显式创建线程,建议使用线程池创建;

阅读全文 »