|
很有用
1.
在大型顶级的软件公司(ms,google, amzon),底层核心的东西都是大大牛做,
用很精练的结果和算法写的。作为上层的开发,多数是调用它们的api,但如果上层的application 用太烂的结构和算法(3 for loops),
也会破环性能个系统的设计框架,浪费别人辛勤工作的结果,可恶也。你影响的不是你自己,你影响的是产品质量。
2.
软件是需要维护,有个是根据已有的系统在开发,不好的结构和算法会导致:
- 更多的时间去优化
- 更多的时间去理解
- 当有问题出现是, 更多的时间去toubleshot
- 更多的时间维护
3.
feature、requirment 的实现知识软件管理的一部分,好的软件管应包括性能,memory管理等,这些都是度量软件质量的重要因素。
只注重feature的实现只是最基本的一部分。
4.
大型分布式系统,如云计算,软件会同时运行在多台host上,且要交精确的管理host群的资源分布和控制,
太烂的结构和算法必然导致资源浪费,在分布式系统中,资源应与性能,吞吐量等成正比例的增长。
好的结构和算法,设计,不仅要尽用资源不浪费,更高层次是最有效率的利用资源。
这也是为什么顶级的软件公司面试都考结构和算法,同事大家互相信任的前提是水平和层次同相同,
不然一code review 就像给你上课一样处处纠正,打回去总写,何谈效率。
5.
我的观点,不懂结构和算法的程序员写的程序就像是煮大锅饭, 但我们要的是能雕花的人,这用才能做出
色香味俱全的菜。
6.
我自身的经验,烂的结构和算法写的系统,在维护和再开发的过程中,只会越练越差。
用能写出顶级程序的人,才有可能生产出顶级产品,这也是顶级软件公司的生存之道。
本文纯属个人意见,欢迎评批赐教。
谢。 |
|