一个普通的任务管理程序, 用于学习go语言所做的例子. 最开始是用框架来做, 但是框架太复杂, 对于css, js能文件都需要特定的文件夹才能生效, 开始不了解, 折腾了很久才知道. 最麻烦就是有些css不生效, 可能是路径问题. 基本功太差, 不想折腾框架了, 于是想从原生代码开始, 这样才知道框架好在哪里.
用原生的代码, 那么就尽量写简单点吧, go就完成数据发送和处理, 其他交给html和js处理. 看看现在最热的js框架angular, 于是就用它了. 于是问题就来了go,html,css,angular都不熟悉, 写代码时候, 遇到的问题多如牛毛, go的智能提示经常抽风, 写起上来烦心. 想着vs下写C#的各种美好, 自然不是滋味.
例子是抄别人的, 一个能运行的例子比起那些长篇大论不着边际的文章好几万倍, 原来的例子是展示数本书籍, 可以新增,编辑,删除. 后台的go是用 数组来存放数据的, 重启一下程序就丢失了, 于是我就加入数据库存储了. 用的是xorm, 坑自然不少, 原来的showsql现在都不显示了, update方法 也不知道为什么会无效, 用了cols方法才能生效, 不是默认就更新全部的么. go的多返回值, 没有ide的支持其实很不方便的, 调用函数之前, 你要去 查看一下方法, 不像c#那样, 一个var就直接可以写方法, 调用的参数和返回值都清晰的显示出来,贴心到爆了. go的智能提示是基于正则来做的吧, 比起c#那种基于语义来做的差太远了, vs的响应速度超出了一般人的打字速度, 实在很难得. 其他ide打字快点都处理不了, 实力差距也太大了. 虽然对于熟手来讲问题不大, 但对于新手就很不友好了.
angular半懂不懂, 回车提交操作, 点击checekbox触发的操作, 都不常见, 智能提示对于ng-click都不支持, 写代码提心吊胆, 不知道到底可不可行, 需要花时间去试到底能不能运行. html和js代码有一大缺陷就是缺少编译器检测, 一段代码不能运行它不会提示你, 直到在浏览器里运行你才直到, 写代码可以很快, 但是调试就很麻烦, 陷阱不容易发现. 机器检测变成人工检测.
css, 不用和用了的效果差十万八千里, 需要一定的技术来处理这个. 一些很简单的效果我也不会, 例如三个控件放在一行就折腾死我. 怎么调也不行, 无奈只能把别人的css和html复制过来直接是用. 例如一个checkbox, 正常显示太小, 想显示大一点, 在不同的浏览器上面都有不同的效果, 最后也 只能放弃了.
目前的界面还是很粗糙, 很多地方要完善, 程序方面也需要更多复杂的数据读写. 界面需要特殊出来, 从数据库中读取多组数据, 界面上一行显示三组, 超出就另起一行, 用js如何来处理呢? 数据库如何加载前N组数据, 当用户 点击更多的时候再加载多一小部分数据. 这些在c#里面实现也不容易, 换着这些不熟悉的语言更加难上加难了.
还有对于原例子中的http请求有很多不满意, 为什么要自己处理错误呢. http不是返回200表示成功, 返回404表示找不到吗, 为什么不用呢.