写点什么

为知笔记:从 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:462393

评论

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

初识Golang之声明函数

Kylin

3月日更 21天挑战 Go 语言

异步机制和CPU架构对 Redis 性能的影响

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

区块链六大应用场景,推动政府信息化发展

13828808769

区块链+ #区块链#

推荐 2 款必备的 Django 开发神器

星安果

Python django Web 后端

如何正确使用Python临时文件

华为云开发者联盟

Python 安全 临时文件 tempfile 库函数

QCon全球软件开发大会:推动创新,实现技术落地

博文视点Broadview

【LeetCode】删除排序链表中的重复元素 IIJava题解

Albert

算法 LeetCode 3月日更

基于深度学习的两种信源信道联合编码

华为云开发者联盟

深度学习 通信 编码 信源编码 信道编码

Golang号称最快的Json解析器速度可达5623ns/op

happlyfox

学习 3月日更 Go 语言

电子证照上链--助推智慧政务

13530558032

区块链中药溯源--区块链为中医药溯源认证

13530558032

一段java代码执行旅程

华为云开发者联盟

JVM class 指令 java代码 java栈

智慧公安信息化管理系统,重点人员管控系统的搭建

13828808769

智慧交通

低代码是什么?低代码价值主要体现在哪?

优秀

低代码

镜像仓库学习笔记

lenka

3月日更

Python基础之:Python中的模块

程序那些事

Python Python3 程序那些事

区块链BaaS应用平台搭建,助力企业运用区块链解决业务问题

13828808769

区块链 区块链+ 区块链发展 #区块链#

Worktile 前端工程化之路

PingCode研发中心

大前端

主数据建设的挑战与发展

EAWorld

困扰一周的奇葩bug:重复相似代码多,导致单片机程序跑飞

不脱发的程序猿

28天写作 硬件设计 嵌入式软件 单片机 3月日更

设计与思考,关于资源和生命周期

程序员架构进阶

设计实践 生命周期 28天写作 3月日更 池化技术

通俗讲解分布式锁,看完不懂算我输

Java小咖秀

Java 分布式 多线程 并发

Rust从0到1-基础概念-数据类型

rust 数据类型

华为云PB级数据库GaussDB(for Redis)揭秘第六期:Feed流场景中的应用

华为云开发者联盟

数据库 redis 华为云 GaussDB Feed流

Gas费用持续攀升!NA公链NAC公链如何破解高额Gas费用的困局?

区块链第一资讯

​Autonomous Dream Works的独创力杰作EGGNetwork EFTalk

币圈那点事

能源绿色管控:天然气站启动数字化转型,工业企业该如何突围?

一只数据鲸鱼

物联网 数据可视化 智慧城市 能源管理 天然气

Datadog 能成为最大的云监控厂商吗

睿象云

运维 运维平台 Datadog 云监控

分布式锁的实现方案

360技术

搞懂 ZooKeeper 集群的数据同步

HelloGitHub

Java zookeeper ZooKeeper原理

网络连接之协议栈

Kylin

协议栈 3月日更 21天挑战 网络连接

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