Code Optimization (1)


背景

  • 随着阅历(阅读代码经历)的增加,越来越觉得自己写得代码很垃圾。。。
  • 计划对当前项目的代码做小范围的重构优化。

理想的命名

  1. 有意义的可读的变量名

    const currentDate = moment().format("YYYY/MM/DD");
    const currentPage = pagination['current'];
  2. 可搜索的变量名(不要为了炫技手动缩短变量名)

    setTimeout(restart, 86400000);// これはダメ。
    
    //声名为都是大写的常量
    const ONE_DAY = 24 * 60 * 60 * 1000;
    setTimeout(restart, ONE_DAY);
  3. 自解释的变量名

    //可以猜出来contentRange是一串字符串
    const [_, pageStart, pageEnd, total] = contentRange.match(
                /(\d+)-(\d+)\/(\d+)/,
            ) as Array<string>;
  4. 合并功能一致的函数

    • 获取数据的时候可以一次性把数据都给获取了
    • 不要这个地方要”name”了获取个”name”,那个地方要”id”了再获取个”id”
      const getMemberId = () => {
          //do something
      }
      const getMemberName = () => {
          //do something
      }
      const getMemberInfo = () => {
          //do something
      }
  5. 无重复的语义清晰的变量名

    interface MemberTableProp {
        members: Member[];
        searchMembers?: (filters: Store) => Promise<void>;
        deleteMember?: (member: Member) => Promise<void>;
        exportMembers?: (encoding: string) => Promise<void>;
        importMembers?: (formData: FormData, encoding: string) => Promise<void>;
        handleChange?: (page: number, pageSize: number, filters: string, sortParam: string) => void;
    }
    interface MemberTableProp {
        members: Member[];
        handleSearch?: (filters: Store) => Promise<void>;
        handleDelete?: (member: Member) => Promise<void>;
        handleExport?: (encoding: string) => Promise<void>;
        handleImport?: (formData: FormData, encoding: string) => Promise<void>;
        handleChange?: (page: number, pageSize: number, filters: string, sortParam: string) => void;
    }
  6. 整体风格统一的变量名

  7. 使用默认参数

    • 默认参数比短路逼格更高
  8. CODELF

其他

  • 随手把注释掉的代码删掉
  • 现在用不上的代码以后也用不上
  • 现在的代码肯定不能满足以后的需求
  • 真的有那么一天需要这段代码了,可以根据文件历史找回代码(git)

小结

  • 写着写着,忽然发现当前代码可优化的地方不是很多,哈哈哈哈哈

文章作者: せいい
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 せいい !
  目录