您的位置:首页 > 编程语言 > Go语言

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.Abstract
2.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手动路由

在httpserver运行之前先绑定路由

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文件)

好处

js是延迟加载。不会出现网页卡死的情况
最大化使用缓存。(HTTP 304)
一个网页只用一个js
dom事件绑定,不用在html控件上写js绑定了
坏处

学习比较难
网站更新始终有缓存没更新的浏览器。造成错误(所以有些情况客户自己就知道多刷新几次了,已经成用户习惯了)
参数解释

`data-main` 业务逻辑入口,载入当前字符串.js这个文件
`language` 不解释
`defer async` 字面意思
`src` r.js就是require.js的意思。代码到处都能搞到。

5.1.2 页面Business

加载依赖文件

执行页面business

执行里面做的最多的就是dom跟事件绑定而已。加载各种js库直接引用。

代码美观,开发效率,执行效率都是非常棒的。

页面MODEL

5.2 JQuery

JQ的功能只要require.js引用了之后基本上都是一样的。

如果有需要可以到w3school上学习一下。

6.业务层

Post分析

资源入口函数资源require分析(url分析固定写法)

直接输入object

7.持久层

7.1 Mysql

其实不管什么语言的Mysql驱动都是从PRO*C来的,所以会PRO*\C之后,啥都好说

Insert Delete Update

Query

7.2 Mongodb

这里只给出最简单的例子。具体的看mgo的开发文档就ok。还是比较简单的。

8.单元测试注意事项

测试命令 go test -v (没有其他参数了!!!)
如果不带-v只显示结果,不显示调试过程,主要是调试开发的时候用

文件格式 xxx_test.go 但是建议改成 xxx_test0.go 或者喜欢改成别的也可以。
由于测试先行的原则,在开发的时候一次测试也就一两个函数。
这样相当于把其他测试注释掉

测试的时候的配置文件要放到测试目录下面。别忘了。
心态,错误太多一个一个来,要有个好心态。

9.LOG

注意在调试中Log的不可缺失性。

下面api如果不知道从何而来直接doc搜索就可以了。

使用方法:

总结

看完这里copy代码日常工作还是能好应付一点。
如果是新手看完这个之后,看那么厚的书就有一定的目标性了。能方便一点在学习web开发的过程中会遇到很多困难,因此写洗一篇类似综述类的文章。作为路线图从web开发要素的index出发来介绍golang开发的学习流程以及Example代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: