以下记录的是今年6月1日-6月15日笔者在公司进行web前端工作的每日工作内容,其中隐去了项目的具体名称、人名、公司名等。

2019.6.3

今天完成的任务:发布了一个野牛期货PC客户端的新版本,新增快捷键设置功能,已将代码提交至个人仓库中,暂未发起pull request请求。

目前已知bug:当设置快捷键时,如果设置的快捷键是全局热键:也就是屏幕截图,老板键,打开/隐藏主窗口时,如果只键入一个键值,那么就会产生js主进程的报错,加入组合快捷键(2个以上)功能正常。目前这个问题尚未排查考虑中

遇到的问题:今天遇到的问题主要来自之前所说的全局热键产生的bug问题,尚在解决中。另外是关于最近笔者学习React框架方面的,虽说React与Vue同属JS框架,某些地方有同性,但是笔者仍然觉得React与Vue有很大不同,学习起来似乎效率也不高,还是想通过更多的看React相关的书籍来学习相关知识,但是介绍React的书中文版似乎不多

明天的规划:通过几个初级的Demo进一步学习React基础

2019.6.4

今天完成的任务:今天继续阅读了React的相关书籍,学习了JSX语法,同时也通过阅读HTML5和CSS3的相关书籍学习了相关知识,另外开始构思指标弹窗的写法

遇到的问题:一开始笔者觉得stockcharts插件是封装了弹窗事件的,也是在文档和源代码里面找了很久,结果原来stockcharts并没有加入弹窗事件,也就是说弹窗要自己来写,主要是弹窗事件的触发是一个比较麻烦的问题,笔者通过参考stockcharts源码发现除了一些用到React框架的知识看不太懂之外,发现其实其源码在解决点击显示这类事件时大量的操作了dom节点,利用document文档的原生方法来获取dom节点进行一系列操作,笔者觉得虽然这样做对于vue项目来说不是那么优雅但是考虑到stockcharts原本就是这么处理的,代码又已经被封装好了所有这样做未尝不可。所以目前的思路就是获取相关按钮的dom节点并加入click监听事件以控制相关弹窗的显示。具体dom节点的获取方面:由于具体的按钮方面没有提供class标签和id,而其父节点又存在一个名称唯一的class属性,故而考虑通过获取其父节点的dom,再利用child函数取dom节点数组下标的方式来获取相应的dom节点进行监听操作

明天的规划:初步完成指标弹窗设计

2019.6.5

今天完成的任务: 基本完成了野牛期货客户端的指标弹窗功能,同时对dom节点获取API有了一些新的认识

遇到的问题:今天遇到的主要问题是在改变了窗口的大小之后(最小化这种除外)原来的监听指标的函数消失了,也就是说再点击指标不会再有弹窗出现了。再观察了代码结构之后笔者发现原因是因为在改变了窗口的大小之后相应的K线图会进行重绘操作,而重绘操作意味着其上的dom节点会被初始化,这样导致至对指标的监听函数会失效,于是笔者在重绘了K线图之后增加了$emit函数将重绘信号发送到父组件,由父组件接收到信号之后重新加入监听事件,这样也就解决了这个问题

明天的规划:完善指标弹窗设计

2019.6.6

今天完成的任务: 基本完成了野牛期货客户端的指标弹窗功能

遇到的问题:目前野牛期货客户端的指标弹窗功能还存在两个问题:一个是在切换了symbol之后,如果切换到了不显示K线图(这里对于为什么有些symbol明明存在数据却不显示K线图存在疑问 ?),之后再切换到有K线图的地方,原来加在指标上的click绑定会消失; 另外一个更加奇怪的问题是为chart-panel组建的data函数中的指标数据存储到vuex中的数据在重新启动程序之后就变成空数组了

解决的措施:针对第一个问题目前需要弄清楚的是为什么有些有数据的symbol不显示K线图,这样才能解决这个问题,对于第二个问题来说还需要进一步排查问题

