软件&工程

和很多行业一样,软件行业(不完全包括互联网行业)也经历了从混乱到规范再到突破的发展历程。对于不了解软件或者没有太关注软件发展历史的朋友来说,寻找一个合适的相似行业进行类比,对于了解软件行业发展会更容易些。

这里我们会用土木工程行业进行类比,而且也强烈推荐它。——因为他们就像异卵双生的亲兄弟,一个在改造实体世界,一个把实体世界抽象为二进制世界。

英雄的时代

刚开始,计算机还是少数社会精英的工具(当然计算机的诞生是为军事服务)。从军事到实验室再到民间,少数先锋搭建了二进制世界的雏形。——有计算机体系结构、有编程语言、有操作系统、有网络等等。

大众参与

后来随着信息化发展,政府部门(government——toG的G)、大型企业(business——toB的B)为了提高管理效率,需要定制大量专用软件。如此大量的需求,催生了软件行业的崛起,软件工程师(有时自嘲为码农)就像当年做土木工程的工程师和建筑工人一样(其实再根据工种细分还有好多称谓)逐渐成为一个庞大的劳动力群体。

随着软件行业的发展,一些集体智慧逐步被积淀下来。——杂乱无章的代码不利于维护和阅读,有的企业规定了一些约束和规范,优秀规范也成为了行业共识。

这些共识(前人的知识结晶)里面,我认为值得一提的是设计模式和UML。

继续阅读软件&工程

讲给前端RD的技术史

谨以本文献给非科班出身的前端RD,大体了解前后端的爱恨情仇。本文内容未做严谨考究,如果差错,还请谅解。本文主旨是方便前端RD人员了解当前技术框架的由来和可能的未来趋势。

CS架构和Socket通信

那些年,还没有手机、没有Pad,没有笔记本电脑,甚至没有浏览器。没有浏览器?那与前端有什么毛关系额!

说起前端,很多人第一印象就是页面,以及相关技术HTML、CSS和JS。其实是前端是个广泛的含义,既然有前端,那应该有后端。如果说后端是运行在服务器(一个功能很牛X的计算机)的服务,用于存储、计算核心数据;那么前端可以认为是运行在客户终端的辅助程序,用于上传、展示相关数据。

是的,我们可以认为PC APP是那个时候的前端——Client客户端。那客户端如何和服务端(Server)通讯呢?

用HTTP协议呗?还用问吗?问题来了:如果那时候没有HTTP协议呢?或者说不适合使用HTTP协议呢?

那时候的解决方案是Socket通信。

继续阅读讲给前端RD的技术史