动态网站工作原理

snyl 发布于 2016/08/15 17:17
阅读 3K+
收藏 1

本人现在大二,网络工程专业的,现在在一个创业团队担任前端的职位,但是我和后台都是自学的所以对一个网站的架构不太清楚,现在的项目是开发一个手机论坛,现在我已经基本把静态页面还原出来了,但评论那些功能我都不知道具体要怎么动态实现,不知道如何和后台交互,比如说我还原静态页面的时候有一些部分是要从后台拿数据来填的例如图像和文字,但是我还原的时候并不知道具体要填什么。所以想请问下一开始还原应该要填什么上去?是先随便填一些数据上去吗?还有就是我到现在都不知道一个帖子被发出去之后是经过一个什么过程显示到论坛上的?所以想问一下有没有什么类似的书可以推荐(动态网站原理之类的)?我百度了很多可惜不善用搜索,没找到相应的资料。。。求帅的人指引!

加载中
1
新de代码
新de代码

看到楼主的问题,想起了自己刚踏入编程领域时的情景,那时刚毕业不久,出来工作,虽然每天都和代码打交道,但是其实工作了很久以后我也不敢相信,自己真的是一个程序员吗?印象中搞技术的都是电影和电视剧中那些超级极客们做的事情,我每天写写类,调调接口,然后做出的东西拿出去给用户用,我那时候不敢相信自己有这个能力能够做出好的产品,相比于厨师炒菜,司机开车来说,我不知道自己这个程序员正在干什么,将来要干什么。

可以说这是一种毕业之初,一种立足社会时的不自信和对自己职业规划不充分的体现。这个时期我也很努力的想弄清楚代码到底是什么,网站到底是什么,技术到底是什么,自己将来要走向何方。后来慢慢的,我找到了答案。

那么,进入正题,咱们一个一个的来聊一聊。

1.代码是什么。

大部分人都认为,代码是什么这个答案很简单啊,就是在电脑上敲出字母,写出程序,然后用电脑一执行,就齐活了。很多初入职场的小白这样认为,我就是当初的小白之一,小白的认知程度,这个并不奇怪,但是令我震惊的是,很多工作许多年的老技术人员,也是这么认为的,我认识很多这样的人,他们工作了多年,薪水待遇都很高,职称也光鲜亮丽,XX项目主管,XX公司OO产品总架构师,他们掌握着公司的项目和人脉资源,统筹规划,但实际上,就像开头写的一样,他们并不了解代码的本质。

那么问题来了,代码到底是个什么。对于一个问题,实际上没有一个放任四海皆准确的说法,自身有自主思维的人都会了解到这一点,从而批判性的认知事物,简单来说就是,每个人都有每个人的想法。一百个人,可能就有一百种解释。观点这种东西,似乎就像数学里的集合一样,一个观点会聚合一批信服他的人,而另一个观点,就会聚合另一帮人。啰嗦了半天,该引出重点了,代码是什么,我的答案是,代码是思想的物化形式

是的,代码不是手的产物,手只是执行者,代码的原始创造者,是大脑,不管是网站上分页的代码,数据缓存类的代码,还是排队算法的代码,都是大脑思想的物化,他们从大脑经过中枢神经,操控手指,通过敲击键盘,最终编程了存储在电脑硬盘里的比特。

工作了这么多年,当年很多朦朦胧胧,似懂非懂的东西,现在回过头在一看,都一目了然了。最近在看一本书,叫做《书史导论》,里面介绍了从口头文化,到手抄本,到印刷书,再到后来商业化书籍的发展历程,期间介绍了很多关于思想,作者,读者,印刷,商业,政治经济的诱人故事。读了这本书你会发现,实际上计算机和手抄书,印刷书籍一样,是一种媒介,只不过它和以前的媒介有本质的区别,就是印刷到书上的东西就改不了,是一种“只读”媒介,而计算机是“可读可写”的媒介,这种可计算性,开辟了现如今的信息时代,从而极大的促进了生产力。

