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的时候,我便接手 ...
随机推荐
- jQuery的入门与简介《思维导图》
<初学者请各位高手指点指点> jQuery是继Prototype之后又一个优秀的JavaScript库,在JavaScript基础上我知道了jQuery拥有强大的选择器, 出色的DOM操作 ...
- lisp构造表
CONS 操作符 我们刚刚学习了如何拆分一个表,现在学习如何合并一个表. CONS 操作符就是做这件事情的. 假设有一个列表 (1 2 3) ,我们做一下 CAR 操作: (car '(1 2 3)) ...
- elasticsearch 搜索不支持单词的部分进行匹配
zjtest7-frontend:/usr/local/logstash-2.3.4/config# curl -XGET http://192.168.32.80:9200/logstash-201 ...
- 微软雅黑 firefox Css 设置 font-family: "microsoft yahei","\5FAE\8F6F\96C5\9ED1","宋体";
font-family: "microsoft yahei","\5FAE\8F6F\96C5\9ED1","宋体"; // 这里用引 ...
- Jquery EasyUI修改行背景的两种方式
1.数据加载完成不请求后台的做法 方式一: //更改表格行背景 function changeLineStyle(index){ var rows=$("#alertGird"). ...
- Word Ladder 解答
Question Given two words (beginWord and endWord), and a dictionary's word list, find the length of s ...
- 今日成长笔记2016-11-18 - 关于java开发
好久没有写今日成长笔记了,要记得上一次写笔记还是2016-09-05,今天心血来潮,写一写最近发生在自己身上的事情,以后我要坚持每天写日记.我承认自己身上的确或多或少的存在不足,现在把它们抛出来,并记 ...
- poj1080--Human Gene Functions(dp:LCS变形)
Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17206 Accepted: ...
- quick-cocos2d-x android返回键监听并实现原生退出对话框
这两天最终闲了一下,就顺手又把quick捡起来又学了学,一直都认为quick比cocos2dx那套lua绑定要方便很多,今天试了下android返回键的监听,还是挺好弄的,所以就有了这篇. 首先说明一 ...
- ECSHOP返回顶部的代码 纯CSS超简单
在themes/模板文件夹/library/page_footer.lbi 文件的最末尾加上下面的一段代码 <style>.to_top{width:20px;height:59px;ri ...