首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

40 老码农分享下半年的全站开发的故事

  •  5
     
  •   iorilu · 33 天前 · 6968 次点击
    这是一个创建于 33 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    本人今年 8 月满 40, 2001 毕业干码农, 反正按部就班成了高级开发, 然后资深开发, 30 岁顺利走上管理, 后面基本都是侧重管理, 不亲自干活(没机会干)

    现状

    下岗在家边炒股, 边开发系统(股小天机器人)

    原因

    虽然好像很顺利, 但我还是一些遗憾, 因为我那时候开发和现在确实不能比, 基本都是单一, 我那时做过 asp, 后来转到 java,相对来说做的东西比较单一, 都是老套的 web 系统, 现在好像叫巨石应用(monolithic)

    所以东西都在一起, 后来 mvc 好点, 有一定分离, 但还是不爽

    总之, 相比现在那时候的活干的就是不爽, 自然也没啥成就感, 另外因为我那时候还是优先外企, 所以也没参与什么激动人心的产品开发, 反正就是没啥成就感把

    所以我一直想自己做点东西

    在下岗前其实我也到一个创业公司干了一年半时间, 确实接触了所谓的现代化开发环境, 流程, 大数据, 分布式等等, 这个也很有帮助

    股小天系统背景

    为什么开发这个东西, 因为我自认为没找到好用的股票软件或系统, 传统的股票软件系统确实好像给你大量数据, 图表, 但实际上并没什么用, 因为都是些主观的想法, 炒股我觉得还是客观点好, 系统比人可靠

    当然, 炒股的人都知道, 有很多系统可以干一些划线, 选股, 统计之类的事

    但是我还是觉得不方便

    一个偶然机会, 我了解到了一个自然语言理解(NLU)的技术, 这也是因为这几年机器学习火爆, NLU 其实也是个很实际的应用, 也得到很大发展 所以我就想开发一个股票助手机器人, 我只要告诉他我想要干嘛, 机器人帮我查查不就行了

    技术选型

    由于本人业余也陆续学了一些 python, 其实我早就觉得 python 是个好东西, 但一直没机会搞项目, 原来那个创业公司确实用 python 干了不少自动化运维的事情,所以我决定后台都以 python 实现, 当然最关键的还是我一个人, 必须用一些效率高的开发语言, java 肯定是不合适的

    前端其实对我来说比较麻烦, 我以前做开发都是后端, 前端偶尔写点简单的, 但那时的前端和现在完全是两个次元的东西, 所以前端对我来说完全要重新学习

    正好 react 比较火, 所以我就赶鸭子上架搞起 react 了,顺便学习 es6 之类的东西 不过还是感谢 react 的出现, 这种彻底的前后端分离对于开发比较大型的系统是极为关键的

    一下大概是我在股小天系统用的一些技术

    后端

    • python3
    • redis(缓存, 队列处理)
    • postgres(数据库)
    • celery(分布式任务处理)
    • rasa-core(自然语言模型)
    • wechatpy(微信相关处理)
    • pandas(股票数据处理)
    • flask(web 框架, rest api 开发)

    前端

    • react
    • material-ui(ui 库)

    当然这这是一部分, python 想干点项目用的库是非常多的, 好在基本任何需求都有现成的库, 对于快速开发是很重要的

    心得

    整个系统大概是在 2018 年 10 月开始的, 知道上周五上线, 大概半年多时间 由于时间紧迫, 我大概每周平均工作 70-80 小时吧

    • 全栈 or 全站? 是的, 我标题没写错, 我的确是全站开发, 因为能想到的所有事情都是一个人完成, 毕竟还有很多事不算在开发内, 比如图标我是临时学了下 sketch 后画的

    • 开发三步曲 具体我忘了哪里看的, 总之对我来说是极为重要的,因为开发偏离计划那是常见的事情

      • get it done
      • make it work
      • make it better 其实在我开发过程中, 我感觉最难的不是遇到技术问题, 毕竟现在资源丰富, 具体问题不难找到答案, 难的是一个问题有很多解决方案, 这时候往往就会纠结, 也会影响心情和计划, 比如我曾经纠结到底用 mongodb 还是 postgres 作为数据库, 还有很多次在选择处理某些问题的包时候也会面临选择, 甚至 react 项目目录结构怎么样, 也没什么标准

    这时候就要多对自己念叨上面的三步曲, 先搞出来再说

    做项目都知道, 往往一拖再拖后面可能就没兴趣了, 也许永远搞不出来, 事实上大部分项目最终并没有完成活上线的

    所以对于一个开发人员来说, 把任务完成是最重要的, 其他所以事情, 优化, 架构, 性能等等都可以慢慢来

    • 架构两步曲
      • break it down
      • put it together

    一个系统一般都会经过上面两个过程, 先按整体开发, 然后分离, 再组合一起用

    所以对我的系统而已, 我的开发过程是后端开始放在一起开发, 然后慢慢把相对独立的东西单独做成 package 这样对项目管理, 后续扩展, 甚至 debug 都是很有好处, 能快速定位问题

    后来我一数, 我竟然搞出来近 10 个包, 至少独立出来后面升级维护方便不少

    前台提到的前后端分离也是很必要的 前后端我是使用 jwt 认证, 除掉了常用的 session, 这样也给未来可能的分布式部署提供方便, 还是感谢 node 的发明啊, 我做开发的时候没人会想到 js 能这么玩

    • 队列服务的重要性 因为要想做到真正的分布式, 队列服务必不可少, 无论那种语言, 想开发一个好的系统得有一个好的队列服务方案 python 比较有名的是 celery, 功能还是很强大的, 不过有点复杂, 文档也是很多, 我现在只是初步用用, 待研究

    时间管理的重要性

    • 一个人的项目管理

    我是用了 teambition, 在线的方便, 我的项目任务都在上面管理, 一个人也能玩啊, 每天上午记录任务, 晚上打打勾, 很满足的, 任务划分要合理, 一般来说一个任务不会超过半天那种, 大了就再拆一拆

    • 了解自己的脑力生物钟

    一个人脑力活动肯定一天也有高峰低谷, 合理利用这点也会提高效率, 我自己而言一般是上午为 4 分 ,晚上 5 分 ,下午 2 分

    所以我把任务也分为几个脑力级别

    • 重量级(重要的设计, 算法研究, 重要的业务函数)
    • 中量级(编写一些需求, debug, 普通业务代码编写)
    • 轻量级(前端 ui, 测试, 编写一些操作文档等)

    这样根据任务级别在合理的时间干活, 效率更高, 否则如果一定要在下午研究一个算法, 可能就搞不来郁闷了

    996 弱爆了, 我是 917

    我一周有六天都是 9 点到 1 点的安排 周六可能放松下看点视频

    之所以拉长工作时间, 也是为了给自己一个暗示, 不至于有时候很很急的去干一件事, 因为急了往往就干不好

    锻炼还是有必要的

    为了保证身体相对健康, 我每周还是锻炼 3 次以上,可能练一小时哑铃或者跑 5 公里, 总的感觉除了腰有点累其他还好

    总结

    总的来说 , 还是收获很多的, 也知道了自己能干嘛, 同时逼着自己提高了能力值, 以后也有点值得回忆的事情, 毕竟可能一般人没机会经历这个, 所以想分享下

    以下为广告

    股小天机器人 www.guxiaotian.com
    qq 群: 808755643
    微信公众号: 股小天机器人
    关注直接使用
    也欢迎加群讨论技术问题
    
    87 回复  |  直到 2019-05-21 18:07:37 +08:00
        1
    imningfeng   33 天前 via iPhone
    大佬们果然都是最勤奋的,917....
        2
    nanaw   33 天前 via Android   ♥ 13
    自由职业 007 都没问题,上班 996 绝不可能,这是两码事好吧。。
        3
    vansl   33 天前
    马克。刚好现在也在做任务型 chatbot,做起来还是挺麻烦的。楼主说时间紧迫,是自己给自己定了 deadline 吗?佩服执行力强大的人。
        4
    iorilu   33 天前
    @vansl 是的, 因为我自己以前也是项目经理, 我很清楚一旦项目不断延误进度的后果, 基本上肯定是失败的, 甚至可能出不来
    尽快缩短迭代周期也是现在一个主流把, 所以说第一个版本不能太晚
        5
    lewoer   33 天前
    想起了上一个独立开发两年的老哥. 还好你时间不长, 老婆没抱怨吧.
        6
    vazo   33 天前
    据传言 pony 马是靠炒股积累第一桶资金的
        7
    iorilu   33 天前
    @lewoer 还好, 我这也不算真的创业, 虽然没赚钱, 但也没花钱, 如果不赚钱还要贴钱的那种一般家里肯定抱怨的

    再说家人也知道我也不是公司混不下去才回来, 事实上我在上个创业公司干的不错, 走的时候也是个所谓总监, 分了股票, 这公司后面大概率会上市的
        9
    zhixuanziben   33 天前
    牛逼,但是似乎没法看美股?
        10
    iorilu   33 天前
    @zhixuanziben 暂时只支持 A 股的
        11
    jeblur   33 天前 via Android
    917 如何做到一周锻炼三次每次一个小时的。。
        12
    iorilu   33 天前
    @jeblur 这个吗, 917 是我的作息时间, 至于一周 3 个小时锻炼还是抽得出时间的

    主要是自己把握自己状态, 也不能太过头, 还是效率第一, 感觉效率低了停一停也正常

    偶尔感觉没状态, 看一集日剧啥的放松下
        13
    rookiebulls   33 天前 via iPhone
    关注一波
        14
    yufeng0681   33 天前
    体验了一下公众号,没啥感觉。 炒股的核心问题是 赚钱,低买高卖。 电视里面专家也是从事这样的事情;
    懂股票,或者长线操作者,用现有的 APP 也没啥问题,迷惑自己的图表不看就是了。
    提提体验问题:
    1、用户已经关注了十几只股票 ,你让用户从零开始积攒,体验不好
    2、和 AI 聊股票,感觉好傻。这个不是和自选股票一样的功能么,偶然看一个新的股票的场景也有,但绝对不多;
    3、 比较股票 美的 格力, 输入这样的居然不识别,还要用户打全字样,体验不行
    4、最好支持语音, 用百度的免费 api 试试
        15
    xrr2016   33 天前
    大佬 666
        16
    iorilu   33 天前
    @yufeng0681 感谢你的建议

    想问问你说的 1 是啥意思, 你是在 web app 上关注了股票? 没看明白, 什么叫零开始积攒

    AI 目前模型说实话还不是很完善, 但我认为这个是有很大需求的, 毕竟大家都想只动动手指或动动嘴就能玩

    问题 3, 我也考虑了可以使用简称, 后续看看怎么优化下, 可以识别一些常用的简称
    问题 4 非常好, 其实微信后端支持语言自动识别文字的, 但我还没试过, 后续应该会加上支持语音
        17
    johnsneakers   33 天前   ♥ 1
    和 lz 一样目前是个人开发者,不同的是楼主的自我时间管理做得太好了,值得学习。
        18
    zz25   33 天前 via Android
    佩服大佬的时间管理,值得学习啊,大佬,也是球迷吗? leo 梅西😄😁😊
        19
    skenan   32 天前
    提几个建议吧:

    1. UI 看起来很简单,但网页打开速度很慢,前期 MVP 阶段 flask 模板都够用

    2. 作为个人开发者,技术栈啥的都是次要的,用你最熟悉的技术做出个能用的产品,看看有没有用户才是最关键的

    你耗费半年,最后说不定只有你自己一个用户
        20
    diyisoft   32 天前 via iPhone
    第三方微信模块会不会不靠谱,说封就封的
        21
    showecho   32 天前
    是不是有点太急了
    网站界面可以简单,但是也不能简陋吧
    公众号菜单进去也都是 internal server error
        22
    woahishui   32 天前 via Android
    也写了个简单的,只用了数据库和 asp.net
        23
    babedoll   32 天前
    没均线没量价怎么做股票。。。
        24
    jjx   32 天前
    佩服, 同是中年人

    也想搞一些自己的事情, 基础都有, 就是找不到合适的事情来做
        25
    kevinlm   32 天前 via iPhone
    很好奇,你的大盘和股票指数怎么过去的?这玩意要钱吧?很贵的
        26
    babedoll   32 天前
    你做一个东西,首先要考虑用户缺这个东西吗 产品有人用吗。说实话 你在同花顺开发个公式都比这个赚钱。

    而且看你用的都是最新技术,我觉得你更多是不是想练手啊。。
        27
    zhw2590582   32 天前
    后端我不知道怎么样,前端来看很普通
        28
    aqwei   32 天前
    试用了一下,没找到点。
        29
    WhoCanBeRich   32 天前
    厉害厉害 关注一波
        30
    iorilu   32 天前
    @babedoll 这些数据都会上的

    没办法, 时间太紧, 只能先上个简单的

    后面会支持自然语言选股

    比如说一句
    今天突破 20 日线的股票
        31
    iorilu   32 天前
    @babedoll 这个吗, 我肯定是想考虑同事使用和学习新技术的, 如果写点公式赚钱, 说实话, 对我来说没啥吸引力把

    说白了就是自己想搞点新东西
        32
    iorilu   32 天前
    @showecho 能具体点吗, 那个菜单点进去 error 啊
        33
    jorneyr   32 天前
    为啥没人说是花式推广呢
        34
    luodaoyi   32 天前
    老哥你这是全干开发啊 哈哈哈
        35
    avaJ   32 天前
    厉害了 支持一波
        36
    zzpx   32 天前 via Android
    看不出解决了什么需求
        37
    energetic   32 天前
    老哥,你的股票信息数据是怎么来的,方便说吗?
        38
    gunjianpan   32 天前
    hhh 也是做 chatbot 的,感觉老哥这个任务型 chatbot 主要是 NER 然后写规则

    现在想真正效果好一点的 chatbot 没有大公司的语料很难做
        39
    iorilu   32 天前
    @gunjianpan chatbot 都是慢慢进化的, 自己一个人憋不出多少训练数据的, 只能先上线看用户实际用法慢慢改进
        40
    iorilu   32 天前
    @zzpx 上班看股票啊, 至少别人看不出来, 以为你在聊微信
        41
    cexy   32 天前
    睡觉吧,狗命要紧
        42
    jksnfk2   32 天前
    手机同花顺也好像有这功能
        43
    henryhu   32 天前
    chatbot 适用场景十分有限,NLP 离实用还很远,一句话,chatbot 理想很丰满,现实很骨感
        44
    baojiweicn2   32 天前 via Android
    先 mark,顶楼主,希望我四十岁的时候也能有楼主这么勤奋加动力
        45
    ioschen   32 天前
    @imningfeng 917 和 996 要看怎么比,先不谈 917 是给自己干,

    重点对比 91 和 99
    91 表面上看起来是比 99 每天多 4 个小时,但是忽略了来回上班路程,正常上班 1-1.5 小时,来回就是 2-3 小时。然后再加晚饭时间,实际上自由职业的 91 和 99 差不了多少。

    但是老哥往 50 奔的人呢,虽然点赞,但是还是建议不要太晚,可以改成 6 10 7 或者 7 11 7 都可以.
        46
    jmc891205   32 天前 via iPhone
    行情数据哪里来的?准确吗?
        47
    Terry001   32 天前
    佩服前辈的毅力,但我很好奇,这个产品没新意啊,基本不会吸引“用户”。
        48
    omph   32 天前
    我有个想法和楼主有点类似,就是用微信 bot 来安排定时提醒任务,群、个人都可以,通过自然语言来安排和查询
    但我时间管理真的不如楼主,还在想法阶段
        49
    AndroidEngineer   32 天前
    炒股赚钱还是卖机器人赚钱?
        50
    Nicoco   32 天前
    已关注公号,加油!
        51
    atonku   32 天前
    要是下午一点还可以,晚上就过了
        52
    Ehco1996   32 天前
    所以老哥你当初是自己主动下来的?
        53
    farverfull   32 天前
    同花顺 问财,lz 了解过吗?
        54
    iorilu   32 天前
    @Ehco1996 是的, 就是因为快 40 , 感觉自己还没搞过一个好的产品, 有点遗憾, 所以就回家干起来了
        55
    iorilu   32 天前
    @farverfull 这个我也是了解的, 个人感觉那个还称不上自然语言把, 我的目标肯定是比这个好的
        56
    iorilu   32 天前
    @ioschen 感谢你的建议

    我说的 917 等等并不代表我支持 996

    这个都是自己评估值不值, 就我而言给自己干肯定是值得, 其他情况另说了

    另外之所以有点拼, 因为我担心时间久了就搁置了, 毕竟这种事我有无数理由搁置下来, 也许永远也完不成

    后面我肯定会更平衡下工作和生活的
        57
    ioschen   32 天前
    @iorilu 我知道你不支持 996,给自己干当然值得,
    1. 我是说其实早 9 晚 9 强度和你这个在家干活的早 9 晚 1 差不多
    2. 我是建议你早点干活,早点睡觉,把晚上干活的那几个小时挪到清晨。同样的时间,但是那样对自己身体更好
        58
    kingmo888   32 天前
    mark 不行,那就马克呗?
        59
    defunct9   32 天前
    记得有个哥们有个热帖是远离股市。
    我也是劝大家离开这个圈子,成功者太少。
    与其浪费时间精力,不如干点别的去。
        60
    Ehco1996   32 天前
    @iorilu 加油啊! 但是我也觉得股市不是啥好玩的地方
        61
    cooljs   32 天前
    大叔这是功成名就了,自己做点东西玩吧😄
        62
    UIXX   32 天前
    有一些疑问:

    就是你到底想开发一个服务于股票的智能机器人还是一个基于智能的股票机器人。
    重点到底是自然语言处理还是选股算法策略?如果两者都想做好,一个人我觉得很勉强。

    你的初衷是做一个“好用”的股票系统,但如何定义“好用”?是已经基于大量的股民做过需求调研还是只是实现个人想法?

    有点好奇:

    你是将自己定位成一个“开发人员”还是一个“产品经理”?如果你将负责这个股小天系统的方方面面,我觉得有些细枝末节是不用纠结的(比如说 UI、普通的 CRUD 业务代码都是可以外包做的),重要的是研究好股票算法跟智能识别那一块。
        63
    idcspy   32 天前
    我钦佩你的努力,共勉。不过还多一句嘴,这项目屁用没有,方向错了再努力也是白费力气。
        64
    maddot   32 天前
    这些信息查询没有什么意义
    一个炒股的去查这些信息简直就是笑话
        65
    maddot   32 天前
    收盘后这些行情信息就在他们的脑中了,比这些简单的查询不知道丰富多少倍
    至于业余的玩票散户,同花顺之类的行情软件已经好得不得了了,个人也做不出这么好的
        66
    ishamo   32 天前
    就想问问你炒股挣了多少钱? 能挣钱吗?
        67
    sucks   32 天前
    给人打工,不想起床,给自己打工,不想睡觉
        68
    iorilu   32 天前
    @UIXX 你说的很好

    我的计划也是分为两个阶段
    1. 是以自然语言获取需要的信息, 这是用户主动明确的需求, 用户必须明确表达意图, 系统计算得出数据
    比如用户问: 今天突破二十日线的股有哪些

    2. 是由模型主动得出一些数据, 供参考
    比如用户可以问: 今天那些股表现比较好, 模型可以根据一些数据, 权重等计算出一些达到指标的股票

    现在目标是先把第一阶段做好吧, 就是以最简单的方式获取需要的信息
        69
    iorilu   32 天前
    @maddot 这个吗, 说实话我炒股 10 多年, 所有软件我都玩过把

    我只能说, 没找到我想要的

    大多股票软件虽然看似提供大量数据, 其实对用户来说并没什么用, 成熟炒股的人, 其实心里都有一套指标和系统, 只想以最简单的方式获得需要的信息就行
        70
    puilu   32 天前
    家里有矿吧,没收入我是坐不住的,第二个星期就慌了。
        71
    wxb2dyj   32 天前 via iPhone
    @iorilu 刚好以前在某炒股软件公司做智能机器人,包括选股、诊股、客服等。一个人做工作量很大啊。
        72
    iorilu   32 天前
    今天网站流量突破 1G, 感谢大家的支持
        73
    iorilu   32 天前
    @wxb2dyj 是啊, 事情很多的, 能说说看是那个软件吗
        74
    wxb2dyj   32 天前 via iPhone
    目前我一人做智能对话机器人的后端,基本但几个服务也做好了,马上要做的是楼主的第二步,用机器学习模型来做意图识别等,但没有数据,卡住了。
        75
    wxb2dyj   32 天前 via iPhone
    @iorilu THS,应该好猜吧
        76
    iorilu   32 天前
    @wxb2dyj 哦, 还没上线是吧, 看来有搞头, 大厂在搞啊
        77
    Heanes   32 天前
    自由职业可以更加专注的做想做的事
        78
    wxb2dyj   32 天前 via iPhone
    @iorilu 上线三年多了吧
        79
    iorilu   32 天前
    @wxb2dyj 你说的就是那个问财把
        80
    targz   32 天前
    917 还能每周锻炼 3 次以上,每次 1 小时,986 表示已经不可能了……这大概就是自由职业和上班的区别吧……
        81
    sailing0505   31 天前 via Android
    点赞。
    我的经历跟楼主差不多,也是在外企。现在工作之余接点朋友的外包项目。感触很深,大公司里面很多技术都有点脱离实际了。
        82
    iorilu   31 天前
    系统更新 2019-04-24
    修正部分股票名不能查询,如五粮液
    修正某些 ST 股摘帽后无法查询, 比如安源煤业
    web app 首页指数名可点击看详细
    部分其他系统内部 bug
        83
    dnnta   31 天前
    办公场地怎么解决的, 在家还是外面
        84
    iorilu   31 天前 via iPhone
    我一个人要啥场地,当然是在家里
        85
    Giw7   31 天前
    牛逼
        86
    reticentfat   31 天前
    感觉框架可以开源,核心应该是选股策略
        87
    noobsj   5 天前
    @lewoer 你说的是谁,不会是 b 站上开发游戏的吧?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   757 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 22:08 · PVG 06:08 · LAX 15:08 · JFK 18:08
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1