离自己的上一篇博客还是有那么段时间了...忙忙碌碌那么一段时间,确实需要自我总结一下,这一点不仅仅是体现在技术上,而且还有对于沟通、项目推动等等综合方面的总结。
关于技术
这个其实还是能感觉得出来...自己需要提升的地方还有太多太多。曾几何时还觉得自己似乎能够独立完成一些项目,但是最后却发现原来是自己眼界太低了...对于新技术只是有去了解,但是没有落地的实践,对于自己的提升基本为0。其实一直在庆幸自己的运气,能够进入一家前端团队非常nice,能让自身发展方向很明确的公司,觉得已经像是买彩票中奖了。作为项目组里最菜的(没有之一),发现自身的学习方式并非那么有效之后,虽然有所更正,但是更多却是发现自己的知识还是积累得太少太少...很多东西都还是处于一种懵懵懂懂的状态。其实技术越深入,就越来越发现基础的重要性,这里我突然想起一个很例子:
1 $scope.isAuthenticatedUser(function (data) { 2 $scope.hideLoading(); 3 $scope.helper = data.user_helper; 4 $scope.userType = data.type; 5 $scope.userId = data.userId; 6 if ($scope.userType !="") { 7 if($scope.userType == 1|| $scope.userType == 2){ 8 $scope.initShare(); 9 } 10 $scope.getUserDetail(function (data) { 11 if (data.activityOn == 0) { 12 $scope.hideLoading(); 13 var date = $scope.initTime(); 14 $scope.$el.html($scope.renderTpl($scope.layoutTpl, { 15 date: date, 16 data: data 17 })); 18 } 19 if (data != null) { 20 var date = $scope.initTime(); 21 $scope.$el.html($scope.renderTpl($scope.layoutTpl, { 22 data: data, 23 date: date 24 })); 25 $scope.setStatistics(3, pageVisitedCount); 26 } 27 }); 28 } else { 29 $scope.$el.html($scope.renderTpl($scope.layoutTpl, { 30 data: null 31 })); 32 $scope.setStatistics(3, pageVisitedCount); 33 } 34 });
从这段代码中,可以看到有很多地方都有一个叫$scope的变量,那么这个变量指向哪呢?我在这个方法的外部做了一个声明:var $scope = this;其实贴这段代码的目的也是为了给自己做个提醒吧,当初就是因为这段代码中的this存在着几种不同的指向问题,而我需要让它统一指向window。
上述哪些已经是我一个月之前写的东西...我觉得...我需要做一下最彻底的自我反思。
其实关于技术....我觉得都是学习和积累起来的,这篇博文陆陆续续的写了有快1个月了...都还没能发布...中间跟了一个项目。自己又做了一个项目...现在有那么点空闲时间,仔细想了想,感觉...自己还是有拖延症吧...
技术上缺少主动性,很多技术栈想去学习,但是项目任务排下来、拖延症突然犯起来(这个才是重点)...很多时候都不了了之...再加之存在着一点畏难心理...
从刚刚结束的项目其实我也发现了这个问题:
这是最近活动的主要的页面,交互全部完成之后,有一个后续的需求。需求的主要是在数据统计上,所以需要我前端做好埋点工作。但是BI的要求是在滑动每一屏时都要调用接做出统计,所以当时一听到,我就有点懵逼了...因为这个是套用同事给的一个模板来弄的...看样子是分了好几屏,但实际上就是只有一个页面啊!第一反应:“不行...没法做,我进入页面统计一次就好,为啥每次滑动都要去做出统计?”需求确定下来了...我觉得毫无开展的可能性,就在心理上对其进行排斥...而没有主动的去尝试、去解决问题。在其他需求完成之后,发现这个东西没法逃避,那只有硬着头皮去做了...然后也没有细看代码,或者好好打打断点去调试程序,就直接去问给我模板的同事了...同事也很忙啊!点了我一下之后我发现还是不懂,更是不想做了...然后整个人...就开始累积负能量了...折腾了一会儿,发现这个东西不管我会不会,需求就摆在那,不会因为你的个人理解就去随意变更。同事指点你也只能是指点你而已,具体怎么去写、怎么思考去完成,还是得看你自己。
还有什么其他办法呢?只有耐着性子去研究代码了...一个断点一个断点的打,去调试、去看程序走向、去理解代码...花了点时间,然后发现其实代码逻辑没有那么难理解...最终控制页面变化时的代码其实就一个方法:
function animatePage(newPage) { if (newPage < 0) { newPage = 0; } if (newPage > $(".wrap section").length - 1) { newPage = $(".wrap section").length - 1; } curPage = newPage; var newMarginTop = newPage * (-pageHeight); $(".sec").css({ "-webkit-transform": "matrix(1, 0, 0, 1, 0, " + newMarginTop + ")" }); var newTop = -parseInt(curPage * pageHeight * (lineHeight / secHeight)); $(".line").css({ "-webkit-transform": "matrix(1, 0, 0, 1, 0, " + newTop + ")" }); movePrevent = true; setTimeout(function(){ movePrevent=false;}, 300); if (!$(pages[curPage]).hasClass("page-show")) { $(pages[curPage]).addClass("page-show"); } $(pages[curPage - 1]).removeClass("page-show"); $(pages[curPage + 1]).removeClass("page-show"); }
上面的代码就是控制页面变化的关键,里面的变量curPage就是当前页面的下标...我只要根据这个下标,想后台传不同的参数就能完成需求了啊...完全不用自己再添加一句代码...只用在这个方法里调用预先声明好的函数就行...
好了,需求能完成了,但是感觉并没有那种解决问题之后的成就感...反思了一下...其实这个问题从根本上来说,根本不算是一个难题,只要认证去调试、去阅读代码就可以。
其实这篇文章可以说不算是一篇博文,更像是一个心路历程,加之对于自身的反思...自己其实很多时候会质疑自己,我真的是一个程序员么?我有职业精神么?我真的干这一行么?自我否定过,但是却不想放弃...职业生涯才刚刚开始,也许现在的我不够好,但是人是可以改变的,我应该相信自己、应该坚持。没有什么时一蹴而就的...给自己定下的目标就要去执行,选择了这条路就要坚持的走下去。2016年就这么过去了,2017年应该是我职业生涯很重要的转折点,做好安排,做好计划。希望为自己拼出一个不一样的未来...感觉前面那句话好像太托大了...应该换一句实在一点的目标:改掉自己畏难的毛病、研究并能落地实践react、挣钱买电脑。精神、技术、物质都有目标了,嗯...努力加油吧!