这个图片是我用xmind编辑的。欢迎大家来纠正或添加!
再来说说我对网站开发的理解与碰到的问题。
网站的前端有几个部分我觉得很重要:
1.优雅的文字提示
2.合理的页面设计
3.适当的脚本特效
一进入这个网站,就让人有一种非常舒适的感觉。并且在舒适的基础上有夺人眼球的特效,再有贴心的提示,我相信肯定能给浏览者一种独特的印象,让他们记住这个网站。,即使他们没有获取到他们想要的信息。
CSS方面
随着CSS3的强势出击,接下来的页面特效将会往CSS3这边靠,虽然那些不支持CSS3的浏览器还会存留一段时间,但是支持CSS3将是接下来的趋势。所以现在做网站就得做渐进增强的效果,给自己的网站加上CSS3,让浏览者们眼前一亮,给他们一种高大上的感觉。现在还很时髦的一种技术叫响应式网站,根据不同宽度展现不同的样式,增加体验度,是个好方法,但我个人感觉就是根据媒体查询在做多套的CSS,实现成本挺大的。OOCSS是我前些日子听到的一个名词,现在开发我都是在用这个方式,抽取出通用部分,但是用了这种方式,我觉得就很难实现响应式的网站了。学好CSS3对未来B/S架构的开发将会很有帮助。下图是从StatCounter Global Stats网站上面统计到的,第一张是2013年的统计结果,第二张的统计时间是2014年1月到7月的结果,可以看到那些不支持CSS3的浏览器的市场正在被支持CSS3的浏览器给蚕食掉。
|
Javascript方面
现在网站不是随随便便几个脚本就能打发掉了,脚本的责任越来越大。MVC、MVVM,这些时髦的模式,现在也出现在了脚本开发中。采用AMD规范RequireJs的出现,就是来帮助我们模块化开发。网站对脚本的需求会越来越大,虽然CSS3会取代掉脚本的一些功能。
单元测试方面
单元测试是个好东西,PHP中有PHPUnit,Javascript中有Jasmine。软件的质量是需要这些测试点做保障的。我现在在开发PHP时,可以用单元测试的地方,肯定要写一个。在PHP中写单元测试的好处是提前确定这个函数是否正确,验证各个未知的地方,大量的单元测试可以保障软件质量,方便测试人员也就是在方便自己。开发脚本的时候我也会写单元测试,Jasmine是个好东西,可以帮助我测试一些小功能点,保证JS能准确通过。单元测试还有一种功能是可以布置场景来测试,但是这个工作量太大,我基本没时间做这个,很多时候都得手工做,这样的话每次改一个函数,就会心中没底,很多时候都会把好的给改错掉。悲哀呀......
下图为PHPUnit测试画面:
下图为Jasmine测试画面:
流程图方面
我现在开发发现自己画流程图,然后给测试人员看这个来测试,会加大测试的效率。很多时候需求在不断的变化,原型来不及更新,需求也只能口头上面说,口头上面说的话会忘记,也会想不到某个测试点。但是如果有了流程图,上面的分支写的清清楚楚,很方便的给了他们测试的方面。这个流程图也能给你的团队成员看,了解你的代码组成,将来给别人维护能少走很多弯路。
服务器开发方面
我现在开发服务器代码用到的语言有两种,PHP和C#,我对这些语言的理解还不是很深入,现在也是仅仅用到了其中的一小部分。第一次用PHP的时候,他的易用震撼到了我,发现用PHP来做脚本的交互特别方便,解释性语言,改起来就是方便,编辑器也没VS2008那么耗资源。我以前的一个同事开发PHP甚至直接用Notepad++在做。
浏览器方面
我习惯使用firefox作为自己的默认浏览器,firebug等插件让我很方便的调试网站,还有那个印象笔记的插件,让我很方便的截取网页的内容到我的笔记中。
点击网络那块能够查看当前加载情况:
点击控制台我经常用console.log()来做打印处理,还能查看ajax查看请求:
开发习惯方面
每天开发都会记录什么时间段在做什么。培养自己以后的预估能力。平时碰到的一些问题我都会存到印象笔记中,方便我到任何一台电脑上随时查阅。
开发遇到的问题
1.需求不明确
很多时候都是这样,导致经常返工,由于不明确,所以自己经常会考虑这个逻辑该怎么走,减缓了开发速度,一些页面上面这个位置该放什么内容只能自己定
2.设计师与工程师之间对页面会出现理解上的不同
页面设计师设计出了漂亮的页面,但是工程师却说这个模块现在没有,那该用什么东西来填这个位置呢?很多时候都得考虑这个问题。还有就是漂亮页面有很多细节,工程师在做页面CSS的时候没有体现出来。有时候,设计师只考虑了页面效果,忽略了页面之间的关联,这让工程师在布局的时候,会很纠结跳转是_blank还是当前页。
3.测试人员测出的问题不算是错误
测试人员的理解与工程师的理解是不一样的,看问题的角度也不一样,他们会根据需求和他们的理解提出一大堆BUG,这些可能是改进,可能是需求还没定,可能是需求的逻辑本身就前后矛盾有问题......这些改进倒是可以整理起来,给将来的网站功能完善做个备忘录。
4.与团队成员的沟通出现误差
沟通是门学问,成员之间在交换信息的时候,出现理解误差会导致各种问题,严重点的会影响到开发的目标。在开发中保持信息畅通很重要。
5.浏览器兼容调试
各个浏览器间的差别很大,想要做到一模一样是不可能的,我只能做到大致的一样,效果渐进增强。最让人讨厌的就是IE6的兼容问题,各种意想不到。
6.自己有时候会太想当然
在网上看到个特效,自以为很给力,然后就想当然的添加到一个项目的某个部分中,花了时间与精力,但得到的反馈与效果却不理想,有时候甚至还要被去除。写了一段代码逻辑,自以为很高明,但是真到用的时候,出现这个那个问题,有的代码直接废除。做东西有时候还是不能偏执于自己的理解,要更理性点,符合大众的才是好东西。
7.由于缺少相关文案,导致推进缓慢
为了开发进度,经常会缺少一些配套资料,比如简单的数据库关系表,简单的业务流程等。
网站思维导图下载: