三个多月来的工作和学习小结
2011-09-16 09:17 PHP淮北 阅读(3568) 评论(26) 编辑 收藏 举报毕业到现在做web开发已经三个半月了,现在总结一下最近三个月来的工作和学习
本人喜欢写博客,所以总结最近三个月的工作和学习需要参考之前的博客文章---csdn@PHP淮北;
列个表格吧,看着也比较方便:
时间 事项 |
六月 |
七月 |
八月 |
九月 |
工作任务 |
前端页面 |
服务端页面 地图定位 |
服务器搭建 图片上传 |
视频文件信息的获取 |
关键词 |
Css+div+js |
PHP,谷歌maps,jquery |
Centos,Nginx,图片上传 |
Ffmpeg,flv |
博客文章数量 |
11 |
14 |
42 |
15 |
通过上面的表格可以大概知道自己工作内容和学习的东西
下面是个人三个月来的一点小总结:
① 做前端页面:最重要的是浏览器兼容,之前没有接触过前端,导致做前端页面的时候总是忘了测试浏览器的兼容问题,还有就是要站在用户的角度去体验,修改自己的布局和js,给用户一个很好的用户体验!这是一个细心活需要耐心!
② 学习新知识的最好方式就是看官方网站,如谷歌maps开发,谷歌api有很好实例供你使用和学习,也许官网是纯英文网站,这个貌似英文阅读能力也是程序员的一个瓶颈!
③ Php的最佳运行环境是liunx,通过配置centos下面的lamp环境,第一是学会熟悉liunx命令行操作模式,第二点就是熟悉lamp环境的具体配置,之前在xp上面都是使用集成开发环境包,对具体的配置文件还有这四则之前的关系,不慎了解,通过lamp分别安装,对PHP的底层工作原理和lamp四者之间的关系了解更加深入
④ Nginx服务主要存放静态文件,如css 图片,视频文件,他的最大优势就是反向代理功能,在处理高并发的请求时性能据说是apache的十倍,具体的我没有测试,但是通过nginx服务器配置文件和apache的配置文件的对比,就可以感觉到nginx的配置文件相当简洁清晰,相反apache配置加载的模块就比较庞大,就像一个瘦子和胖子,在百米冲刺比赛上,很明显瘦子很占优势。一般的网站架构会两个服务器都使用,各取所长,使用nginx负责静态文件,apache负责php页面。
⑤ 谷歌还是百度? 关于搜索工具的选择之争很多,我这里只是说一下个人使用他们解决工作问题的一点体会:假如你是搜索一个新的知识点,谷歌搜索的第一页:一般是官网网站或者wiki百科,还有就是一些优秀的博客文章。百度搜索的第一页:一般是百度知道或者百度百科,还有一些就是一些靠转载为主的网站,这些网站一般小广告很多,文章转载的不全或者代码没有什么高亮,看起来的话有点费力。个人感觉对于学习新知识的话:以官网或者优秀的博客学习为最佳材料。
⑥ 写代码重要还是流程重要?接到新的工作任务时一般都是上来就写代码,写着写着感觉自己都不知道要解决什么问题了,可能这个问题解决,但是相关的一些问题却出现了,于是有赶紧解决其他问题,总是感觉写程序像是在打补丁,不停的修改补充,这样的代码是不可取的,反思总结的结果就是;接到新任务之后一定要搞清问题的流程和步骤,还有一些相关问题如何解决,这些都是需要提交在流程图体现出来,谋定而后动,这样有计划有流程的去做,可以减少返工的几率和避免一些以外问题的发生!
⑦ Liunx和php结合的一个优势就是可以使用php调用shell命令,有时候靠php自身很难实现某些功能,但是liunx可以编译某些组件,可以通过shell获得,那么在使用php调用shell命令,这样处理问题真是太方便了!例如本人使用ffmpeg这个liunx组件获得视频文件的缩略图,还有视频文件的长度,格式,尺寸等等信息,如果纯粹靠php这些问题恐怕是很难搞定的
⑧ 对liunx的学习还有一点就是对计算机工作原理有一定认识,例如大家经常说的是对于一个大网站来说数据库通常是瓶颈,但是自己却从来没有理解他,在看鸟哥的liunx的时候,里面有关于计算机工作原理的简介时:说缓存的主要作用就是缓冲高速的cpu和低速的i/o操作,而对数据库的读取就是属于i/o操作,这也就解释了为什么大网站需要对数据库进行频繁的读取所造成的瓶颈了
⑨ 写代码一定要养成良好的注释习惯和命名习惯还有文档说明手册,经常遇到命名很相似的方法没有注释说明,例如我要修改你一个返回url的一个方法,数据库里面只有一处存储url的,我在类文件里面看到一个getHistoryVideourl方法,前面注释着获得视频的url的功能,我修改本地测试ok,上传到服务器就是没有效果,后来老大直接在服务器测试url返回值,我发现他使用另外一个方法getVideoUrl,我靠,这个没有注释,返回值也是url和getHistoryVideourl的返回值一样,于是赶紧修改这个,最后还是没有效果,我郁闷了一天,整个流程可能出现的问题,我排除了就是没有效果,第二天我意外的发现还有一个叫getVideoInfo的方法,同样这个也没有注释,但是里面的sql语句是slect * from table_video.....,也就是这个方法把video的相关信息全部返回,我试着在这个方法里面修改url,靠,居然是这个方法,整整浪费了我一天半的时间,真是坑爹啊。。。
⑩ 工具的选择,良好的工具确实可以帮助人高效的完成任务。写php的话我一般使用eclipse,写前端页面的话使用dw,dw有时候很卡占内存太大,可以使用nodepad这小巧轻便的工具临时调试php或者前端页面!数据库管理工具建议使用sqlyog,之前使用navicat和phpmyadmin,但是和sqlyog比起来,那些工具只是弱爆了,word的话我喜欢wps因为他可以提供很多使用的插件,像截图,表格染色等等,很实用也很高效。
下面是个人的不足和反思:
======================================================================
1:对应高性能开发缺少认识和实践机会,我知道大家都喜欢谈高性能网站,但是我目前还没有接触到这个大网站大流量的问题,只知道理论但是不知道怎么操作
2:对性能没有做过很深的思考,对于工作也是只是完成,或者达到老大的要求,但是我感觉当流量很多的时候,我的程序估计要重新,对于我目前做的这个小网站来说,写代码基本上考虑不到性能的影响,因为数据量小,以后的工作重点之一就是要加强对程序性能的思考,不能只是完成任务,还要深度思考程序性能。感觉大公司就比较好点,每写一个sql都要考虑性能,在大公司环境下很容易思考深度比我们深!
3:关注新技术,但是不知道如何使用这些技术,如何把这些项目运用到自己的项目中去,之前学习mongodb还有nodejs,但是也是了解而已,感觉这些东西如果不做到项目里面,自己真的很难理解。。。实践很重要
4:英文一个问题,因为很多就是都是英文官网,需要加强英文学习
5:对计算机组成原理和数据结构的学习,上大学的感觉不重要,现在感觉很多深度问题都是要回归到计算机原理和数据结构上,书到用时方很少啊。。。
6:一般学习语言都是从基本语法学习,我感觉要先搞清他的工作原理,再次带着问题或者带着解决工作上面的问题去学习语法,这样可能更高效,基本工作原理有时候可以让你避免陷入语言的陷阱里,让你从更高的角度思考问题