谈谈技术的深浅

2019年8月30日12时00分内容来源:caoz的梦呓

上周在山东跟一个技术创业者聊天谈合作,期间闲扯了一些技术思想的话题,那么虽然很多内容旧文都提过,但我觉得还是有必要重新整理并分享一下,每次整理都会有不同视角的解读,也都会带来新收获。


我举的是4399的案例,我讲了以前说过的业内竞争的六字真言,“不卡不慢不断”,很多细节的技术功夫,都是为这六个字服务的。


那么4399首页有什么呢,大量的图标,各种资源文件的嵌入,对不对,用了哪些优化技巧呢?


1、随动加载,只有页面下拉的时候,处于之前屏幕下方的图标才会加载显示,在移动互联网信息流时代,这个似乎已经是各种信息流产品标配,但是PC互联网时代,之前很少有人这么设计网站,当然这种效果肯定不是4399的原创,但是4399学习起来还是非常快的。


这样做的好处,能够节省带宽流量,以及提高首页打开的效率,我觉得读者应该很容易理解。


2、多域名加载,比如很多资源文件,用多个不同的域名加载资源文件,而不是统一的资源域名。


原因是什么呢?浏览器针对同一个域名一次最多打开五个链接,而资源文件非常多的时候,用不同域名加载,就可以实现更多的同时链接,整个网页加载速度也就会更快一些。


3、业务域名和资源域名严格区分,也就是资源加载所用的域名绝对不能使用网站业务的主域名。


原因是什么呢?业务域名的每个请求都会携带标识用户身份,状态,方便统计和用户识别的cookie信息,这个信息大概会有1k左右,如果资源域名和业务域名一致,那么每个资源请求也都会携带这个cookie信息,资源请求多的时候,这就是无意义的带宽浪费,并会影响打开效率。实际上很多中小网站设计都没有意识到这一点。


当然,还有很多其他的技巧,比如浏览器cache的设置等等,不过毕竟这里不讲前端课程,但以上几个例子,已经足够表达今天的主题。


优化1,大概还是有一些代码技巧,但实现并不会特别复杂。

优化2,在代码中的展现是非常简单的,甚至可以这么做,资源域名做成通配解析,而前端用随机数生成域名前缀即可。

优化3,在优化2实现之后,其实根本就无需处理了,以至于如果你只看代码,甚至根本不知道存在这样一个优化规则。


那么我们想一想,这些优化到底算不算技术,有没有技术深度。


如果我们只看代码,可能只有1是有一点代码工作量的,2在代码里可能只有一个随机数的调用,3则在代码里完全看不到。


但如果我们看看1,2,3的原则,我相信你能理解,作为系统设计人员,在这里是有技术思想的,而这个技术思想,可能是很多从业者根本意识不到的。


深思而潜行,是很多资深工程师设计系统,编写代码的一种境界。


思考的非常深入,但是在执行的过程中,很多思想可能并不会直接体现在代码里,或者体现出来的是非常简单,新人看上去不明所以的一些处理,如果你只看代码,可能觉得毫无技术含量,毫无技术难点。但背后的技术思想,很多人是看不到的。


深度的思考,简单的操作,这是一种技术境界,其实产品境界,运营境界,也有很多类似的案例和场景。最早的百度贴吧的产品和运营,多少也有这方面的意味。


那么作为职场新人,很容易反过来,思考不深入,思想不深入,却沉迷于复杂的操作,试图通过复杂的执行过程证明自己的实力和工作能力。这是一种;另一种就是无法体会和理解别人深入的思考,仅仅因为操作上的简单而看轻别人,看低别人的工作,很多初入职场的员工,经常会觉得公司前辈的工作没有门槛,难度太低,工作太简单,殊不知,化繁为简真功夫,很多时候,他们的抱怨仅仅是因为他们看不到别人思考的深度和决策的依据。


当年我做统计系统,开始跟别人合作的时候,先后多个接手我程序的程序员各种抱怨,说我的代码很糟糕,实现方式很差,其实没有人试图去理解设计的初衷和背后的思想,仅仅从代码本身点评,并否定一切。直到CNZZ成为市场毫无争议的第一名,我才敢说,那些人压根没理解怎么设计统计系统,甚至根本没有试图去理解我的设计思想。


那么总结一下


每个试图在技术领域有所深入的年轻人,首先要建立正确的技术思想,如何理解系统,理解技术,理解优化目标,理解优化的过程,能够分解目标,能够明确不同实现方式的成本和效果,然后才是选择合理的方案执行。而所谓合理的方案,在现实中,往往具有低成本方案。


低成本方案不代表低技术思想。


而每个试图在产品,运营领域前进的年轻人,我认为,产品思想,运营思想的建立也是重要的,如何明确目标,拆解目标,明确产品和运营的优化路径,用户体验的细节,感知反馈的获取和理解等等,基于深入的思考 对产品和运营的方案进行选择,很可能一个超级简单的方案,是可以解决一些超级复杂的问题。



嗯,今天不卖课。


但今天也要絮叨一下卖课的话题。


我承认之前卖课有点多,有不少读者抱怨,课太多了,学不过来了。我以前解释过一次,认真的说,每篇文章转化能有1/100就足够应付广告主的转化诉求了,如果按年来说,每年每十个订阅者有一个买过一门课数据就已经很满意了。所以,真不强求您下单。


当然,也很感谢有些读者很好学,买了很多课程,但说实话,如果买了不学,我真的建议您别再浪费钱了。


前几天在山东见的技术创业的小伙,走的时候我留了一道以前用过的面试题考考他,一个多模匹配的算法题,是现实很多互联网公司日常业务中有典型应用诉求的,他回去想了一天,没想到点子上,其实这个题我旧文提过,我给他答案他才发现,原来在我以前推过的算法课程里就有,课程里就是针对这个应用场景展开的,而且他交了钱学过这门课,看过这个算法,但居然一天时间没能想到,完全没有真正理解和掌握这个算法。


我觉得这种情况可能很常见,可能很多读者报名了课程,也阅读或听取了课程,但只是满足了自己“已经学习”的目标,而根本没有真正掌握课程的内容,更没有实践中应用过。


说实话,我以前推的技术课程,基本上质量都很好,如果你一年能彻底掌握两门课程,我觉得你真的成长的会非常快,但什么是彻底掌握,有几个人能彻底掌握?课程我卖完了,广告费我也收完了,按说你学会学不会对我没什么影响了,但我还是想提醒读者,回头看看你学习过的系列课,特别是技术课,有没有认真吃透掌握,重新复习看看,拿到应用场景中能不能用起来,能不能熟练的用起来。


那么,细节太琐碎,涉及领域太广泛,可能真的没办法彻底掌握,没关系,我降低一下要求,你试试看。


掌握每种算法,技术工具的思想,应用场景,在不同场景下其优劣,能够彻底理解和领悟这些,然后,遇到问题的时候,你至少知道,该用什么算法,该搜什么关键词,该从哪里找案例,毕竟你不需要闭卷考试,但你总要知道从哪里找答案,你说,这个算法的代码逻辑我记不下来,没关系,但你至少要知道,这个场景需要这个算法,这个算法可以解决什么问题,这一点,可以做到么?


多把以前报名的课程学透彻,不要急于学太多。


最值得关注的微信公众号