请问,有没有讲互联网编程发展全面一点的书,诸如从 http,cgi,jsp,css 到现在各种框架前后端等等,我是门外汉,想了解一些互联网发展中涌现各种技术的背景和思路,老事物又是一次次如何被新生事物淘汰的? 豆瓣了一下没感觉合适的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
nsynet57
V2EX    程序员

请问,有没有讲互联网编程发展全面一点的书,诸如从 http,cgi,jsp,css 到现在各种框架前后端等等,我是门外汉,想了解一些互联网发展中涌现各种技术的背景和思路,老事物又是一次次如何被新生事物淘汰的? 豆瓣了一下没感觉合适的

  nsynet57 2021-11-29 20:27:33 +08:00 3223 次点击
这是一个创建于 1466 天前的主题,其中的信息可能已经有所发展或是发生改变。
如题~~
25 条回复    2021-11-30 17:05:41 +08:00
nsynet57
    1
nsynet57  
OP
   2021-11-29 20:34:00 +08:00
我与互联网编程的唯一交叉点就是用过微软的 front page 做个静态网页,然后就分道扬镳了呵呵
mscststs
    2
mscststs  
   2021-11-29 20:39:58 +08:00
这种东西的综述没见过,不过建议考虑去搞一些计算机网络的书看看先,可以对网络有个大概的了解,后面再看应用层的发展可能会简单一点
jaywhen
    3
jaywhen  
   2021-11-29 20:44:27 +08:00 via iPhone
维基百科英文词条应该足够了
mutalisk
    4
mutalisk  
   2021-11-29 20:46:09 +08:00
吴军《浪潮之巅》
美剧 《 Halt and Catch Fire 》
henryhu
    5
henryhu  
   2021-11-29 20:49:55 +08:00
写到 10 年之前还可以成书,写到现在怕是要出系列图书了,现在的技术让人眼花缭乱
ipwx
    6
ipwx  
   2021-11-29 20:58:55 +08:00   5
我的印象中,你可以遵循这条时间线
----

定制程序时代

cgi

----

代码和 HTML 内容混排的时代

php
jsp
asp
asp.net

----

模板引擎时代

django
asp.net
php

----

前后端分离时代(前端引入 ajax )

前端

jquery
angular.js

后端

python (django, tornado, web.py, flask, fastapi)
php (不熟)
java (spring 听说)
c# (不熟)

----

前端工程化时代

前端

react.js
vue.js
webpack
sass
less
fromdark
    7
fromdark  
   2021-11-29 20:59:59 +08:00
@mutalisk 浪潮之巅更多的是企业史吧
fromdark
    8
fromdark  
   2021-11-29 21:00:48 +08:00
我也一直在找这种书,可惜没有
ipwx
    9
ipwx  
   2021-11-29 21:00:48 +08:00
哦漏了两个

----

ruby (一点不了解,不知道应该归属那个时代)
node.js (前端工程化之后)
ipwx
    10
ipwx  
   2021-11-29 21:01:50 +08:00
其实 cgi 时代还有更多有趣的内容。

cgi -> fastcgi
cgi -> apache mod
cgi -> iis isapi
cgi -> 脚本语言时代 perl
ipwx
    11
ipwx  
   2021-11-29 21:02:49 +08:00
ummm 我居然从脑子的犄角旮旯里面回忆出了 ISAPI 这个名词。。。我初中时代见过的玩意儿。

大概是 2004 年?
ipwx
    12
ipwx  
   2021-11-29 21:05:10 +08:00
真怀念当年脚本和 HTML 混排时代啊。。。

常见漏洞是 SQL 注入 和 IIS/Apache 配置不当导致源代码泄露(进一步泄露数据库密码)

或者允许用户上传内容,结果用户通过上传头像的接口,上传了一个 PHP/ASP 脚本,然后挂马

hhh
ipwx
    13
ipwx  
   2021-11-29 21:07:11 +08:00   1
当年混排时代,经常见到有人这么写 asp

<html>
<body>
<%
...
set rs=server.createobject("adodb.recordset")
sql="select * from admin where username='"& request.form["username"] &"'and password='"& request.form["password"] &"'"
...

然后,BOOM
shawnsh
    14
shawnsh  
   2021-11-29 21:13:43 +08:00 via Android
互联网诞生,然后是代理
qqlyatt
    15
qqlyatt  
   2021-11-29 21:23:44 +08:00
当然有了,你打开黑马程序员官网,看看前端课程大纲。那就是从无到有的过程啊~
3dwelcome
    16
3dwelcome  
   2021-11-30 00:07:29 +08:00
我个人挺烦前端的,早些年在 flex 布局普及前,就靠各种 css hack ,代码移植性超差,真是醉了。

后来有了 vue/react, 但还是有一种让人强迫 thinking in frontend 思维模式。TS 写的时间一长,都忘记用别的语言,是怎么正经写程序的。