明天的规划:完善指标弹窗设计

2019.6.10

今天完成的任务:完成了野牛期货客户端指标参数的持久化和不同Symbol的指标数据独立显示

遇到的问题:今天在修改野牛期货的指标功能时,因为要实现用户指标设置的持久化,并且也要使得不同的symbol下的指标显示独立,因此笔者考虑参考之前设置功能里面在vuex中进行数据持久化的思路来写指标设置的持久化,即在vuex中设置两个数组,存储的元素为对象类型,该对象有两个属性,一个是symbol用来识别不同的数据,另个一个是EMA、SMA等参数设置;另外一个数组和第一个数组类似,只是元素中的属性由EMA等参数换成可RSI、MACD等指标图。本来思路还是比较简单的就可以解决的,但是因为笔者在写vuex的时候是直接复制setting文件的持久化写法的,所以在改写vuex的时候犯了一个巨大错误:如下图,笔者在初始化state中这两个数组时最初用错误的写法也就是将masLists和dividerIndicators写成了{}对象类型,也就相当于强制将其从数组类型转化成了对象类型,导致之后写的逻辑判断的代码出现大量问题还难以调试————而根本原因则是在这里。

解决的措施:所以在编码是还是要特别仔细,尤其是对于JS这种动态类型的语言来说,本身存在着隐式的自动数据类型转换,有时候即便你的数据类型赋值错了系统也没有任何提示,但是在实际运行到与预期的数据类型不符的属性和方法是就会报错,这时候排查起问题来需要审视是不是因为之前的数据类型已经遭到了转换引起的,这样可以较快的排错

明天的规划:编写新的项目页面

2019.6.11

今天完成的任务:修复了在切换到无K线图的Symbol之后再切换回有K线图有指标之后Click指标失效的问题,修改了野牛期货客户端当中的一些字体、颜色的显示以使其更符合相关主题配色

遇到的问题:虽然笔者修复了上述的bug,但是解决的方法仍然不太理想,如下图:笔者在stockchart组件中的重绘函数的加入了$emit函数,当K线图进行渲染是就会发出emit发射出渲染信号给父组件ChartPanel,ChartPanel中的指标click监听事件在接到通知之后就会触发,这样便可以使得指标的click事件不会因为K线图的重绘而丢失了,但是这样做较大的增加了程序运行时而动性能开销,因为renderChart函数几乎是每一秒钟都要运行好几次(K线图一直在刷新数据绘图),这还是在节流处理之后的情况下,这意味着CHartPanel中的click监听函数也要不断的运行,而且其运行是通过操作dom节点执行的,所以这样做虽然解决了问题但是性能消耗过大,而在这种情况下再次对$emit函数的执行进行节流操作意义已很小(主要是因为click函数的触发是为了在切换symbol之后为指标重新加上click事件而存在的,再次进行节流很可能导致click事件监听的不及时)

解决的措施:目前正在探索更好的添加指标click事件的方法

明天的规划:准备编写新的项目

2019.6.12

今天完成的任务:为开盘五档加入了接口显示从后台传来的五档价格信息,修改了其在不同主题下的样式显示

遇到的问题:今天在看了家维写的一篇博客之后感触颇深:http://blog.bbnwork.top/2019/03/08/%E5%88%B0%E5%BA%95%E4%BB%80%E4%B9%88%E6%98%AF%E8%AF%AD%E5%8F%A5%E5%92%8C%E8%A1%A8%E8%BE%BE%E5%BC%8F/ 题目是 “到底什么是语句和表达式?” 文章对语句和表达式的联系和区别作了很深入的阐述和研究,令人深思,但是令笔者更加感慨的是最后这个设想:如果用“->”“<-”来代替程序设计中的赋值符号“=”的话,其实更加贴近“赋值”的意思,而由于我们长期受到数学当中的“=”的影响,实际上一开始接触程序设计语言中的赋值符号“=”是需要时间接受的(好在高中数学书就有讲区别于一般算式运算符的等于号的赋值符号“=”)。而且使用“->”“<-”来进行语句的赋值操作的话还可以使被赋值的变量不仅仅可以存在于“=”的左边,还可以存在于“=”的右边。但是如果是在解放了“=”符号之后,把“=”当作现在的“==”来使用可能并不合适,因为“==”本来就和数学中的“=”有一定区别,数学中的“=”其实是一种关系,代表的是等式的两边是等价的,而程序中的“==”是一种判断的关系,它是用来判断其两边的数据是否相等的,所以笔者认为“==”还是维持现状更好。

