继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

网站项目开发学习手册

筑梦师winston
关注TA
已关注
手记 28
粉丝 7166
获赞 277

前言

这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程.

全栈开发自学笔记 已开源

本文阅读建议
1.一定要辩证的看待本文.
2.本文仅代表个人片面观点,如有不同观点,还往及时指出.
3.本文主要是经过网站项目的第一轮全方位学习以后,对网站项目的整体看法,并对个人的看法进行总结.
4.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程中,有什么遗漏或错误还望各位指出.
5.本文当中的网络项目进化史,会详细的为你阐述当前网站和之前的网站趋势.让你在进行网站项目学习之前,拥有整体的概念去进行学习.
6.觉得哪里不妥请在评论留下建议~
7.觉得还行的话就点个小心心鼓励下我吧~

目录
1.网站项目概述
2.前端前景
3.网站项目进化史
4.网站项目学习体系

网站项目概述

网站项目大致分为前端+后端开发,学习网站项目的开发与建设,不等同于任何一种单一语言的学习,例如苹果App开发其重心是围绕着Objective-C语言进行开发,只有使用到了其他语言的框架或者第三方库才会进行学习.

而网站项目开发,需要进行前端页面代码的编写,后端服务器的架设,服务器脚本语言的编写等.

随着互联网时代的发展,目前的趋势已经是前后端分明,所以各位可以根据自己的想法选择性学习,不一定全都要精通,但一定要都了解,不然出了问题很难解决.

前端前景

  • 什么是前端?前端的发展流程

    • 刚开始火的原因便是因为革命性的HTML5发布.

    • 初次出现在大众面前便是Flash被HTML5和CSS3代替.

    • HTML5小游戏,见缝插针等.

    • 淘宝页面的混合开发

    • 微信小程序 & 微信公众号.

    • Node.js

    • 前端工程化 & 组件化 & 插件化

    • 其中两次爆炸性的发展 无异于是 小程序的出现,和Node.js的出现.

    • 前端的HTML到HTML5 等一些基础知识,在这里推荐阅读图解HTTP和HeadFirst HTML & CSS书籍进行了解.我将着重阐述重点.

    • 14年因为培训机构的兴起,大量培训了iOS开发和安卓开发.导致iOS开发这个行业 在短短两年时间,从底部窜到顶部,再摔下来,17年4月,各大培训机构决定停止对iOS和安卓开发的培训,才使得18年的iOS和安卓行业渐渐回暖,暂居平稳.

    • 15年后半年,因为iOS和安卓开发的集中培训,大部分培训机构转战HTML5前端开发的培训.因为集中培训导致H5也行情不稳.

    • 16年后半年,大数据行业的兴起.

    • 17年的人工智能,机器学习,增强现实.

    • 那么为什么H5能在培训浪潮中依然坚挺?

    • 这就要说说H5发展历程上的重大事件

    • 前端工程师 就由原来 最早的切图工程师->网页工程师->大前端工程师

    • 而大前端工程师的诞生 还是和移动端脱离不了关系.

    • 大前端工程师一般都要会 网页开发+混合开发+移动端开发+小程序开发

    • Nodejs开发目前是一个拓展技能,但它绝对是大前端发展的趋势.


网站项目进化史

静态网页

刚开始学习网站项目时,都会先从最基础的HTML+CSS静态网页学起.

其针对方向为了解什么是HTML作为网页结构标签,CSS负责渲染网页.


交互网页

静态网页并不能满足用户需求,于是交互网页因此诞生,为了减少服务器请求次数,以及服务器负担,JavaScript诞生.

JavaScript根据用户需求,执行不同操作,其中不乏修改网页结构和渲染样式的操作.

例如:注册登录时,将不合理的请求通过JavaScript拦下来.


发布网页

写好了交互网页,想让别人访问,便需要服务器进行发布,服务器是属于后端开发工程师掌握的,在大型公司里还会有运维工程师,专门负责线上服务器的维护.

通过服务器配置,将网页发布到指定站点,用户访问指定URL便可请求到你发布的网页.


数据网页

别人访问了你的网页,可你的网页并没有数据.网页数据不会凭空产生,没有数据的网页也就没有灵魂,即便拥有了交互,也是没有生命的.

数据库是用来存放数据的,也是属于后端开发工程师掌握的,通过服务器脚本语言,根据业务需求存储或读取数据库中的数据,分发给各个发送到服务器请求的客户端.

客户端、服务器、数据传递请阅读图解HTTP一书.

到这里大致就是一个基本的网站项目基本要拥有:静态网页/交互网页、数据库&数据、服务器、服务器脚本语言文件.


异步请求网页

在异步请求网页出现之前,每次每个发送的请求,都要返回整个网页给客户端,使得服务器压力,以及数据传递量剧增.

为了解决这个问题Ajax诞生,Ajax是前端工程师需要掌握的必备技能.根据业务需求刷新部分网页,例如:登录注册时,输入的用户名已被注册,可以直接提示出来,而不是跳转到新的页面弹出提示.


美观的网页

网站仅仅有了功能性是不行的还得有美观性,不能所有的网站的风格都一个样子,所以jQuery、EasyUI等各种第三方封装好的框架诞生.

jQuery、EasyUI有着大量的成熟的框架,可以直接使用,打造出美观的网页.是前端工程师必备的技能.


移动端网页/响应式布局

随着安卓手机和苹果手机的普及,仅仅开发电脑端网页已经不能满足互联网公司的需求,还需要开发移动端的网页.

为了不让移动端的网页再写一个项目的代码,Bootstrap诞生,它是由推特公司开源出来的框架,用来开发既能在网页端展示的网页,也能在移动端完美显示的网页.

目前移动端网页比较多的使用Vue.js进行开发,因为其自带的大部分都是苹果端的控件效果.


小程序/公众号开发

随着微信的用户量激增,以及其平台的绝对地位,小程序的免安装特性,小程序也随之崛起.

很多中小型公司是不会专门开设"小程序开发工程师"的职位的,一般小程序开发都是由公司里的前端工程师来干.所以也是前端工程师需要掌握的.

目前还没有接触到这里,好像是要学习wxml和wxss的.


前后端分离网站项目

目前的网站项目趋势,就是有后端开发工程师,开发网站API文档,通过JSON进行数据传递,前端工程师访问指定接口,拿到数据,刷新页面.

其中前后端分离的项目,并不需要前端工程师会后端技能,但要求双方都能良好的解决数据传递等问题.


工程化开发/Node.js

随着前端行业的发展,JavaScript的发展,Nodejs诞生,JavaScript不再是只能写客户端的脚本语言,而是可以用来写服务端语言,也是一个往全栈发展的趋势.

目前没有接触工程化开发,个人了解是有一些基于Nodejs开发的工程化工具,可以大幅度提升工作效率.更好的体现前后端分离.

其因为Nodejs的特性和优点,大大减少了前后端交流成本,用Nodejs直接开发一整个网站项目.

在学习Nodejs之前还要先学会ES2015、ES6、ES7,其都是JavaScript的标准,不用头疼,只是每个版本更新了更好更容易的写法.


总结

就目前个人看法:目前前端的趋势就是通过对一些基础知识的学习,渐渐向Nodejs靠拢,并围绕Nodejs进行优雅的前端开发.


网站项目学习体系

下面简单阐述一下,自己对各个技能栈的理解.

HTML

  • HTML文档

  • 结构标签语言,用来描述整个网站的结构

  • 其由各种不同 各种样式的HTML标签

CSS

  • CSS负责 标签选择器 和样式渲染

  • 负责网页的渲染.

  • 通过标签选择器 选择HTML标签 进行样式渲染.

