2017-06-01 from--https://www.v2ex.com/t/365336
如何构建一个中型的web应用(全栈技术)
计算机界的轮子已经如此之多,我的观点是技术不转化成应用是没有价值的,本文主要挑选了一些技术,复用一些优秀的轮子,用最小的成本构建自己的web应用。
主要内容
界面设计
bootstrap twitter出品的响应式框架,可以快速构建优美的前端界面
material-design-lite Google出品的Material Design 风格的前端框架
前端库/框架
jquery 方便快捷地操纵dom
前端构建工具
yog2 百度出品的前端构建工具,将fis3和express结合在一起
后端语言
node 用javascript写后端应用
守护进程
pm2 node.js的守护进程,进程挂掉之后自动重启
后端框架
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
七牛云 老牌云存储服务商,有免费额度
68 回复 | 直到 2017-06-07 12:35:04 +08:00
whileFalse 2017-06-01 23:28:40 +08:00 via iPhone 部署无脑推荐 docker,以及阿里云最近风评不太好啊。 |
Kilerd 2017-06-01 23:29:31 +08:00 如果是 node 后端的话,没出现 pm2 是不合理的。 界面设计 这里还有很多你想不到的库vue 呢? 所以你这个不存在参考价值。 最多只能说是你自己的技术栈而已。 |
cnnblike 2017-06-01 23:35:44 +08:00 ♥ 1 哇,笑死我了 |
Yuigahama 2017-06-01 23:44:19 +08:00 ♥ 1 没看懂你这东西的意义在哪 我点进来之前还以为你要给你做出来的网站地址 |
jellybool 2017-06-01 23:50:25 +08:00 via iPhone 身为一个写 php 的,也是感觉 node 后端没出现 pm2 是不合理的。 |
peneazy 2017-06-01 23:50:37 +08:00 via Android ♥ 1 前端库用 jQuery,webpack 有何意义 |
micean 2017-06-02 00:26:50 +08:00 boostrap 也需要 webpack 之类的吗? 老实说一个独立完成的项目就别整那么复杂 需要那么复杂的项目也别一个人做 自己练手就随意了 |
skadi 2017-06-02 00:33:57 +08:00 via Android ♥ 4 完全是在搞笑,标题可以改为“我熟悉的全栈技术”。 |
AnonymousID 2017-06-02 08:53:44 +08:00 你这写的啥玩意 |
prasanta 2017-06-02 09:40:17 +08:00 我偏爱 postgresql 胜过 mysql |
mlhorizon 2017-06-02 09:44:39 +08:00 ♥ 1 大家还是多点鼓励吧。 |
bugMaker 2017-06-02 09:50:34 +08:00 @jellybool …出了 pm2 还有 forever, 不用这两个包,启动多个 node 服务监听不同的端口号,让 nginx 做负载均衡也没问题,就是进程挂掉后的重启机制搞不定而已,等 题主做的时候就知道这些东西了 |
iRiven 2017-06-02 09:53:54 +08:00 via Android 😂支持 |
jalena 2017-06-02 09:57:37 +08:00 尼玛,一打开就看到 bootstrap 拼写错了! |
lianxiaoyi 2017-06-02 10:08:59 +08:00 ucloud 口碑不错的云服务商 |
learnshare 2017-06-02 10:15:24 +08:00 jQuery 没错,但不应该是唯一推荐吧 |
polun 2017-06-02 10:23:12 +08:00 (mini)Awsome XX |
arnoldnuo 2017-06-02 10:42:59 +08:00 @whileFalse 我也觉得 docker 是一个用来部署的好工具,不过我还没研究明白,所以没往上放。阿里云最近风评是不好,但是毕竟还算是国内最大最成熟的,所以想了想还是放上来了。 |
arnoldnuo 2017-06-02 10:46:23 +08:00 @Kilerd 的确是就写的我自己的技术栈,当初写的目的是为了给大家一个无脑的选择,只要学习这些,就能搞一个应用出来。守护进程这一项我忘记了加了,该把 pm2 放进去的,没打算加 vue,看来我也应该把 webpack 去掉,有点多余了 |
Jakesoft 2017-06-02 10:49:52 +08:00 看一下我用了什么技术栈: |
cnnblike 2017-06-02 10:59:01 +08:00 @arnoldnuo 1. JQuery+webpack?这个思路有点神秘。 2. 这眼看都 2017 年了,居然没有 docker。可以说是非常真实了。 3. mysql 而不是 postgres,真实。 |
caniuse 2017-06-02 11:20:29 +08:00 react antd webpack laravel |
Daming 2017-06-02 11:31:32 +08:00 没 vue,差评 |
arnoldnuo 2017-06-02 14:31:59 +08:00 @bugMaker 我现在用的就是 forever,因为 pm2 的授权协议,导致没法用 pm2,不过还是挺想把 pm2 重新拾起来的 |
arnoldnuo 2017-06-02 14:32:56 +08:00 @lianxiaoyi 嗯,我好多出去创业的同事都用 ucloud |
arnoldnuo 2017-06-02 14:33:41 +08:00 @learnshare 主要想搞一个最小的推荐集合,react、vue、angular 上手难度会高一些 |
arnoldnuo 2017-06-02 14:37:36 +08:00 @cnnblike 1. 的确不合适,所以我把 webpack 去掉了; 2. docker 我还没搞明白,目前用 ansible 部署,问题不大; 3. 目前 mysql 的学习材料比 postgresql 多太多了,使用的成熟程度也要高不少,所以没把 postgresql 放上去,我觉得自己还搞不定 postgresql |
robinshi2010 2017-06-02 15:00:30 +08:00 最小技术栈需要列这么长那可就坏事儿了。 |
arnoldnuo 2017-06-02 15:03:02 +08:00 @robinshi2010 哪个可以去掉呢?感觉去掉任意一项都会有问题吧,我倒是想再精简一些,请指教 |
Sapp 2017-06-02 16:19:14 +08:00 你应该加个前提,[后端程序员的]。你这个明显一看就是后端搞出来给后端用的。 |
xiaket 2017-06-02 17:56:51 +08:00 什么叫 postgres 最近很火…….. 是您最近才知道这东西? |
arnoldnuo 2017-06-02 20:30:38 +08:00 @Sapp 我干了两年前端,去年才转后端,目前觉得后端的东西很多复杂性无法避开,但是前端用 jquery 搞一些简单页面是没问题的 |
Phariel 2017-06-02 20:39:46 +08:00 via Android ♥ 1 |
Sapp 2017-06-02 21:00:36 +08:00 @arnoldnuo 我觉得楼上的图很适合你… jquery 确实能做,但是现在前端谁还用你那一套?我刚入行的时候差不多用的是你这样,早就被淘汰了。甚至可以说这个前端技术栈已经找不到工作了,当后端就好好当后端,别说什么全栈了。 |
coderfox 2017-06-02 21:26:34 +08:00 via Android 数据库驱动我推荐 TypeORM (支持 MySQL、SQLite、MS SQL )。 |
billwang 2017-06-02 21:38:12 +08:00 不明白写这些是干啥用的,科普? |
arnoldnuo 2017-06-02 21:40:44 +08:00 @Sapp 我主要是没有找到 vue、react 技术栈针对 seo 处理的比较好的方案,如果使用 vue、react 这些技术,会导致爬虫无法识别内容。我们只有后台应用才用这些技术,对于面向用户的产品,还是用后端拼接模版的方式,还是为了 seo 考虑。 |
peneazy 2017-06-02 22:02:36 +08:00 via Android seo 可以做。。 |
metrue 2017-06-02 22:08:05 +08:00 不知道列举这些东西有什么用…. |
snailsir 2017-06-02 22:12:32 +08:00 一个 php 脚本,一个 html 模版页,几行 css,一个 markdown 目录,对,就是这个 http://www.dingzhihao.org |
likezun 2017-06-02 22:19:57 +08:00 哇,我只喷下 node。。。 喷 jquery 的人简直了,vue、react 根本就是大厂的玩具和试验品, 根本比不了 jquery 的意义 ! |
Miy4mori 2017-06-03 13:45:46 +08:00 via iPhone 本来想说点啥的,一看楼主是前端转后端,加油吧,知识面太窄学不好后端的。 |
doubleflower 2017-06-03 15:49:25 +08:00 bootstrap + jquery 这种十年前的技术对于写个交互很少的博客来说还是能用的。 不过 LZ 是要构建一个中型的 web 应用。。。 |
rubyvector 2017-06-03 16:21:18 +08:00 jquery 的基础地位不是新框架能比的。框架已经包含了基础样式及开发构架,更多地是加快开发速度,react 等 新框架也是在工程管理上下了工夫,以便构建大型的,复杂的前端界面。 |
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 2017-06-04 02:26:54 +08:00 来,送你一块砖头🌑 |
wemore 2017-06-04 11:25:25 +08:00 via Android 前几天参加学校的比赛,大部分做网站的用的是 bootstrap+jq😂😂(我也是) |
skadi 2017-06-04 12:41:53 +08:00 @ClassicOldSong 老宋! |
abcbuzhiming 2017-06-04 16:42:32 +08:00 @cnnblike 别的不谈,我只想知道这种看不起 Mysql 猛吹 PostgreSQL 的风气到底是咋回事 |
cnnblike 2017-06-05 04:35:49 +08:00 @abcbuzhiming mysql 有些东西做不到,之前很长一段时间 json 类型只能存字符串,两三个月前还不支持 CTE,就算你用不到,postgres 也会比 mysql 性能好。Amazon Redshift 是 postgres 兼容的,就是说,你后期如果这个中等规模的项目要变成大规模项目的话,迁移也方便很多。 吹 postgres 是有理有据的,不知道当然可以问,但是麻烦语气好点,成不? |
aroa 2017-06-07 12:35:04 +08:00 jQuery 挺好的 |