但是如果是这样的话那么“=”就无用武之地了,而且“->”“<-”已经被C/C++拿来作为指针操作符号而存在了,这或许也是“=”作为赋值符号的原因之一吧。

明天的规划:准备编写新的项目

2019.6.13

今天完成的任务:优化了五档行情的推送(使用节流的方法)

遇到的问题:今天遇到的主要问题是关于不同的合约(symbol)下应该订阅相应的五档行情的问题,按照正常处理来说,在打开一个新的合约之后,应该吧旧合约(如果有的话)的五档行情订阅取消,再进行新的合约的五档行情订阅,在之前由于后台没有对取消订阅进行具体处理,所以这边一旦订阅了某个合约的五档数据(如果有的话)就会一直持续不断的推送的前端来,在后台还没有解决此问题之前,笔者也觉得前端可以自行判断不同合约下的不同五档行情数据显示,但实际却无法很好的解决此问题,如下图,在加入了对data的symbol判断之后还是无法限制不同的symbol显示不同的五档行情问题,这是一个比较奇怪的问题。另外是关于五档行情的显示的问题,五档行情推送到前端的频率非常高,一秒钟可以达到几十次,如果正常的显示在前端会有抖动的情况产生,这里利用节流的办法可以较好的解决该问题,解决之后可以使得买盘五档的行情1s刷新一次。 关于防抖和节流的例子,这篇博客写的很好: https://www.cnblogs.com/walls/p/6399837.html

明天的规划:准备编写新的项目

2019.6.14 今天完成的任务:开始编写经纪商管理系统的前端静态页面,完成了部分页面的显示

遇到的问题:1 由于对git的工作流程的不熟悉导致的问题:在笔者之前切换到demo分支之后,在demo分支上进行了代码的修改,实际上是不应该的,因为在demo分支上修改了代码是不方便合并到develop分支上面的————develop分支的图标和demo分支不同,而在develop分支中合并demo分支的代码会导致develop中的标题和图标等信息合并。正确的做法应该是只在develop中进行代码修改,再将改动合并到demo中。 当然,如果在进行了错误的代码合并之后,我们也可以利用git reset命令回滚到之前已经commit过的版本

2 最新的野牛期货客户端出现一个奇怪的问题:在部分电脑上运行程序会直接黑屏——而在其前几个版本中并没有出现这样的问题,最迟到快捷键模块发布之前都没有出现此类问题。而按照一般理解来说,只有对快捷键的开发时才对main进程中的代码有所改动才可能导致黑屏的问题,但是在之前的快捷键设置以及开发好的版本中是没有黑屏的问题的,因此这个问题还需要慢慢排查

明天的规划:继续经纪商管理系统的开发

