如何成为合格的web前端程序员?只要学会这几点!

做了那么多年Web编程,仔细想想, 其实本质上就那点事儿, 你抓住了几个重点问题, 学起来一点都不难。

1. 理解浏览器/服务器结构

(B/S)B/S 是从 90年代的客户端/服务器端发展而来, 共同点都是由一个(或一组)服务器来服务多个客户端。

差别在于
首先,C/S结构的客户端可能是由不同语言编写的,例如VB,Delphi, PowerBuilder等, B/S结构中浏览器成为了一个通用的客户端, 程序以Web的方式呈现,不需要安装,服务器端的升级就意味着所有客户端的升级,这和C/S相比是个翻天覆地的变化。

其次,B/S的访问协议也标准化为HTTP(s) ,而不是原来各种各样的私有协议。

最后,B/S结构中的服务器面向全球用户访问,而不像C/S那样仅仅是局域网, 所以压力更大, 挑战更大。

2. Web页面是怎么组成的?

简单来说就是HTML + CSS + Javascript , 我们看到的Web界面就是由这三者组成。

HTML负责结构, CSS负责展现, 而Javascript负责行为。

我们说的前端开发也主要是做这一块, 对于前端工程师,需要能理解DOM 模型,以及如何通过javascript(例如JQuery等框架)来操作DOM模型。

3. 浏览器和服务器是怎么打交道的?

当然是HTTP ! HTTP说穿了就是浏览器和服务器聊天是的一种约定, 这个约定确保双方互相理解。

完整的HTTP是非常复杂的,《HTTP权威指南》一书厚达700多页。

其实我们最常用, 也是最重要的也就那么几点:

(1) GET 和 POST

GET从服务器端获取数据, POST 向服务器端发送数据(由此引出图片上传问题)

(2) HTTP是个没有状态的协议,需要通过额外的机制来维持状态(例如登录状态), 常用的方法就是cookie。

(3) 理解HTTP 状态码

(4) 理解 同步 vs 异步(由此引出AJAX,以及JQuery等框架)

4. URL 和 代码的映射

理解url 和 代码之间的关联, 例如 www.xxx.com?action=login 这样的url 是怎么和后端的业务代码关联起来的?

这样的规则是在哪里定义的? 用代码、注解还是配置文件?

后端的业务代码该如何组织? 相信现在不会有人把业务逻辑都写到Servlet当中了, 所以需要很多MVC 框架像Struts , SpringMVC 来组织代码,让系统清晰易懂。

5. 数据的验证、转换和绑定

如何保证浏览器发过来的数据是符合要求的?

例如不能为空、不超过8个字符、两个密码必须相等…. , 出错了得给出错误提示。

浏览器发过来的数据都是形如username=liuxin&password=123456这样简单的文本, 但是后台程序却有着丰富的数据类型,什么String, Date ,Integer等等。 所以需要把文本变成指定语言的类型。

类型转换以后, 后端的业务代码怎么才能有效的使用呢?

最简单的就是弄一个key : value 这个样的Map 出来, 业务代码直接用map.get(key) 即可。

高级一点的可以把页面发来的数据直接绑定到对象的属性上, 并且支持数组,嵌套等复杂的结构。

例如user.name=liuxin&user.password=123456 可以绑定到一个叫User的对象, 其中有两个属性userName和password。

6. Web安全

如何防止***利用SQL 注入,跨站脚本***, 跨站请求伪造等手段来***系统?

7. 数据库访问

这一块是比较麻烦的, 毕竟面向对象(OO)世界和关系(Relational)数据库之间存在着天然的鸿沟。

对于简单的应用, 直接写点JDBC就够用了,只需要掌握Connection, Statement , Resultset这三个基础。

复杂点的需要用O/R Mapping 框架来搞定,例如 Hibernate, MyBatis ,还有RoR的ActiveRecord。

这其中比较棘手的就是表之间的关联, 就是所谓的一对多, 一对一, 多对多这样的关系, 如何在面向对象的世界里描述。

扩展开去,还需要处理连接池, 事务,锁 等各种烦人问题。

8. 用什么技术来生成Web页面?

这里说的Web页面就是第2点中的页面,包括HTML, CSS, Javascript。

能不能直接用Servlet的PrintWriter 直接输出HTML ? 当然可以,只是以后就没有人看懂了。

现在用来创建Web页面的技术多如牛毛:例如 JSP, Velocity, Freemaker, Groovy 等等, 他们都有一个共同点: 模板技术。

说白了就是有一个HTML的模板, 里边可以嵌入代码, 这个模板在运行时(例如在Tomcat当中)就可以根据输入的不同而生成不同内容的Web界面了。

无论哪种模板,都需要面对一个重要问题:如何展示从业务逻辑层发送来的数据? 这一步骤其实和第5步中的数据绑定有密切关系。因为这一步需要确定诸如user.name , user.password这样的字段名称。

9. 如何把对象变成XML或者JSON字符串?

由于AJAX以及手机端的存在,对于一个URL的请求, 他们要求的返回值通常不是HTML页面, 而是XML或者JSON数据, 此时需要有框架把对象转化成相应的字符串。

搞定了Web这些基础的东西,在公司里做一个Web程序员应该不在话下了, 接下来需要学习的就是像高并发,缓存,搜索,分布式等高级的内容了。

自己是从事了五年的前端工程师,不少人私下问我,2019年前端该怎么学,方法有没有?

没错,年初我花了一个多月的时间整理出来的学习资料,希望能帮助你快速学习前端,拿高薪offer!

这里推荐一下我的前端学习交流群:731771211,里面都是学习前端的从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴。2019最新技术,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!

