本节书摘来自异步社区《Node应用程序构建——使用MongoDB和Backbone》一书中的第1章,第1.1节,作者【美】Mike Wilson,更多章节内容可以访问云栖社区“异步社区”公众号查看
第 1 章 介绍与总览
Node应用程序构建——使用MongoDB和Backbone
互联网已经成为发展最快的技术领域之一,它还在加速。对于希望通过编写软件来获得收入的人来说,这既是好消息,也是坏消息。今天,优秀的开发人员拥有难得的机会,可以做他们喜欢的事,拓展视野,不断进步,并从工作中得到更大的满足,只要他们愿意付出必要的努力,去理解海量的、快速增长的知识。
精彩的职业生涯是有代价的。作为一名软件开发者,你必须不断寻找下一个优秀的工具,来帮助你更多、更好、更快地实现梦想。你在10年后面对的东西,与今天面对的东西会完全不同。本质上说,你需要多次再培训自己,才能保持好的状态。
马尔科姆·格拉德威尔(Malcolm Gladwell)在他2008年所著的《Outliers》一书中指出,专业水准的融汇贯通需要10 000小时的努力。即使是天才也需要投入时间来收获成功,平庸者和精湛者之间的差异归结于个人实践经验的多少。阅读本书这样的书籍,能让你成为精湛者。现在你正在花费额外的时间,接触这门前沿的手艺。未来即将到来,你会首先获得它的好处。
Node.js已经将一大批软件开发者引入了面向事件编程。无论你的技术背景如何,只要有开放的心态,放下对JavaScript的偏见,就会领悟到在这个疯狂应用多线程的世界里,单线程编程是多么强大。更重要的是,你会更欣赏事件处理,在其他编程语言中处理多线程问题时,也会有所帮助。
JavaScript是一种独特的编程语言,有时会被误解,现在它在开发人员的工具箱中终于得到了应有的地位。由于开发JavaScript应用程序的工具集不断完善和成熟,你会看到全球范围内这种编程语言的重要性在持续增长。
1.1 打造一个社交网络
Node应用程序构建——使用MongoDB和Backbone
本书将手把手指导你搭建一个社交网络,类似于LinkedIn、MySpace或Facebook。使用Node.js,Backbone.js和MongoDB作为工具,你将学会如何创建一个快速响应的应用,并且可以扩展到几百万用户。
由于是例子,本书中介绍的许多组件会走捷径,使用Node或MongoDB提供的内建方法,来展示某项功能,但在“真正”大型的部署中是不合适的。如果出现这样的捷径,我会给出特别提示,并探讨如何转向更具扩展性或更容易修改的结构。本书的挑战是在清晰性和构建真正实用的应用之间取得平衡。
什么是社交网络?“社交网络”这个简单的词组似乎传达了很多意义(在行为科学领域,确实如此),让我们逐词解读,并应用于因特网。“网络”是互联的一组系统,它可以是任何东西,从遍布全国的高速公路网,到学校实验室里的一排计算机,或是名片盒里的专业联系人。“社交”这个词指的是生物体的交互(如动物或人),以及它们作为群体的存在。所以社交网络在这里指的是一群互联、互动的人。
在社交网络里,人的因素高于一切。在构建任何软件时,如果不首先(并且持续)考虑最终用户(不论是客户、教授还是你自己),就针对某一特定功能或目标进行开发,这就是不负责任。要抵制为了技术的缘故而继续编程之路的冲动,直至你能看清楚工作的最终目的。
我们说打造一个社交网络时,当然不可能是打造这里定义的社交网络。你要创建的是一个论坛,一条道路,让社交网络生根成长。系统的每一项功能都为这一目标服务,消除用户的障碍,提供足够的功能来推动、鼓励和促进沟通,而没有过多的修饰。这是一条充满困难的道路,但也是区分伟大和平庸的产品的唯一途径。