当年学生时代,了解到有门语言叫做C语言,可以在计算机上编写电脑程序,当时我的第一反应是,我只知道英语,法语,汉语这些语言,计算机高科技圈里的东西,也叫语言,真是很新鲜。现在看来,是的,自然语言是用来与人交流,表达,交换思想的,编程语言也是同样的作用,只不过交流的对象变成了计算机而已。这时候的代码,才是真正的代码。

2.网站是什么。

网站是什么,网站就是网站呗,就和刚才的代码一样,看上去是那么回事,但是实际上,事情,从来都不是这个事情。

代码,是用来和计算机交流思想的。但是大家想想,如果只是和计算机交流的话,每天面对着单机谈心得,聊感情,还会有现在这样丰富多彩的网络世界吗,是的,计算机提供入口,最终能够把咱们送进信息世界洪流当中的,是网络技术。楼主是网络基础出身,关于技术细节,咱们就不多说了。所以从大的角度去看的话,我们的需求不只是和计算机交流,我们还要更高的层次,通过网络与另一台计算机后面的人去交流,是的,计算机,网络等等这些,都只是工具,最终的目的,是人与人之间的交流,这是在代码的层次上,构建了更高的层次,这就是网站,电商网站,社交网站,兴趣爱好论坛等等。以前买东西,我们去商场,现在我们用电商。以前出去串门,我们现在用社交网站,聊天工具。以前和好朋友们一起下棋,玩古董,现在我们在论坛上与别人分享心得。可以看出网站不仅加快了我们社会行为的速度,还拓宽了我们行为的广度,这,就是网站,互联网时代,人与人交流的平台

3. 技术是什么。

技术是什么,大家都知道啊,高科技啊,现代化啊,高大上啊。是的,有人猜到了,技术,不是这样的,不管你信与不信,技术就在那里。

百度百科上对于技术的定义,是这样的,“是指人们利用现有事物形成新事物,或是改变现有事物功能、性能的方法”。

技术从来都是这么质朴,写一段代码,是技术,搞个app,是技术,就算是用针线缝补衣服,你用自己的方式改变了物质世界中的事物,广义上,也算是技术。所以,改变世界的方法,叫做技术。

4.将来的方向。

作为一个程序员,将来如何发展,是从业之初一直困扰我的问题。当时就在想,是走管理路线呢,还是走技术路线呢,管理路线是主抓项目,还是做项目对外的接口人好呢,干技术的话,是研究存储,还是高安全领域呢。现在看来,这样的忧虑,都是没有高屋建瓴的看问题导致的,要干什么,可以自己选择,但是干了什么并且最终能够成功,那就不是自己所能决定的了,个人因素,社会,市场环境,等等等等,都会对公司受到影响,最终也会影响到公司当中的技术人员的职业规划。

上面一段,是我对职业方向的一些看法。注意了,我的用词是“职业方向”,而不是4.标题中的“将来的方向”,少了两个字,对于咱们要讨论的话题,差别可就大了。我想要说的标题里的方向并不是职业方向如何选择,如何年薪千万,赢取高富美,走向人生巅峰的故事,这不是咱们要讨论的。

我要说的方向,是一个人,一个技术人,在一生中,如何把握自己的方向(是的,上文说过,这是我的答案,并不一定是所有人的答案)。

一个技术人,应该朝着“抽象化和系统化看待问题”的方向,一直走下去。

举个例子,看到水杯,非抽象化思维的大脑认为,这是一个用来喝水的杯子。而抽象化思维的大脑应该是,“这是一个氧化硅原子组成并且具有半包围结构,用来阻挡水分子扩散的物体”。

再比如,看到牛市来了,非系统化的股民一窝风的全部买进,乐呵呵的等手里的钱能够翻一番,而系统化思维的经济学家,通过其他渠道收集的信息,分析,最终得出结论,这是傍晚太阳落山之前最后的一丝曙光,泡沫堆的太高,马上就要破裂了。

是的,这就是区别,一个技术人就该有这样的能力,这就是技术人相对于其他职业的本质区别。这么看来,有多少号称干技术的老技术,实际上一直是以用户的角度去干着开发的工作,是的,没有抽象化,没有系统化,根基都不稳固,那么多烂项目,烂代码,也就不足为奇了。

