DAY29 - 为你的side project 写个 readme

基本上 side project 所有的工作在这边告一段落,现在要来最重要的收尾步骤,就是写 readme

为什麽要写 readme

写 readme 是很多工程师很懒惰做的事情,其中也包含我。其中不想写 readme 的原因自己分析有以下几项:

  1. 觉得忙来忙去,终於把程序写好了,好累喔,之後有空再来写,然後就没有之後了
  2. 觉得精华都在程序码之中,与其看 readme 不如去看程序码
  3. 文学素养匮乏,写程序时满腹的想法与灵感,写介绍时,却一个字都挤不出来
  4. 不知道怎麽好好介绍自己辛苦写出来的专案

以上是自己分析自己懒得写的原因。不过自己心知肚明,不写 readme 的话,根本不会有人知道这个专案在做什麽的。

假设是自己写兴趣的专案的话:

如果没有写 readme ,身为一名同为开发人员的我,看到一个有趣的专案,readme 是空白或制式的,可能就会有点懒得点进去了。或是无法一时之间,从程序码看出东西又没有介绍的话,可能也就会关掉了。这样就会让自己辛辛苦苦写出来的专案无法让人知道,差了最後一哩路,非常可惜

假设想要拿来求职的话:

如果没有写 readme ,因为招募人员不一定是开发人员,有时候都会是人资或是非工程师看不懂程序码的人来寻找人才,唯一能让他们了解你的专案快乐又厉害的方法就是把 readme 写好,让不懂的人也能知道这个专案在做什麽,有什麽厉害的地方。

而这个恰巧对工程师自身来说,也是一个很好的练习机会。如何遇到内行的人说行话,遇到外行的人,用各种类比或简单的方式说到对方能懂。这个也是在工作场合乃至人生当中,常常会遇到的事情,所以藉着这个机会,来练习一下自己的沟通技巧,这也是非常重要的。

readme 撰写的范例

以下是笔者个人摸索出来 readme 的一些写法。

一定要有图片

现在很多人喜欢看图文或是懒人包,不喜欢看文字,虽然这不是很好的现象,但是不可讳言,与其看了一大堆文字描述,还想像不出画面,如果搭配图片来解说一定清楚多了

阐述自己的理念与想法

阐述理念和想法是笔者认为最重要的一项。毕竟写再多的程序码就只是一种理念实现的工具。最重要的是想要达成什麽目的或是解决什麽困扰。这个才是每个开发人员撰写程序码最重要的目的。

所以述说自己的理念与想法,就是告诉读者,想要做什麽,你才会动手去做这些事情。

像是笔者想要发扬「原子习惯」的理念,因为动手打造了一个符合原子习惯理念的打卡工具

最後介绍自己是用什麽技术来实现你的想法

既然是工程师写的专案,不免俗地还是要列出,自己使用了什麽技术来实现想法,以笔者的专案为例,在这一系列的文章当中,笔者使用以下工具与框架

  • angular : 建立前端架构
  • rxjs : 处理非同步的问题
  • bootstrap : 排版
  • nebular : UI框架
  • nx : monorepo的建构工具
  • nestjs :建立後端架构
  • firebase : 储存档案与处理资料库资料
  • line message api : 与line 做沟通连结

让懂得开发人员可以看门道,不懂的人也可以记住这些关键字,这个就是写 readme 的妙用


<<:  【没钱买ps,PyQt自己写】Day 29 - final project - 2 / 来搞一个自己的 photoshop 吧!後段程序细节篇 (结合 PyQt + OpenCV)

>>:  29 - 有效的使用 Observability 的资料 (3) - 资料的生命周期管理

快速了解 Tailwind CSS 的 JIT 模式

线上范例:JIT 线上范例 - Tailwind Play 因为 Tailwind CSS 的设计...

[D10] 影像杂讯与滤波(1)

在电子学里讲的杂讯,是在讯号传递的过程中会受到一些外在能量影响所产生讯号的干扰,这些由外在能量产生的...

[Day_14]选择性结构- 多向选择结构、条件判断与运算子「in」

多向选择结构让程序执行路径可以有无限多种选项, 我们可以使用多个 if-elif-else 来达成多...

[PoEAA] Data Source Architectural Pattern - Row Data Gateway

本篇同步发布於个人Blog: [PoEAA] Data Source Architectural P...

敏捷(Agile)

敏捷 敏捷心态(AGILE MINDSET) 敏捷是一种由价值观,原则和实践组成的心态。满足敏捷思维...