Try   HackMD

从零独立开发一个互联网应用

tags: blog dev

前言

我为什么要做这个项目:TBD

过程记录

  1. 确定产品需求
  2. 团队协助
    • 文档管理 & Task tracker
    • 代码管理
      • 工具: GitHub
    • API 设计工具
      • 工具:RAML 基于 YAML 语法,简单易上手。可用 raml2html 工具生成可视化的 html
  3. 技术选型
    • 部署
      • Docker + VPS 云主机
        • 首先不考虑生搞机器
        • Google App Engine 国内无法访问,切不方便后续扩展/自定义/迁移/维护
        • K8S 集群太贵(调研了阿里云 K8S),而且小规模应用暂时不需要
        • Docker + VPS 云主机是综合考虑之后的方案
        • GCP 机器本来就跑着 v2ray 和个人主页,可以用来做测试机
        • 正式环境考虑部署到阿里云
          • 没有比较过国内其他云,纯粹因为口碑(所在的公司和朋友的公司都用阿里云)
    • 后端语言
      • Golang
        • 使用过 Python,弱类型的缺点太明显,写的时候容易出错,重构的时候更是难受,很难预知错误
        • Golang 同时兼顾开发效率和程序运行效率
        • 尽管我从未使用过 Golang,但是 Golang 很酷很新鲜,我个人是很喜欢尝试新东西的人
        • 框架
          • Gin
            • 朋友推荐的
            • 支持 ORM
          • CMS
            • 文章管理:HackMd
              • 项目的主要内容是文章,HackMD 是一个强大的 MarkDown 编辑器,对于文章编辑来说,简单易用
              • 可以通过 Docker 方便地部署到自己的服务器
              • 可同步文章到 GitHub
            • 其他内容管理
              • Flutter Admin
                • 采用 Flutter 减少 web 端学习成本
    • 数据库
      • MySQL
        • 众所周知的优秀的数据库
    • 方向代理服务器 Nginx
      • 据我所知没有更好地 alternative 了
      • 反向代理 + 负载均衡
        • 起步只有一个 service,为后续扩展做好基础准备
  4. 开发 hey API
    • 产出:TBD