我的编程空间,编程开发者的网络收藏夹
学习永远不晚

web发展下的Web开发者应该必备哪些技能?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

web发展下的Web开发者应该必备哪些技能?

  最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。

  随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流行,简称BS架构。

  在BS架构下,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web页面,并把Web页面展示给用户即可。

  当然,Web页面也具有极强的交互性。由于Web页面是用HTML编写的,而HTML具备超强的表现力,并且,服务器端升级后,客户端无需任何部署就可以使用到新的版本,因此,BS架构迅速流行起来。

  今天,除了重量级的软件如Office,Photoshop等,大部分软件都以Web形式提供。比如,新浪提供的新闻、博客、微博等服务,均是Web应用。

  Web应用开发可以说是目前软件开发中最重要的部分。Web开发也经历了好几个阶段:

  静态Web页面:由文本编辑器直接编辑并生成静态的HTML页面,如果要修改Web页面的内容,就需要再次编辑HTML源文件,早期的互联网Web页面就是静态的;

  CGI:由于静态Web页面无法与用户交互,比如用户填写了一个注册表单,静态Web页面就无法处理。要处理用户发送的动态数据,出现了CommonGatewayInterface,简称CGI,用C/C++编写。

  ASP/JSP/PHP:由于Web应用特点是修改频繁,用C/C++这样的低级语言非常不适合Web开发,而脚本语言由于开发效率高,与HTML结合紧密,因此,迅速取代了CGI模式。ASP是微软推出的用VBScript脚本编程的Web开发技术,而JSP用java来编写脚本,PHP本身则是开源的脚本语言。

  MVC:为了解决直接用脚本语言嵌入HTML导致的可维护性差的问题,Web应用也引入了Model-View-Controller的模式,来简化Web开发。ASP发展为ASP.Net,JSP和PHP也有一大堆MVC框架。

  目前,Web开发技术仍在快速发展中,异步开发、新的MVVM前端技术层出不穷。

  Python的诞生历史比Web还要早,由于Python是一种解释型的脚本语言,开发效率高,所以非常适合用来做Web开发。

  Python有上百种Web开发框架,有很多成熟的模板技术,选择Python开发Web应用,不但开发效率高,而且运行速度快。

  从上文我们大概知道Web开发的发展历程,那么既然有了Web开发,就一定少不了Web开发者了~~

  小编想问大家:WEB开发者应该有哪些必备的技能?大家知道吗?

  WEB开发本身涵盖了许多领域的许多技术,那么,有哪些是WEB开发者必备的技能呢?这是一个Quora上用户提出的问题,其中EllyseTaylor的回答获得了1900+的赞同,今天为大家翻译整理其回答内容,希望大家能够从中学到一些东西。

  WEB开发本身涵盖了许多领域的许多技术,那么,有哪些是WEB开发者必备的技能呢?这是一个Quora上用户提出的问题,其中EllyseTaylor的回答获得了1900+的赞同,今天为大家翻译整理其回答内容,希望大家能够从中学到一些东西。

  ByEllyseTaylor:

  可能很多人对下面这个列表中的大部分内容都已经了解了,但其中必定有一些是你之前没有看到过,或者没有完全理解的,甚至有些你可能从来没听说过。

  1.界面和用户体验

  1.注意,浏览器的实现标准是不一致的,请确保你的网站能够兼容所有主流的浏览器。最少需要测试的有Gecko引擎(Firefox),WebKit引擎(Safari以及一些手机浏览器),Chrome,你所要支持的IE浏览器,以及Opera。此外,你还需要了解不同系统下,浏览器是如何渲染网页的。

  2.考虑一下人们不使用主流浏览器的情况,如手机,屏幕阅读器和搜索引擎。一些可用的辅助信息:WAI和Section508,移动开发:MobiForge。

  3.阶段:如何在不影响用户的情况下部署更新。有一个或多个可以用来改变架构、代码或全部内容,并确保它们在可控范围内实现部署的测试或临时环境。有一种自动化的方式把更新部署到线上网站。最有效的实现方式是结合使用版本控制系统(CVS、Subversion等)和自动构建机制(Ant、NAnt等)。

  4.不要直接向用户显示不友好的错误信息。

  5.不要用纯文本的方式显示用户的电子邮件,因为他们可能会被垃圾邮件烦到死。

  6.为用户生成的链接添加rel=”nofollow”属性,以避免垃圾邮件。

  7.为你的网站建立周全的限制–这条也同时属于安全方面。

  8.学习如何进一步的提高。

  9.POST提交成功后进行重定向,以免刷新造成重复提交。

  10.别忘了考虑无障碍访问。这总是不错的,在某些情况下,这甚至是法律要求的。WAI-ARIA和WCAG2里都有关于这方面很好的资源。

  11.不要让我思考。

  2.安全

  1.OWASP开发指南几乎覆盖了网站安全所有的内容。

  2.了解注入,尤其是SQL注入,并学会如何阻止它。

  3.永远不要相信用户的输入,以及其他任何请求(包括Cookies和隐藏域的值)。

  4.使用盐值(salt)哈希密码,并对不同的行使用不同的盐值,防止攻击。使用哈希算法如bcrypt或scrypt(更安全,但比较新)(1,2)来存储密码。(如何安全的存储密码)。NIST也允许使用PBKDF2来加密密码。避免直接使用MD5和SHA等算法。

  5.不要企图拿出自己喜欢的认证系统。这是很容易出错的,并且是不可测的,甚至直到你被攻击了你才知道。

  6.了解信用卡处理规则。(也可查看该问题)

  7.在登录页和任何需要输入敏感数据的页面使用SSL/HTTPS。

  8.防止session被劫持。

  9.避免跨站脚本(XSS)。

  10.避免点击劫持。

  11.保持系统更新到最新的补丁。

  12.确保数据库连接信息的安全。

  13.让自己了解最新的攻击技术和会影响你平台的漏洞。

  14.阅读谷歌浏览器安全手册。

  16.阅读WEB应用黑客手册。

  17.考虑最小特权原则,尽量使用非root用户运行服务器(以tomcat为例)。

  3.性能

  1.如果有必要的话,实现缓存,请正确理解和使用HTTP缓存。

  2.优化图片。不要使用20K的图片作为平铺背景。

  3.学习如何gzip/deflate内容(deflate效果更好)。

  4.合并样式表与脚本文件以减小浏览器链接数,同时提高gzip的压缩能力。

  5.浏览雅虎性能卓越的网站,以及大量的指南,其中包含提升前端性能和YSlow工具(需要安装Firefox,Safari,Chrome或Opera)。此外,Googlepagespeed(浏览器扩展)也是一个性能分析工具,它同时可以优化你的图片。

  6.对于小的如工具栏图片,使用CSSImageSprites(参考最小化HTTP请求)。

  7.访问量大的网站应该考虑跨域拆分组件。

  8.静态内容(如图片、CSS、JavaScript及不需要访问cookie的内容)应该放在一个单独的域下,因为域及其子域的每一个请求都会发送cookie。这里是使用内容分发网络(CDN)的一个很好的选择。

  9.减少浏览器渲染页面所需的HTTP请求的总数量。

  10.利用GoogleClosureCompiler及其他压缩JS的工具。

  11.确保网站根目录下有一个favicon.ico文件,即使在HTML中并没有提到它,浏览器也会自动加载它。如果你没有/favicon.ico,就会返回很多404错误,消耗服务器带宽。

  4.SEO(SearchEngineOptimization)搜索引擎优化

  1.使用“搜索引擎友好”的URL,如http://example.com/pages/45-article-title而不是http://ofexample.com/index.php?page=45。

  2.在动态内容中,把#改成#!,然后在服务器端使用$_REQUEST["_escaped_fragment_"]。换句话说./#!page=1变成了./?_escaped_fragments_=page=1。此外,对于使用FF.b4orChromium的用户,history.pushState({"foo":"bar"},"About","./?page=1");是一个非常棒的命令。因此,即使地址栏已经改变了,页面也不会刷新。

  3.不要使用“点击这里”这样的链接。你是在浪费一个搜索引擎优化的机会,而且它让使用用屏幕阅读器人们更难阅读。

  4.有一个XML网站地图,最好在默认位置/sitemap.xml。

  5.当有多个URL指向同一个内容的时候,使用<linkrel="canonical".../>,这个问题可以通过GoogleWebmasterTools来解决。

  6.使用GoogleWebmasterTools和BingWebmasterTools。

  7.安装GoogleAnalytics或者其他开源分析工具如:Piwik。

  8.了解robots.txt及搜索引擎蜘蛛是如果工作的。

  9.使用重定向(301)www.example.com到example.com(或者反过来),防止它们平分谷歌网站排名。

  10.要知道有badly-behaved蜘蛛的存在。

  11.如果你的网站有非文本内容,TimFarley的回答中有一些非常有用的信息。

  5.技术

  1.理解HTTP以及GET、POST、session、cookie以及“无状态”的意思。

  2.撰写XHTML/HTML和CSS要遵循W3C规范,并确保它们通过校验。这样做的目的是为了避免浏览器的怪癖模式,并且这使得非标准浏览器如屏幕阅读器和移动设备更加容易实现。

  3.理解浏览器是如何处理JavaScript的。

  4.理解JavaScript、样式表、以及页面使用的其他资源是如何加载的,并考虑它们对感知性能的影响。现在普遍认同的一种做法是把除分析代码等以外的脚本文件放在页面底部。

  5.了解JavaScript沙箱是如何工作的,特别是当你想使用iframe的时候。

  6.需要注意到,JavaScript是可以被禁用的,因此AJAX只是一个扩展,而不是基准。虽然大部分用户并没有禁用它,但记住,NoScript正在变得越来越流行。并且,谷歌在索引你的网站时也不会运行JavaScript。

  7.学习301和302重定向之间的不同。

  8.尽可能多地了解你的部署平台。

  9.考虑使用ResetStyleSheet或normalize.css。

  10.考虑使用JavaScript框架(如jQuery,MooTools,Prototype,Dojo或YUI3),这可以避免很多使用JavaScript操作DOM时的差异。

  11.在考虑感知性能和框架的同时,考虑使用服务,如GoogleLibrariesAPI,来加载框架,这样浏览器可以使用已经缓存的框架而不是从你的网站上下载。

  12.不要重复造轮子。在做任何事情之前,先搜索相关的组件或者实例。99%的可能别人已经实现了并发布出了开源的代码。

  13.在确定需求之前,尽量不要使用超过20个的库,这是非常不利的。特别是客户端WEB,保存轻便、快速、灵活是最重要的。

  6.BUG修复

  1.要了解你花费20%的时间写代码而花费80%的时间来维护,因此写代码时一定注意。

  2.建立一个好的错误报告解决方案。

  3.建立一个别人可以提建议和批评的系统。

  4.为未来的支持人员和维护人员建立良好的文档。

  5.经常备份!EdLucas的回答中有一些建议。有一个恢复策略,而不只是一个备份策略。

  6.使用版本控制系统,如Subversion、Mercurial或Git。

  7.不要忘记验收测试。Selenium等框架可以帮到你。

  8.请确保您有足够的日志记录的地方,可以使用框架如log4j,log4net或log4r。当网站出现问题的时候,你需要能够找到问题所在。

  9.日志要记录已处理异常和未处理异常。分析日志输出,因为它会显示出你网站的关键问题。

  这里有些省略的东西并不是因为它们没用,而是因为它们过于详细或者超出了范围,或者说的太远了。当然,上面的内容可能也有一些遗漏或者错误。

  小编结语:

  更多内容尽在编程学习网教育!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

