Go Web开发基础
2015-07-14 16:28
453 查看
1.Abstract
在学习web开发的过程中会遇到很多困难,因此写一篇类似综述类的文章。作为路线图,从web开发要素的index出发,来介绍golang开发的学习流程以及Example代码。在描述中多是使用代码来描述使用方法不会做过多的说明。最后可以方便地copy代码来实现自己的需求。本文适应对象:
对web开发有一定经验的人
能够灵活使用ajax的人(至少懂得前后分离)
golang web 开发有一定了解,至少略读过一些golang web开发的书籍
看完本文之后您会收获:
golang web开发的一些技巧
golang web开发的一些实用API
本文在描述的时候为了解释尽量详细,已经把解释写到代码注释中。
2.golang web 开发check list
略过的部分:基本流程控制,OOP等基础语法知识。2.1本章节提供golang web开发的知识面参考。
1.Abstract2.golang web 开发check list
2.1 本章节提供golang_web开发的知识面参考。
3.路由器
3.1 手动路由
3.2 手动路由的绑定
3.2.1 静态文件
3.2.2 固定函数与资源获取
4.页面加载
4.1 纯静态页(HTML)
4.2 模板页面的加载
5.表示层脚本
5.1 require.js
5.1.1 加载
5.1.2 页面Business
5.2 JQuery
6.业务层
7.持久层
7.1 Mysql
7.2 Mongodb
8.单元测试注意事项
9.LOG
总结
3.路由器
路由器是整个网站对外的灵魂,如果路由做的不好URL会非常恶心。所以这部分设计成第一个要说的内容。
路由分两种一种是手动路由为了通过tul调度固定的功能,另外一点就是资源
的获取,通过url的分析来模仿静态页的方式来获取资源(类似get)
自动路由,主要使用OOP的COMMAND模式来实现。所有功能使用post,
统一入口,方便权限管理,安全管理,跨域管理。但是如此强大的功能还是
交给框架来做吧。这里就不给新手做参考了。
3.1手动路由
3.2 手动路由的绑定
3.2.1 静态文件
3.2.2 固定函数与资源获取
他们都是一样的4.页面加载
4.1 纯静态页(HTML)
直接交给路由就行了。自动就访问那个文件夹了。不过生产环境果然还得是cdn,如果自己服务器比较多。可以nginx反向代理。主要好处前后分离,能上CDN就是通讯次数多了。不过通过优化改善之类的都还ok啦。
4.2 模板页面的加载仅提供关键代码。
字符串数组作为输入参数差错比较困难
总结:虽然减少的通讯次数,但是没办法上CDN蛋疼,另外,模板的mapping蛋疼。
5.表示层脚本
表示层脚本做的比较困难也不是很好学。但是一旦搞定了,代码的复用性会有非常可观的提升。
就普通情况而言JS开发效率是非常高的灵活度高,并且使用的是客户端的cpu
性能好,免费资源多,学习的人也多,好招聘。
5.1 require.js
5.1.1 加载
好处
js是延迟加载。不会出现网页卡死的情况
最大化使用缓存。(HTTP 304)
一个网页只用一个js
dom事件绑定,不用在html控件上写js绑定了
坏处
学习比较难
网站更新始终有缓存没更新的浏览器。造成错误(所以有些情况客户自己就知道多刷新几次了,已经成用户习惯了)
参数解释
`data-main` 业务逻辑入口,载入当前字符串.js这个文件
`language` 不解释
`defer async` 字面意思
`src` r.js就是require.js的意思。代码到处都能搞到。
5.1.2 页面Business
加载依赖文件执行里面做的最多的就是dom跟事件绑定而已。加载各种js库直接引用。
代码美观,开发效率,执行效率都是非常棒的。
5.2 JQuery
JQ的功能只要require.js引用了之后基本上都是一样的。如果有需要可以到w3school上学习一下。
6.业务层
Post分析7.持久层
7.1 Mysql
其实不管什么语言的Mysql驱动都是从PRO*C来的,所以会PRO*\C之后,啥都好说Insert Delete Update
7.2 Mongodb
8.单元测试注意事项
测试命令 go test -v (没有其他参数了!!!)如果不带-v只显示结果,不显示调试过程,主要是调试开发的时候用
文件格式 xxx_test.go 但是建议改成 xxx_test0.go 或者喜欢改成别的也可以。
由于测试先行的原则,在开发的时候一次测试也就一两个函数。
这样相当于把其他测试注释掉
测试的时候的配置文件要放到测试目录下面。别忘了。
心态,错误太多一个一个来,要有个好心态。
9.LOG
注意在调试中Log的不可缺失性。下面api如果不知道从何而来直接doc搜索就可以了。
总结
看完这里copy代码日常工作还是能好应付一点。如果是新手看完这个之后,看那么厚的书就有一定的目标性了。能方便一点在学习web开发的过程中会遇到很多困难,因此写洗一篇类似综述类的文章。作为路线图从web开发要素的index出发来介绍golang开发的学习流程以及Example代码。
相关文章推荐
- mongod安装配置
- hdu 1533 Going Home(最小费用最大流)
- windows下源码安装golang
- google 面经
- 快试试在google 搜索 “SB” 你有惊喜发现 百度同样
- 难道我们可以不用Google? 你OUT了
- django form.is_valid()总是返回false
- 用django 模板中文显示乱码
- 关于Go语言daemon启动的方法.
- 贪心/思维题 UVA 11292 The Dragon of Loowater
- EGOCache如何检测缓存时间过期
- EGOCache缓存框架详细讲解
- 算法基础:整数拆分问题(Golang实现)
- go path.join
- Go语言简介
- OC中protocol、category和继承的关系--转
- Algorithms—88.Merge Sorted Array
- Binggo公开课 “CODEX创新体系”的实战演练-中关村创业大街
- Goldengate Monitor Introduction
- Goldengate重新同步单个表