-
github 上拉代码或者下载 zip 包很慢,怎么解决?
2019-07-10 19:40慢的原因
国内网络限制(GFW)
解决方案
- 到国外访问 github
- 搭建一个“梯子”,使得你能翻过这道墙,模拟在国外访问 GitHub
-
对 solo 发展的一些建议(有想法的请看过来)
2019-07-04 16:39- 我看了 solo 安装文档之后,从 github 拉取代码到本地启动成功花了 5 分钟,在完全没有接触过 docker 的情况下到成功部署生产环境花了 10 分钟,我觉得已经非常方便了
- 文档中说的很清楚 MySQL 与 H2 都是同时支持的,完全可以不安装 MySQL,只是启动时候的改个参数而已
用了 Docker 反而不用装 Java 环境跟 Maven 环境,哪种方式更方便显而易见
用不用 Nginx 完全取决于个人,不用 Nginx 难道就不能部署了? - 首先文章中将 freemarker 写成了 freemake,用 freemarker 还是用 JSP,对于 solo 使用者来说没有区别,技术选型是开发者的事,不是使用者的事
- 纯 Java 生态的启动方式,现在依然还是支持的,而且这个世界上不是每个程序员用的都是 Java 语言,如果只支持纯 Java 生态,不如叫一款只适用于 Java 程序员的博客了
-
后端模板页面中能不能完全不用 ajax 呢?
2019-07-03 16:39如果不使用 ajax,想要请求后端,我使用过这几个方式
- 使用 window.location.href
- 使用 a 标签的 herf
- 使用 form 表单的 action
-
你们公司的 vue 项目,怎么放
2019-06-25 16:01你有了 dist 文件夹的内容说明你的项目已经 build 过了,而且说明你是使用打包工具打包的,而且你用的可能就是 Webpack
这样的话部署可以选择放到 war 里面作为静态模板的一部分,路由先经过 java 代码控制拦截,过了就直接代理到 index.html 上,交给前端的 router 自己加载需要的组件就行了 -
你们公司的 vue 项目,怎么放
2019-06-25 14:46我来谈谈我的理解
首先可能需要明确一件事:你为什么使用 Vue
Vue 是渐进式 JavaScript 框架,意味着它既可以是框架,也可以不是框架,这是 Vue 作者的原话,原文戳这里
如果路由的控制需要交由后端
那完全可以不使用 Vue+Webpack 那一套,用 script 标签的方式嵌入项目也是可以的,这个时候 Vue 就不是框架,但是并不阻碍你使用 Vue 的特性
用了 Webpack(或其他打包工具)是为了将前端更加体系化,工程化,组件化,这个时候 Vue 就是框架
这个时候的 Vue 是整个前端项目的核心,前端所有的表现都依赖于 Vue,这个时候你可以结合 vue-laoder, vuex, vue-router 以及 npm 上所有的开源库写一套 vue 风格的项目,并最终通过 webpack(或其他打包工具)打包成你所需要的最小的体积,这个时候就不应该让后端控制路由了,如果真的有需要:
- 前后分离的验证可以设置 ajax 请求的
withCredentials = true
,通过 Cookie 来验证 - 用 Node 作为中台(需要做服务端渲染),Node 端与 Java 端进行服务端与服务端的校验
- 前后分离的验证可以设置 ajax 请求的
-
vue element-ui 优化打包 bundle js 大小
2019-06-25 14:10我一直觉得这种写法:
const foo = () => import("/path/to/foo.vue"); export default { components: { foo } };
不是很 DRY,可以直接写成
export default { components: { foo : () => import("/path/to/foo.vue") } };
而且如果你的页面组件都在同一个目录并且名字跟路由名称一样的话,路由的配置完全可以写成:
['foo', 'bar'].map(p => ({ name: p, path: `/routePrefix-${p}`, component: () => import(`/path/to/views/${p}.vue`), meta: { title: p } }))
而且我觉得这样才是更加 DRY 的写法
-
翻译一句话
2019-06-24 11:13我开发微信相关的东西不到半年,感受如下:
公众号网页调试
- 只能同时打开一个网页,但内存占用率有 4、500M 甚至更高
- 用的是 Google 的开发调试工具,却不支持 Google 插件
- 图片只要不是原尺寸就会模糊,显示在页面上一点问题没有
- 反应超慢,有时候莫名其妙 input 框都不能聚焦,输入不了内容
小程序开发
- 将 HTML、css 规范给硬生生弄成了 wxml,wxss,还不完整,只是改成了自己的一套非主流标签
- 支持 ES6 也只是部分支持
- 自定义快捷键,自定义代码片段这种最基本的 IDE 工具都没有
- 修改完代码,还是得刷新页面才生效,而且如果不进行配置,直接跳到首页
- 数据双向绑定的语法简直是我见过最奇葩的。我举一个例子,wx:if="{{param}}",这种,既然用了 wx:if,还得用双花括号是为什么,如果是为了不想破坏文档结构,那为什么插值用的还是{{param}}
- 代码包大小限制,图片一多,只能选择用链接的方式,这样对图片进行更改是非常麻烦的一件事
这些仅仅是对开发者工具的感受,而且远远不止这么多,只是暂时想不起来了,文档的部分我没有时间整理
-
Node.js 到底扮演了什么角色?
2019-06-14 10:291. node 在中途岛模式中的作用和其同构应用中作用有什么区别。
- 不知道什么是中途岛模式(我的理解是 Node 作为中台)
- 同构指的是服务端跟客户端复用一套代码
- 对于 Node 作为中台,我之前接触过一个项目端到端通信使用的是 OAuth2.0 规范,而且 token 的获取以及存储肯定是不能放在客户端的,所以这个时候我使用 Node 作为管理 token 的工具
- 对于同构,我个人体会较多的就是前后分离下的为了解决 SEO 以及搜索引擎抓取的问题出现的基于 Node 的服务端渲染解决方案
- 回归问题,“区别”,都是使用 Node,本质上没有区别,只是为了解决不同的问题提出的不同方案,给每个方案一个名称
2. 没有 node.js 作为中间层只是半分离状态吗(非多页面而是纯粹的 spa 应用但不用 node)。
- 不使用 Node,只是构建 SPA 应用也是可以的,这种方式也是前后端分离,这种情况下不利于 SEO 以及浏览器抓取
- SPA 应用需等待所有 JavaScript 代码加载完毕再进行页面渲染
- 而使用 Node 作为支持,则可以直接获取页面内容,这里的内容已经包含了 SEO 所需要的内容,然后再使用 AJAX 获取一些页面上的其它数据
- 我不清楚你说的半分离状态指的是什么
3. 加入 node 中间层的前后端项目如何分开部署(后端用的 java),部署具体需要那些服务器(Apache,Tomcat,Nginx),各自扮演什么功能(有一个问题 node 是不是在部署中类似 Tomcat 的功能)。
后端如果是 Java,前端是 SPA 应用
其实这里我觉得你想怎么部署就怎么部署
Java 端只是 Restful 接口
- 一个是 Java 进程
- 一个是前端项目构建后的 SPA 静态页,SPA 应用直接请求 Java 接口获取数据(存在跨域问题)
- 这种情况可以选择
Nginx
或者Apache
作为总的路由控制(也可以不用)
Java 作为页面渲染以及 Restful 接口
- 如果你使用了前端路由体系(VueRouter、ReactRouter 等)作为页面路由控制
这个时候前端项目构建之后的内容作为 Java 项目的模板的一部分,假设你的 SPA 位置是/page/index.html
,需要代理所有/page/**/*
都为/page/index.html
,Java 的 Restful 接口需要另外一个分支路由,比如/api/**/*
,这个时候没有跨域问题,其实这里可以理解为 Java 版本的服务端渲染 - 如果你没有使用前端路由体系,而是用 Java 端控制页面路由
这个时候我觉得已经没有必要使用 SPA 了,因为配合前端路由体系才称得上 SPA - 部署可以使用 Apache 或者 Nginx 作为总的路由控制(也可以不使用)
一端是 Java,另一端是 Node
注意这里我换了说法,这里已经不是前后端了,因为 Node 完全可以作为 HTTP 服务器,连接数据库什么的,Java 能干的事,Node 都能干
这里的通信已经成为了端到端的通信,部署至少需要跑两个进程,一个 Java 进程,一个 Node 进程Node 是否类似 Tomcat 功能
Tomcat
- 官方原话:
The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies
- 我的翻译(可能不准确):
Apache Tomcat(已注册商标)软件是一个 Java Servlet、JavaServer Pages、Java Expression Language 以及 Java WebSocket 等技术的开源实现
Node
下面这段话摘自:Node.js 菜鸟教程
简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。
Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。从定义上看两者相去甚远
4. 完全不用 java 后台全部用 node.js 开发是否可以(这种 node.js 的项目需要如何部署运行)
我曾经比较过 Java 跟 Node 的性能,同等计算强度下,Java 比 Node 快,特别是大量重复计算时,Java 的速度优势非常明显
但是从语言角度,两者是一样的,任何你想要的功能用 Java 能实现,用 Node 也一定能实现- 如何部署
我还是觉得想怎么部署就怎么部署,我以我曾经部署过的一种方式举个例子:
Nginx + Node
Nginx 监听 80 端口,将/foo/**/*所有请求代到 Node 进程下
5. node.js 在中途岛模式中如何与 Java 后端进行信息交互
这里我上文中有提到,这里的通信已经是端到端的通信了,这里直接发送 Http 请求就能完成通信,当然如果项目非常大,架构什么的需要纳入考虑,加入中间件也是可以的,比如消息队列什么的