练手小工具 之 纯文本跨设备传输

2022-02-13 21:02:07 +08:00
 SuperMild

练手项目很难选,也很难参考,毕竟每个人的技术栈、兴趣、目的、需求等等都有巨大的差异。

比如目的,如果专注于提升技术,就会选择难度较大的项目;如果专注于赚钱,就要多花精力在平面设计、竞品调查研究、宣传上。而本文提出的例子,目的主要是满足自己的需求以及为空闲时间提供一些既有趣又没有心理压力的任务。

需求与灵感

现在我有一个需求:需要在不同的电脑、手机之间交换纯文本(一个短字符串),包括 Windows, MacOS, Linux, iOS, Andriod, 其中包括无图形界面的服务器。

做一个满足这个需求的小工具,对于我来说最简单的就是做一个网站,由于我的需求只是传输很短的纯文本,并且是一个自用的工具,因此不需要担心传输速度、流量、服务器负荷等问题。

小项目,多花样

最基本的玩法是做一个网站,不同设备通过访问网页进行文本的黏贴、复制。

但玩法绝非止步于此,比如:

不是说这些全都做,而是可以想到很多,然后挑一些来做。我建议先做一两个简单的功能,后续再慢慢进化。

总设计(需求与灵感的细化、具体化)

对于我来说,总设计是最关键、最难,通常也是要花最多时间的一步。

总设计的本质是做选择。一个表面简单的需求背后通常隐藏在大量选择,比如:

…… 等等。这只是一个极简单的小工具,要思考的东西算很少了,项目稍大一点要思考的因素就会指数式增长。

有人习惯先做,一边做一边想一边改,这个方法完全没有问题。我的习惯是先总体上尽量多想,让脑子里“成品”的形象越来越清晰,清晰到一定程度之后我才开始写代码。

我的决策

目前,我想象中的这个小工具应具备以下特性:

如果是你来做这个小工具,你会如何决策呢?每个人有不同的决策,这正是做小工具的乐趣之一。

技术选型

由于我很懒,也怕麻烦,技术实力也差,因此我会尽量选择简单、原始、直观(思维负担低)的技术栈。

比如前端我就用 JQuery, 简单到极致。我也用过 React 和 Vue, 结果发现对于一个简单的界面来说, JQuery/React/Vue 都差不多!

React/Vue 做复杂界面有优势,但对于简单界面,实在没有带来特别明显的好处。JQuery 的好处是比较轻,而且可以彻底抛弃 npm, 这使得前端构建省了很多事。

当然,这是因为我不太爱玩前端,对于爱玩前端的人来说选择就完全不一样了,这需要根据自己的喜好、技术背景、目的来选择。

后端我选择 Go, 因为用 Go 做的小工具(小网站)是最容易发布的, 现在做项目通常都会使用 GitHub 之类的代码仓库,而仓库地址就是 Go 项目的发布渠道,完全不需要额外的操作,而且又能打包为一个免安装的可执行文件。

再加上 Go 占用的资源极少,我只需要一个最低配置的 VPS 就能同时运行一大堆小工具。

容易发布 /部署、运行资源少、编译速度快、web 框架很轻但也够用,同时具备这几大优点的语言也只有 Go 了吧?(当然,如果做大项目, Go 的优势就不明显了,主流语言能够成为主流,各有各的好。)

最后

这个小项目我现在开始做,后续想到什么再补充吧。

3132 次点击
所在节点    程序员
15 条回复
rekulas
2022-02-13 22:50:44 +08:00
supercaizehua
2022-02-14 00:15:00 +08:00
abc8678
2022-02-14 07:58:06 +08:00
我也经常被文本传输困扰,有些内容不宜通过聊天工具传输。用蓝牙或 U 盘传文本也小题大做了。于是平时用二维码生成器应付一下
SuperMild
2022-02-14 08:09:18 +08:00
@rekulas
@supercaizehua

谢谢提供参考!
SuperMild
2022-02-14 08:10:42 +08:00
@abc8678 啊对,我忘了二维码,这个功能要加到候选列表里。
catsoul
2022-02-14 09:11:19 +08:00
这个功能我记得以前有一个叫“方片”的工具,支持跨平台(包括桌面端和移动端)复制粘贴。后来 iOS <-> OS X 自带互通,各种安卓系统跟自身厂家有 NFC 近场传输后,就基本没有使用这个工具了。

当然类似工具其实很多了。
SuperMild
2022-02-14 09:42:09 +08:00
@catsoul 印象中见多很多同类工具,但都不支持无图形界面的 Linux 。

我这个不仅支持纯命令行,而且还打算给命令行增加一些方便的功能,比如:

- 列出最近 5 条云剪贴板消息
- 指定复制第 n 条云剪贴板消息
- 搜索云剪贴板消息
- 通过别名精确指定云剪贴板消息
supercaizehua
2022-02-14 11:21:17 +08:00
想起来还有一个多平台的 app, 快贴, 能支持图片, 之前听网课的时候, 喜欢一遍听一遍 ipad 做笔记, 然后电脑截图通过快贴拖到 ipad 的笔记软件中
abc8678
2022-02-14 16:07:18 +08:00
我以前也问过跨网络跨平台传递文本的问题,当时把希望寄托在外设上。打算一台电脑给另一台电脑模拟键盘输入内容,也没问到太多有效的办法。平时的使用场景是,复制粘贴命令到网络不通的 Linux 终端。我用那个类似于幽灵键鼠、badusb 的方法勉强解决了,就是一个外形想 U 盘的设备。一台电脑通过一个软件写内容,然后插入另一台电脑,就一键模拟键盘敲出这个文本。然而不灵活,明显就不能支持中文。
当时的问题 https://tanronggui.xyz/t/811853
vst93
2022-02-14 17:58:20 +08:00
自己写的用的 https://meimingzi.top
SuperMild
2022-02-14 18:38:07 +08:00
@abc8678 存在鼠标里面,硬核的方案啊哈哈哈,从未想过的路径。

@vst93 通过极短标识符+ip 来实现便利与隐私的平衡,果然大家各有各的创意啊。
xiqishow
2022-02-14 18:59:35 +08:00
ppzhilian.com 挺好用的
SuperMild
2022-02-14 19:34:01 +08:00
@xiqishow 以前我只知道 snapdrop, 但 snapdrop 貌似受限于局域网,现在才知道 PP 直连,好东西呀。
wdssmq
2022-02-27 14:59:31 +08:00
所以吐槽下,,win 自带的剪切板同步从来没成功过。。- -
SuperMild
2022-02-27 21:21:22 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/833597

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX