最近,将花费了两个多月的网站上线了,除了工作,剩余的时间就花在了建网站上。这个过程,还是耗时耗力的。因为作为一个只是访问过网站的人,对于网站的搭建可以说是完全不了解。以前在学校,老师教的C/S,B/S架构,JAVA语言,系统分析与设计,都是停留在纸面上,对于它们真正的原理,概念,适用的场景都不了解。这次搭建网站,正好把这些概念都熟悉了一遍。

真正搭建起来这个网站,才会发现建设一个网站所用的知识点可谓是浩如烟海。作为初学者,面对这样的局面会有茫然而无从入手的感觉,只好跟着教程一遍遍的敲代码,测试接口,检查错误,修改代码。不停的重复这个过程,大量的时间花费在实现的细节上,基础概念的不熟悉导致一些简单的问题也会耗费很多时间,例如符号拼写错误导致的问题,解决起来也是很费精力。不过好在,现在这个过程都过去了,网站上线运行后,目睹自己敲出来的成果,便萌生出要做总结的想法。不做总结,很多知识点都是零散的有些印象,无法串联起来。不做总结,很多疑问没有解决,便也没有收获。因此,我将从三个方面将这次建站的经历记录下来。

在记录之前,我先将这个项目简单介绍下:我做的是一个电商网站,目标是完成电商网站的基本功能,即登录注册,查看商品,添加购物车,下单,支付等功能。项目采用前后端完全分离的方式,前端只负责写页面,发送数据,获取数据并展示出来,后端专注于业务逻辑的开发,前后端通过接口对接,后端采用的SSM框架搭出来的,前端不知道怎么描述比较好,前端用了webpack构建工具,没有用什么框架,用了jQuery,这个应该也不算框架。然后就是用html+css+js来实现了。这里也可以体现分离的好处,前端不敲JAVA代码,后端不写页面,各用各的工具,各自部署各自的环境,各司其职,挺好。

网站的大致情况就是这样,现在我将从三个方面描述这个项目从配置开发环境到部署到服务器的过程。根据个人开发的经历,我将这三个方面分为:工具层、代码层、部署层。按照我的理解,软件开发的步骤依次就是搭建开发环境,敲代码,然后部署到生产环境(也就是服务器),因此分为工具层、代码层、部署层这3个方面是符合逻辑的。下面我将这3个层次具体再详细解释下。

一、工具层

这一层讲开发环境所需的一系列软件的安装配置,这个环节将包含大量新手从来没有听过的软件,什么Eclipse,IDEA,Git,Maven,linux,tomcat,mysql,webpack,nginx等等。还有一些可能会比较陌生的概念,比如包,版本,框架,接口,端口等等。      这个环节会包含很多基础概念,基础知识,最好在进入正式的开发之前,了解各个软件的用途,了解上面提及的基本概念,这对后面的开发是有帮助的。

就像我之前说得,开发一个网站需要的知识点是很多的,任何一个知识点要稍有了解都是要花费不少精力,如果一个都不了解的话,那么这个阶段会有点艰难。但是不必担心,如果第一遍不懂,那么做照做。照做一遍不懂,再做第二遍。这个过程一定要做好笔记,把关键的知识点记下来,把心中的疑问记下来,然后去挨个问。

二、代码层

在经历过开发环境的部署之后,我们在这一环节正式进入代码的编写。这个章节会涉及到代码结构的设计,框架的使用,接口的功能实现。这个阶段,功能的分析和代码的编写会混合在一起。这个阶段,也会讲一下软件的接口概念,JAVA的语言相关的特性,数据库的一些知识。

三、部署层

部署层是不起眼的部分,但也是很重要,很困难的部分。我自己开发本地是用的windows环境,而部署是用的linux环境。linux的命令行操作,上课的时候都讲过,自己真正操作起来,发现有万千问题。但还是那句话,不要怕,把网站正式搭建起来所需的知识不会很多,你可能只会用到1%的linux知识,这部分熟悉了往后想往纵深方向发展都是没有问题的。

部署层最常遇到的问题就是:各种各样让人心碎的报错。排查问题是这个阶段的主要工作。这个过程所要耗费的精力,可能不必写功能代码要少。所以这个阶段要做好准备。提前熟悉Linux当然是极好的。

当然了,这里也有几个需要注意的点。

一是服务器也只是一台电脑,它与我们常用的windowsPC在硬件组成上,功能上无太大区别,他们的区别主要在于操作系统。windows与linux是两种设计理念的操作系统,windows的最大特点在于图形化操作界面,相对应的是linux的命令行操作方式。windows是微软的闭环生态的一部分,而linux是开源的操作系统,你可以获取linux的源码,自己去修改linux。当然它们在其它的内核设计,文件系统,CPU,内存的调度策略应该都有区别,这边我了解不多,只是看过操作系统的书,说得可能有错误。读者如果对操作系统感兴趣,可以去搜索各高校的操作系统教科书,我当时看的是南大的专业课用书。]费翔林、骆斌编著,操作系统教程(第五版),高等教育出版社,2014.。

调度策略

