企业级项目开发注意事项:
1、企业级项目开发页面一般比较多,逻辑性较强
在写页面之前首先要做需求分析,客户想要做的网站的类型是什么?风格是什么样的?具体的要求有哪些?能清楚这些后,规划出网站的内容草图。网站验收时,要测试每个功能,每个页面。
2、每个功能要单独一个文件目录,但页面与页面之间不再是各自为政,而是相互关联,一般通过超链接(a标签的href)联系起来。
3、数据安全是重点考虑对象($_GET、$POST):
通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。GET 可用于发送非敏感的数据。注意:绝不能使用 GET 来发送密码或其他敏感信息!
通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。
此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。提示:开发者偏爱 POST 来发送表单数据。
出于安全性考虑,可进行一些安全设置
expose_php=0,可不在Web 服务器的信息头显示PHP信息
allow_url_fopen = Off 禁用远程URL文件处理
register_globals = Off 禁用注册全局变量
display_errors = Off 不显示错误
设置执行时间,上传文件大小,内存限制
在.htaccess中设置禁止访问敏感文件
safe_mode=On 开启安全模式
disable_functions 禁用一些函数
4、二级验证:前端验证(用户体验:前端的验证只是提高用户体验,降低服务器压力做的)通过JQ和JAXA做验证
后端验证(保证数据的正确性,不容易被他人修改,安全性高保证安全)通过后台数据验证
5、用户体验(页面交互、操作等待时间)
尝试使用一列的布局替代多列布局;
合并相似的功能;
重复核心行动点;
统一视觉规范,提升可识别性;
告诉用户产品适用的人群,而不是人人都通用;
将文案写得更加的直接,而不是一堆废话;
增强主行动点的视觉冲击力,提升它在页面中的可对比性;
将表单做的简单点,确保用户在抓狂之前能进入下一步;
尽量将用户需要选择的信息展示出来而不是藏起来;
确保用户知道自己目前的状态;
适当的增加延迟动效,让用户感知到页面的变化;
让新用户从尝试产品入手,而不是一来就面对冷冰冰的注册表单;
减少使用线框,这会过多的吸引用户注意力,而且会让页面看上去透不过气;
给用户选择退出的权利,特别是邮件订阅;
提升页面的视觉层次,增强可阅读性;
6、性能问题(CPU占用指标、内存占用指标、网络带宽):
尽可能多地把静态资源放到 CDN 上去,尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定;
echo的效率高于print,因为echo没有返回值,print返回一个整型;当echo字符串时用逗号代替点连接符更快些。
在循环之前设置循环的最大次数,而非在在循环中;
销毁变量去释放内存,特别是大的数组;
requiere_once()比较耗资源;
在includes和requires中使用绝对路径;
如果你需要得到脚本执行时的时间,$_SERVER['REQUSET_TIME']优于time();
能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式; 因为其效率高于正则;
str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;
最好不用@,用@掩盖错误会降低脚本运行速度;用@实际上后台有很多操作。用@比起不用@,效率差距:3 倍。特别不要在循环中使用@,在 5 次循环的测试中,即使是先用 error_reporting(0) 关掉错误,在循环完成后再打开,都比用@快;
在循环里别用函数;
在类的方法里建立局部变量速度最快,几乎和在方法里调用局部变量一样快;建立一个全局变量要比局部变量要慢2倍;建立一个对象属性(类里面的变量)例如($this->prop++)比局部变量要慢3倍;建立一个未声明的局部变量要比一个已经定义过的局部变量慢9-10倍;
用单引号代替双引号来包含字符串,这样做会更快一些;
7、代码可读性:命名规范、注释、代码缩进、代码长度(如果一个方法【函数】代码长度超过50行);
8、代码性能:时间复杂度(程序在运行时所消耗的时间),空间复杂度(程序在运行时所占用的内存)。
以上经验均是他人总结,本人暂无实际开发经验,个人认为:多看看别人的完整代码, 跟自己写的作对比,不同在哪?别人的代码优势在哪?这样多看多写来提升自己的编写水平。。
产品的诞生流程
1.和客户研究业务需求,确定产品功能 (开发时间,费用,人员配备)
2.产品经理制作原型图(axure,墨刀)
3.美工设计效果图(PS , AI)
4.前端工程师开发前端页面,后端工程师写业务逻辑。项目经理把控项目进度,代码质量并协助解决技术难题。
5.测试人员测试:功能是否符合客户需求,找出BUG,访问请求延迟是否可以忍受,压力测试。(BUG工具:禅道)
6.运维上线应用,监控系统状态:CPU , 内存 , 网络