所以,优秀的技术人员,抽象化,系统化思维是必须的。但是我要提醒大伙,如果你看什么都像是“氧化硅原子”,坐个电梯都想着待会要坠梯了,那么,我的建议是,赶紧去看心理医生。思维,方法,是人的工具,不能让工具最后统领了人。

好了,说了这么多,如果你觉得,你这什么乱七八糟的,看的云里雾绕的,楼主的问题,你啥也没答出来。

再简单的问题,再简单的答案,背后的分析,去粗取精的过程,都是复杂和艰辛的。大家要的答案,分析过程是必须的,没有过程,就没有答案。

那么答案来了,动态网站的原理是什么。

我提供大家一些领域,了解之后,大伙就知道答案了。

(1)Web

(2)互联网协议

(3)XML,HTML

(4)网络通信原理

(5)浏览器工作原理

(6)数据库原理

(7)编程语言原理

(8)编译原理

(9)计算机体系结构

(10)数学

(11)物理学

之所以只列出领域,没有给出正确答案,是因为,没有办法给出,信息世界的复杂性特征,决定了我们没有办法像在学校学习一门学科一样,给一本教科书,跟着章节去学习就可以学到知识,了解答案了。技术生涯当中,会有无数的问题,没有案例,没有人面对过,或者说解决方案太多,我们没有能力和经历去选择最适合我们的,这时候,深入底层,了解技术的每一块砖和瓦,最后再从底层回到高处,从而解决“高层建筑”的问题。上面列出的领域也是从高到低的层次,首先是Web互联网这个离我们最近的服务,接下来层层深入,最终深入到集成电路中,深入到原子,电子的层级。当然了,这个过程可以自己选择,也许我走到编译原理,我就不想继续往深里研究了,那我就溯游而上,也是可以解决问题的,但是有一点,越深入,你的能力越大,越深入,你就越能获得“近神之力”。《黑客帝国》中主角Neo之所以是救世主,就是因为敌人是高层语言别写的程序,而Neo是底层语言编写的程序。而高层语言,是用底层语言编写的 ......

啰嗦这么多,一句话,现在的迷惑就是前进的动力,求知是人类的本能,更是技术人的天性。将来,回过头来看现在的难题,也就简单多了。

技术难学,时不待我,且行且珍惜,分享下自己的心得,与君共勉。