随着公众号小程序崛起,JS 仿佛有一种漩涡的能力,能让人越陷越深,但我又无法依靠个人力量去挣脱。直到遇见 webasm 后,终于找回了编程的初心。

在 webasm 前,我肝脑涂地去适应 JS 。
在 webasm 后,WebView 只是若干目标平台之一,JS 能干的,别的语言都能干。
ipwx
    17
ipwx  
   2021-11-30 10:40:40 +08:00
@3dwelcome 前端有这么让人难受吗?

我也是从 C#/Qt/Delphi 时代 以及 ASP+HTML+CSS DIV 时代过来的老人。甚至还摸过 CSS TABLE 时代的尾巴。。。我的看法是,就算是 Bootstrap 一把梭的时候,也不一定比 Qt 和 C# 这种麻烦啊。。。

现在的 Vue.js 用起来简直太爽了。。。 让我完全不想去摸 Qt C# 这种 GUI 了
iamzuoxinyu
    18
iamzuoxinyu  
   2021-11-30 10:49:20 +08:00
不如看看浏览器的发展历史,从 mosaic 到 netscape 到 ie 到 firefox 到 chromium 。看看各个时代的浏览器分别增加了什么特性。
3dwelcome
    19
3dwelcome  
   2021-11-30 10:57:31 +08:00
@ipwx

如果工作上一直写前端当然没事,可生活所迫,我也要同时用到很多其他语言。

前端写复杂后,一堆 CSS 。代码和体系自成一派,个人觉得写大项目后,能实际沿用到下个项目的代码并不多。

有一种代码写完就扔,深深的无力感。

人老了,就希望用一把榔头敲掉所有跨平台的钉子,刚好 webasm 满足我的需求,一拍即合。
2i2Re2PLMaDnghL
    20
2i2Re2PLMaDnghL  
   2021-11-30 12:28:40 +08:00
@ipwx ror 跨越模板引擎时代和前后端分离时代,有 pjax
似乎现在的 ror 新建项目是直接带 webpack 上了。
3dwelcome
    21
3dwelcome  
   2021-11-30 12:45:28 +08:00
想解释一下,为什么会有“深深的无力感”。

随着前端 MVVM 框架和单页面开发的流行,客户体验越来越好,鼓励重客户端开发模式,把原本服务器端的后台代码都移植到前端上。

然而,这产生了一个很大的问题。前端的框架,大多为了搭建交互 UI 而生,对于产品功能性的复杂逻辑实现,JS 是很弱的。或者说,对比起传统的后端语言,要弱一些。

本不想用 JS 重写后端逻辑,可为了良好的交互体验,又不得不写,最终解决方案,只有依靠 webasm 了。
joydee
    22
joydee  
   2021-11-30 13:53:29 +08:00   1
今年十月上旬上线的"神秘的程序员《什么塑造了今天的编程世界》"作者以漫画的形式做了一个编程历史大事件回顾,京东上有卖的,可以作为简史看一下,当然,深入的话,就得配合外部资料了。
ipwx
    23
ipwx  
   2021-11-30 14:41:59 +08:00
@3dwelcome ummm 你说的是数据分析部分的内容吧 hhh

如果只论前端交互,没有比 Vue.js 这套 JS 框架更方便的了。C# 或者 Qt 要写相同功能的交互内容,那得写到吐血。
3dwelcome
    24
3dwelcome  
   2021-11-30 15:47:12 +08:00
@ipwx

前端有两大问题。

第一,平均前端项目开发周期为 3 ~ 6 个月,如此短的周期,是很难作为个人的长期职业规划的。而传统软件开发,周期至少一年,这样代码经验才有足够多的积累和沉淀。

第二,VUE 这种框架让前端入门门槛,降低很多,增加内卷程度。固定的编程模板和大量的 npm 组件库,个人编程能力就会被弱化。有时候一个美术学院刚毕业的新人,做出来的页面效果,都比老码农要好。

你说 VUE 里的双向绑定,模板向编程得理念,别的语言也能做到。但前端框架就好比是大海里的一座孤岛,看起来岛上风景很美,当你要离开的时候,却发现自己什么宝藏都带不走。
gadfly3173
    25
gadfly3173  
   2021-11-30 17:05:41 +08:00
@3dwelcome #24 这其实是对于项目来说是页面、交互更重要还是数据处理更重要的问题了吧。vue react 其实就是简化了页面交互的开发,也减少了许多需要重复造轮子的地方,使用这些框架之后可以把重心放在数据处理上。当然对于大部分企业来说没有什么特别需要处理的东西,大家都是在卖服务而不是卖软件,对于开发来说也就是一锤子开发,没啥积累了
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1069 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 26ms UTC 18:48 PVG 02:48 LAX 10:48 JFK 13:48
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86