Fork me on GitHub

开始前的准备

开始前的准备

产品理念

在开始之前,我们需要先理清产品的理念,这是指导整个产品走向的关键部分。只有清晰地知道想要打造一个怎样的产品才能很好地落地。这是一个垂直类的搜索引擎,但不仅限于搜索,应该是一个真实有效信息和价格分析的集合。

准备

以下罗列的一些技术上的选型不一定适合每个项目,但技术选型从来都是根据实际情况和技术储备来做决定的。

语言的选择

这似乎是每一个互联网创业团队首要面临的问题;也是各语言攻城狮之间争论不休的话题。作为一个对语言没有偏见的程序猿,这将不会局限于采用哪种语言来实现。我想每种语言存在肯定有其存在的理由,只是适用于不同场景而已。因此,在这个项目程序分如下几个部分:

数据采集使用scrapy(python)

之所以选择scrapy是由于scrapy是一个现成完善的爬虫框架,更重要的是本人用这个框架采集过相应的数据。对这个框架不了解的同学,可以参考之前写的scrapy爬虫系列文章。

后台权限管理使用django(python)

django是一个完善的权限管理系统,可以最大限度降低不必要的编程工作。可以非常简单地上手使用,但前提是有一定的编程基础。有关django快速入门可参考:django快速入门

搜索部分使用elastic search(java)

elastic search是一个java编写的分布式搜索引擎,提供restful接口的数据,无论是python还是java都可以很好地通过api获取相应的搜索数据。

前端呈现部分,django/php

前端搜索结果的呈现可以采用django或者pyton,样式采用简单易用的bootstrap。这样可以较好地降低不必要的开发工作,以最低成本另项目上线。

数据库

毫无疑问是mysql

操作系统

拥抱开源,操作系统centos 7

docker的使用

为了快速搭建一套可运行的环境,这期间将采用docker搭建所有可能的运行环境。避免在环境上耗费过多的精力。

主机购买

  • 阿里云
  • 腾讯云

域名的购买和备案

  • 万网
  • 西部数码等

域名解析

  • dnspod

持续集成和自动化部署

  • jenkins

上述提到的各个部分,不一定在某一个时间段内完成。也许是穿插在整个产品开发的始终。也许有人会有疑问,一个产品需要使用这么复杂的技术面吗?一个Java就可以搞定,又python,又php。确实,上述提到的技术Java都可以搞定,但作为一个对技术语言没有偏见的人来说,什么语言适合干什么事情就用什么语言。这样可以简单高效地达到目的再好不过了。

这只是开始前的一个大体思路,也许在执行过程中会有很大的出入。例如持续化集成和自动话部署刚开始肯定没有,甚至有可能到很后期都不会有。因为在人员不多的情况下,自己写个脚本部署一下即可。没有必要耗费太多的精力在这些无关紧要的事情上;技术应该是为产品服务的,而不应该为了用而用。

posted @ 2017-06-10 16:25  秋楓  阅读(371)  评论(0编辑  收藏  举报