web发展下的Web开发者应该必备哪些技能?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

web发展下的Web开发者应该必备哪些技能?

编程学习网: 最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。
web发展下的Web开发者应该必备哪些技能?

Web前端:HTML5开发工具有哪些?准备的这些HTML5开发工具赶紧了解一下!

编程学习网:html5即HTML5。万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改(这是一项推荐标准、外语原文:W3CRecommendation、见本处参考资料原文内容)。
Web前端:HTML5开发工具有哪些?准备的这些HTML5开发工具赶紧了解一下!

编程热搜

  • HTML常用标签超详细整理
    目录HTML概述1.1 什么是HTML1.2 HTML概念HTML常用基础标签标签的分类:常用基本标签HTML概述1.1 什么是HTMLHTML是做网站的、Web开发、互联网生态开发(PC端+移动端+微应用) 目前我们使用的都是HTML5,支持传统的PC端开发,还支持移动端开发还支持微应用开发,从而替换了部分传统的移动
    HTML常用标签超详细整理
  • 一文看懂服务器操作
    web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的。
    一文看懂服务器操作
  • web前端:如何正确学习web前端流程以及如何找工作
    编程学习网:HTML、CSS、Javascript这三个是前端开发中最基本也是最必须的三个技能。前端的开发中,在页面的布局时,HTML将元素进行定义,CSS对展示的元素进行定位,再通过JavaScript实现相应的效果和交互。
    web前端:如何正确学习web前端流程以及如何找工作
  • 完美实现浮动元素横排居中显示
    经常会遇到这样的页面布局:在一排显示几个不同的区域内容,但它们相对于页面是居中对齐的。注意这些区域内容不只是文字,也许还有图片或者其它元素混合而成。一般这样的布局我们很容易想到要用浮动float,但是怎么样居中对齐而又兼容低端浏览器哪?请接着往下看。首先看html
    完美实现浮动元素横排居中显示
  • 共同探讨CSS+DIV布局对建站的影响
    编程学习网:DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。DIV元素是用来为HTML文档内大块的内容提供结构和背景的元素。现在就跟着小编共同来学习一下:共同探讨CSS+DIV布局对建站的影响。
    共同探讨CSS+DIV布局对建站的影响
  • 详解CSS伪元素的妙用单标签之美
    目录:before和::before的区别哪些标签不支持伪元素?利用 after 清除浮动伪元素与css sprites 雪碧图单个颜色实现按钮 hover 、a
    详解CSS伪元素的妙用单标签之美
  • web前端:实现单选框点击label标记中的文字也能选中
    编程学习网:label元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在label元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
    web前端:实现单选框点击label标记中的文字也能选中
  • 为你介绍CSS浮动清除最好的方法
    编程学习网:所谓网站(Website),就是指在网际网路(因特网)上,根据一定的规则,使用HTML等工具制作的用於展示特定内容的相关网页的集合。现在就跟着小编共同来学习一下:为你介绍CSS浮动清除最好的方法。
    为你介绍CSS浮动清除最好的方法
  • 如何提升网页的加载速度?
    编程学习网:相信在使用浏览器去浏览网页的时候,有些时候总会是出现网页加载慢的情况,除了网速的问题的话,更多的时候还是需要进行相关的设置来去提升网页的加载速度,会发现快的速度将会是让人感觉到非常的爽,下面我们来分享一下该如何才能进行优化,最终提升效率。方法是有很多种,在这里就不逐个的来列举出来了,有需要的朋友们可以参考一下。
    如何提升网页的加载速度?
  • web前端:js垃圾回收及内存泄漏
    编程学习网:Javascript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。
    web前端:js垃圾回收及内存泄漏

目录