今天是工作的一个月纪念日
一个月的时间过的很快,比起一上来的茫然无措,现在多了一份冷静和思考。作为刚入IT公司的应届毕业生,业余的充电成为我破茧成蝶的唯一途径。最近看了一本《淘宝技术这十年》,子柳先生描绘了一个淘宝帝国内部的一些构建和发展,他的TFS(Taobao File System)淘宝的分布式文件系统,LVS(Linux Virtual Server)优秀的负载平衡系统,CDN(Content Delivery Network)内容分发网络,HSF(高性能服务框架)。这些在即将毕业的我听起来都感到很陌生的名词但都是基于最原始的LAMP(linux apache mysql php)模型开发,并不断完善,丰富起来的。这不惊让我回到大道至简,由易到难的本质,任何事情都不是一蹴而就的。以前想的是做一个软件嘛,不就是一个一个功能的实现嘛。这样的想法在现在看来甚是肤浅。做软件应该和造房子是一样的,先把骨架搭好,在不断的一层一层的盖。软件行业的一个现象就是产品的不断优化和完善,版本也不断的更迭。这也是我在公司开发管理系统新的一个版本所体会到的。
一个月的时间过的很快,比起一上来的茫然无措,现在多了一份冷静和思考。作为刚入IT公司的应届毕业生,业余的充电成为我破茧成蝶的唯一途径。最近看了一本《淘宝技术这十年》,子柳先生描绘了一个淘宝帝国内部的一些构建和发展,他的TFS(Taobao File System)淘宝的分布式文件系统,LVS(Linux Virtual Server)优秀的负载平衡系统,CDN(Content Delivery Network)内容分发网络,HSF(高性能服务框架)。这些在即将毕业的我听起来都感到很陌生的名词但都是基于最原始的LAMP(linux apache mysql php)模型开发,并不断完善,丰富起来的。这不惊让我回到大道至简,由易到难的本质,任何事情都不是一蹴而就的。以前想的是做一个软件嘛,不就是一个一个功能的实现嘛。这样的想法在现在看来甚是肤浅。做软件应该和造房子是一样的,先把骨架搭好,在不断的一层一层的盖。软件行业的一个现象就是产品的不断优化和完善,版本也不断的更迭。这也是我在公司开发管理系统新的一个版本所体会到的。
公司现象:管理系统版本从2.0—>3.0
描述:由于新的客户对管理系统有新的业务需求,所以我们在原来的基础上,增加模块,修改以前软件的bug,大概花了两周多的时间,试用版3.0出炉了(效果还有点不理想,比如公司内测试的好好的,到别人服务器去安装的时候就会出现乱码,这不得让老大—我们的项目经理从源代码上上手改动。)先思后行这种方法是我这一个月学到的重要方法,当老大给了我一个业务逻辑,叫我实现的时候,我脑海中的反应首先是怎么建立页面,怎么对数据库进行操作,这个功能写怎么样的方法把它实现,怎么显示? 但是我往往忽略开始做之前应该要多想一下这样做的好处与坏处,方法能不能扩展,代码耦合度高还是不高?,设计是否合理?
例子:有一次老大给了我一个模块,里面是一个大的页面,数据量除了ID之外可以拆分成两个表的设计的那种。我于是兴冲冲的就设计了两个表,但是难点又来了,对数据做操作的时候一个页面对两个表的增删查改很困难,所以最后返工,还是把数据集成在一张表上,进行操作。时间大大浪费。
《淘宝技术这十年》里面还介绍了很多书籍和文章,我也将抽空慢慢研读,把读书札记写下来。
另外给大家一个在知乎上很火的问答:为什么很多看起来不是很复杂的网站,比如 Facebook 需要大量顶尖高手来开发?