写点什么

为知笔记:从 PC 软件到移动应用的选型思考

  • 2014-11-04
  • 本文字数:1168 字

    阅读完需:约 4 分钟

相比传统的 PC 软件,移动互联网应用服务对界面、业务逻辑与底层架构往往有着不同的需求,因此 PC 软件转型到移动互联网应用服务往往需要较大的重构工作。近日,InfoQ 中文站与为知笔记 CEO 李峻进行了沟通,了解为知笔记在客户端开发与后端架构设计方面的一些选型思考。

产品概述

为知笔记(WizNote)的定位是“协同工作”的云笔记类移动应用,开发于 2011 年,目前提供 PC、Mac、Linux、iOS、Android 客户端以及 Web 版本,现在已经在全国有 300 多万个人用户,20000 家企业用户。

为知笔记的前身是于 2001 年上线的 PC 端知识管理软件网文快捕(Cyber Article)。网文快捕可以做很多事情,包括网页收集、MHT 编辑、HTML 编辑、电子书制作等,但也因此过于臃肿。为知笔记的定位是轻量级应用,制作早期的想法是做多个电脑和手机上都可以随时使用的功能,就引入了云端托管以及客户端同步机制,因此大部分都是重新架构的,只有 Windows 客户端的核心组件来自于网文快捕(例如网页离线抓取、导入导出各种格式、格式解析、编辑器等)。同时为了提升客户端的速度,为知笔记引入了插件机制解决了不常用功能造成系统消耗的问题。

团队概况

为知笔记的两位创始人魏拾俊和李峻曾就职于金山软件,拥有 10 多年的技术开发和团队管理经验。团队目前 20 人,大部分都是研发。

技术实现上,每个客户端有专人负责。所有客户端中核心的 HTML 部分由于前端团队负责。架构、接口、规范和审查统一由 CTO 把控。

产品组和设计师共同负责产品设计和相关工作。

团队任务的优先级由几个纬度把控,由运营数据、行业判断、用户反馈等做判断依据。主要的纬度有两个:

一是创新优先。在保证基础功能品质的前提下,集中火力做解决用户痛点的创新功能以保持产品线的发展,如目前的研发重点是多人协同的一些特性。

二是跟随用户。根据目前国内用户的实际情况,团队主要聚焦在 iPhone 和 Android 上而放弃了 Windows Phone。优先完成 Windows,随着 Mac 用户增多,逐步完善 Mac 产品线。

架构设计

为知笔记以 SaaS 的方式提供企业应用服务,研发重点在前端与客户端。基础架构最初尝试过 AWS 国际版,由于速度原因放弃。在自己的服务器上运行过一段时间,后来于 2012 年 10 月完全迁移至阿里云。目前使用了 ECS、OSS、SLB、云监控与云盾,其中 ECS 大概在数十台的规模。

经过不断的调整,为知笔记目前是千万级用户的架构,其特点概述如下:

  1. 架构可以横向扩展。每增加 50 万用户,就新开一组服务,包括一套可用性互备的应用服务、关系数据库、存储服务、索引服务、协同服务等。
  2. 数据和计算服务可以拆分,用户可以选择独立服务,甚至把数据存在自己的阿里云帐号里。
  3. 使用 SLB 统一对外提供服务。
  4. 为海外用户提供代理跳板,在阿里云香港节点上。

扩容时新开服务器组需要手动配置,但操作简单。代码的部署和升级方面,现在提交到 Github 主干上的更新,服务会自动升级。

2014-11-04 00:462251

评论

发布
暂无评论
发现更多内容

终于有人把操作系统、网络系统、线程进程、IO模型全部总结出来了

Java~~~

Java 架构 面试 TCP 网络

360搜索宣布下线“明星人气排行榜”:饭圈文化不是洪水猛兽

石头IT视角

【Flutter 专题】67 图解基本约束 Box (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Java实现基于朴素贝叶斯的情感词分析

码农参上

Java 贝叶斯公式 文本情感分析 8月日更

在科技圈流行的冥想,为什么没有全民推广?

脑极体

在线IP地址查询工具

入门小站

工具

飞书 + Lua 实现企业级组织架构登录认证

K8sCat

lua openresty 网关 飞书 组织架构

聊聊Java数据类型的那些事

Bob

Java 后端 8月日更

手撸二叉树之二叉树的中序遍历

HelloWorld杰少

数据结构与算法 8月日更

摸鱼小技巧之IDEA调试篇一

4ye

Java debug 后端 IDEA 8月日更

架构实战营毕业总结

Vic

架构实战营

面向用户的产品进度汇报会

boshi

项目管理 客户

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

编程菌

Java 编程 程序员 面试 计算机

使用Golang上传文件到MinIO对象存储(一)

liuzhen007

8月日更

你的孩子爱读书吗

箭上有毒

8月日更

Java 项目还需要 joda 吗

HoneyMoose

「让我们一起Golang」怎样出让协程资源和设置可用CPU核心数

Regan Yue

高并发 协程 Go 语言 8月日更

【前端 · 面试 】JavaScript 之你不一定会的基础题(二)

编程三昧

JavaScript 面试 大前端 事件 8月日更

SQL的执行计划-->explain

卢卡多多

sql 8月日更

B 端产品经理如何快速成长?

蒋川

数据产品经理 b端产品经理

Web框架Gin | Gin 路由

xcbeyond

Go 语言 路由 gin 8月日更

Linux之telnet命令

入门小站

Linux

【设计模式】迭代器模式

Andy阿辉

C# 后端 设计模式 8月日更

ISO-8601 如何解读

HoneyMoose

低耦合、高内聚?

escray

学习 极客时间 如何落地业务建模 8月日更

与外部系统的读写交互(八)

Databri_AI

flink kafka Cassandra

Django QuerySet 就学那么一点点,一点点就够了

梦想橡皮擦

8月日更

ReentrantLock 中的 4 个坑!

王磊

Java 并发 lock 8月日更

网络攻防学习笔记 Day104

穿过生命散发芬芳

态势感知 网络攻防 8月日更

oeasy教您玩转vim - 16 - # 行内贴靠

o

架构实战营毕设

Vic

架构实战营

为知笔记:从PC软件到移动应用的选型思考_Android/iOS_sai_InfoQ精选文章