互联网不是一个黑盒,看看其本质。
[原文发表地址] The Internet is not a black box. Look inside.
[原文发表时间] 2012-11-12 1:27
太多时候我看到程序员试图通过盲目地"来回切换"来解决他们在互联网上的问题。
改变一些东西,在浏览器中点击刷新按钮。"为什么被缓存了?发生了什么?然后再更改其他东西,点击浏览器中的刷新。"到底发生了何事?"
你可能听说过术语"cargo cult programming"(拜物编程,意思是由于对模式的盲目崇拜,在不理解的情况下就使用模式和方法,企图得到好的结果),二战后岛民挥舞棍棒,希望装载补给的飞机会飞过来。他们得出一个结论,挥舞棍棒会造成飞机的到来。
想一想抽象的东西。这是对初学者和资深专家的一个很好提醒。这不仅适用于计算机,而且适用于汽车、 灯泡、 冰箱,以及更多。
你没有看到什么?看看底层。
当在 web 上编码时,请记住没有任何东西可以逃离你的眼睛。
一位朋友给我发邮件,询问有关一些 CSS 文件的问题,不是缓存。这个聪明的人问题写得很长,是有关浏览器中的一个令人困惑的行为。我问-如同我经常问的一样-底层发生了什么事情?你有看过里面吗?
你正在使用Fiddler吗?你有在浏览器中按 f12 键,并探索它们的网络工具吗?你正在使用WireShark吗?
字面上这一时刻,当我编写这篇文章时,我刚刚注意到我博客上的Twitter 框中没有嵌入我最新的 tweet。
我可以多次点击刷新,使用谷歌围绕它含糊地搜索,给朋友发邮件,或者我可以向内看看。
我在我的浏览器按了 f12 键。我查看Network(网络)选项卡,并按状态进行排序。
嘿,突然我的 Twitter API 调用是 404。首次,这就是不对的。它们应该为我重新定向。
看了一眼之后,现在我使用google流行的术语。我搜索”twitter user timeline json api",看到在Twitter Developer Center上他们已经更改了该格式来包括"api."和一个版本号。
我更改我的模板来调用此更改过的 URL https://api.twitter.com/1/statuses/user_timeline/shanselman.json?callback=twitterCallback2&count=10,然后在我的浏览器中点击刷新。
那里有我的 tweet了。不是开玩笑,这正好发生了。良好的时机,我认为。
你可以自己决定深入到兔子洞的何处。我并不是在期望每个人都称为神经外科医生或专业的网络工程师,但我坚定地相信往更深一层次的挖掘会加强你的生活和工作。
学习基本的HTTP 调试,并始终检查你的结果代码。即使你是一个非技术性的博客人员,也学习如何检查 404, 301和 500,并断言你的假设。
这个世界和互联网—并不是一个黑盒。看看里面。