2017总结&2018展望
2017已逝2018已来,是时候放下包袱来好好回顾下2017做了什么,有什么收获,遗憾之处的原因是什么。2018应该怎么做才能让自己满意,才能少一些遗憾。
2017
工作
工作中所参与的项目是一个直播业务的pc客户端,用到的基础框架是:
- 绘制引擎
1. D3D
2.GDI Plus
3.GDI
D3D是一个游戏引擎,各大大型游戏都用到了d3d,支持硬件加速渲染等极大提升效率的技术。但是因为xp系统不支持d3d,所以在xp系统还是使用gdi引擎绘制。GDI+主要用来绘制透明窗口,因为webview等离屏渲染的业务需要绘制到透明窗口上(其实直接绘制到d3d上不是更好么)。
- 界面库
在引擎基础上,界面库封装了一套接口,对外提供绘制、事件通知、查询等一系列虚函数接口,业务开发主要开发控件,继承这些接口实现具体的操作,控件的配置使用xml来实现,比如字体的大小、背景图、间隔等属性。在窗口类里面的消息循环里面查询和通知各个控件。
- 业务实现
一堆控件会被配置到一个大的xml文件中,该xml文件会与一个继承自业务处理基类的义务父类相绑定,添加事件通知回调等处理机制。等到该控件需要处理事件时,会通知到该业务类实例,各个业务类之间,会通过一个业务类管理器来统一管理,可以实现业务类之间的通信。
pc端客户端未来发展方向:pc客户端的用户量是逐年萎缩的,公司一般也不会太重视这一块业务,最主要的问题是用纯c++开发业务一是效率跟web端比较低,二是灵活性较差,很多时候一个功能稍微改下需要重新发版。最近跨平台的web native框架如nw和electron很火,很好的解决了上述两个问题,而且解决了web因为获取不到电脑的原生态api导致用户体验较差的问题。这是未来趋势,一份代码,多个平台。
个人发展方向:如果坚守前端的话,精通c++的绘制引擎和web开发技术会比较吃香,退可以用c++开发web native应用的基础框架,优化性能,而且d3d可以开发游戏,大不了改行做游戏去;进可以转web端,尤其是js,在web native和小程序中举足轻重。
以上是2017年对这个工作框架的理解,遗憾是:
1. 未能把d3d等绘制引擎吃透,如果现在直接扔给我一个新的项目,问题估计不要太多,应该把代码与书籍结合起来,如果单纯的看书,效果会大打折扣;
2. 被业务给锁死,每个开发周期基本上都是在框架上堆业务代码,很少有时间去真正的改善一个绘制引擎的性能问题,光做业务对自身发展很不利,等离开这个项目组,除了一些业务开发经验,真正学到的技术真的是寥寥无几;
3. 没能实现由点打开面的突破,没有自己掌握的一个核心技术,在项目组中的位置较轻,没多少话语权;
4. 有一些代码光顾着赶速度,其实放长远一点看,其实大大的影响了开发的效率和深度,比如之前解析接口的json数据,居然是针对每一个json格式数据,都写一份解析的代码,后面用了递归遍历的方法,成功实现了一份代码解析所有格式的json数据的功能,极大的提升了开发效率,也给自己争取了更多的时间提升技术修养。
生活
在毕业一年多以后,17年学会了自驾游这一项技能,确实,租一辆车去玩会轻松许多。这一年下来,游历了乌镇、鼋头渚以及上海、南京、西安的大部分景点,故地重游会有一些不一样的收获。17年年底完成了一件大事,把婚订了,明年争取把婚结了。
可能是人越大越难交心,发现还是大学里的朋友比较多,读研究生和工作后基本上没有什么朋友,这方面确实需要改进下,多一些志同道合的朋友去分享快乐悲伤,应该是一件比较幸福的事情。
学习
买了很多专业书籍和小说,鸟哥的Linux服务器搭建、Linux内核、深度学习、四人帮设计模式、机器学习等、、、、、、,期间学习了一些设计模式也写了一段时间的博客,但是因为对自己文笔的不满意或者是博客访问量的不满意,期间终止了两三个月的时间, 后续要把写博客的习惯坚持下去,毕竟博客是写给自己看的,访问量多与少又有什么关系呢!adrew n.g.的机器学习视频看了前两部分了,光看视频其实理解得并不透彻,还是需要多coding,多学习源代码,多看一些论文。小说方面把百年孤独、白鹿原、月亮与六便士等看完了,其实看完这些小说后,尤其是百年孤独,你会发现人真是一个神奇的动物,孙辈做的事情往往是父辈爷辈们折腾过的事情,永远在那里重复,你改变不了,只能学着去接受。
2018
工作
能更专心的工作,付出全部的努力去掌握一门核心的技术,比如机器学习和人工智能技术,多去关注一些技术的发展,要尝试着不断的改变,不要让自己陷入舒适区状态。年会上cto提到过一句话是比较认同的,如果社会上发生的变革都跟你没什么关系,那么你这个业务或者是人对公司而言就可有可无了。 虽然听起来有些极端,也不无道理,学习技术真的需要极客精神,一种追求极致的心态,极致的简洁代码、优化到极致的算法、极致灵活的框架等。
生活
生活中能多一份淡然,遇事能更理智更平静。顺利完成自己的婚姻大事。多结交几个志同道合的朋友。多一些爱好。希望自己可以在六便士和月亮之间找到一个平衡点。
学习
需保持一颗向上的学习的心,多向牛人学习,找到几个开源项目,参与到其中,提交一些核心代码。在机器学习、人工智能、数据挖掘方面,要多了解最新的技术,多学习基础技术,毕竟技多不压身。
最后祝各位2018新年快乐,狗年旺旺旺!
2017总结&2018展望的更多相关文章
- 2017年终总结&展望2018年
转眼就要挥别2017年了,也看到好多人都在叹时间过得好快.对啊,在我的印象中时间过得慢的时期恐怕只有中小学期间了,转眼研究生阶段已经过了一半.如今这个阶段,很多时候忙任务和学东西好不容易觉得自己摸到点 ...
- 《2017年-2018年中国MES软件及服务市场研究报告》正式发布!
<2017年-2018年中国MES软件及服务市场研究报告>由e-works Research研究编写,报告深度分析了2017年及2018年中国MES市场发展状况,从市场规模.市场特点.需求 ...
- 关于ECMAScript 2016, 2017, 和2018中新增功能(摘抄)
ECMAScript 2016 1. Array.prototype.includes includes是数组上的简单实例方法,并有助于轻松查找某个项是否在Array中(包括NaN不像indexOf) ...
- [原创]Xilinx Vivado 2017.4/2018.3/2016.4/2015.4/ISE14.7下载及其安装
最新版本Vivado 2018.3下载地址 链接:https://pan.baidu.com/s/17aE-vICRQYN27bD2sXCLxg提取码:ilg5 由于工程需要,下载VIVADO2018 ...
- IntelliJ IDEA 2017.3/2018.1激活与汉化
本文以IntelliJ IDEA 2017.3以及2018.1为例进行讲解.(持续更新:2018年5月28日) 适用版本(其它版本未测试): IntelliJ IDEA 2017.2.6.2017.3 ...
- IntelliJ IDEA 2017.3/2018.1 激活
传统的License Server方式已经无法注册IntelliJ IDEA2017.3的版本了. http://idea.lanyus.com,这个网站有破解补丁和注册码两种方式,另外http:// ...
- 总结2018&&展望2019
2019很激动,因为我加入了博客园这个大家庭,以后的技术文章都会在博客园记录,也希望可以结识更多的有趣朋友和共同理想的友人.第一篇文章从自我规划开始.2019 您好!!! 总结2018: 距离2018 ...
- IntelliJ IDEA 2017.3/2018.1/.2 激活
传统的License Server方式已经无法注册IntelliJ IDEA2017.3的版本了. http://idea.lanyus.com,这个网站有破解补丁和注册码两种方式,另外http:// ...
- 2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~
2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问 ...
随机推荐
- SMJobBless官方Demo笔记
SMJobBless是苹果官方提供的用于"MacOS app获取root权限"的demo. 具体思路 使用Security.framework和ServiceManagement. ...
- Spark源码编译(未完待续)
在这里我们不需要搭建独立的Spark集群,利用Yarn Client调用Hadoop集群的计算资源. Spark源码编译生成配置包: 解压源码,在根去根目录下执行以下命令(sbt编译我没尝试) ./m ...
- java:产生小数位数为2的随机概率,使得和为1
public static List<InstSec> setDataSec(List<String> instno) { List<InstSec> result ...
- 把mmapv1存储引擎存储的mongodb3.0数据库数据复制到WiredTiger存储引擎的mongodb3.2中
mongodb3.0在mmapv1的存储引擎基础上添加了一个新的存储引擎WiredTiger.但是3.0的默认存储引擎依旧是mmapv1,因此我们项目之前也就用的默认方式. 但是mongodb更新实在 ...
- mysql常用基础操作语法(九)~~外连接查询【命令行模式】
1.左外连接left outer join或者left jion,outer可以省略不写,下边的右连接和全连接也一样: 左外连接的意思是,以left join左边的表中的数据为基准,即左边的表中有的必 ...
- HI3531的DDR3配置流程
DDR3 初始化配置流程 系统上电之后,必须先完成DDR3 SDRAM 的初始化操作,系统才能访问DDR3 SDRAM.在进行初始化之前需要注意以下几点: 对DDR3 SDRAM 进行上电操作时,需要 ...
- Java中File类总结
/** * @Title:JavaFile.java * @Package:com.yhd.chart.model * @Description:File类测试 * @author:Youhaidon ...
- 笔记本CPU低压和标压有什么区别?
笔记本CPU英文称Mobile CPU(移动CPU),它除了追求性能,也追求低热量和低耗电,最早的笔记本电脑直接使用台式机的CPU,但是随CPU主频的提高, 笔记本电脑狭窄的空间不能迅速散发CPU产生 ...
- mysql学习笔记03 mysql数据类型
数值型:整数型 小数型字符串型时间和日期类型 数值型①整数型1 2 3 4 81bin表示1位,1Byte表示一个字节1B=8b.1汉字=2字节(1 word = 2 byte)1字节=8位(1 by ...
- css 超出规定行数自动隐藏
单行overflow: hidden;text-overflow: ellipsis;white-space: nowrap; 多行(兼容各个浏览器)//通过覆盖最后几个字的形式p{positio ...