@Fartown
2017-07-06T14:36:53.000000Z
字数 5587
阅读 548
美团笔记
熟悉Mac环境
- 安装homebrew,git,sublime,atom,node,mnpm
- 了解编码规范
熟悉平台和系统(6/6 周二)
- 查看git项目,了解大致项目结构,编码
- 阅读美团编码规范
- 读wiki,主要是工作流程及业务范围
- 学习ES6及前端模块化
- 熟悉烽火台
- 学习项目banma_page,搭建相关环境
项目迁移(6/7 周三)
- 搭建项目环境,学习nginx在mac下配置及命令,mac下网络命令
- 熟悉项目前后端交互,线上线下环境,Java工程文件结构,以及banma_page,banma_fe文件结构,代码结构
- 熟悉烽火台项目业务,了解项目工作模式
- 迁移banma_data下ftl文件(以为把data全部迁移,所以花了大量时间)
项目任务(6/8 周四)
- 迁移dispathkpi文件,熟悉文件结构和依赖
- 熟悉业务,了解banma的UI组件库,主要是table,select,datepicker等,熟悉页面组织方式,查看其它相似页面代码
- 解决webpack打包问题,nginx相关配置
文件迁移(6/9 周五)
- 阅读dispathkpi的ftl源码,了解前后端数据接口
- 研读页面js部分代码,学习组件调用方式和源代码实现方式
- 思考页面逻辑和交互,规划方案
- 页面实现:
- 查询条件使用组件,二级联动菜单通过监听change事件,渲染下拉框.之后读取所有数据,参考API查询数据
- table渲染:使用字符串拼接渲染或者模板渲染
关于数据查询的思考:
策略调度页面实现(6/12 周一)
- 调整查询条件UI
- 优化代码,完成查询条件的相关逻辑及交互,包括联动菜单
- 测试功能,优化交互,修复一部分bug
- 根据原有API实现数据异步请求,正在完成表格渲染
- 测试数据筛选性能,平均时间30ms
- 总结:
- 赋值需要分清楚传值和传引用
- 涉及大量数据操作,考虑数据缓存,优化性能
- 数据访问频繁并且可复用时考虑通过内存缓存,减少密集计算
- 系统设计一开始要考虑拓展性,否则后期升级会很麻烦
策略调度页面实现(6/13 周二)
- 完成数据请求,表格渲染,利用artTemplate实现
- 调整UI布局,和部分交互逻辑,修复一些bug
- 利用分页组件实现分页,绑定相应事件处理逻辑
- 优化整体代码,删除冗余变量,提取部分方法和对象
策略调度页面实现:(6/14 周三)
- 优化数据请求,分页组件
- 处理表格排序,表格渲染
- 处理表格详情页
- 封装部分代码,更改错误提示,超时提示
- 添加筛选条件联动功能
策略调度页面实现(6/15 周四)
- 筛选条件根据要求做了更细致交互
- 添加加载动画和错误提示
- 更改表格和图表联动逻辑
- 增加下载图表,breas导航功能
- todo:
- 测试查找bug,提交代码
- 优化代码结构和样式
- 迁移到ES6
策略调度页面实现(6/16 周五) :
- 调整js结构,删除部分冗余变量,方法,合并一些函数,添加注释
- 更改图表响应时的bug,删除部分冗余样式
- 迁移js到ES6版本,并且打包
- 调试后端接口,提交git版本
- Todo:
- 修复表格详情的bug
- 测试后端接口和所有功能
- 提交到git
- 总结该项目的经验和bug
Git使用总结:
- git config --global --user.name/email
配置个人的用户名称和电子邮件地址(文件在~/.gitconfig)
- 本地命令操作
- git分为工作区,暂存区,版本库,远程库
- git add命令将暂存区的目录树更新
- git commit将暂存区的目录树写到版本库
- git rm --cached 会直接从暂存区删除文件,工作区则不做出改变
- git checkout . 或者 git checkout -- 会用暂存区全部或指定的文件替换工作区的文件。
这个操作会清除工作区中未添加到暂存区的改动。
- git checkout HEAD . 或者 git checkout HEAD 会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。
会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
- git status 以查看在上次提交之后是否有修改。
- git diff 来查看执行 git status 的结果的详细信息
- git mv 是 git rm --cached 命令的操作+重命名磁盘上的文件+ git add 把新文件添加到缓存区。
- git clean -df删除本地未track的修改和新建.
- git branch branchname 创建分支, git checkout -b branchname创建并切换至该分支
- 远程仓库:
- git remote add origin url(将本地仓库和远程联结)或者clone远程仓库然后更改
- git push -u origin master将本地仓库推送到远程仓库
- git pull origin master从远程master分支fetch仓库并和本地仓库merge
origin指向远程主机,在~/.git/config文件中
- git push origin :branchname 删除远程分支
- git开发项目流程
- 在仓库上创建新分支(姓名+项目名)
- clone到本地
- 开发项目,git add . 并git commit -m '说明'
- git push origin 分支名
- 开发完成后,在项目页查看diff,仔细查看更改的文件(原则:只更改本身项目文件,不更改他人以及公共文件)
- create pr,选择组内三人为viewers
- 使用pull和push记得指定分支名,避免默认设置带来错误
策略调度页面实现(6/22 周四) :
- 通读ES6文档,精读类和模块,箭头函数,对象
- 学习其他业务的代码,主要是参考模块化和代码组织方式
- 优化分页组件,交互更友好
- 更改代码,根据需求调整查询功能
- 整理代码,抽象出公共部分,进一步向ES6迁移
- 总结:(业务代码最佳实践)
- 写代码前一定要先构思,确定整体架构和实现方式,怎么划分模块,怎么设计
- 写代码要有全局意识,比如某个变量在哪里定义,哪里用到,哪里可读,哪里可写,作用域大小.
- 学会使用const,把业务数据存入const,和处理逻辑函数解耦和,更改更方便,组织更明晰.
- 学会使用class封装,模块化
- 抽象出高可用性函数,放入自有lib函数库,增强代码复用性
- 精益求精,注重性能优化,代码结构优化
- 趁早养成良好编程习惯,远离面条代码,多学习设计模式,软件工程.代码一定要做到优雅,整洁
- Todo:
- 更改页面UI,修复样式bug
- 根据需求更改查询条件,预留联动功能
- 优化代码结构
周总结(一) 6.23
- 业务:
- 结果:完成了调度策略KPI页面的迁移和重构,参考原有ftl文件,将页面重写.实现多级联动下拉框,利用模板渲染出表格(感觉这个部分可以做一个公共组件,减少工作量).
- 总结:页面并不复杂,但是还是花了蛮多时间,做业务一开始一定要问清需求,模糊不清的地方及早询问,避免做无用功.此外,需求变动是常有的事,了解部分交互常识,深入理解业务,设计代码尽量考虑远一些,注意代码拓展性,会给后期减少工作量,提升效率.
技术:
- 一开始使用jQuery和ES5写完整个页面,之后用ES6改写,并进行代码优化.期间系统学习了ES6的知识,重点研读模块,class,解构,遍历,也学习了其他人的ES6代码,初步掌握部分ES6应用.在改写过程中逐步总结,希望之后能有自己的ES6最佳实践的经验和体系.感受:ES6的新特性使得代码更加整洁合理规范,新的技术的流行必然有值得学习的地方.
- 整个页面写了600多行js,在后来重构和优化的过程中收获很多.一开始没有全局意识,写成了面条代码.最后进过重构优化,代码才具有可读性和复用性.以后要更加注重设计,养成良好的变成习惯,比如写之前确定整体代码结构,注意代码性能优化,注意常见规范,注意代码抽象和分块,写的代码要高效优雅整洁.
- 学习了vue,有机会的话会在之后的项目中尝试使用vue.
反思:
- 在项目中的学习过于有目的性,不成系统,业余时间要花更多时间把遇到的问题进行系统研究.
- 写代码效率不高,要更加专注,提升效率而不是耗时间.
- 编程经验不足,要多读一些优秀作品的源码,学习设计模式和算法.继续学习JQ源码,争取两周内看完解读视频.
策略调度(6/26 周一) :
- 页面用ES6重写,优化完成,测试完成
- 增加图表小功能
- 复习ES6知识要点
- 学习vue,webpack配置,大致了解vuex作用
- Todo:
- 学习vue的组件使用
- 读懂仿真模型文件结构,代码
- 基本完成页面搭建,处理filter,table展示
仿真常量(6/27 周二) :
- 了解需求
- 通读可参考页面代码,了解逻辑
- 确定实现方案,评估工作量
- 搭建基本页面,写完组件架构
- Todo:
- 完成组件功能
- 完成组件通信
- 利用假数据测试功能
- 利用其它接口测试数据
仿真常量(6/28 周三) :
- 研究组件通信方式,父子组件通信(props),兄弟组件通信(bus)
- 完成页面组件独立的功能
- 完成组件通信,数据传递测试
- 查看其它项目数据交互方式,确定方案
- 利用已有接口测试库的调用
- 渲染表格,完成分页,查询功能
- Todo:
- 利用后端接口完成剩余功能
- 测试项目
- 提交项目
- review代码.学习vue最佳实践和设计原则.
- 原生js封装一个promise的vue组件
仿真常量(6/29 周四)
- 完成接口测试
- 完成并测试常量列表页
- 基本写完添加常量页
- 学习promise以及generater
- Todo:
- 完成该项目,提测
- 总结项目经验,review代码
- 学习vue组件通信及vuex
- 学习vue的props类型验证,自定义指令和过滤器
- 设计节流和去抖函数
工作日报(6/30 周五)
- 完成仿真常量页面基本功能
- 验证测试接口功能
- 查找js库的bug
- 研究promise得then和catch
- 学习原生XHR的接口和封装
- 研究async和generator
周工作总结
- 业务:
- 本周结束上期task,接手新的仿真常量的任务,周一开始了解业务,学习参考之前类似项目代码,学习vue相关知识,规划基本实现方案,周二周三实现页面,周四基本完成前端功能,周五和后端接口联调,基本按照自己规划完成task,并提前完成需求.
- 有进步的地方
- 总结上期经验和教训,提前规划实现方案,代码结构,代码比上期有进步.
- 和后端多沟通,充分了解需求,在没有文档情况下基本没有做无用功.
- 充分自测,思考了用户交互逻辑,考虑多种场景,尽量把界面做的更人性化更好用.
- 技术:
- 完成对上期代码的review,用ES6对原有代码进行改造,并重新设计代码结构,把代码进行模块化设计,抽象部分函数,尽量分离业务和方法,增强代码可读性和复用性,方便其他人改动,大概花了两天多时间思考代码,对设计模式和基本原则有更深的理解,以后会更加注重代码质量和开发效率,兼顾业务和程序.
- 学习vue,并用vue完成一项task,算是一周入门vue.学习新的东西并没有那么难,在业务需求下学习新的东西和单纯学习不一样,需要在原有基础上快速理解框架,按照业务需求快速学习框架相关部分,并且实现需求.但是灵活高效应用框架还是需要了解框架设计理念,了解一下底层实现,有时间通读源码.工作需求上需要高效,工作之余需要花时间更系统学习框架,这样才能真正灵活应用框架,并且在学习新的框架中提升自己.
- 更深入接触ES6,在项目中用到promise,async,class,module以及其他的特性,更加深入理解ES6,新的东西在开发上的确能够提升效率,保持对新技术的热情和追求是基本素养,在平时多关注前沿技术,了解一些新的理念和设计.
- 总结:
- 相对上期,工作效率有一定提升,在项目中也学到了很多知识,并且很快应用到实践中.在实践中学习是最高效的学习方式,尝试不同的解决方案也能开阔视野和思路.
- 工作之余的总结和学习不够深入,在系统学习上还需要投入更多时间和精力,这样才能建立完整知识体系,有更多的提升.
- 实践中遇到一些问题,更加理解学科基础的作用.数理基础和计算机系统知识在实践应用中依然有很重要的作用,利用业余时间需要补一补计算机网络和数据结构,算法,软件工程的知识.大学学了很多数学课,实际遇到相关问题要多深入研究,常用常新.本月要读一读数据结构和算法,思考在项目中的应用
- 花在总结上的时间不多,之后每天都要总结一个知识点,每天剩余时间里做深入的专题研究,积累知识,方便复习,建立知识体系.
工作日报(7/3 周一)
- 完善仿真常量页面
- 和后端联合调试,更改部分功能
- 研究boom项目下的热力图代码
- 学习echarts文档
- 学习highcharts文档,绘制热力图
- Todo:
- 通读highcharts和echarts文档
- 根据热力图数据分别用highcharts和echarts绘制热力图
- 测试两者性能和参数
- 优化常量项目代码,学习项目下其他代码
工作日报(7/4 周二)
- 更改常量项目bug
- 通读highcharts和echarts文档
- 学习气泡图和地图的使用
- 分别使用echarts和highcharts绘制地图气泡图
- Todo:
- echarts和highcharts绘制地图气泡图,更换数据源,分析差异
- 学习vuex,研读含vuex的项目
- 总结常量项目经验,review代码
工作日报(7/5 周三)
- 学习JavaScript设计模式
- 学习webpack配置,http-proxy配置
- 学习nginx配置,处理跨域
- 使用微博数据源,对比两种图表
- todo:
- 利用数据量化性能对比
- 学习chrome dev的使用
- 学习vue组件通信和vuex
工作日报(7/6 周四)
- 查找svg和canvas的渲染回调,通读API
- 查找各类js性能测试工具,jsPerf等
- 学习performance和devTool使用
- 优化两种图表,展示测试数据
- todo:
- 在地图上绘制热力气泡图
- 学习chrome dev的使用
- 学习vuex