为什么搞一个副业项目如此之难?
现在是凌晨 1 点,掐了我手里的第三支烟,眼前的命令行光标还在嘲讽闪烁。
距离我上次敲击键盘已经是一小时前了,我当时敲下了 git init。那时是十二点,我想新的一天总要带来些新的改变,我已经思考副业项目很久了,对,X-Project!
显然我需要一个前台和一个后台服务,我该用什么技术栈呢?
这就是我这一小时所思考的问题,而且毫无进展。
你看,我可以用 Node JS,我知道这种小型项目十分合适。不过我这个项目需要扛住许多的并发连接,而且它们之间还要共享状态。这要是用 Node JS 需要一些特殊的处理,而且处理不好延迟的问题,我这项目就失败了。
那么 Go 和 Erlang 语言就合适许多,它们本身就是为高并发而生的。但……我还不会用。
那我可以借这个机会来学习下 Erlang 语言(或者 Elixir),嗯,我的情绪快来了,不过这会话费我大概十倍的时间来构建这个项目,时间应该没那么充足,所以用这个语言栈就表示我的项目会遥遥无期。
等一下,我也不知道我搞这个项目到底有没有人用,我是不是应该建一个登陆页来看看用户的反映?这也可以帮我细化我这个项目到底能用来干啥。听起来不错,不过我对审美一窍不通,或许我应该找点这方面的视频看看。
凌晨 3 点。
还是回到后台服务吧,我决定用 NodeJS 了,毕竟我熟悉,能快速构建,等问题出现我再用 Go 或者 Erlang 重写吧。
我是不是该用一个成熟的框架呢?我不希望拉下一堆超级大的、难以理解的依赖。但如果不用框架,我就要自己手动处理认证、邮件等等问题。虽然不是很难,但也会耗尽我大部分的业余时间。
等等,我貌似不需要登陆和账户问题,我的应用很小也很轻量。不过这是不是长久之计呢?我的使命愿景和价值观是什么?我如何做到高内聚低耦合,做到将来容易扩展呢?
回到代码问题吧。我数据存哪?这问题也很复杂,MongoDB 很流行,任何关于 Mongo 的问题,在网上我可以轻松搜到解决方案。但我不是很喜欢这种弱 schema 的存储,我喜欢关系型数据库。不过我的应用关注于实时,我的存储选择也要做更多考虑。Redis 就不错,不过它是怎么保存数据的呢?
读了半小时博客,毫无进展。我觉得 Redis 不是最佳方案,我需要反规范我的数据结构,但我还不知道我需要什么样的数据。
好的,不管了,就 MongoDB 吧。我搞完这个项目就应该发个链接给我的朋友们试用。我怎么安装 Mongo DB 呢?emm,我不想把我的 Mac 变成垃圾场,用虚拟机吧,我上次用 Vagrant 发现它不能高效查看文件,这明显没法快速迭代我的开发环境。
那就用 Docker 吧,这能让我的部署简单一些。那我怎么部署 Docker 呢?我来照着 Get started 敲一下。
好的,快四点了,睡觉。
版权声明: 本文为 InfoQ 作者【张理查】的原创文章。
原文链接:【http://xie.infoq.cn/article/a5f7308ff5c0de36971675a4e】。文章转载请联系作者。
评论