二是:服务器会与很多台客户机进行交互,网络连接的概念在服务器端会有很大的体现。在这个阶段,一定要建立起一个站点的工作模型。客户机发送请求,来请求资源,服务器响应请求,返回资源,客户机拿到资源,再去展示。了解这个过程,有助于理解网站运行的基本概念,才会理解nginx,tomcat的作用。了解了这些再去学习其它的语言,那就像学会了开小汽车,再去学开公交车一样,差别只是操作的不同,基本的理念都是一致,这样可以节省不少时间。

个人建站过程全记录【概述】相关推荐

  1. aws,bitnami建站过程

    这是一个记录贴,不是教学的.主要就是自己在建站查阅资料的过程中,发现网络的资料大篇幅抄袭,全都一模一样,还不解决问题,作为一个外行又是一个小白,最最头疼的就是这个了,所以自己做个记录贴,记录一下我建站 ...

  2. sftp工具都有哪些_建站工具篇:在首次建站过程中,我都用到了哪些建站工具?...

    工欲善其事,必先利其器.在生活中.在工作中我们经常会使用到一些实用的工具,来帮助我们快速的完成任务,建站也是一样,我们需要利用一些工具来帮助我们快速便捷地搭建网站. 下面,跟大家聊聊在建站的过程中我都 ...

  3. linux虚拟主机建站程序,【BlueHost Linux虚拟主机建站过程】

    原标题:[BlueHost Linux虚拟主机建站过程] 无论是我们初次接触海外主机服务商的,还是已经有过使用国内主机商建站经验的,可能初次接触(无论是英文或者是中文官方网站产品)可能在应用上稍微有一 ...

  4. linux虚拟主机建站程序,bluehost中国Linux虚拟主机建站过程

    无论是我们初次接触海外主机服务商的,还是已经有过使用国内主机商建站经验的,可能初次接触BlueHost(无论是英文或者是中文官方网站产品)可能在应用上稍微有一些困惑. 因为大部分海外主机都使用的cPa ...

  5. DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练、测试(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录

    DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录 目录 测试输出结果 模型监控 训练过程全 ...

  6. NLP之WE之Skip-Gram:基于TF利用Skip-Gram模型实现词嵌入并进行可视化、过程全记录

    NLP之WE之Skip-Gram:基于TF利用Skip-Gram模型实现词嵌入并进行可视化 目录 输出结果 代码设计思路 代码运行过程全记录 输出结果 代码设计思路 代码运行过程全记录 3081 or ...

  7. ros2_object_analytics安装过程全记录

    ros2_object_analytics安装过程全记录 ros2_object_analytics安装过程全记录 问题总结 (1)OpenCV3.3依赖问题 (2)devel版本中librealse ...

  8. 64位Ubuntu 12.04下搭建嵌入式Qt(4.8.6)、QtCreator、qvfb过程全记录

    最新公司搞一个新项目,需要在Linux下进行UI界面设计.选来选去,最后选择采用Qt平台来做,于是要开始研究一下Qt. Qt作为业内最著名的UI开发工具之一,是一套完整的跨平台C++图形用户界面应用程 ...

  9. 在CentOS7上安装配置Corosync高可用集群过程全记录

    在CentOS7上安装配置Corosync高可用集群过程全记录 一.环境.拓朴及其他准备工作: 1-1:准备网络YUM源环境: All Nodes OS CentOS 7.3 x86_64: # wg ...

最新文章

  1. python和R文件IO操作对比及dataframe创建方式对比:read_csv、to_csv、write.csv、 data.frame、pd.DataFrame
  2. [CTO札记]MM晕倒地铁中--最适合的活动未必是阅读
  3. keepalived+LVS实现负载均衡集群
  4. 深入解析String#intern
  5. 数据结构 — 双向链表
  6. gitlab使用方法
  7. XCTF-MISC-新手区-base64stego
  8. c语言delay_单片机模拟流星雨,电路图和程序,一起来感受下,其实C语言不难...
  9. 进程占用过高cpu的排查
  10. vue去掉#——History模式
  11. 八 Civil3d常用显示样式的编辑与创建 ----点标签样式2
  12. unistd.h中定义函数
  13. bat批处理文件的简单解密方法(乱码)
  14. linux rpm是啥意思,rpm是什么意思?
  15. jdbc,基本数据库命令封装
  16. sw制作arduino模型
  17. 图像风格迁移【老版】
  18. first集合及follow集合
  19. 秉火429笔记之十六 I2C--操作EEPROM
  20. 手淘流量是什么意思?手淘搜索流量怎么增加?

热门文章

  1. [多人FPS]设计师笔记2020.03.27 To 2020.06.14知识回顾
  2. 基于python 成绩转换工具
  3. 做社区团购需要面临的问题
  4. qt槽函数如何传递多个参数_【Qt】信号和槽对值传递参数和引用传递参数的总结...
  5. QQ分享时报25204的错误
  6. 透彻的解释了svn copy 的工作原理-强力推荐
  7. 2022年山东省安全员B证考试及山东省安全员B证考试内容
  8. 神武授权位置服务器,神武4端游多开切换ip防封最新搬砖思路
  9. WP如何获取用户和手机信息
  10. 唯品会电商销售复盘分析