读自己的书,走自己的路
本文只是阐述我自己的想法。而我在思考,如何寻求编程的道理,而不是仅仅掌握技术。在我的观点中,术是最初级的东西,由术形成学,而最终总是能反映为道。道是什么东西?在我看来,道并不复杂。术要远比道复杂。目前讲各种各样技术的书籍非常多,相信没有一个人全部读过。但是这些书说阐述的道却不是太多,也有可能根本就没有讲到道。各种各样从入门到精通之类的书籍就不说了,这些书籍很少涉及到道,基本上全部是讲术。是教你如何去使用技术的。而通过总结经验,探寻规律,就编程了一门学问。假如掌握了这门学问,往往可以举一反三,不再受某种技术的限制。
无论是jsp,asp.net还是php都有session和cookie。如果你会使用了,那你就掌握了这种技术。而书上一般也都讲到,session和cookie是因为http是无状态协议。为了能够获得一些状态连接的功能,就引入了session和cookie。cookie和session虽然不是同一个东西,但是session是包含了cookie的技术,因为sesion也是需要依赖于cookie来实现的。当然,通过URL传递的方式不在此类。
如果再深入一点研究cookie的传输原理,session的存储原理,那就有可能不再受具体的cookie和session技术限制。比如,我想给每个用户保存一些数据,基于性能等方面的考虑,我不想放到数据库里。这个时候,首先想到的可能是cookie或者session。而每个用户的数据量不算太大,但是也不小,使用cookie可能会超出限制。这些数据我可能不是只想存储到过期时间为20分钟,有可能是一天,有可能是一个月。使用session保持对IIS稳定性有影响,并且机器的内存不够大。条件可能会非常多。但是只要掌握了session的思想,使用cookie就可以做。
也许我的理解和你的理解不一样,在我看来session是一把钥匙和一把锁。钥匙就是cookie,而锁是存储的介质。这个介质可以是物理上的内存、硬盘,也可以是逻辑上的数据库、缓存。或者兼而有之。在客户端存储一个编号,通过该编号可以在服务器端拿到相应数据,这样就解决了问题。
具体的cookie和session如果是数学上的一道题目的话,那么通过编号取数据的逻辑就可以是一个定理。
每个人对具体的某个技术或者原理理解都可能有差异。这就好比看电影。我经常听到说这个电影看不懂,或者有人对另外一个人说,你没看懂。我不太明白这个懂是什么意思。在我看来,我看这个电影,结合我的经历,使我有了一些想法,或者共鸣,我就觉得这个电影不错。要是每个人都按照导演的想法去看,就和教小学生没什么差别了。是要把人搞成一样的,完全没有任何特定。
作为一个老师,你有什么资格说别人是错的呢?我越来越觉得没有对错之分,没有高下之分,有的只是不同的想法,不同的思想而已。千篇一律,不结合实际,那只能是纸上谈兵。
要开发一个项目,离开去搞来一套解决方案。总共两个开发人员,搞个MSF。两个刚毕业的学生,项目中全是开源框架。建设一个团队,把所有会遇到的问题都列出来了。如果是打游戏,现在有1000块钱,600块钱可以买把枪,800块钱可以买个甲。现在要考虑的问题是要优先买甲还是优先买枪。而不是想着两个都买。
如果一个人老师遵循着别人的路去走,那也永远不会超过那个人。很多武侠、玄幻小说写得不咋样,不过这些道理讲地还行。如果对某个东西没有自己的感悟,那根本谈不上理解这个东西,更谈不上改进了。读书走路,别人都是拿来参考借鉴的,而不是光拿来用的。