模块化开发、容器化开发

使用微服务架构或 Mono Repo 架构中的问题

拆包不合理

一、类型的定义

(如 Typescript 中的 interface、type,或者请求/响应,参数/返回等 DTO),不应当放置到一个底层的通用包中。这样会导致一处业务修改,联动项目代码、底层包代码需要修改,然后需要发布包、更新依赖版本等,非常麻烦。

同时,大部分的类型定义是不具备复用的可能的。比如数据库 Schema,会有一些多余的不可操作的字段,如 id、时间戳、状态等,所以在 create 方法中,传入的参数,可能是 Partial<SchemaEntity>(也可能会有一些生成字段之类的特殊情况)。在接口请求参数中,更是会和数据库 create 方法的参与差异很大,比如说密码,用户输入是明文,存到数据库中是密文 + SALT。等等。返回值亦是如此。

为减少重复代码量和修改,和保证结构的稳定性,可以参考 TypeScript Handbook 中的一些小技巧:

阅读更多

VSCode配置Webpack路径提示及智能跳转

Webpack 配置

resolve: {
    modules: [
      'node_modules',
      path.resolve(__dirname, '../src')
    ],
    extensions: ['.js', '.vue', '.json', '.css'],
    alias: {
      vue$: 'vue/dist/vue.esm.js',
      public: path.resolve(__dirname, '../public'),
      component: path.resolve(__dirname, '../src/component'),
      config: path.resolve(__dirname, '../src/config'),
      lib: path.resolve(__dirname, '../src/lib'),
      i18n: path.resolve(__dirname, '../src/i18n'),
      store: path.resolve(__dirname, '../src/store')
    }
  }
阅读更多

优雅地使用平板进行远程OS X编码开发

没有 OS X 平板(iPad 是 ios 系统)这个问题一直困扰着我.

正所谓,工欲善其事必先利其器.

准备

  • 一台平板(iPad/Surface 或者其他)
  • 一台苹果(Mac Mini/Macbook Pro 或者其他)
  • 一台路由器(需支持动态域名解析,如花生壳),后续我会完善动态域名解析功能
阅读更多

2014年终总结(物联)

从 2014-08-11 到 2015-02-11,刚刚满半年。翻开当时写的记录,还记得那段时间其实有很多选择,而最终我选了物联。虽然不是待遇最好的,却是最能让我充满热情和憧憬的一个行业——智能家居。不忘初心,方得始终。

自身尚存的缺点

一、恃才傲物。

这是一个新问题,因为为今很多年轻人会错拿无知当个性(达克效应)。

阅读更多

北京,我将要离开你。挥别66脑

其实我不怎么喜欢北京,不是因为北京的人情不好,而是这里的环境太恶劣了。自从来了这里,每天都是在拉肚子中度过,每次刷牙都是满嘴的血沫子,指甲盖也劈了好几次。

终于,我选择了离开北京。也离开我现在所在的团队。我们的团队是一群很出色的人聚集的团队,我们的产品却一直迟迟没有上线。作为技术合伙人,我和经理华东在对产品的定位上有着很大的偏差。人生嘛难免有分歧,谁都是有理想有抱负的人。完美的东西,我们谁都想追求,只是代价太高,时间太长。只是歧路坎坷,没有必要太过计较对与错。我尊重华东,更尊重华东想要的完美产品,只是我的能力给不了他。所以,也差不多该是离开的时候了。

阅读更多

离别赠言·给连云港电子口岸的发展建议

从六月份来到 EDI,到九月份离开,仅有短暂的三个月时间。感谢领导,和各位同事,在这段时间里,给与我的照顾与教诲。常言道,言多必失,少说话多做事。但就要离开了,我想把这段时间总结的一些心得建议反馈给领导,仅代表个人的意见,望领导能批评指正。

阅读更多