Tip.It诞生记
灵光一闪
之所以想做 Tip.It,完全是受自己初到北京时找房子各种痛苦的启发,当时为了跳过中介租房子,去58同城,豆瓣等各种网站去看房子,比如说下图就是一个典型的58同城的租房页面。

可以看到电话号码是图片,如果我想记录这个房源,只能一个个号码的往自己的Evernote里面敲,同时还得记录这个房源的网址,以防自己空有号码但是忘记房源信息的尴尬。
即便这样,还是经常导致自己 chrome tab 开了几十个,分不清是否已经电话过某房源的主人的情况发生。
所以我灵光一闪,为什么我们不把这个做成一个可以追述原地址,同时可以保存文字,图片和链接的 todo-list 呢?
这个todo-list不同于evernote,它一打开就是我们要做的东西,里面的内容更像是对网页最有价值的部分的提炼。这个提炼我们会在短时间内频繁的用到,比如我们需要回复某人的邮件,网上看见优惠码等等。
而我自己本人则在不找房子的时候,用来管理我的 bug 清单同时用来记录自己感兴趣但是又需要花时间来阅读的文章链接。
动手
来了 yahoo 之后,自己从最喜欢的 firefox 逐步迁移到了 chrome, 后来经过一番调研后发现 chrome 的 extension 还很好写, 于是自己开始了 chrome 插件的开发之旅。当时自己定的开发目标是这样的。
1 |
- 能够 tip 网上的地图,视频,文字以及链接。 |
于是就有了第一版的半成品,有登陆,用户可以自由添加 tip,后端用的是 Rails,数据存储是 Mysql + Redis, Redis 主要用来分发用户的login token。
可是当自己写到同步功能时,各种复杂的情况需要考虑,写出的程序自然是 bug 百出,同时考虑 Tip.It 设计的初衷是用户离线时也能使用,能够像 pocket 一样 archieve delete, 自然而然,程序逻辑变得非常复杂,用户每 sync 一次,mysql db 都要运行数十条语句。一度让我对这个项目产生了一些动摇,从最初的每天 check in code 到后面的长达一个月没有check in 过 code。
做减法
做过产品的人都知道对自己的产品做减法是最难的,尤其是像我这样一行行代码写上来的人,每一行代码 都是你不断重构,冥思苦想而成,砍掉某些功能,就意味着你的之前耗费了无数个夜晚写成的代码被删掉, 但是就像知乎上一个人说的那样。
因为我们有过多的资源(主要是人力和时间)才会尝试添加各种功能。假设之前的规划是三个月,那么如果自己只有一周的时间的话,我会做什么?得到的产品形态就是减法之后的结果。
于是经过自己的慎重的思考。
Tip.It的核心诉求应该是为用户 构建一个足够简单灵活的Todo List, 用户能够随时随地的 tip 文字,图片,并且能够随时查看。
于是自己做了最终的决定, 砍掉所有网络同步的功能, 这样整个 Tip.It 的代码只有原来的1/4,后端部分全部拿掉,最后 Tip.It 的功能只有下面的部分。
1 |
- 能够 tip 网上的图片,文字以及链接。 |
发布
经过一个周末的删减和修改后,Tip.It 终于做的像我最初想要的样子了。

最后再经过周日睡前的半小时,Tip.It 有了自己的官网 http://nateriver520.github.io/tipit/,就像官网上说的一样,Tip.It 给人的感觉应该是这样:
Just find something you like, and Tip it
在经过 google 商店的注册,提交,Tip.It 终于上线拉!(这里忍不住吐槽一下 google, 发布个应用要 5 刀,居然地址还不能选中国)
最后,感谢大家的支持,欢迎大家的各种 Feedback :)
Tip.It诞生记的更多相关文章
- 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生. 智能语音交互市场近年来发展迅速,其典型的应用之一智能音箱产品如今已走入千家万户,深受大家 ...
- 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生. 串口调试助手是嵌入式开发里非常常用的小工具,市面上有非常多流行的串口调试工具,比如TeraTe ...
- chain33 区块链开发框架诞生记
chain33 诞生记 很多年没有写博客了,应该说,自从2013年开始玩比特币,就没有写过了.这5年来,做了很多事情,也见了很多以前做梦都没有想到过都事情.我做的最开心的事情,也是觉得最有意义的事情, ...
- 谷歌Gmail诞生记:十年回首
美国<时代>周刊网络版今天刊登题为<Gmail诞生记:10年前鲜为人知的故事>(How Gmail Happened: The Inside Story of Its Laun ...
- Linux LiveCD 诞生记
Linux LiveCD 诞生记 650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic ...
- (转载)JavaScript世界万物诞生记
一. 无中生有 起初,什么都没有.造物主说:没有东西本身也是一种东西啊,于是就有了null: 现在我们要造点儿东西出来.但是没有原料怎么办?有一个声音说:不是有null嘛?另一个声音说:可是null代 ...
- 痞子衡嵌入式:语音处理工具pzh-speech诞生记(2)- 界面构建(wxFormBuilder3.8.0)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之界面构建. 之前痞子衡设计过一个串口调试助手pzh-py-com,也专门写过一篇关于其界面构 ...
- [转载]jQuery诞生记-原理与机制
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3520 一.看似偶然的 ...
- 【Android测试】【随笔】性能采集工具——小松鼠诞生记
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4945066.html 起因 去年刚加入TX的时候,我便接手 ...
随机推荐
- NFC应用(二)读写器模式
NFC第二种应用场境就是所谓的读写器模式.既然有卡,当然就会有读写器,这两种模式是配合在一起使用的.两个卡放一起不能通信,两个读写器模式的设备也不能通信. NFC读写器一般支持以下一种或多种协议:Mi ...
- jQuery插件之artDialog
artDialog是一个非常强大的弹出框插件.默认有两个版本,一个是jQuery版,一个是javascript版.功能非常多,而且使用非常简单.不写了,直接贴上官网的预览运行地址,以后用得着的时候去那 ...
- ISBN-10和ISBN-13有什么区别?
ISBN扩升至13位 1. 现有ISBN的结构 国际标准书号ISBN是英文International Standard Book Number的缩写,1971年国际标准化组织ISO(Internati ...
- 嵌入式设备web服务器
操作系统:ubuntu10.04 前言: 为了提高对设备的易操作性,很多设备中提供pc机直接通过浏览器操作设备的功能.这就需要在设备中实现web服务器. 现在在嵌入式设备中所使用的web服 ...
- Java Service Wrapper
Java Service Wrapper 将Java 应用程序部署成Windows系统服务Java Service Wrapper 1 Product Overview 1 Editions 2 Me ...
- Zookeeper 3、Zookeeper工作原理(详细)
1.Zookeeper的角色 » 领导者(leader),负责进行投票的发起和决议,更新系统状态 » 学习者(learner),包括跟随者(follower)和观察者(observer),follow ...
- ISO9126 质量模型
功能性 适合性:当软件在指定条件下使用,其满足明确和隐含要求功能的能力. 准确性:软件提供给用户功能的精确度是否符合目标. 互操作性:软件与其它系统进行交互的能力. 安全性:软件保护信息和数据的安全能 ...
- 【数学.前左上计数法】【HDU1220】Cube
Cube Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- tail
tail用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理.常用查看日志文件. -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n& ...
- Extjs 6 MVC开发模式(二)
1.Extjs MVC开发模式 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs4.x版本中引入了MVC开发模式,开始将 ...