【实习日报】2019年6月上半月 前端开发实习工作日报汇总相关推荐

  1. D2 日报 2019年6月11日

    ? 开源项目 ➡️ sfyc23/EverydayWechat watch 34 star 1690 fork 317 每日自动给女朋友发微信暖心话. github.com ➡️ YMFE/yapi ...

  2. D2 日报 2019年4月17日

    ? 新闻 ➡️ Is React Translated Yet? ¡Sí! Sim! はい! react 文档翻译了多种语言 reactjs.org ? 开源项目 ➡️ formal/packages ...

  3. D2 日报 2019年5月20日

    ? 新闻 ➡️ Faster smarter JavaScript debugging in Firefox DevTools - Mozilla Hacks - the Web developer ...

  4. D2 日报 2019年1月3日

    官网阅读获得更好的体验,传送门<日报 2019年1月3日> 你有一个苹果,我有一个苹果,交换之后我们还是各自有一个苹果. 你有一份知识,我有一份知识,我们互相分享一下就都有了两份知识. 开 ...

  5. D2 日报 2019年5月15日

    ? 开源项目 ➡️ zenghongtu/Mob watch 5 star 387 fork 31 Mob - 一个高颜值的喜马拉雅 FM 桌面客户端,支持 Mac.Win 和 Linux githu ...

  6. D2 日报 2019年6月3日

    ? 开源项目 ➡️ Simonwep/pickr 非中文 watch 13 star 1514 fork 65 一个简单,无依赖的颜色选择器组件 github.com ➡️ scrumpy/tipta ...

  7. D2 日报 2019年4月18日

    ? 新闻 ➡️ 今天,小程序正式支持 SVG juejin.im ➡️ Facebook:公司曾「无意中上传」150 万用户邮件联系人 readhub.cn ? 开源项目 ➡️ NtesEyes/py ...

  8. D2 日报 2019年4月8日

    ? 新闻 ➡️ 多款国产浏览器封锁996.ICU,中国程序员惹谁了? www.infoq.cn ➡️ 拒绝996,中国程序员的呼声传到了国外 www.infoq.cn ➡️ JS 引擎 V8 发布 v ...

  9. D2 日报 2019年5月10日

    ? 开源项目 ➡️ kkuchta/css-only-chat watch 44 star 3182 fork 101 完全基于 CSS 实现的异步聊天应用 github.com ➡️ qunarco ...

  10. D2 日报 2019年4月11日

    ? 新闻 ➡️ C++力压Python进入最受欢迎编程语言前三 www.infoq.cn ➡️ Opera introduces Reborn 3, the first desktop browser ...

最新文章

  1. linux fork函数浅析
  2. uva10050-罢工
  3. (转)利用MS AJAX 扩展服务器端控件
  4. 如何查看 Linux 中所有正在运行的服务
  5. 数据分析学习笔记—python面向对象与模块
  6. Zookeeper基础简介
  7. 在Android中查看和管理sqlite数据库
  8. android 7.0原生动态,Android7.0适配教程,心得
  9. Nginx配置HTTP2.0 1
  10. 算法总结之 将单链表的每K个节点之间逆序
  11. 经典排序算法(十一)--堆排序Heap Sort
  12. Spring IOC基础使用
  13. linux命令行用户登录,Linux终端以及用户登录相关命令
  14. 个人总结 超详细 windows10下载与安装
  15. SMBIOS介绍(3):实现
  16. 实战tkinter图形界面开发_Tkinter python(图形开发界面)
  17. matlab画图时如何将坐标设置为中文宋体,英文新罗马字体
  18. plsql 快捷键 设置 字母大小写
  19. 为什么现在很多人特别排斥用微信打电话
  20. ffmpeg 转换flv压缩大小_使用ffmpeg进行视频文件转换成FLV整理 | 学步园

热门文章

  1. 计算签到记录的次数统计
  2. 计算机网络学习笔记11(P2P)
  3. EasyExcel导出设置表头字体样式和批注
  4. java时区_Java时区的转换
  5. 您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明是否有访问权限
  6. Vue -脚手架的安装
  7. u盘NTFS与FAT32区别
  8. CODOSYS之结构化文本(ST)—— 初级篇(二)简介与基本概念
  9. 【Linux】【操作】Linux操作集锦系列之三——进程管理系列之(一) 进程信息查看
  10. Java知识点复习:Day14