写了一个一个人独立搞定 web 网站的技术选型列表,欢迎拍砖 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
arnoldnuo
V2EX    Node.js

写了一个一个人独立搞定 web 网站的技术选型列表,欢迎拍砖

  •  3
     
  •   arnoldnuo 2017-06-01 23:11:51 +08:00 10303 次点击
    这是一个创建于 3053 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何构建一个中型的 web 应用(全栈技术)

    计算机界的轮子已经如此之多,我的观点是技术不转化成应用是没有价值的,本文主要挑选了一些技术,复用一些优秀的轮子,用最小的成本构建自己的 web 应用。

    主要内容

    界面设计

    boostrap twitter 出品的响应式框架,可以快速构建优美的前端界面

    material-design-lite Google 出品的Material Design 风格的前端框架

    前端库 /框架

    jquery 方便快捷地操纵 dom

    前端构建工具

    yog2 百度出品的前端构建工具,将fis3express结合在一起

    webpack 当下最火的前端构建工具

    后端语言

    node 用 Javascript 写后端应用

    后端框架

    express node.js 官方推荐的 web 框架

    koa express 原始团队出品,口碑很好,我并没有在实际项目中使用过

    数据库

    mysql 全球最流行的开源数据库,各大互联网公司都在大范围使用

    mongo 时下最流行的 nosql 数据库,经过几年的发展已经很稳定了

    数据库驱动

    knex mysql 的 node.js 版的 sql 构建库,需要搭配mysql 的 node.js 驱动 使用

    mongoose mongo 的 node.js 版的数据库驱动

    代码部署

    ansible 基于 ssh 的自动化部署工具,我还在摸索的阶段

    云主机

    ucloud 口碑不错的云服务商

    阿里云 阿里巴巴旗下的云服务,号称国内最大

    百度云 推荐一下自家公司的产品

    CDN

    七牛云 老牌云存储服务商,有免费额度

    原文地址: https://github.com/Arnoldnuo/how-to-make-web-app

    68 条回复    2017-06-07 12:35:04 +08:00
    whileFalse
        1
    whileFalse  
       2017-06-01 23:28:40 +08:00 via iPhone
    部署无脑推荐 docker,以及阿里云最近风评不太好啊。
    Kilerd
        2
    Kilerd  
       2017-06-01 23:29:31 +08:00
    如果是 node 后端的话,没出现 pm2 是不合理的。
    界面设计 这里还有很多你想不到的库

    vue 呢?

    所以你这个不存在参考价值。
    第一、没列全
    第二、不存在对比性

    最多只能说是你自己的技术栈而已。
    cnnblike
        3
    cnnblike  
       2017-06-01 23:35:44 +08:00   1
    哇,笑死我了
    Yuigahama
        4
    Yuigahama  
       2017-06-01 23:44:19 +08:00   1
    没看懂你这东西的意义在哪
    我点进来之前还以为你要给你做出来的网站地址
    jellybool
        5
    jellybool  
       2017-06-01 23:50:25 +08:00 via iPhone
    身为一个写 php 的,也是感觉 node 后端没出现 pm2 是不合理的。
    peneazy
        6
    peneazy  
       2017-06-01 23:50:37 +08:00 via Android   1
    前端库用 jQuery,webpack 有何意义
    micean
        7
    micean  
       2017-06-02 00:26:50 +08:00
    boostrap 也需要 webpack 之类的吗?
    老实说一个独立完成的项目就别整那么复杂
    需要那么复杂的项目也别一个人做
    自己练手就随意了
    skadi
        8
    skadi  
       2017-06-02 00:33:57 +08:00 via Android   4
    完全是在搞笑,标题可以改为“我熟悉的全栈技术”。
    AnonymousID
        9
    AnonymousID  
       2017-06-02 08:53:44 +08:00
    你这写的啥玩意
    prasanta
        10
    prasanta  
       2017-06-02 09:40:17 +08:00/span>
    我偏爱 postgresql 胜过 mysql
    mlhorizon
        11
    mlhorizon  
       2017-06-02 09:44:39 +08:00   1
    大家还是多点鼓励吧。
    bugMaker
        12
    bugMaker  
       2017-06-02 09:50:34 +08:00
    @jellybool ...出了 pm2 还有 forever, 不用这两个包,启动多个 node 服务监听不同的端口号,让 nginx 做负载均衡也没问题,就是进程挂掉后的重启机制搞不定而已,等 题主做的时候就知道这些东西了
    iRiven
        13
    iRiven  
       2017-06-02 09:53:54 +08:00 via Android
    支持
    joesonw
        14
    joesonw  
       2017-06-02 09:57:21 +08:00
    @bugMaker docker 之间 always-restart 就好了, pm2 重启又不干净
    jalena
        15
    jalena  
       2017-06-02 09:57:37 +08:00
    尼玛,一打开就看到 bootstrap 拼写错了!
    lianxiaoyi
        16
    lianxiaoyi  
       2017-06-02 10:08:59 +08:00
    ucloud 口碑不错的云服务商
    learnshare
        17
    learnshare  
       2017-06-02 10:15:24 +08:00
    jQuery 没错,但不应该是唯一推荐吧
    polun
        18
    polun  
       2017-06-02 10:23:12 +08:00
    (mini)Awsome XX
    arnoldnuo
        19
    arnoldnuo  
    OP
       2017-06-02 10:42:59 +08:00   1
    @whileFalse 我也觉得 docker 是一个用来部署的好工具,不过我还没研究明白,所以没往上放。阿里云最近风评是不好,但是毕竟还算是国内最大最成熟的,所以想了想还是放上来了。
    arnoldnuo
        20
    arnoldnuo  
    OP
       2017-06-02 10:46:23 +08:00   1
    @Kilerd 的确是就写的我自己的技术栈,当初写的目的是为了给大家一个无脑的选择,只要学习这些,就能搞一个应用出来。守护进程这一项我忘记了加了,该把 pm2 放进去的,没打算加 vue,看来我也应该把 webpack 去掉,有点多余了
    arnoldnuo
        21
    arnoldnuo  
    OP
       2017-06-02 10:46:42 +08:00   1
    @cnnblike 咋了?
    arnoldnuo
        22
    arnoldnuo  
    OP
       2017-06-02 10:48:10 +08:00   1
    @Yuigahama 目的是为了搞一个完成应用的最小技术栈,拒绝选择困难症,先把产品搞出来才是正经事
    arnoldnuo
        23
    arnoldnuo  
    OP
       2017-06-02 10:48:55 +08:00   1
    @jellybool 忘了写了,该加进去,可惜 V2EX 无法编辑自己的帖子
    Jakesoft
        24
    Jakesoft  
       2017-06-02 10:49:52 +08:00
    看一下我用了什么技术栈:

    https://www.geekeris.com

    arnoldnuo
        25
    arnoldnuo  
    OP
       2017-06-02 10:52:59 +08:00   1
    @peneazy 说的有道理,我把 webpack 给干掉了
    arnoldnuo
        26
    arnoldnuo  
    OP
       2017-06-02 10:53:24 +08:00   1
    @micean 有道理,我把 webpack 干掉了
    arnoldnuo
        27
    arnoldnuo  
    OP
       2017-06-02 10:53:58 +08:00   1
    @skadi 你这标题起的好啊,
    arnoldnuo
        28
    arnoldnuo  
    OP
       2017-06-02 10:54:28 +08:00   1
    @prasanta 最近 postgresql 挺火,不过我还没用过
    arnoldnuo
        29
    arnoldnuo  
    OP
       2017-06-02 10:54:50 +08:00   1
    @mlhorizon ,终于有人鼓励了
    cnnblike
        30
    cnnblike  
       2017-06-02 10:59:01 +08:00
    @arnoldnuo
    1. JQuery+webpack?这个思路有点神秘。
    2. 这眼看都 2017 年了,居然没有 docker。可以说是非常真实了。
    3. mysql 而不是 postgres,真实。
    caniuse
        31
    caniuse  
       2017-06-02 11:20:29 +08:00
    react antd webpack laravel
    Daming
        32
    Daming  
       2017-06-02 11:31:32 +08:00
    没 vue,差评
    arnoldnuo
        33
    arnoldnuo  
    OP
       2017-06-02 14:31:59 +08:00   1
    @bugMaker 我现在用的就是 forever,因为 pm2 的授权协议,导致没法用 pm2,不过还是挺想把 pm2 重新拾起来的
    arnoldnuo
        34
    arnoldnuo  
    OP
       2017-06-02 14:32:34 +08:00   1
    @jalena 不好意思,,丢了个 t,v2ex 没法该帖子
    arnoldnuo
        35
    arnoldnuo  
    OP
       2017-06-02 14:32:56 +08:00   1
    @lianxiaoyi 嗯,我好多出去创业的同事都用 ucloud
    arnoldnuo
        36
    arnoldnuo  
    OP
       2017-06-02 14:33:41 +08:00   1
    @learnshare 主要想搞一个最小的推荐集合,react、vue、angular 上手难度会高一些
    arnoldnuo
        37
    arnoldnuo  
    OP
       2017-06-02 14:34:21 +08:00   1
    @polun Awsome Web Tech
    arnoldnuo
        38
    arnoldnuo  
    OP
       2017-06-02 14:35:00 +08:00   1
    @Jakesoft 看不出来,感觉你这搞一个 Html 就可以了
    arnoldnuo
        39
    arnoldnuo  
    OP
       2017-06-02 14:37:36 +08:00   1
    @cnnblike 1. 的确不合适,所以我把 webpack 去掉了; 2. docker 我还没搞明白,目前用 ansible 部署,问题不大; 3. 目前 mysql 的学习材料比 postgresql 多太多了,使用的成熟程度也要高不少,所以没把 postgresql 放上去,我觉得自己还搞不定 postgresql
    robinshi2010
        40
    robinshi2010  
       2017-06-02 15:00:30 +08:00
    最小技术栈需要列这么长那可就坏事儿了。
    arnoldnuo
        41
    arnoldnuo  
    OP
       2017-06-02 15:03:02 +08:00   1
    @robinshi2010 哪个可以去掉呢?感觉去掉任意一项都会有问题吧,我倒是想再精简一些,请指教
    Sapp
        42
    Sapp  
       2017-06-02 16:19:14 +08:00
    你应该加个前提,[后端程序员的]。你这个明显一看就是后端搞出来给后端用的。
    xiaket
        43
    xiaket  
       2017-06-02 17:56:51 +08:00
    什么叫 postgres 最近很火........ 是您最近才知道这东西?
    arnoldnuo
        44
    arnoldnuo  
    OP
       2017-06-02 20:29:26 +08:00   1
    @xiaket 嗯,的确是最近才知道的,一直用的都是 mysql
    arnoldnuo
        45
    arnoldnuo  
    OP
       2017-06-02 20:30:38 +08:00   1
    @Sapp 我干了两年前端,去年才转后端,目前觉得后端的东西很多复杂性无法避开,但是前端用 jquery 搞一些简单页面是没问题的
    Phariel
        46
    Phariel  
       2017-06-02 20:39:46 +08:00 via Android   1
    Sapp
        47
    Sapp  
       2017-06-02 21:00:36 +08:00
    @arnoldnuo 我觉得楼上的图很适合你... jquery 确实能做,但是现在前端谁还用你那一套?我刚入行的时候差不多用的是你这样,早就被淘汰了。甚至可以说这个前端技术栈已经找不到工作了,当后端就好好当后端,别说什么全栈了。
    coderfox
        48
    coderfox  
       2017-06-02 21:26:34 +08:00 via Android
    数据库驱动我推荐 TypeORM (支持 MySQL、SQLite、MS SQL )。
    billwang
        49
    billwang  
       2017-06-02 21:38:12 +08:00
    不明白写这些是干啥用的,科普?
    arnoldnuo
        50
    arnoldnuo  
    OP
       2017-06-02 21:40:44 +08:00   1
    @Sapp 我主要是没有找到 vue、react 技术栈针对 seo 处理的比较好的方案,如果使用 vue、react 这些技术,会导致爬虫无法识别内容。我们只有后台应用才用这些技术,对于面向用户的产品,还是用后端拼接模版的方式,还是为了 seo 考虑。
    arnoldnuo
        51
    arnoldnuo  
    OP
       2017-06-02 21:45:57 +08:00   1
    @billwang 嗯,科普,避免选择困难症
    peneazy
        52
    peneazy  
       2017-06-02 22:02:36 +08:00 via Android
    seo 可以做。。
    metrue
        53
    metrue  
       2017-06-02 22:08:05 +08:00
    不知道列举这些东西有什么用....
    snailsir
        54
    snailsir  
       2017-06-02 22:12:32 +08:00
    一个 php 脚本,一个 html 模版页,几行 css,一个 markdown 目录,对,就是这个 http://www.dingzhihao.org
    likezun
        55
    likezun  
       2017-06-02 22:19:57 +08:00
    哇,我只喷下 node。。。

    喷 jquery 的人简直了,vue、react 根本就是大厂的玩具和试验品, 根本比不了 jquery 的意义 !
    Miy4mori
        56
    Miy4mori  
       2017-06-03 13:45:46 +08:00 via iPhone
    本来想说点啥的,一看楼主是前端转后端,加油吧,知识面太窄学不好后端的。
    doubleflower
        57
    doubleflower  
       2017-06-03 15:49:25 +08:00
    bootstrap + jquery 这种十年前的技术对于写个交互很少的博客来说还是能用的。
    不过 LZ 是要构建一个中型的 web 应用。。。
    rubyvector
        58
    rubyvector  
       2017-06-03 16:21:18 +08:00
    jquery 的基础地位不是新框架能比的。框架已经包含了基础样式及开发构架,更多地是加快开发速度,react 等 新框架也是在工程管理上下了工夫,以便构建大型的,复杂的前端界面。
    rotoava
        59
    rotoava  
       2017-06-03 23:02:43 +08:00
    CDN: 又拍
    存储:aws s3,又拍 ,ali oss
    云主机:aws,linode, ali
    日志监控:ELK
    消息中间件:kafka
    反向代理:nginx
    https 证书:letencrypt
    任督二脉:HTTP 协议


    另外咨询一下:node 应用常驻后台是用什么方案?
    ClassicOldSong
        60
    ClassicOldSong  
       2017-06-04 02:26:54 +08:00
    来,送你一块砖头
    wemore
        61
    wemore  
       2017-06-04 11:25:25 +08:00 via Android
    前几天参加学校的比赛,大部分做网站的用的是 bootstrap+jq(我也是)
    smallpath
        62
    smallpath  
       2017-06-04 12:05:33 +08:00 via Android
    @arnoldnuo mvvm 的服务端渲染我都有用了十个月了
    skadi
        63
    skadi  
       2017-06-04 12:41:53 +08:00
    Sapp
        64
    Sapp  
       2017-06-04 13:21:18 +08:00
    @arnoldnuo react vue 解决不了 seo ?都说了,做后端就好好做,别扯什么全栈,知识面太窄。
    abcbuzhiming
        65
    abcbuzhiming  
       2017-06-04 16:42:32 +08:00
    @cnnblike 别的不谈,我只想知道这种看不起 Mysql 猛吹 PostgreSQL 的风气到底是咋回事
    cnnblike
        66
    cnnblike  
       2017-06-05 04:35:49 +08:00
    @abcbuzhiming mysql 有些东西做不到,之前很长一段时间 json 类型只能存字符串,两三个月前还不支持 CTE,就算你用不到,postgres 也会比 mysql 性能好。Amazon Redshift 是 postgres 兼容的,就是说,你后期如果这个中等规模的项目要变成大规模项目的话,迁移也方便很多。
    吹 postgres 是有理有据的,不知道当然可以问,但是麻烦语气好点,成不?
    arnoldnuo
        67
    arnoldnuo  
    OP
       2017-06-05 11:12:16 +08:00   1
    @rotoava 常驻后台用 pm2,已经更新到 github 上去了,v2ex 没法改帖子
    aroa
        68
    aroa  
       2017-06-07 12:35:04 +08:00
    jQuery 挺好的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5885 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 06:07 PVG 14:07 LAX 23:07 JFK 02:07
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86