点击:加入

原文地址:http://blog.51cto.com/14197670/2350755

时间: 2024-12-12 05:54:32

如何成为合格的web前端程序员?只要学会这几点!的相关文章

2018年一名合格的web前端程序员应该会哪些技术

有朋友让小编说一说web前端在未来几年的发展趋向,对于这个问题,恕小编无能为力,web前端技术日新月异,更新非常快,谁也不能预料未来会发生些什么 小编也只能说在2018年,react native和jquery 的需求会减弱,ie10以下的兼容性要求显著降低,vr 有可能会归入前端技能树 为诸位总结了一些2018年web前端程序员应该掌握的前端技术,只有掌握了以下技术,才算一名合格的前端程序员 html, css, jQuery三者完全掌握,相信每个公司对于前端程序员都会有此要求,这些也是前端写

2016年最新web前端程序员面试题

随着web前端开发的越来越火热,学习web前端开发的朋友也逐渐变多,学完之后面试web前端程序员(http://www.maiziedu.com/course/web-px/)时,面试官会提出一些面试题,那么面试官一般会问哪些前端开发面试题呢,小编整理了一份,仅供大家参考: 1. em  和 strong  的区别 em 表示强调,strong 表示更强烈的强调.言简意赅,表明了 em 和 strong 的命名来历.并且在浏览器中,em 默认用斜体表示,strong 用粗体表示 2.请用CSS实

web前端程序员真的这么值钱吗?

对于互联网公司来说用户就是上帝,做好客户体验一切才有可能.所以互联网公司都会把钱砸向前端,Web前端程序员也越来越受到企业争相聘用. 前端工程师工资也越来越高,目前Web前端工程师工作1~2年后通常会成为Web前端高级软件工程师,年薪可以达到15万以上:工作3-5年后通常可以成为Web前端技术主管或者经理,年薪在15-50万之间:工作年限5年以上,通常会成为互联网公司的技术总监或产品经理,年薪将达到50万-100万之间. 但是web前端程序员真的这么值钱吗? 老大说: "我只要好人"

想要成为web前端程序员需要掌握哪些技能

Web前端开发工程师已经成为发展中的职业香馍馍.几乎整个互联网行业都缺Web前端工程师,无论是刚起步的创业公司,还是上市公司乃至巨头,空缺一样存在.Web前端开发早已不是做带动画的下拉菜单的时代了,他们已成为互联网主宰者,各行业都用其开发互联网应用,但目前整互联网行业的Web前端开发工程师紧俏,优秀的Web前端工程师简直比大熊猫还稀少.企业正高薪求才,薪资待遇一涨再涨!目前,Web前端如日中天,怎样成为一名优秀的Web前端程序员?本文,千锋重庆小编给你答案. 怎样成为一名优秀的Web前端程序员?

初级web前端程序员面试题整理

以下是收集的一些web前端工程师面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正. HTML/CSS部分 1.什么是盒子模型? 在网页中,一个元素占有空间的 大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距 (margin)四个部分.这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区

为什么我不想成为Web前端程序员

职位名称并不代表技能集 作为一个前端开发人员,你是不是认为自己不需要懂很多技能?然而事实可能并非如此. 我在一个热门的工作论坛就前端开发工作做了一个快速搜索,发现有一个主题经常反复出现,那就是成为中级/高级前端开发者需要什么技能: (X)HTML(5).CSS.SASS / SCSS,LESS. Backbone.Angular.Knockout. 响应式网页设计(例如Bootstrap知识.Foundation等). Adobe Photoshop.Magento. 源控制和某种形式的客户端单

收集的WEB前端程序员需要的网站整理

前端学习资源实在是又多又广,在这样的一个知识的海洋里,我们像一块海绵一样吸收,想要快速提高效率,平时的总结不可缺少,以下总结了一些,排版自我感觉良好,推送出来. 一.插件类网站 jQuery插件库:http://www.jq22.com/ 最简单强大的插件框架:http://www.iopenworks.com/ jQuery之家:http://www.htmleaf.com/ 经典模块化前端开发框架:http://www.layui.com/ 进阶攻略|前端最全的框架总结:http://www

<转>程序员如何要薪水以及为什么前端程序员应该拿高薪

今天有个前同事联系到我,抱怨现在好的前端程序员很缺,正好前几天五一的时候看到 Twitter 上很多人公开讨论自己的薪资,有一些感触.大部分程序员,尤其是前端,每天都要关注技术进展,几乎没时间关心别的,性格往往也不善言辞,老实巴交,凡事先反思自己的技术水平,所以我打算写这篇文章谈论一下薪水问题,希望对别人有些帮助. 首先简单介绍一下个人情况:本人之前在北京工作五年,技术能力平平,没多少谈论薪水的经验,相比之下薪水一直不高,好在不太在乎薪水,也有时间想这些乱七八糟的问题.现在离开行业也已经近两年,

前端程序员职业规划:前面是火海,后面是刀山

前端兴起的过去十年,也是用户体验飞速增长的十年.得益于前辈们努力打下的江山,前端在技术团队中越来越受重视,早已脱离了「页面仔」.「鄙视链底端」.「边缘化」的尴尬.技术上,各种新框架.语言和工具也层出不穷. 因此近几年,前端工程师的整体地位在提升,薪水持续见长,加上互联网的红利期,前端入门壁垒相对较低,看中这块肥肉的人自然不在少数.互联网红利期过后,市场回归理性,找工作艰难的抱怨声四起.看似矛盾的两种情景并存,不禁让人疑惑:这条路,还要不要继续走? 自从 2015 下半年以来,资本寒冬导致互联网和