做了一个“小项目计划工具”,纯天然, 无添加! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cmdOptionKana
3.16D
V2EX    分享创造

做了一个“小项目计划工具”,纯天然, 无添加!

  •  1
     
  •   cmdOptionKana 2020-02-29 12:47:01 +08:00 3529 次点击
    这是一个创建于 2103 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Small Plans

    用于个人小项目的 todo 工具。
    Small Plans for small projects.
    https://github.com/ahui2016/small-plans

    纯天然, 无添加

    • 不使用 React, Vue 等任何前端框架
    • 不使用 npm, 不使用 Webpack
    • 不使用 Bootstrap 等任何 UI 库
    • 不使用 JQuery
    • 不需要服务器, 整个应用只有一个 HTML 文件
    • 原生 HTML, CSS, Javascript 手工打造, 一共 700 行代码

    数据安全

    • 使用浏览器的 localStorage 临时保全数据, 即使页面意外关闭, 数据也不会丢失
    • 提供 export 功能, 可随时导出数据为 json 文件, 永久保存
    • 提供 import 功能, 导入 json 文件, 恢复数据
    • 建议每次关闭页面前都导出一次, 连同项目代码一起 git push

    用途

    • 适用于个人小项目 (例如一名程序员自己制作的小项目)
    • 一般在做个人项目时, 突然想到一个功能可以增加, 或者哪里可以改进, 在这个过程中又会突然发现一个 bug. 此时, 通常无法立即实现全部突然冒出来的想法, 因此就需要先记录下来, 后续逐项完成.

    为什么不使用其他 Todo App?

    • 其他 Todo App 是一个单独的应用, 难以与个人项目紧密结合
    • 例如, 项目代码 push 到 git 仓库时, 其他 Todo App 的信息无法一起 push
    • 而由于 Small Plans 只是一个体积很小的 HTML 文件, 导出的数据也只是一个 JSON 文件, 非常小,
      因此完全可以放入仓库中, 随时与项目代码一起 push
    • 这样做的好处是:
      • 不需要额外编写项目的计划、完成进度, 因为 Small Plans 已包括这些内容, 并且很好地呈现
      • 每次写 commit 描述时不需要想, 只要看一眼 Small Plans 就知道做过什么
      • 另外, 虽然 commit message 也能大概记录软件开发过程, 但毕竟太简短, 会损失很多细节
      • 隔几天或隔一个月回头继续开发时 (个人项目随时中断几天的情况很常见) 也不会茫然, 不用苦苦回想, 只要看看 Small Plans, 整个开发过程、待办事项、灵感等等都一目了然
    第 1 条附言    2020-03-03 00:47:05 +08:00
    刚刚提交了一次比较重要的改进,主要针对多个项目(把 small-plans.html 拷贝到不同目录下) 使用的情况,经过本次更新能有效避免不小心覆盖别的项目的 small-plans.json 文件,真正可以多个项目同时使用本程序了。
    11 条回复    2020-03-04 09:23:27 +08:00
    whileFalse
        1
    whileFalse  
       2020-02-29 13:04:42 +08:00 via iPhone
    挺好,但是我更喜欢在 README.md 里面记录。
    cmdOptionKana
        2
    cmdOptionKana  
    OP
       2020-02-29 13:27:45 +08:00
    @whileFalse 用这个小工具比直接 readme 记录好的地方我也总结了一下,主要是页面可以更整洁、可以自动记录时间、未完成 /已完成之间的转换更方便、打标签方便 /标签颜色可以自定义。

    比如我做了一个小功能,未完成项目加了一个 “bug” 标签的,点击一下完成按钮,除了变成已完成状态之外,还会自动把 bu 改为 fixed。

    源码使用最普通的 Javascript,像这样的小功能非常容易定制。
    vazo
        3
    vazo  
       2020-02-29 19:52:24 +08:00
    真香
    cmdOptionKana
        4
    cmdOptionKana  
    OP
       2020-02-29 20:55:00 +08:00
    @vazo 谢挽尊
    encro
        5
    encro  
       2020-03-01 12:59:27 +08:00
    不用排斥 vue,ng 之类嘛,其实只用 vue 2 js 版+ng1,不用 es6,也只引入一个文件就行,非常简洁,代码上能少不少,体验上提升空间比较大。
    cmdOptionKana
        6
    cmdOptionKana  
    OP
       2020-03-01 17:22:51 +08:00
    @encro 也不是排斥,这次这个作品比较特殊,比较适合单个文件包含一切,文件体积还要尽量小,因为最好是每个项目的根目录都拷贝一个 small-plans.html 文件,它会检查自己的文件地址,在不同目录下打开可以各自独立,互不影响。

    其实我第一版的时候就用了 vue,甚至还用 Golang 做了一个后台,功能也比现在这个版本强大一些,但最终还是改成了现在这样。
    encro
        7
    encro  
       2020-03-01 17:57:43 +08:00
    @cmdOptionKana
    但是确实不如 markdown

    [x]todo1
    [x]todo2

    这样好啊。
    cmdOptionKana
        8
    cmdOptionKana  
    OP
       2020-03-01 21:08:29 +08:00
    @encro 如果全部都是一句话,是 markdown 好

    但如果要添加详细内容,markdown 容易看起来乱,我这个可以收起详细内容。

    另外 markdown 也不会自动把已完成项目移到下面。

    简单来说,内容少的 markdown 最好,内容多点就用这个小工具,项目大了就要用更专业的工具了。
    HereApp
        9
    HereApp  
       2020-03-02 14:08:10 +08:00
    思路像是一个 Web App,如果使用 Mac OS, 可以考虑放进 Menu icon 快速打开。
    i.v2ex.co/Sz55O14I.png
    /t/643399
    caogecym
        10
    caogecym  
       2020-03-04 03:08:01 +08:00
    真香
    cmdOptionKana
        11
    cmdOptionKana  
    OP
       2020-03-04 09:23:27 +08:00 via iPad
    @caogecym 谢谢支持,持续改进中
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3969 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 05:19 PVG 13:19 LAX 21:19 JFK 00:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86