新de代码
新de代码
回复 @snyl : 各行各业的人们都是在不断攀登高峰的道路上努力着,高峰遥不可及,但回过头看山下,就会越来越清晰,希望你有一天能够登上山顶,一览众山小。反正我还在半山腰上累的半死 ~~
snyl
snyl
回复 @新de代码 :现在又来回顾了一下您给我的建议,对您最后一句话颇有感触“现在的迷惑就是前进的动力,求知是人类的本能,更是技术人的天性。将来,回过头来看现在的难题,也就简单多了”,现在发现之前的那个问题对于现在的我变得那么简单,但又有了新的难题困扰着我,人生或许就是不断解决旧问题又不断遇到新问题。我现在也在考虑您提到的问题,是走技术路线还是管理路线?现在只有不断学习,知道自己心之所想真的不易。
snyl
snyl
回复 @新de代码 :确实很难说清他们,简直就是玄学啊哈哈哈
新de代码
新de代码
回复 @snyl : 这个问题很复杂,真要说明白,估计又得写几千字,总之,没有必要重复造轮子,但是不代表可以不去了解怎么造轮子。
snyl
snyl
问题恰恰就在于现在很多大学生根本对基础的领域没有一点兴趣,感觉学了之后不能很快的收到效果,包括楼主在内也是一样,有时候就在想到底是直接用框架好呢还是自己用原生语言写,用框架呢又觉得自己根本不是一个真正的程序员,和一个搬运工有什么区别,不用呢又觉得已经有了现成的东西为何还要自己傻傻的去写呢?
0
1527
1527
还是再学习学习吧
webxiaohua
webxiaohua
回复 @snyl : 不知道自己不知道什么,这个问题好办,从简单的Hello World 开始问为什么,为什么写一个print函数就可以打印出来字符,这背后的运行机理是什么,程序是如何编译,如何链接,最终如何生成目标平台代码,又是如何操纵显示器、操纵内存的,慢慢会衍生出许多问题,而这里每一个问题都是一个领域甚至跨多个领域,去体会吧
snyl
snyl
嗯,我要学的还有好多好多。最尴尬的是我不知道自己不知道什么...
0
坐上来自己动弹
坐上来自己动弹
你们这种情况还是找个现成的框架改一改吧,改着改着你就明白了。
snyl
snyl
但是我怕这样做了到最后原理都不懂..还有就是你的名字好评哈哈哈
0
橙色时光
橙色时光
单纯的论坛的话,做好静态页之后套CMS系统吧,phpcms、织梦之类,看看文档就懂。
橙色时光
橙色时光
@橙色时光 其实如果是使用现成的cms系统,后台没太多工作量的。
橙色时光
橙色时光
@snyl 一般前端负责客户端(用户看到的),后台负责服务器端(管理人员用的)
橙色时光
橙色时光
@snyl 其实如果是使用现成的cms系统,后台太多工作量的。
snyl
snyl
回复 @橙色时光 : 嗯嗯,这些是前端还是后台的工作呀?我现在最大的问题就是不知道怎么和后台分工,我还原了静态页面,但是我觉得前端的工作肯定不仅仅是这样,但我又不知道还要做什么...
橙色时光
橙色时光
回复 @snyl : 还有你问的评论系统,可以直接百度“畅言”这类社会化评论系统,注册后直接复制代码粘贴到相应位置就行,比大多CMS系统自带的都好用
下一页
0
紫系流月
紫系流月
http://www.cnblogs.com/zxj159/archive/2014/11/19/4108312.html  你这个问题太宽泛了  具体点问  看看给你的链接
紫系流月
紫系流月
@snyl 才大二 java c c++ python c# 前端 弄一个学不就行了,语言而已
snyl
snyl
好的,谢谢,我现在最大的问题就是不知道我还原静态页面之后还要做什么工作,例如实现评论功能,我作为前端的任务是还原出一个评论的样式就可以了吗?具体实现逻辑要我完成吗?
0
yak
yak
干脆把百毒还原一下,看一下提交搜索以后,百毒到底干了些什么勾当
snyl
snyl
一定有什么肮脏的py交易
0
TJW123
TJW123
如果你只是做前端的话其实不用关注太多,只需要把样式做出了就好,填写一些静态信息即可,做后台的开发人员会把你的静态内容删掉,添加上他们获取后台信息的逻辑
TJW123
TJW123
回复 @会游泳的狗 : 那样就需要前后端定义好数据的格式协议了
梵蒂冈驻开源中国大使
梵蒂冈驻开源中国大使
现在都前后端分离了,前端做的事不止是切切页面
snyl
snyl
好哒,谢谢指导,那比如说要做一个与我相关的提醒就像朋友圈那种有个数的,我作为前端只要还原一个数字的例子就可以了么?至于是多少个数具体由后台来定吗?
0
亓斌哥哥
亓斌哥哥
大二就该在学校好好学习。
snyl
snyl
嗯,我是在学校的创业基地,假期在里面和几个朋友一起做
0
Lubby
Lubby

同是网络工程专业,现毕业三年有余了,突生感慨时间过得好快。其实页面和后台交互一般情况是由后台把数据和模板渲染出页面,而页面上如果局部还需要数据的话就通过ajax。

凯旋小强
回复 @snyl : 万恶啥,jquery已经实现好了,自己调用api就好了,几行代码
snyl
snyl
嗯,正在研究万恶的ajax
0
lyle_luo
lyle_luo
前后台数据穿透如果是java的话,一般是JS 或是JSP,好好学,
snyl
snyl
好哒,谢谢指导
返回顶部
顶部