gf/TODO.MD
2018-12-14 10:09:45 +08:00

7.7 KiB
Raw Blame History

ON THE WAY

  1. orm增加更多数据库支持
  2. 增加对于数据表Model的封装
  3. 更多数据库的ORM功能支持
  4. 考虑gdb对象管理增加二级连接池特性提高New&Close性能
  5. 增加图形验证码支持,至少支持数字和英文字母;
  6. 增加热编译工具,提高开发环境的开发/测试效率媲美PHP开发效率
  7. 增加可选择性的orm tag特性用以数据表记录与struct对象转换的键名属性映射
  8. ghttp.Response增加输出内容后自动退出当前请求机制不需要用户手动return参考beego如何实现
  9. Cookie&Session数据池化处理
  10. ghttp.Client增加proxy特性
  11. gtime增加对时区转换的封装并简化失去转换时对类似+80500时区的支持
  12. orm增加sqlite对Save方法的支持(去掉触发器语句);
  13. ghttp.Server增加Ip访问控制功能(DenyIps&AllowIps)
  14. ghttp路由功能增加分组路由特性
  15. ghttp增加返回数据压缩机制
  16. gview中的template标签失效问题
  17. gfile文件stat信息使用gfsnotify进行缓存更新改进
  18. ghttp.Server增加proxy功能特性本地proxy和远程proxy本地即将路由规则映射远程即反向代理
  19. gjson对大json数据的解析效率问题
  20. ghttp增加route name特性并同时支持backend和template(提供内置函数)引用可以通过RedirectRoute方法给定route name和路由参数跳转到指定的路由地址上
  21. ghttp.Client自动Close机制
  22. gvalid校验支持当第一个规则失败后便不再校验后续的规则最好做成链式操作
  23. 检查ghttp.Server超时问题
  24. gvalid增加支持对[]rune的长度校验(一个中文占3个字节)
  25. ghttp.Request增加对输入参数的自动HtmlEncode机制
  26. 常量命名风格根据golint进行修改
  27. 开放rwmutex包并将gjson的互斥锁使用自定义的mutex替换
  28. 文档完善:
    • gconv struct tag、
    • 控制器及执行对象注册的Init&Shut方法、
    • ghttp.Response&ServeFile、gfcache、gproc shell执行、
    • ghttp Server&Client basic auth、
    • glog分类&日志等级&链式操作、gdb debug自动输出调试信息、gmlock内存锁、
  29. 服务注册域名增加对泛域名的支持;
  30. Cookie设置中文失效问题
  31. 使用gconv将slice映射到struct属性上例如redis hscan的结果集
  32. 项目参考:
  33. gform参考 https://gohouse.github.io/gorose/dist/index.html 进行改进
  34. gtcp提供简便的包发送/接收方法(SendPkg/RecvPkg)以解决常见的TCP通信粘包问题并完善文档参考https://www.cnblogs.com/kex1n/p/6502002.html
  35. gfile对于文件的读写强行使用了gfpool在某些场景下不合适需要考虑剥离开并为开发者提供单独的指针池文件操作特性
  36. 路由增加不区分大小写得匹配方式;
  37. str_ireplace: http://php.net/manual/en/function.str-ireplace.php
  38. strpos/stripos/strrpos/strripos: http://php.net/manual/en/function.stripos.php

