“技巧的沉迷和创意的缺乏是最大的硬伤”

昨天在白云参加了一个口水战帖子:从c对java,谈论到了软件之道。
 
   其实软件之道,有2类问题,很遗憾的是不少人,甚至公司,只认识到第一种,忽视了第二种。
    第一类是可以归结到逻辑计算的。比如 高效的string处理与算法效率的优化,NP问题,树图模型的应用。
 
    另外一类则是创意和颠覆,这些是不可能归结到数据结构和算法模型的问题。 比如电信业市场销售们整出的各种计费业务。
作为用户,你可以非常痛恨移动的几十套计费类别在算计你的口袋;作为开发,整那么多低效的计费逻辑还要让你优化性能,
会让你冲动的想扁人。 可是你无法否认的是,企业的成功离不开他们。
 
    不久前参加了某大公司笔试,题目大致是:在大数据量数据库中,高效实现用户近半年历史记录分页查询(6个月的记录分装在6张
不同表)
 
    也许题目本意是让我实现某高效算法吧, 我却牛头不对马嘴回答如下3条:
    1.考虑业务上优化:将用户分页查询限定到按月份选择,因此只涉及到单表的分页。类似移动按月查询话费。
    2.既然是历史记录,前5个月的表显然是read-only,随便你线程,任务跑就是。
    3.后台跑定时存过任务,统计各用户在每张表中的信息,供分页时优化计算。
 
    显然3的单体执行效率不是很高,全表扫描,连同学讨论的时候都BS这个效率。 可是对于一个非7*24国际化的国内网站来说,
深夜将load 从零提升到80%几乎不需要付出代,可是却能兵不刃血的解决白天DB瓶颈的问题。
 
    颠覆来自与实践,源自于创新。当苦苦优化再优化一行代码的时候,何不能抬头看看路呢?想起高中老师的一句话“低头拉车,抬头看路”

你可能感兴趣的:(数据结构,数据库,优化,算法,String,任务)