- 浏览: 307443 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
Xiaoanemy:
我怎么就是不行Error opening zip file o ...
javarebel不用再反复重启tomcat -
fly_hyp:
lvwenwen 写道相对hessian来说有其他什么优势?应 ...
一个很牛的架构组件(Dubbo) -
lvwenwen:
相对hessian来说有其他什么优势?
一个很牛的架构组件(Dubbo) -
dj4307665:
想了解下,相对hessian来说有其他什么优势?
一个很牛的架构组件(Dubbo) -
fly_hyp:
sweat89 写道怎么解决的啊?忘了。怎么说呢?自己写的代码 ...
Spring之恶心错误记录
网站开发人员应该知道的61件事
作者: 阮一峰
日期: 2010年11月25日
有人在Stack Overflow上发问,动手开发网站之前,需要知道哪些事情?
不出意料地,他得到了一大堆回答。
通常情况下,你需要把所有人的发言从头到尾读一遍。但是,Stack Overflow有一个很贴心的设计,它允许在问题下方开设一个wiki区,让所有人共同编辑一个最佳答案。于是,就有了下面这篇文章,一共总结出六个方面共计61条"网站开发须知"。
我发现,这种概述性的问题,最适合这种集合群智、头脑风暴式的回答方式了。这也是我第一次觉得,Stack Overflow做到了Wikipedia做不到的事。(难怪它最近挤进了全美前400大网站。)
在我的印象中,关于网站开发,这样全面的概述性文章非常少见,因此也就非常有用。大家不妨看看,61件事情中你做到了多少?
(更新:刚刚发现,一共应该是62条建议,我先前数错了,这个......太窘了。)
=============================
网站开发人员应该知道的61件事
原文网址:http://stackoverflow.com/questions/72394
译者:阮一峰
一、界面和用户体验(Interface and User Experience)
1.1
知道各大浏览器执行Web标准的情况,保证你的站点在主要浏览器上都能正常运行。你至少要测试以下引擎:Gecko(用于Firefox)、Webkit(用于Safari、Chrome和一些手机浏览器)、IE(你可以利用微软发布的Application Compatibility VPC Images进行测试)和Opera。同时,不同的操作系统,可能也会影响浏览器如何呈现你的网站。
1.2
除了浏览器,网站还有其他使用方式:手机、屏幕朗读器、搜索引擎等等。你应该知道在这些情况下,你的网站的运行状况。MobiForge提供了手机网站开发的一些相关知识。
1.3
知道如何在基本不影响用户使用的情况下升级网站。通常来说,你必须有版本控制系统(CVS、Subversion、Git等等)和数据备份机制(backup)。
1.4
不要让用户看到那些不友好的出错提示。
1.5
不要直接显示用户的Email地址,至少不要用纯文本显示。
1.6
为你的网站设置一些合理的使用限制,一旦超过门槛值,就自动停止服务。(这也与网站安全相关。)
1.7
知道如何实现网页的渐进式增强(progressive enhancement)。
1.8
用户发出POST请求后,总是将其重导向(redirect)至另外一个网页。
1.9
不要忘记网站的可访问性(accessibility,即残疾人如何使用网站)。对于美国网站来说,有时这是法定要求。WAI-ARIA有一些这方面很好的参考资料。
二、安全性(Security)
2.1
阅读《OWASP开发指南》,它提供了全面的网站安全指导。
2.2
了解SQL注入(SQL injection)及其预防方法。
2.3
永远不要信任用户提交的数据(cookie也是用户端提交的!)。
2.4
不要明文(plain-text)储存用户的密码,要hash处理后再储存。
2.5
不要对你的用户认证系统太自信,它可能很容易就被攻破,而你事先根本没意识到存在相关漏洞。
2.6
了解如何处理信用卡。
2.7
在登录页面及其他处理敏感信息的页面,使用SSL/HTTPS。
2.8
知道如何对付session劫持(session hijacking)。
2.9
避免"跨站点执行"(cross site scripting,XSS)。
2.10
避免"跨域伪造请求"(cross site request forgeries,XSRF)。
2.11
及时打上补丁,让你的系统始终跟上最新版本。
2.12
确认你的数据库连接信息的安全性。
2.13
跟踪攻击技术的最新发展,以及你使用的平台的最新安全漏洞。
2.14
阅读Google的《浏览器安全手册》(Browser Security Handbook)。
2.15
阅读《网络软件的黑客手册》(The Web Application Hackers Handbook)。
三、性能(Performance)
3.1
只要有可能,就使用缓存(caching)。正确理解和使用HTTP caching与HTML5离线储存。
3.2
优化图片。不要把一个20KB的图片文件,作为重复出现的网页背景图案。
3.3
学习如何用gzip/deflate压缩内容(deflate方式更可取)。
3.4
将多个样式表文件或脚本文件,合为一个文件,这样可以减少浏览器的http请求数,以及减小gzip压缩后的文件总体积。
3.5
浏览Yahoo的Exceptional Performance网站,里面有大量提升前端性能的优秀建议,还有他们的YSlow工具。Google的page speed则是另一个用来分析网页性能的工具。两者都要求安装Firebug。
3.6
如果你的网页用到大量的小体积图片(比如工具栏),就应该使用CSS Image Sprite,目的是减少http请求数。
3.7
大流量的网站应该考虑将网页对象分散在多个域名(split components across domains)。
3.8
静态内容(比如图片、CSS、JavaScript、以及其他cookie无关的网页内容)都应该放在一个不需要使用cookie的独立域名之上。因为域名之下如果有cookie,那么客户端向该域名发出的每次http请求,都会附上cookie内容。这里的一个好方法就是使用"内容分发网络"(Content Delivery Network,CDN)。
3.9
将浏览器完成网页渲染所需要的http请求数最小化。
3.10
使用Google的Closure Compiler压缩JavaScript文件,YUI Compressor亦可。
3.11
确保网站根目录下有favicon.ico文件,因为即使网页中根本不包括这个文件,浏览器也会自动发出对它的请求。所以如果这个文件不存在,就会产生大量的404错误,消耗光你的服务器的带宽。
四、搜索引擎优化(Search Engine Optimization,SEO)
4.1
使用"搜索引擎友好"的URL形式,比如example.com/pages/45-article-title,而不是example.com/index.php?page=45。
4.2
不要使用"点击这里"之类的超级链接,因为这样等于浪费了一个SEO机会,而且降低了"屏幕朗读器"(screen reader)的使用效果。
4.3
创建一个XML sitemap文件,它的缺省位置一般是/sitemap.xml(即放在网站根目录下)。
4.4
当你有多个URL指向同一个内容时,在网页代码中使用<link rel="canonical" ... />。
4.5
使用Google的Webmaster Tools和Yahoo的Site Explorer。
4.6
从一开始就使用Google Analytics(或者开源的访问量分析工具Piwik)。
4.7
知道robots.txt的作用,以及搜索引擎蜘蛛的工作原理。
4.8
将www.example.com的访问请求导向example.com(使用301 Moved Permanently重定向),或者采用相反的做法,目的是防止Google把它们当做两个网站,分开计算排名。
4.9
知道存在着恶意或行为不正当的网络蜘蛛。
4.10
如果你的网站有非文本的内容(比如视频、音频等等),你应该参考Google的sitemap扩展协议。
五、技术(Technology)
5.1
理解HTTP协议,以及诸如GET、POST、sessions、cookies之类的概念,包括"无状态"(stateless)是什么意思。
5.2
确保你的XHTML/HTML和CSS符合W3C标准,使得它们能够通过检验。这可以使你的网页避免触发浏览器的古怪行为(quirk),而且使它在"屏幕朗读器"和手机上也能正常工作。
5.3
理解浏览器如何处理JavaScript脚本。
5.4
理解网页上的JavaScript文件、样式表文件和其他资源是如何装载及运行的,考虑它们对页面性能有何影响。在某些情况下,可能应该将脚本文件放置在网页的尾部。
5.5
理解JavaScript沙箱(Javascript sandbox)的工作原理,尤其是如果你打算使用iframe。
5.6
知道JavaScript可能无法使用或被禁用,以及Ajax并不是一定会运行。记住,"不允许脚本运行"(NoScript)正在某些用户中变得流行,手机浏览器对脚本的支持千差万别,而Google索引网页时不运行大部分的脚本文件。
5.7
了解301重定向和302重定向之间的区别(这也是一个SEO相关问题)。
5.8
尽可能多得了解你的部署平台(deployment platform)。
5.9
考虑使用样式表重置(Reset Style Sheet)。
5.10
考虑使用JavaScript框架(比如jQuery、MooTools、Prototype),它们可以使你不用考虑浏览器之间的差异。
六、解决bug
6.1
理解程序员20%的时间用于编码,80%的时间用于维护,根据这一点相应安排时间。
6.2
建立一个有效的错误报告机制。
6.3
建立某些途径或系统,让用户可以与你接触,向你提出建议和批评。
6.4
为将来的维护和客服人员撰写文档,解释清楚系统是怎么运行的。
6.5
经常备份!(并且确保这些备份是有效的。)除了备份机制,你还必须有一个恢复机制。
6.6
使用某种版本控制系统储存你的文件,比如Subversion或Git。
6.7
不要忘记做单元测试(Unit Testing),Selenium之类的框架会对你有用。
(完)
发表评论
-
10 个非常重要的 HotSpot JVM 参数
2013-08-17 20:42 8261) 跟 Java 堆大小相关的 JVM 内存参数 下 ... -
A JSP to print all the stacks
2013-06-19 17:29 878A JSP to print all the stacks ... -
Ubuntu11.10下解决 jmap等jdk工具attach pid错误
2013-05-13 18:05 8541.错误案例 java] view plaincop ... -
GlusterFS集群文件系统研究
2013-02-26 11:17 1005http://blog.csdn.net/liuben/ar ... -
云中的数据岌岌可危 储存毫无保密性?
2013-02-26 11:05 860想想也是,从构架角度考虑,不加密的数据放在别人的服 ... -
7条工作晋升建议
2013-01-21 16:13 7561. 观察:学习他人如何获得提升; 2. 多做:体现 ... -
几个软件研发团队管理的小问题
2012-12-13 10:23 991几个软件研发团队管理的小问题 最近在与一位总经理交流 ... -
身体的秘密大全
2011-08-25 15:27 1042眼睛告诉你的6个 ... -
关于编程,大学没有传授的十件事
2011-08-17 17:17 811笔者依然记得当年完成学业时,深信自己已经准备好进入任何一家 ... -
做人 做事 做架构师 架构师能力模型解析
2011-08-16 10:35 890究竟是什么让你在同 ... -
介绍山寨android的文章
2011-06-10 08:41 962摘录一篇介绍山寨Andro ... -
Susie WEE's Top 10 Career Tips
2011-04-26 09:59 921Susie WEE's Top 10 Career Tips ... -
Eclipse Tomcat远程调试配置
2011-02-17 17:54 3013第一步、配置tomcat 一、在windows系统中: 打开% ... -
学之者生,用之者死——ACE历史与简评
2010-08-25 10:34 1077之所以摘录,是因为感动。 学之者生,用之者死——A ... -
老板的10个错误,描述的真生动
2010-07-02 21:49 1071摘自:http://www.cecon ... -
jspwiki中文问题的解决
2010-04-21 18:35 1372操作方法修改tomcat < ... -
怎么做code review
2010-03-15 16:20 1174hi, 同事推荐 Review Board 应该不错, ... -
在 Windows 系統掛載 UNIX NFS 分享目錄
2010-02-16 21:25 2272摘自:http://cha.homeip.net/blog/a ... -
iptable相关资料
2009-12-31 15:08 846http://hi.baidu.com/davyu ... -
人之初性本善,性本恶
2009-11-10 17:27 1386这是一篇好文章。 简单的读了一遍,感觉人之初性本 ...
相关推荐
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2530上运行,如果是其他型号芯片,请自行移植。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、例程具有一定专业性,非专业人士请谨慎操作。
手语图像分类数据集【已标注,约2,500张数据】 分类个数【36】:0、1、a、b等【具体查看json文件】 划分了训练集、测试集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 CNN分类网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 【更多图像分类、图像分割(医学)、目标检测(yolo)的项目以及相应网络的改进,可以参考本人主页:https://blog.csdn.net/qq_44886601/category_12803200.html】
CNCAP 2024打分表
系统可以提供信息显示和相应服务,其管理智慧校园管理系统信息,查看智慧校园管理系统信息,管理智慧校园管理系统。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
影音互动科普网站功能描述 影音互动科普网站旨在通过多媒体形式(视频、音频、互动内容等)传播科学知识,提高公众的科学素养。该网站结合娱乐与教育,提供易于理解的科普内容,吸引不同年龄层次的用户参与和学习。以下是该网站的主要功能描述: 1. 用户注册与登录 用户注册:用户可以通过电子邮箱、手机号或社交账号(如微信、微博等)注册,提供基本信息并设置密码。 用户登录:支持通过注册的账号登录,保障个人信息的安全性,并提供自动登录功能。 2. 科普视频与音频库 视频内容:网站提供各类科普视频,包括短视频、纪录片、讲座、实验演示等,覆盖物理、化学、生物、地理、天文等多个领域。 音频内容:提供科普音频节目,如科普广播、播客、专题讲座等,便于用户在日常生活中进行学习。 视频分类:按科目、难度、年龄层、时长等维度对视频和音频进行分类,帮助用户更精准地找到感兴趣的内容。 字幕与多语言支持:提供字幕、翻译和多语种版本,帮助不同语言的用户学习。 3. 互动问答与讨论区 专家问答:用户可以向科普专家提问,专家提供详尽的解答,解决用户的科学疑惑。 社区讨论:用户可以在视频下方或专题页面中发表评论、提问或与其他用户
倪海厦讲义及笔记,易学数据测算
内容概要:本文档是《组合数学答案-网络流传版.pdf》的内容,主要包含了排列组合的基础知识以及一些经典的组合数学题目。这些题目涵盖了从排列数计算、二项式定理的应用到容斥原理的实际应用等方面。通过对这些题目的解析,帮助读者加深对组合数学概念和技巧的理解。 适用人群:适合初学者和有一定基础的学习者。 使用场景及目标:可以在学习组合数学课程时作为练习题参考,也可以在复习考试或准备竞赛时使用,目的是提高解决组合数学问题的能力。 其他说明:文档中的题目覆盖了组合数学的基本知识点,适合逐步深入学习。每个题目都有详细的解答步骤,有助于读者掌握解题思路和方法。
内容概要:本文是一篇完整的管理系统开发指南,详细介绍了功能要求、技术栈选择、数据库设计、用户界面搭建以及安全控制等方面的内容。功能要求包括用户管理、权限控制、数据管理、系统日志、通知与消息、统计分析和扩展模块。使用的技术栈涵盖了后端(Java、Python、C#等)和前端(React、Vue.js、Angular等)技术,以及数据库设计和安全控制措施。 适合人群:具备一定开发经验的软件工程师和技术管理人员。 使用场景及目标:适用于企业级管理系统开发项目,旨在构建一个高效、安全且易于扩展的系统。开发者可以参考本文档进行系统的设计和实现,确保系统满足业务需求。 其他说明:本文档提供了详细的步骤和最佳实践,帮助开发者更好地理解和应用管理系统开发的各种技术。通过结合实际案例和实践经验,本文档能够为开发者提供有价值的指导。
听器听力损伤程度分级表.docx
MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度 关键词:微网优化调度 条件风险价值 合作博弈 纳什谈判 参考文档:《A cooperative Stackelberg game based energy management considering price discrimination and risk assessment》完美复现 仿真平台:MATLAB yalmip+cplex+mosek 主要内容:代码主要做的是一个基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网动态定价与调度策略,提出了一个双层能源管理框架,实现多个微网间的P2P能源交易,上层为零商的动态定价模型,目标是社会福利最大化;下层是多个产消者的合作博弈模型,优化各产消者的能量管理策略。 同时,采用纳什谈判法对多个产消者的合作剩余进行公平分配,还考虑了运行风险,采用条件风险价值(CVaR)随机规划方法来描述零商的预期损失。 求解方面,双层模型被基于KKT条件转为单层模型,模型可以高效求解。 这段代码是一个基于合作型Stackelberg博弈的微网
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
20块钱买的【动漫网页设计】源码,免费分享出来啦,如果要积分那是系统自动涨的啦。 内容概要:本资源是一份动漫网页设计的源码,价格仅为20元,作者将其免费分享给大家。该源码包含了动漫元素的设计,包括背景、图标、按钮等,同时也提供了一些常见的网页布局和交互效果。通过该资源,可以学习到动漫网页设计的基本原理和技巧。 适用人群:本资源适用于对动漫网页设计感兴趣的人群,包括网页设计师、UI设计师、前端开发工程师等。同时,对于想要学习动漫网页设计的初学者也非常适用。 使用场景及目标:该资源可以用于学习和实践动漫网页设计的技巧和原理。通过学习该源码,可以了解到动漫网页设计的基本要素和设计思路,同时也可以借鉴其中的设计元素和交互效果,应用到自己的网页设计中。 其他说明:本资源是作者自己设计的,经过了多次修改和优化,具有一定的参考价值。同时,作者也将其价格设置的非常低,希望更多的人可以学习到动漫网页设计的技巧和方法。如果您对该资源有任何疑问或建议,欢迎在评论区留言,作者会尽快回复。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
自考 本科 C++程序设计-课本 参考答案
每周质量安全排查报告.docx
YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip
内存搜索工具(易).rar
AI大模型研究相关报告