爬虫系列3:系统设计(一)

开始一个项目,需要先考虑采用什么技术和架构。 ## 技术选型和架构 根据我们项目的目标,涉及到的技术可能包括:前端、服务端、存储等。 我们的主角是 Go,服务端自然会使用 Go。然而,在实际项目中,做技术选型时,我们需要考虑如下因素: 1. 该语言是否适合做这件事? 2. 语言是否成熟? 3. 团队中是否有人能 hold 住? 4. 团队成员是否大部分熟悉它?如果不是,学习成本如何?大家是否愿意学? 5. 一些可能的第三方依赖,是否有该语言的支持? 6. ......阅读全文

2019-04-27 08:56:12

爬虫系列4:系统设计(二)

接着上一篇,我们继续聊系统设计。 ## 项目结构和代码组织 一个项目,目录结构如何组织,各个语言似乎有自己的一套约定成俗的东西。Go 语言经过这几年的发展,慢慢的也会有自己的一些目录结构组织方式。新手也常常问这样的问题。今天我们一起讨论该问题。 Go 一开始定位是系统语言,但似乎这几年发展下来,大家更多用于进行 Web 开发。我们的爬虫项目,也算是一个 Web 项目,因此我们着重讨论 Go 中 Web 项目结构问题。 **先抛出一个方法论:在得出结论前,我们应该做大量的输...阅读全文

2019-05-02 19:34:25

用Go实现一个简书4:需求分析和系统设计 3 - 核心功能的方案设计和难点分析

通过前面的教程,我们了解了简书包括的主要功能。本教程我们着重进行方案设计。 ## 核心功能的方案设计 本着实用的原则,结合互联网公司的常见做法,我们不会像课本上学到的那样,进行完整的设计,比如:各种类图、时序图、数据库关系图等。我们这里讲的设计,主要根据核心功能需求进行的数据库设计。后面具体动手写代码前,一些关键的地方,我们可能会穿插着进行相关的设计说明。 就简书系统而言,关系数据库是比较合适的选择,同时出于学习的目的,我们会考虑同时支持 MongoDB。 注意,虽然 M...阅读全文

2019-11-05 17:50:36