一、总论
因为我没有上过走软,所以这是我第一次接触 Web 应用开发,在感觉十分新奇有趣的同时,却在编程(其实大部分时候是提需求的产品经理)总感觉自己是浮在云端的。
当我写 C 的时候我是不会这样的,我知道我写的是一门高级语言,这门语言会通过编译器编译成二进制可执行文件,二进制文件会在流水线处理器上执行,处理器会根据指令进行计算和访存,最终通过写显示器的端口输出信息,在我写 Java 的时候,我知道 Java 会先编译成 .class
字节码,然后利用 JDK 环境在 JVM 上解释执行,解释器会调用各种库,最终完成效果。
但是当我在写 html, css, javasript
的时候,我是完全没有概念的,我知道最后成果可以在浏览器上显示,但是为啥?浏览器在我的理解里,就是一个和互联网沟通的应用程序,我点开它,然后互联网就冲我挥手了,感觉似乎没有浏览器,互联网它老人家也找得到我。当我去了解后端的时候,我知道了服务器,我之前理解的服务器,就是那种深埋地下,占地和鸟巢差不多大的东西,每天都要靠全太平洋的水去降温,从事的是计算世界末日啥时候发生的重要事件,关于 URL,我以为就是一个按钮,我点一下他,互联网就来了,贼灵。
这个其实一个计算机领域很常见的现象,“封装和抽象”,人们并不需要了解每个技术的具体实现细节,只需要享受这个技术暴露在外的接口构造的抽象即可。所以将互联网理解成一个宝库一样的东西,浏览器理解成一个探寻宝库的手电,甚至将其与电视做类比,并不是一件很奇怪的事情,谁也不是先学计组,后学 C 语言的,有一个虚假的抽象不丢人。不过这层抽象和以往的抽象不同的是,这层抽象需要被几乎所有人接受,而不是像 C 一样,只需要被一部分程序员接受即可。所以“互联网-浏览器”这层抽象才那么的厚重,那么的虚幻,因为他必须简单到被所有可以上网的人理解。