您的位置:首页 > 职场人生

2015年12月1日实习日志

2015-12-01 20:24 232 查看
今天应该是正式工作了整整一个月了吧,在经历了一个月的波澜不惊的试用期之后,终于告别了采集新闻,p图,切图,修界面,改兼容性等杂七杂八的工作,也终于开始着手做一些真正的后台程序员该做的事情了。

现在在做一个日志管理的功能,功能很简单,就是用来给公司员工写计划和总结用的,昨天CTO跟我大概交代了一些工作内容,今天算是正式进入开发阶段的第一步吧。由于之前的页面就在我采集新闻,p图,切图,修界面,改兼容性等杂七杂八的工作之余做出来了,所以今天就直接搭环境开始开发,前台界面主体是采用的fullcalendar插件,后台依旧是thinkphp框架(ps:框架那么多,我想试试别的),fullcalendar插件是第一次用,对照着文档之前也看了好久,对fullcalendar也有了大概的了解,不得不感叹,写插件的人就是流弊。

不扯淡了,说一下今天预见的问题吧,首先是把之前的页面导入进项目中,项目是成功导入进去了,css和js也加载进去了,可是,显示出来的界面总是跟静态页面差一点点(其实是很大一点),无奈了,选中一个有差异的元素,然后一个规则一个规则地去看,后来终于让我发现问题了,原本应有效的规则却被覆盖了,这又是为什么呢,热爱思考的我又一次陷入了沉思之中。然而机智的河工大人民迟早会看穿一切。

结论:如果有重名的css规则,引入css先后顺序会影响界面显示效果。经验:尽量不要重名。

折腾了一上午,终于把页面放到项目中了,然后洒家就屁颠屁颠地去编程了,刚一上去就又遇到了一个相当棘手的问题,就是关于日期转化的问题,因为做的日志功能,所以需要查看一个月的日期,以前没有注意,现在才知道,原来日期也不是说改就能改的,首先我获取到了当前的日期,然后,格式化当前日期为 年-月的形式,然后获得本月的第一天的时间,那怎么获得本月的最后一天呢?30号,不对?31号,也不对,因为每个月的天数不是固定的,那该怎么办呢?热爱思考的我又一次陷入了沉思之中。然而机智的河工大人民迟早会看穿一切。

结论:无敌的strtotime()函数carry了我。详情:看代码

$monthstart = strtotime($date);
$monthend =  strtotime("+1 month",date($monthstart));

时间的问题解决了,是时候展现真正的开发了,谨遵潘老师教诲:编码之前先画图。前辈毕竟是前辈,机智的潘老师早已懂得了画图的高效性,之前我们画的事件流程图大多是针对C层与M层之间进行分析。往往以为V层只是用来显示效果的,这次做日志功能我也算悟到了V层的重要性,因为我这个界面的主体是用一个插件完成的(插件已经被我改的面目全非),所以一些特定的效果需要用到js控制,比若说,前台点击某一天,需要显示出这一天的相应的事件,在V层,肯定需要ajax传递当前点击日期给V层,然后V层去找M层要数据,然后在传给V层,最后在V层用js方法显示出事件的效果来,这是整个的一个MVC的时间流程,而在这个流程中,V层的开发并不容易,需要深入了解fullcalendar插件才能完成,我现在也不知道,当初用这个插件是否是正确的选择。而这些js的事件,需要由前台工程师来完成,所以,前台工程师的任务并不简单。同样需要相应的逻辑能力。后来回想之前的项目,之所以流程图中V层的逻辑很少,是因为我们大多数页面都分开了,比如说列表页和详情页,这样就没有大量的V层与C层的交互,或是是说js事件用的很少,而且js需要用到的C层的数据很少,导致我们往往是通过thinkphp的assign函数来传值,前台只负责拼接而已,显得前台任务很轻,其实,一个优秀的前端工程师是能过具备与C层交互完成页面效果的。

结论:前台工程师也不容易,明天我就要处理这些前后台的交互了。(谁让没有专门的前台工程师呢)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  程序员 日志