JavaScript

  • 浏览器脚本语言,在浏览器运行的脚本语言

  • 其负责 浏览器对象BOM和HTML文档对象DOM 的修改

  • 以及 网页的事件处理, 例如数据校验, 登录注册,刷新,跳转等.

  • BOM (浏览器对象)

    • 通过JS获取浏览器对象,进行一些内定函数(方法)的执行,例如 添加书签,

  • DOM

    • 通过JS获取HTML文档对象 ,对网页中一些不需要再显示的模块进行删除,或者增加 刷新 数据.

HTTP协议

  • HTTP协议,让你懂得一个网站项目的 数据是如何使用服务器进行发布,传递,到每个客户端进行展示.

  • 其遵循的规则以及协议.

  • 一个网站的主要角色的职能:服务器 + 服务器脚本语言 + 数据库 + 网页/文件等.

  • 请求和响应

  • 服务端和客户端

Ajax

  • 异步请求

  • 其存在的意义是革命性的,可以使网页局部刷新,而不用频繁的传递整个页面,可以根据网页功能 业务需求,在任何位置 发送请求

jQuery

  • 高效的JavaScript

  • 基于JavaScript的框架.可以快速高效的执行JavaScript所能执行的DOM和BOM操作

  • 其还封装了Ajax,可以更加方便的使用Ajax进行异步请求

JSON

  • 目前流行的数据格式,可以描述复杂的对象类型,大型数据传递

JSONP

  • 常用于解决跨域获取数据的问题,因为服务器不受同源策略的影响,故使用请求js的方式,进行跨域请求.

Apache

  • 服务器

  • 其主要负责 站点配置,文件分发,响应请求.

PHP

  • 服务器脚本语言

  • 其主要负责,处理请求, 返回指定的数据,

  • 需要数据的进行数据库操作,从数据库拿数据,然后返回数据

MySQL

  • 数据存储

  • 开源免费

  • 其可以满足中小型公司,网络项目的开发.

API

  • 网站API文档

  • 该文档由后端开发工程师放出,上面罗列了你请求什么接口,他返回什么数据.

RESTful API

  • 一种设计模式

  • 将数据的操作体现在API上,更能实现前后端分离,常用于移动端App的API设计上,和部分的网页端API设计.

路由

  • 目前没有进行系统学习,后期更新这里.

ECMAScript 6

  • 其是下一代JavaScript的标准

  • 其实并不用恐惧,我一开始以为学习完JavaScript还要学ES6,好难受,其实是一个东西了.

  • 在会JavaScript(这里指ES5标准)的基础上,ES6增加了一些功能函数和简写形式函数.可以使你的JavaScript更加高效.

JavaScript高级

  • 目前没有进行系统学习,后期更新这里.

Node.js

  • 革命性的存在,其事件处理 I/O的性能等.

  • Nodejs使得JavaScript不再是一门只存在于浏览器的脚本语言,在Nodejs这两年社区和开源插件的开发,已经可以成熟的担任 前端工程化开发,前端组件化开发,进行后台服务器开发.

  • 也可以将Node.js看成一个整体,其集成了各种框架插件以后,可以做很多事情

  • Express

    • 其依赖于Node.js环境

Vue.js

国内开发的框架,非常流行的移动端网络框架.

目前没有进行系统学习,后期更新这里.

Angular.js

我知道它封装了jQuery和Ajax.

目前没有进行系统学习,后期更新这里.

React.js

Facebook开源的框架.

目前没有进行系统学习,后期更新这里.


总结

目前还在根据自己学习的东西做一个小Demo,等到我学习到上面没有提及的知识点以后,我会再更新的.

前端学习路漫漫,加油

结束语

如果您对这篇文章有什么意见或者建议,请评论与我讨论.
如果您觉得还不错的话~可以点个喜欢鼓励我哦.
如果您想和我一起学习,请毫不吝啬的私信我吧~
介个是我的个人博客,欢迎参观哦~


打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP