加班有感,深更

2016年7月9号深夜,11点31分。

工作

负责了一个内部的管理系统开发,起初并不紧张的安排。用了一套前后端分离架构,spring boot+webpack+vuejs,spring boot微服务大法,一桶天下没得说。vuejs的技术栈,可能还是没有完全掌握用法,挖了踩了或大或小的坑。

  • vuetable列表插件
    分页的支持不完善,固定的格式,与后端交互不方便。(后端自定义注解解决)
    大列表渲染,全部前端可能不行。(后端渲染+v-html或可解决)
    参数配置不通用导致每个compoments都要重复配置。(定义外层组件+mixin或可解决)
    自定义一个列表插件可解决这些问题(没时间。)
  • vue router
    路由模式html5,后端配置不便,hash模式不直观(url太丑)。
    视图权限: 前端判断要在钩子函数每次请求。直接一次加载也不能动态授权。元素的显示与否又要异步校验。(没有太好的前端权限解决方案)
    动态的路由跳转又不渲染href属性,不能右键打开链接(这倒是小问题。)
    切换路由时,组件的状态/实例没有销毁,状态依然保留,每个页面都要加入hook来刷新(增加了复杂度)。(要深入了解route view的生命周期,vuex或可解决)
  • js
    弱类型,隐藏了转换。数组,字符串,数字等在参数传递频繁的情况下容易出错。(ts的强类型可能会规范这个问题)
    异常,完善的框架是会有try的(这是个笑话吧。还是先避免出错吧)
    组件化大法好,提高了模块化和复用,但aop方案没找到(mixin太弱),可能vuex,redux可以完美解决这种问题,又看到了反应式编程!
    ts或许会避开很多问题,回到熟悉的后端编程。
  • 需求
    催的太紧,没有冷静思考,本来是AABB的方案,折中后用了BCAB(就是乱了),结果还没很好解决问题。快速方案往往得不偿失,反复的修改又混乱了思路,很好的思考可能会很早的变换方案或者真正解决问题。
    有种需求叫和AA一样就行,结果往往是>AA*2。
    todo list还是自己定好点,别人给的往往不能定位到问题。(先后顺序,重要程度)
    其实这种管理系统也很简单,有一点流程的东西没有好好沟通,导致反复更改。
  • 引入新的解决方案时还是要深入了解,本地开发挺high的,也没什么问题,到了生产环境,就不行了,在整体设计上压力和复杂度的考虑不够。(魔法流酷炫华丽,伤害不俗,操作和技术少不了。物理流一板一眼,前期笨重,成型慢,后期稳定刚正面)
  • 解决
    如何秒变freemarker
    组件化-宏 (同样强大)
    渲染-查询型应用,基本无dom 变更造成的repaint(v8引擎1.4G内存不谈了。)
    权限-spring security
    页面列表-jquery大法
    后端的成熟到不用自己出手,框架完美解决。

感悟

  • 掌握反应式和函数式,就打开了一扇大门
  • 领会不如贯通,全栈不如无栈,程序还是程序,思想还是思想。
  • 知道很多道理,依然过不好这一生
  • どんだけ

你可能感兴趣的:(加班有感,深更)