模块化开发、容器化开发

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

拆包不合理

一、类型的定义

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

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

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

阅读更多

愉快地使用 Manjaro 21 玩耍

使用的版本为 KDE Plasma 桌面版本。

配置国内镜像源

sudo pacman-mirrors -i -c China -m rank

通过手动的方式配置 ArchLinux 源:

sudo pacman -Sy vim
sudo vim /etc/pacman.conf
阅读更多

剩暖渣、初瘦——三十一周岁再话

王初瘦今年三十一了。

岁月像一把杀猪刀,初瘦快要破碎他再瘦的梦。初瘦总会自嘲说,心宽体胖。可是只有傻子才看不出来吧,他那些沉稳,是被现实磨平的棱角。

虽然我也很了解初瘦,但还是很难去形容他究竟是一个怎样的人,最后总结出来三个字——

阅读更多

愉快地使用 ElementoryOS 5 玩耍

双系统的安装

首先,由于 Windows 10 安装分区的时候,占用了3个主分区(MBR、Recovery和系统),所以不能使用 Legacy + MBR 的方式进行引导,因为 MBR 只能有 4 个主分区。

那么,就需要将磁盘改为 GPT。然后通过 UEFI 进行引导。但试了很多种方法,无法做出 UEFI 引导的 Windows 10 安装U盘(因为有一个 4.1GB的 install.wim 文件,无法使用 FAT32 格式,而我测试用的 DELL 台式机不支持 NTFS 格式的 UEFI引导),所以制作一个 “微PE” 的 U盘进行安装。

阅读更多

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')
    }
  }
阅读更多

创意分享:Redis 客户端

我在 iPad 上买过两个:

  • Redis Touch(6元)
  • RedisFly (24元)

但这两个都不支持 SSH 登录,让我很尴尬。

阅读更多

创意分享:Github/Coding 聚合客户端

为什么需要一个聚合的客户端

举个栗子,之前微博类产品风靡的时候,有很多类似的产品,如:腾讯微博、新浪微博、饭否、Twitter……那么,就可能会发生这样的一个现象,手机上装了一大堆类似的 APP,然后用个文件夹放到一起。

实际上大多数也确实这么做了。切换不同的 APP,去刷内容不同但本质相近的微博消息。

同样,目前我在我的手机上各自装了 Coding.net 和 GitHub(GitPoint)客户端。

而最近,我在入手 iPad Pro 之后,发现 Cdoing 并没有对应的 iPad 客户端,从而萌生了这样的一个点子。

阅读更多

iPad 开发/高效应用列表

原则:

提高工作效率,拒绝时间浪费。

所以该列表会随时更新,将一些不用的 App 删除,新增一些最近发现的有意思的 App。

开发工具/代码编辑器

  • Prompt: 价格 98 元, 远程 SSH 连接
  • Termius: 免费, 远程 SSH 连接
  • Teamviewer: 个人免费, 远程桌面工具
  • GoCoEdit: 价格 68 元
  • Coda: 价格 168 元
阅读更多

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

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

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

准备

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