一个web程序员的年终总结
2017年年终总结(就是一个程序员的瞎叨叨):
从来到中科院到现在,很开心可以在这留下来。毕竟对于我来说,这里符合我对自己毕业后前两年的规划。我是一个很慢的人,特别是对于我想做好的事情,我会非常认真仔细的思考,不愿意放过任何一个漏洞。而对于我的专业来说,对于前端,我当时也是知之甚少。我愿意花费更多的时间去补充自己的知识,我非常乐意学习新的知识,新的内容,以及了解所有我不知道的,意料之外的现象。了解他们形成的原理,去避开,或使用他们。但是我不愿意自己在没有很牢固的基础时,去大量的学习内容,我觉得这是一个表面现象,或者说这不是我想要的,想成为的人。我希望自己对所学的一切都知其然知其所以然,不仅会用,更能理解,解决,创造。这大概是我当时的想法吧。
对于前端,可能很多人都觉得简单,甚至上手非常的快,或者觉得html和css基本不需要学习,js也只用jquery就可以了。最近也在面试一些同学,可能他们也抱着这样的心态,我觉得这是不正确的,我并不觉得一切都很简单,对于html的关注,和css的关注,应丝毫不亚于对js的关注,我不得不承认我当时对js的关注也多于其他两项,我正在调整,去花更多的时间关注他们。这些都是在工作和学习中,时常会感到对这些的理解不够深刻,只是用,很少去想为什么用。在这一年中,我觉得自己的基础在逐渐的牢固。在工作和学习的过程中,也遇到了许多问题,产生了许多想法。使用了更多的库,包括学习深度比较深的像cesium,three,arcgis等,使用了sass,less,gulp,grunt,等内容。写了几篇博客(比较遗憾,没有多抽出时间来写),但是总结了几百个页面甚至更多的知识。使用java,并且优化了自己的代码,别人的代码,进行了重构,自己的前端后台代码也在不断的成长。照着书敲了800多页的内容。等等还有非常多的内容。在这里,所有的问题,都需要自己解决,所有的想法都要自己判断,自己处理。像代码的优化方式,重构都是看书和别人的总结,自己在过程中逐渐认知的内容。总体来说,就是自己一点点的累积和总结,达成了今天的自己。
接下来总结我现在能想到的一些问题:(这点也是没有进行良好的总结导致,以后还是要多多总结,全面总结):
第一个是跨域的问题:做项目时,服务端用的python,我在自己的编辑器写web。请求调试时跨域。当时解决方法,使用CROS进行跨域。因为服务器也是可以控制的。所以很顺利。后续给组里写的项目,都是自己需要写后台的,所以基本没有这个问题。直到有一次,需要去调用一个视频流,当时我们有三种格式的,由于某些原因,获取放到了前端。那次真的是尝试了10多种跨域方式,最终通过webscoket解决。也帮助我总结了基本上所有的跨域方式,以及我了解到的他们的特点。
第二个是转html转pdf,word文档。这个当时在百度和chrome上,都没有现成的,或者说晚上的解决方式,主要是对于内容,格式,图片,表格等导出控制,没有一体化的库或者说一个比较规范的方式。所以我是去发现现有的可能的方式,然后去总结比较,包括结合来达到我想要的结果。这个问题也教会了我当我遇到的问题,可能网上没有答案,或者没有合适的方案时,我自己要怎么思考,怎么分块处理,怎么整合在一起。最终完美解决。只放了word的代码,因为pdf还是有一个比较合适的库,又加上后来没有去放代码。这个在博客和github上都有。
第三个是重拾java,写前端的同时,写后台的代码。这个主要是心理上的问题,当时我感觉自己是想要吧前端做的更加好,觉得自己有许多要学习的前端的内容,不想花费时间在后台上。但是后来还是接受了,而且在这个过程中学到了许多。比如调整自己的心态,虽然之前在学校也学过,但后来基本丢的差不多了,但是会非常容易理解一种语言,也总结了学习语言的方法。我愿意花时间去看一本springboot的书。所以一切就会变得简单,后来甚至会重构之前的同事们写的后台代码,能发现哪些方法是好的,哪些是不合适的,比如前端列表的获取不应该由后台controller定义。我觉得这是我一开始没有想到的。也感觉代码到一定程度,其实设计应该是相同的。
第四个是通过不断的写系统,从刚开始的缓慢到后来的速度,自己对系统的设计和组织能力,在不断的提升。知道如何入手,知道要考虑哪些方面的内容,要思考什么样的方式去实现。另外,也懂得与人协作可能会存在的问题。这个只能说是实践出真知。去年大概完成了五个系统。也学习了,修改了别人的系统。
第五个是数据流展示,这个其实不算什么问题。本来是准备使用原生的websocket,但是之前的同事们采用了一个框架socketjs,所以本着遵循他们的逻辑,后台要求仍然用这种方式,所以就用了。但后来,又增加了两个数据流后,发现后台给的接口,并不能确定数据流的类型,因为是通过rid进行区别的,但是websocket的路径中并没有带rid,所以会发生串流的现象。后来采用了原生的方式进行重写。这个主要是前后端约定方式的问题。教会了我思考扩展问题,思考现存的方式是否合适,以及是否有更好的方式可以代替。
第六个也不算是什么问题,当我们决定使用3d地图的时候,自己研究了学习了cesium地球,还有threejs,并且可以实现我们的需求,后来因为我们之前用的平面地图是arcgis,我们也买了arcgis的服务,也参加了arcgis的全球大会,所以改为使用arcgis3d地球。在这个过程中,一直是一个学习的过程,遇到的问题其实都是自己对该库了解不够多,另外还有学习方法的问题。对于问题,其实只要你花时间去解决,基本就能解决。对于库的使用,我觉得只要是库能做到的,我们开发人员就基本应该做到,这没什么特别困难的事。对于学习一个新的,具有深度的库也有了自己的理解。我们应该有正确的方法,比如从类到方法,到属性的去学习。一步步的根据我们的要求学习这个库。如果我们主攻这个库,我建议采取的不是为了要求,而是我们对于每一块自己能理解到的程度去学习。这样会更加有深度,也许可以提出或者创造一些没有的东西。但这个一般对于库的开发人员来说,就像我们对于js一样,能多深,就多深。
第七个是在写动画的过程中,使用的方式就不说了。主要是在js精准控制动画过程中,产生的问题。由于界面需要的交互动画较多,会导致一些延迟动画在快速操作的过程中,没有进行及时的添加移除,包括延时后产生的各种效应等。教会了我许多对于动画的设计,和控制动画的起始,包括了解了js的高精度计时,以及js的延时操作不可靠。也在处理threejs过程中接触到了大量动画渲染卡顿的问题。也了解了dom树的渲染和利用gpu去解决js的计算问题。包括界面上的盒子。以及脱离文档流后的部分重绘将会节约时间。等等,并不深刻,有待深入了解总结。
其实还有许多问题,没有进行好的总结,所以或许一时想不起来,像vertical-align和line-height之间的关系,像transform的matrix。等等,当我遇到的时候可能就会想起来了,这里就不把几百页的内容列举出来献丑了。
总结一下学到的知识吧:
1.跨域
2.webStorage
3.各种各样的插件使用。
3.html content 转world,pdf。
4.java springboot
5.sass, less
6.gulp, grunt
7. websocket
8.flex布局
9.canvas
10.svg
11.播放各种格式的视频流
12.cesium,arcgis
13.three.js
14.动画
15.看并敲了七八百页的基础书。
16.写了几篇博客
17.看了半本设计模式
18.看了半本算法。
19.学习了es6
....
等等许多css和html,js细节的内容就不说了,实在是临时想,很尴尬。。
总结展望:
1.总结:学习了大量的内容,巩固了自己的基础知识。也使用了很多的插件和框架,对于基础,对于html,css,js都有了自己的理解。对于插件和库有了自己的学习和使用方法。也依靠自己解决了许多问题,对于问题,能形成良好的思路。缺乏总结整理。对于知识的掌握缺少深入思考和联系,对于前端的架构了解较少,对于算法数据结构,设计模式使用较少。看书较少。总体还算可以吧(我夸自己一下)。
2.展望:今年要对基础进行更加深刻的理解,争取能够成为真正意义上的精通。其次,多多思考学习方法,学习管理自己。多读一些书,还是有整体上的许多内容需要进一步学习。多多使用算法数据结构和设计模式的思想。学习vue和react,webpack。了解angular.js。多多学习源码。任重道远,砥砺前行。
一个web程序员的年终总结的更多相关文章
- 一个java程序员的年终总结
年底了,该给自己写点总结了! 从毕业到现在已经快4年啦,一直在Java的WEB开发行业混迹.我不是牛人,但是自我感觉还算是个合格的程序员,有必要写下自己将近4年来的经历,给自我以提示,给刚入行的朋友提 ...
- Web程序员开发App系列 - 开发我的第一个App,源码下载
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- 一个10年Java程序员的年终总结,献给还在迷茫中的你
我越来越担心我作为一个Java程序员的未来. 恍然间,发现自己在这个行业里已经摸爬滚打将近10年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作 ...
- 2016 Java程序员的年终总结(转)
2016 Java程序员的年终总结 技术积累 (1)代码规范 1.1.1.通常的模块分布:一般如果你要实现一个web 应用,你从后台将数据展示到前端页面,在一个比较大的公司,你少不了跟其他项目有交集( ...
- .NET WEB程序员需要掌握的技能
本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...
- Web程序员开发App系列 - 调试Android和IOS手机代码(补图)
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 申请苹果开发者账号
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 认识HBuilder
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- 一个.net程序员教你使用less
我是一个.net 程序员,虽然说一直做后台,但是web 前端也会去学,虽然说技术只是层窗户纸,但是像我这种多动症患者,不捅破我心难受啊! 好!废话不多提,下面直接正题,至于less 是什么这里不多讲因 ...
随机推荐
- [poj3252]Round Numbers_数位dp
Round Numbers poj3252 题目大意:求一段区间内Round Numbers的个数. 注释:如果一个数的二进制表示中0的个数不少于1的个数,我们就说这个数是Round Number.给 ...
- android中shape属性大全
出处:http://kofi1122.blog.51cto.com/2815761/521605
- android:layout_weight属性详解
1. 按比例显示LinearLayout内各个子控件,需设置android:layout_width="0dp",如果为竖直方向的设置android:layout_height=& ...
- python全栈学习--day8
一,文件操作基本流程. 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众 ...
- 用C语言协助办公_01 找出所有不对劲的人
近期想出一系列用C语言协助办公的视频教程,这是第一个.具体的移步:https://chuanke.baidu.com/v6658388-240377-1789288.html
- I know 项目Alpha冲刺随笔集
Alpha冲刺 Day 1 Alpha冲刺 Day 2 Alpha冲刺 Day 3 Alpha冲刺 Day 4 Alpha冲刺 Day 5 Alpha冲刺 Day 6 Alpha冲刺 Day 7 Al ...
- 浏览器关闭后,Session会话结束了么?
今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了? 我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保 存当前用户的状态信息 ...
- aix 6.1系统怎么安装?这里有详细图文教程
今年六月,我们公司出现了一次非常严重的数据丢失的事故.生产服务器崩溃导致所有的业务都陷于停滞,而且由于涉及到公司机密又无法贸然到数据恢复公司进行恢复,可是自己又无法解决.权衡利弊还是决定找一家有保密资 ...
- MongoDB 副本集管理
一.以单机模式启动成员节点 有时候出于维护的需要,需要以单机模式启动某个节点而不是一个副本集成员身份. 1).首先查询服务器命令行参数 db.serverCmdLineOpts() 2).关闭当前副本 ...
- JAVA_SE基础——33.this关键字的练习
需求:使用java定义的一个人类,人具备 id ,name ,age 三个属性,还具备一个比较年龄的方法. 要求:必须要写上构造函数,构造函数也必须要使用上this关键字. class Person{ ...