作为技术导向的团队,通过正确的技术来推动商业发展是我们的重要任务之一。接下来,将简单介绍下我们团队中用到的一些新技术或工具。
Docker

Docker 是我们团队最喜欢且最常用的技术之一,我们通过它来部署和维护大量基础服务(GitLab、CI、Registry 等)以及线上产品。借助 Docker Compose,我们可以在任意一台服务器上准确、快速地部署复杂的服务群。而通过轻量级的 Portainer 和 Swarm(未来可能切换到 k8s),我们可以很方便地管理我们的服务器和容器集群。
这些 Docker 社区提供的各种设施和工具,让我们彻底摆脱了「部署炼狱」,从而可以轻松地手工、甚至通过持续集成来自动部署任何服务。而通过像 Docker-Gen 这类的工具,我们还可以对容器进行一些监控和自动化,例如自动编写 Nginx 配置、自动申请免费 SSL 证书等。
GraphQL

目前我们的大部分服务接口都在使用 GraphQL,它简化了我们在接口开发上的很多工作。
不同于过往的 Rest 接口开发,我们的工程师都是面向 Schema 开发,「Schema 即文档」。而社区提供的一些工具能大量提高我们的开发效率,例如通过 Playground 可以进行接口调试,通过代码生成器可以将 Schema 转换成指定语言的类型代码。
通过 GraphQL 语言来查询数据让我们的前端变得更灵活。我们可以自由组合需要的字段,可以在一次 Http 请求中查询到所有需要的数据。此外,像 Relay 和 Apollo 这类 GraphQL 前端框架还提供了字段粒度的全局缓存、乐观更新、分页等前端常用的功能,能大量地减少前端的负担。
Flutter

对于初创团队而言,能够快速地迭代产品十分重要。所以为了提高生产效率,我们在开发移动客户端时更倾向于选择跨平台的解决方案。而在经过一段时间的尝试和研究后,我们在 Flutter 和 React Native 两个热门方案中最终选择了 Flutter,并用它来开发了一个完整的社交类型 App。
即便 Flutter 以及其社区还处在初期阶段,但是其工具链已经足够成熟,对于技术能力较强的团队是可以直接用在生产上的。而对比起 React Native 来说,Flutter 真正能让你用一套代码来完全控制你的前端渲染,只有渲染无关的部分才可能需要写 Native 代码。
Flutter 目前还在快速地发展,我们在时刻关注着社区动态以及官方的 Issue 列表,未来也会继续重压在这门技术上。
其他
Hugo

我们十分喜欢通过 Hugo 来快速搭建用于商业展示的静态网站,并且使用 Markdown 来进行内容管理。我们甚至搭建了一个 Demo 展示站:
里面展列了我们挑选的一些来自社区的模板并且能够进行在线预览。
我们后续会陆续开发一些面向工程师、甚至普通用户的产品、服务,而使用 Hugo 可以让我们快速搭建商业落地页。
Tunnel

AgileByte Tunnel Service 是我们基于开源社区代码搭建的一个用于反向代理的服务。它能穿透内网、快速把你本机某个端口的服务转发到服务器并暴露出去。
这在我们团队需要临时调试、或者展示页面效果的时候十分有用。目前,我们正在对该服务进行完善,未来可能会开放给公众。
(伪)正文

这篇文章要夹带的私货有点多 hhh。最后在这打个招聘广告,目前我们团队希望能招收几个技术实习生,如果你对技术抱有热情,并且对我们团队有兴趣的话可以直接在服务号中留言。
远程工作(如果你在广州的话也可以来办公室上班)。我们能为你提供业内最先进的技术栈和工具,如果是为了学习而来的话,我们可以保证不会让你失望。