[置顶] 非技术经验

- “虽然我之前没做过xxx,不过用xxx应该很简单。”
- “没做过就别说很简单!”

目录

  • 思维碎片
  • 领导训xi话nk
  • 需求变化
  • 移交生产部署
    • 版本号
  • 日志
  • 单元测试
  • 类接口的设计
    • 1 参数列表的设计
    • 2 类的分类
    • 3 用return进行逻辑控制
    • 4 灵活地重写某GUI的Action类用匿名内部类
  • IDE提示某变量方法没有被使用 可能通过xml或Annotation方式被使用

1 思维碎片

西法,陪审员制度,排除合理怀疑(1957年 -《十二怒汉》豆瓣9.5分,《十二怒汉(俄罗斯版)》《十二公民(中国版)》)
做不到的人会告诉你你也不行
月入十万以上的靠信息和权利
信用卡利息2%,CPI每月0.1%
台湾日月光 $84亿

2 领导训(xi)话(nk)

跳坑,做完一件事才会放你出来
AB档
2000W买数据
编制有
不要推卸责任, 学到东西
10年数据仓库,3-5年Java开发

需求变化

1。永远不要听产品的口头的需求,让他们写文档,定版本,邮件发出来,抄送项目经

2。除了项目经理审核后定版本的需求,不要随便在代码上加需求

总结:有限责任制是现代公司发展的基础。软件项目也是这样,不能全世界的锅都让开发人员背

3 移交生产部署

单元测试没做, 不要部署, 在生产环境的修改成本太大.
邮件不行就电话
成功后邮件感谢各个节点的同事

版本号

《计算机编程艺术》的作者写书的时候觉得现有的排版系统太差,于是写了 Tex 排版系统
Tex排版系统, 版本号是3.1, 3.14, 3.141, 3.1415, …
无限接近圆周率, 无限接近于完美

4 日志

每个业务逻辑的输入输出都应该有info日志
每个Exception都应该有error日志
日志输出位置要确认是否有权限(特别是生产环境)

5 单元测试

单元测试的重点是功能全覆盖, 比如调用远程服务器的返回数据, 本地构造假数据也要测.
没有数据, 构造数据也要测.
没有测过的程序是定时炸弹.

6 类,接口的设计

6.1 参数列表的设计

3个以上同类型变量用数组传参,配合int参数指定数组中各个变量的功能

多说一句: 传入参数使用前判null, 避免NPE(NullPointException)

6.2 类的分类

UI类的焦点控制类应该和UI类放在同一目录下,而不是和调用该UI的类放在同一目录

6.3 用return进行逻辑控制

尤其是actionListenner中实现多种逻辑时,新增一个跳出逻辑只需要加入if (…) {return;}即可不执行之后的代码,优雅。

6.4 灵活地重写某GUI的Action类,用匿名内部类

需求描述:有一个new JButton(new ThisAction(arg1,arg2)),现在需要仅在当前类中修改ThisAction的事件监听逻辑。

new JButton(
           new ImagePreviewAction(DeviceCurveDialog.this,previewContext) {
                                                 @Override
                                                 public void actionPerformed(ActionEvent event) {
                                                     if (isNameEmpty()) {
                                                         return;
                                                     }
                                                     super.actionPerformed(event);
                                                 }
                                             }
           )

7 IDE提示某变量,方法没有被使用, 可能通过xml或@Annotation方式被使用

一般这个时候你用crtl+鼠标左键点击该变量发现没有导航。不要以为这个变量在程序里就没用到了。有一种情况是,该变量初始化后没被调用。但是在初始化的时候,该变量已经和某些逻辑绑定了。
比如说:

private JButton defaultNameButton;
...
defaultNameButton = button(cc.xy(3, 1), createDefaultNameAction());

Spring框架中, 这种现象更常见

//调用位置
@Autowired
AnyThing anything; // 但是AnyThing类中,IDE提示没被使用

你可能感兴趣的:([置顶] 非技术经验)