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展望的更多相关文章

  1. 2017年终总结&展望2018年

    转眼就要挥别2017年了,也看到好多人都在叹时间过得好快.对啊,在我的印象中时间过得慢的时期恐怕只有中小学期间了,转眼研究生阶段已经过了一半.如今这个阶段,很多时候忙任务和学东西好不容易觉得自己摸到点 ...

  2. 《2017年-2018年中国MES软件及服务市场研究报告》正式发布!

    <2017年-2018年中国MES软件及服务市场研究报告>由e-works Research研究编写,报告深度分析了2017年及2018年中国MES市场发展状况,从市场规模.市场特点.需求 ...

  3. 关于ECMAScript 2016, 2017, 和2018中新增功能(摘抄)

    ECMAScript 2016 1. Array.prototype.includes includes是数组上的简单实例方法,并有助于轻松查找某个项是否在Array中(包括NaN不像indexOf) ...

  4. [原创]Xilinx Vivado 2017.4/2018.3/2016.4/2015.4/ISE14.7下载及其安装

    最新版本Vivado 2018.3下载地址 链接:https://pan.baidu.com/s/17aE-vICRQYN27bD2sXCLxg提取码:ilg5 由于工程需要,下载VIVADO2018 ...

  5. IntelliJ IDEA 2017.3/2018.1激活与汉化

    本文以IntelliJ IDEA 2017.3以及2018.1为例进行讲解.(持续更新:2018年5月28日) 适用版本(其它版本未测试): IntelliJ IDEA 2017.2.6.2017.3 ...

  6. IntelliJ IDEA 2017.3/2018.1 激活

    传统的License Server方式已经无法注册IntelliJ IDEA2017.3的版本了. http://idea.lanyus.com,这个网站有破解补丁和注册码两种方式,另外http:// ...

  7. 总结2018&&展望2019

    2019很激动,因为我加入了博客园这个大家庭,以后的技术文章都会在博客园记录,也希望可以结识更多的有趣朋友和共同理想的友人.第一篇文章从自我规划开始.2019 您好!!! 总结2018: 距离2018 ...

  8. IntelliJ IDEA 2017.3/2018.1/.2 激活

    传统的License Server方式已经无法注册IntelliJ IDEA2017.3的版本了. http://idea.lanyus.com,这个网站有破解补丁和注册码两种方式,另外http:// ...

  9. 2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~

    2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问 ...

随机推荐

  1. Python基础学习参考(六):列表和元组

    一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素 ...

  2. 内存映射mmap的几个api及其使用

    内存映射 mmap 内存映射mmap函数的作用是建立一段可以被两个或者多个程度读写的内存段,一个程序对他进行任何修改,对其它程序可见.同样,这个功能可以用在对文件的处理上,mmap函数创建一个指向一个 ...

  3. 1.1 PCI总线的组成结构

    如上文所述,PCI总线作为处理器系统的局部总线,是处理器系统的一个组成部件,讲述PCI总线的组成结构不能离开处理器系统这个大环境.在一个处理器系统中,与PCI总线相关的模块如图1?1所示. 如图1?1 ...

  4. 解决VC6下调不出MSDN的问题!

     原文:http://www.programfan.com/blog/article.asp?id=1524http://blog.programfan.com/trackback.asp?id=15 ...

  5. 3.3.4 PCI设备进行DMA写时发生Cache命中

    如果PCI设备访问的地址在某个CPU的Cache行中命中时,可能会出现三种情况. 第一种情况是命中的Cache行其状态为E,即Cache行中的数据与存储器中的数据一致:而第二种情况是命中的Cache行 ...

  6. mysql常用基础操作语法(九)~~外连接查询【命令行模式】

    1.左外连接left outer join或者left jion,outer可以省略不写,下边的右连接和全连接也一样: 左外连接的意思是,以left join左边的表中的数据为基准,即左边的表中有的必 ...

  7. eclipse中添加Java代码注释模板

    eclipse中添加Java代码注释模板 1.Window->Preference->Java->Code Style->Code Template,进入注释编辑界面 2.文件 ...

  8. freemarker中的if...elseif...else语句

    freemarker中的if...elseif...else语句 1.设计示例 <#if student.studentAge lt 12> ${student.studentName}不 ...

  9. java重写和重载

    方法的重载: 在一个类中的两个或两个以上的方法,他们方法名相同但是参数列表不同,这种方式称为方法的重载,方法的重载是实现多态性的方式之一. 参数列表不同指的是参数的个数不同或相同的个数但顺序不同或者类 ...

  10. No bean named 'cxf' is defined

    1.错误描述  严重:Exception starting filter CXFServlet        org.springframework.beans.factory.NoSuchBeanD ...