V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Phuasheng
V2EX  ›  程序员

[半自由职业两个月总结] MiniTagcloud 背后的故事

  •  2
     
  •   Phuasheng · 2019-03-05 17:17:18 +08:00 · 4609 次点击
    这是一个创建于 2119 天前的主题,其中的信息可能已经有所发展或是发生改变。

    MiniTagcloud 是一个在线文字云制作工具,即使你不会 PS、AI,你也可以做出形状词云图,混合词云图,文字词云图。

    为什么要做这个

    我是一个产品起家,业余技术(偏前端),一个典型的什么都想尝试的产品狗。

    上班的时候,曾经接过一个活,做一个词云图片,费劲千辛万苦,什么 ps、python 生成、tagul 等,最终还是不能很好的交差。

    于是 500 块就飞走了。对于煮熟的鸭子飞走了,总是难以忘记。就想着,要不业余时间搞一个中文版的词云?

    当然,因为当时状态不允许并且技术也不太熟,我还是没做,在 18 年的时候,我又想起了它。

    工作中并没有完整的负责过一个产品,于是想借此机会开始从 0 到市场推广,好好的接触尝试一下,我坚信完整的走完流程,一定可以学到非常多的知识,况且我还小,为什么不去尝试呢?

    不瞎扯了,进入正题。


    是如何落实的

    点子只是点子,需要让它变的丰满,就必须思考几层问题:

    1.解决什么用户的什么问题
    2.怎么解决
    3.如何盈利
    

    当我做完上边三条的解答后、谷歌了下用到的专业技术,确定了这个点子是可以尝试的,只不过用户群体比较小,市场小,盈利也不会很多,好在技术不难。

    我假装自己要写商业计划书,开始更加完善自己的想法,就会遇到以下的问题:

    4.如何转化成产品,解决问题需要哪些功能、方法
    5.如何推广与运营
    6.有多少人有这份需求,也就是市场有多大
    7.最少几个人才可以完成产品
    8.市场竞品有多少,是否可以预估它们的流量,以及它们各自的特点
    9.既然要做,要做到什么程度,如果分版本的话,每个版本会是什么样子
    

    针对以上各种问题,我找到了我的好伙伴,坐在一起嗑瓜子,顺便做探讨研究。虽然每个问题都得到了回答,但并不知道是否是正确的,而且每个答案也没有很清晰,不过我们愿意尝试。

    回答软性的问题后,我们基本有了个大概,于是开始梳理目前用户遇到了什么问题,有什么需求。

    需求调研,我采取了两种方法:

    1.第一种比较投机取巧:查找竞品,并将竞品的优势与不做的地方,统统记下来,根据它们自身的流量,确定用户是否有这方面的需求。
    2.第二种与真正的用户接触:确定用户群体后,进入到一些 QQ、微信群里面,尝试收集用户遇到的麻烦。
    

    需求整理完成后,与小伙伴探讨后。决定先效仿行业中比较不错的(就是 tagul,后来改名字了),采纳了他的很多功能,也了解了背后的团队。

    我尝试着将需求转换成功能,并在原型中体现。做完精简的原型后,试着给我的伙伴讲解并征求一些意见。

    完善修改完成后,我们对具体有做啥、有什么功能、版本 1 是什么样子的,基本有了个大概。

    紧接着我罗列了一些接下来要做的、思考的内容:

    1.给产品设计一个 logo,但我并不会 ps\ai
    刚开始的想法是找一个朋友或者外包团队帮我制作一个 logo,所以总是不满意,于是听了朋友的意见,干脆就自己学习 ai,但是从零开始学,总是会浪费时间,好在我并需要学的很深,并且也不复杂,花了近 5 个小时,终于做出了一个不是很丑的 logo。

    2.从技术的角度开始解决核心的算法问题
    在动手之前,我学习了前端的一些知识,和一些专业做前端的打过交道,决定用 vuejs,他们并推荐给我他们自己的产品 thinkjs 作为处理后端的一些请求。
    MiniTagcloud(MTG)要做一个关于词云生成,核心在于词云算法,我去 github、stackoverflow 等知名技术站上找并尝试着理解运行别人的代码,最终经过很多很多很多的坑,还是让我拼凑出了一个可以运行的核心算法。

    3.如何推进并完成
    为了防止中途放弃,或迷失方向,我需要为我们制作一个目标与计划,我们放弃了使用 KPI 这种管理方法,决定尝试用 okr 与敏捷开发(之前只是了解过 okr 但并没有尝试)。我们坐下来一起商谈关于 O 是什么、KR 是什么、使用 SMART 来保证每个 KR,刚开始使用 tower 来记录与做计划(因为之前使用过),后来发现 tower 的看板不够有层次,最终还是用了 easypm 来解决我们日常的目标计划文档。

    同一时间,另一个伙伴开始学习运营与市场(他的工作内容与职业并不相符,所以也需要从头开始学习)、了解社群、学习如何测试、搭建文档、调研竞品、获取投放渠道等

    时间就像海绵宝宝的小短腿,一晃眼就过了几周


    开发与测试

    在解决核心算法的过程中,遇到了很多很多的问题,不过最终还是解决了。

    表设计

    我将功能进行分类,然后根据会遇到的字段,总结了出了 3 类要设计的表:

    1.用户类:用户基础信息表、登录记录表、用户微信关联表、用户手机号关联表、用户会员关联表。
    2.作品类:用户作品表,匿名作品表,作品与数据关联表
    3.素材类:用户字体表,用户形状表,用户混合素材表,公共形状素材表,公共字体素材表等等
    还有其他的表,就不一一列举了。
    

    前端开发

    确定使用 vue 框架后,被别人推荐用 element-ui 解决组件,开发过程中总是一波三折,遇到 bug 解决了会很开心,没解决会变得很瘦。

    我开始将核心算法与 UI 结合起来,效仿竞品并根据自己的感觉设计 UI,搭建完核心的 UI 后,根据 EASYPM 上的任务,来确定下一步怎么走。

    作品的渲染、保存消耗了我大量的时间,登录模块也写的异常艰辛。好在花费了近 1 个月的空余时间,终于写出了一个基础版本。当然已经大大的拖延了进度。

    后端开发

    在写后端的过程中,开始了解 mvc、文件缓存 redis 及缓存管理、定时任务,对着 thinkjs 文档一步一步的写下去。

    分词模块总是很让人糟心,因为购买的服务器并没有很多的内容,所以排除了很多的分词算法,以及文件大小,我也知道文字云对于分词要求蛮高的,所以和小伙伴商量后,决定将分词模块单独摘出来,做成任务队列形式,当然这并不是第一阶段要做的。

    购买服务器

    在异常艰苦的前端、后端、数据库、缓存开发完成后,决定想部署到测试环境中,让小伙伴测试,提提问题等。

    我在 name 上购买了 minitagcloud.com ,又在 vultr 购买了 vps,部署完成后,发现访问总是很慢,有时候甚至出现打不开的情况。

    所以专门研究下,站内优化我采用几种方案:

    1.使用 webpack bundle analyzer 查看并根据需求减少包的大小
    2.将静态文件部署到云上,并使用 CDN 对静态的文件加速
    

    做完这两步明显速度上来了,但整体的速度还是很感人。

    国外域名解析到国内服务器

    分析原因后发现访问 vultr 的服务器总是很慢,顺杆子爬就想到了 name 上的域名是否可以解析到国内的服务器。

    查了很长时间的文档,发现并不可以,指向国内服务器必须经过那无聊的备案。

    带着 bug 入睡,总是做噩梦,早晨起床,灵机一动,又有了一个新的想法,使用 cname 解析到国内域名,我找了好友的服务器进行了测试。

    经过很长时间的捣鼓,发现 80 端口不能访问,但 443 是可以跳过来的,那也就意味着,name 上的域名只要搞个 https,使用 cname 解析到国内域名,然后将密钥放到国内的服务器上,配置 nginx 基本就可以了,最后我成功了。

    但是这里出现一个问题,国内服务器配置好 443 端口,同时将 80 端口 301 强制跳转到 HTTPS,如果是同时配置的,那不会出现问题。(可以的:http://gallery.minitagcloud.com

    但当时我忘记配置了其中一个子域名 301 到 https,过了很长时间想起来后,再次配置已经不可以 301,而是直接跳转到了腾讯的未备案的默认页面,这就非常诡异了,难道运营商是有缓存不成?(不能的:http://zh-cn.minitagcloud.com

    不过不影响,也就没有再深入尝试了。

    测试与部署

    我和小伙伴一起在测试环境中测试产品,将中间所有遇到的问题,打个标签以各种维度进行分类,提一部分,改一部分,前前后后近改了 30 多个 bug (大的要拆分成小的)。

    就这样,持续了近 1 周的时间,我们决定这个版本已经可以使用了,虽然 bug 还是很多,但是已经可以提交给搜索引擎,让部分用户尝试使用了。

    学习 SEO

    在提交到搜索引擎的时候,先列了个表,要提交几个,分别是什么。

    漫长的提交,到头来,发现百度就是个垃圾,谷歌总是非常理解“互联网”。

    刚上来并不知道,vue 的问题、alt、title 的问题,提交过程中,不断的在修改,调整各种标签。

    vue 因为是单页面应用所以,所以对 seo 的支持不好,但做之前,并没有想过这一层,最终所有的项目都是 vue 做出来的。

    我费劲脑汁,决定将 vue 的一部分页面交给后端程序处理,其他页面不变。使用 nginx 拦截一部分的请求,跳转到某个端口上,交给后台程序处理,处理完成后,返回给客户端网页,同时客户端网页还是引用 VUE 打包好的 JS。(就像这样:https://gallery.minitagcloud.com/uwall?p=1)

    尝试着提交站,但只有一部分的站收录,发现搞 SEO 真是个费精力、费时间的活。

    关于运营与推广

    如果说技术我还懂点的话,那运营与推广真的是一窍不通,我和小伙伴学习了很长时间,将学习到的与将要做的,都记录到日程中。

    我们尝试着和一些站合作,尝试着找到一群可以帮助我们的 v,一起谈合作,我们有一定的预算,但不是很多,对于市场运营我们还要学习很多的东西。


    我的想法

    MTG 是我第一次独立制作的产品,或许这个产品受众比较少、市场比较小、也没有多少利润,但从决定要做那一刻,我们就想把它做好。

    做的过程中,总是因为 bug 忘记吃饭、早起、晚睡,而又因为 bug 解决高兴的奖励自己吃顿大餐,最不开心应该就是身上的游泳圈了吧。

    虽然我和小伙伴都是半路出家,一个产品、一个销售,在制作过程中,我们都不是专业的,甚至做出来的东西,都不是专业的。不过,我们愿意学习、愿意修正、愿意尝试,或许我们的产品会失败,但失败总是成功的二舅妈,我们年轻,不试试都对不起我身上穿的骆驼祥子,说不定我们成了呢!


    最后

    以上就是半自由职业 2 个月来,自己做产品学习以及经历的东西。下周我将会总结下在做 mtg 过程中吸取的教训,如果有想法或者指导建议合作可以发送到我的邮箱:[email protected],或者也可以添加我的微信: QVAwRHJpZnQ= (不喜欢被挖,可以直接联系我),我们将在 2019 年推出 3-4 个产品。

    对了,网站的地址是这个:https://minitagcloud.com/

    最后,感谢大家观看,( ̄^ ̄)ゞ

    27 条回复    2019-03-12 19:23:18 +08:00
    Phuasheng
        1
    Phuasheng  
    OP
       2019-03-05 17:24:52 +08:00
    并没有被推荐,先自己顶个
    Phuasheng
        2
    Phuasheng  
    OP
       2019-03-05 17:36:53 +08:00
    悲伤,目测要沉
    aqb
        3
    aqb  
       2019-03-05 17:56:40 +08:00 via Android
    挺好看的,虽然目前用不上👍
    0kaka
        4
    0kaka  
       2019-03-05 17:59:04 +08:00
    已收藏,帮顶
    jdhao
        5
    jdhao  
       2019-03-05 18:03:16 +08:00 via Android
    资瓷,不过好像有开源的方案
    sep1025
        6
    sep1025  
       2019-03-05 18:18:33 +08:00
    挺不错
    cheeto
        7
    cheeto  
       2019-03-05 18:27:13 +08:00
    很棒哎,我连自己想做点什么都想不出
    guixiexiezou
        8
    guixiexiezou  
       2019-03-05 18:32:29 +08:00
    收藏一个,厉害了
    alexsunxl
        9
    alexsunxl  
       2019-03-05 18:35:17 +08:00
    帮顶一下
    w4mxl
        10
    w4mxl  
       2019-03-05 18:55:00 +08:00 via iPhone
    @Phuasheng 不怕,来帮顶,嘻嘻
    cmlanche
        11
    cmlanche  
       2019-03-05 19:09:25 +08:00
    不错,收藏了,看我这篇文章 https://www.v2ex.com/t/539137,加我微信 cmlanche,拉你进独立开发者群,独立自由职业者的世界你并不是一个人!
    quietjosen
        12
    quietjosen  
       2019-03-05 19:19:26 +08:00 via iPhone
    写的非常好,支持!
    dimlau
        13
    dimlau  
       2019-03-05 19:32:34 +08:00
    都不支持 RSS 源的吗?
    emmm...
    Phuasheng
        14
    Phuasheng  
    OP
       2019-03-05 21:50:15 +08:00
    @cmlanche 感谢
    lzlor
        15
    lzlor  
       2019-03-05 21:54:05 +08:00
    收藏,帮顶
    thelderfrog
        16
    thelderfrog  
       2019-03-05 22:00:46 +08:00
    关于 SEO 你可以用 Vue-SSR 或者封装好的 Nuxt.js ,这个上手也很快的
    accppd
        17
    accppd  
       2019-03-05 22:02:30 +08:00
    创意不错,关注了
    htryit
        18
    htryit  
       2019-03-05 22:32:35 +08:00
    seo 可以建几个静态的宣传页面,不一定非要用这个单页面
    wtcoder
        19
    wtcoder  
       2019-03-06 01:53:05 +08:00
    有心之人,给你点个赞!
    Phuasheng
        20
    Phuasheng  
    OP
       2019-03-06 09:25:00 +08:00
    @htryit 嗯的,这个可以有,我会顺着你说的这个做。

    @thelderfrog 感谢建议哈,看了下官网,觉得现在的复杂度还可以,如果再大点,肯定会尝试 Nuxt.js 。从复杂度、开发速度来说,我觉得现在可能使用静态文件更合适。
    imchenlong
        21
    imchenlong  
       2019-03-06 10:14:57 +08:00
    关注了。做得很不错,这一趟下来,很全栈了
    hjchjc1993
        22
    hjchjc1993  
       2019-03-06 14:53:44 +08:00
    真的很棒,已经收藏了。可是不收费,您是怎么赢利的呢?
    Phuasheng
        23
    Phuasheng  
    OP
       2019-03-06 15:30:26 +08:00
    @hjchjc1993 收费肯定要做的,不过会在用户量比较大之后再做
    Gyroboy
        24
    Gyroboy  
       2019-03-06 19:37:24 +08:00
    收藏,帮顶✌️
    Phuasheng
        25
    Phuasheng  
    OP
       2019-03-08 15:14:45 +08:00
    看到大家的支持,给我们带来很大的动力
    anypwx
        26
    anypwx  
       2019-03-12 12:37:30 +08:00
    你这个多久昨晚的呢
    Phuasheng
        27
    Phuasheng  
    OP
       2019-03-12 19:23:18 +08:00
    @anypwx 从开始到目前大概 2-3 个月左右,因为是第一次正式做产品,中间遇到了很多很多的麻烦事,所以比较耽搁
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5477 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:42 · PVG 16:42 · LAX 00:42 · JFK 03:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.