DONE

  1. gconv完善针对不同类型的判断例如尽量减少sprintf("%v", xxx)来执行string类型的转换
  2. ghttp.Server请求执行中增加服务退出的方法不再执行后续操作
  3. ghttp.Response对象完善并改进数据返回方法(Write/WriteString)
  4. ghttp.Server请求执行中增加服务退出的方法不再执行后续操作
  5. 增加fsnotify包支持
  6. 改进gcfg和gview的文件自动更新机制
  7. 将模板变量进行暴露,以便应用端可以进行灵活控制;
  8. 跟踪第三方mxj包的issue问题https://github.com/clbanning/mxj/issues/48
  9. gdb Where方法参数的改进研究是否可以将string参数类型修改为interface{}
  10. gpage分页控制功能
  11. https支持
  12. ghttp.Server日志中增加请求时间和返回时间以便计算执行时间差
  13. 由于去掉了gdb的单例模式并且将gins的部分对象封装迁移到了g包中需要同时梳理文档完善修改
  14. 在代码中增加https与http同时开启使用的示例代码这块大家问得比较多
  15. ghttp.Server多个事件之间通过ghttp.Request.Param自定义参数传参
  16. 研究是否增加配置文件目录检索功能,特别是如何友好改进开发环境的配置文件默认目录问题;
  17. 增加ghttp.Server不同状态码的自定义处理方法
  18. ghttp.Server平滑重启方案
  19. 完善gconv类型转换功能增加time.Time/time.Duration类型转换并增加benchmark测试脚本
  20. 当二进制参数为nil时gjson.LoadContent并将gjson.Json对象ToMap时会报错
  21. 改进控制器及执行对象注册,更友好地支持动态路由注册,例如:注册规则为 /channel/:name现有的控制器及执行对象注册很难友好支持这种动态形式
  22. 当前gpage分页包的输出标签不支持li大多数CSS框架都是li+a标签模式需要提供可更加灵活的定制化功能实现
  23. 平滑重启机制改进,以便于开发阶段调试;
  24. 对grpool进行优化改进包括属性原子操作封装采用gtype实现修正设计BUGhttps://github.com/johng-cn/gf/issues/6
  25. gredis增加redis密码支持
  26. 改进ghttp.Server平滑重启机制当新进程接管服务后再使用进程间通信方式通知父进程销毁
  27. gproc进程间通信增加分组特性不同的进程间可以通过进程ID以及分组名称发送/获取进程消息;
  28. ORM增加获取被执行的sql语句的方法
  29. gdb增加查询缓存特性
  30. gpage分页增加对自定义后缀的支持如:2.html, 2.php等等
  31. gvalid包增加struct tag的校验规则、自定义错误提示信息绑定的支持特性
  32. 增加文件缓存包可根据fsnotify机制进行缓存更新
  33. any/:name路由匹配路由改进支持不带名字的/:路由规则;
  34. ghttp静态文件服务改进(特别是403返回状态的修改)
  35. map转struct增加对tag的支持
  36. gcache检查在i386下的int64->int转换问题
  37. ghttp获取参数支持直接转struct功能
  38. gfsnotify增加对于目录的监控
  39. 检查windows下的平滑重启失效问题
  40. ghttp.Server的Cookie及Session锁机制优化(去掉map锁机制);
  41. 解决glog串日志情况
  42. glog增加对日志文件名称的生成规则设定支持时间格式规则
  43. ghttp日志增加客户端IP信息
  44. 完善gform配置管理说明g.DB/Database和gdb.New的区别
  45. 完善配置管理章节,说明默认的配置文件更改方式;
  46. 服务注册时判断方法定义满足规范时才执行绑定否则提示WARN信息
  47. gfsnotify增加添加监听文件时的监听ID返回以便调用端删除监听时只删除自己添加的监听而不影响其他对该同一文件的监听回调
  48. gfsnotify针对添加目录监听时无法使用多个Watcher,考虑改进,并考虑动态扩容全局Watcher方案;
  49. 由于系统对inotify实例数量(fs.inotify.max_user_instances)以及队列大小(fs.inotify.max_user_watches)有限制,需要改进gfsnotify
  50. WebServer事件回调允许对同一个路由规则绑定多个事件回调
  51. gcfg/gview/ghttp等模块加上对临时文件目录的自动添加监听判断基本是开发环境下特别是windows环境去掉临时文件的监听避免临时文件过大引起的运行缓慢占用内存问题
  52. 改进gfpool在文件指针变化时的更新
  53. ghttp hook回调使用方式在注册路由比较多的时候优先级可能使得开发者混乱考虑方式便于管理
  54. gform对于MySQL字段类型为datetime类型的时区问题分析