You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
<p>对于不同领域的学者来说,都会有一个相似的问题:如何从入门到精通?入门并不是一件很复杂的事,只是多数人想要的是<strong>更快的入门</strong>,这才是真正复杂的地方。虽说条条道路都是通过罗马的,但并不是每条道路都是能满足人们要求的。对于 A 说的路线并不一定适合于 A ,有可能会适合于 B;适合于 B 的路线,也有可能只适合于 B。</p>
<p>如 Ruby On Rails诞生之时,带来了极大的开发效率,而开发效率正是当时大部分人的痛点。我们知道 Ruby On Rails 是一个大而广的框架,它可以提供开发者所需要的一切,开发者所需要做的就是实现业务代码。当开发效率不再是问题时,自由度变成了一些开发者的痛点,此时像 Sinatra 这样的微框架就受这些人欢迎。</p>
<p>从 Backbone 和 Angular.js 的性能问题上来看,我们会发现 DOM 是单页面应用急需改善的问题——主要是DOM 的操作非常慢。而在单页面应用中,我们又需要处理大量的 DOM,性能就更是问题了。于是,采用 Virtual DOM 的 React 的诞生,让那些饱受性能苦恼的开发者欢迎。</p>
<p>传统的 DOM 操作是直接在 DOM 上操作的,当需要修改一系列元素中的值时,就会直接对 DOM 进行操作。而采用 Virtual DOM 则会对需要修改的 DOM 进行比较(DIFF),从而只选择需要修改的部分。也因此对于不需要大量修改 DOM 的应用来说,采用 Virtual DOM 并不会有优势。开发者就可以创建出可交互的 UI。</p>
<p>除了编写应用时,不需要对 DOM 进行直接操作,提高了应用的性能。React 还有一个重要思想是组件化,即 UI 中的每个组件都是独立封装的。与此同时,由于这些组件独立于 HTML,使它们不仅仅可以运行在浏览器里,还能作为原生应用的组件来运行。</p>
<p>同时,在 React 中还引入了 JSX 模板,即在 JS 中编写模板,还需要使用 ES 6。令人遗憾的是 React 只是一个 View 层,它是为了优化 DOM 的操作而诞生的。为了完成一个完整的应用,我们还需要路由库、执行单向流库、web API 调用库、测试库、依赖管理库等等,这简直是一场噩梦。因此为了完整搭建出一个完整的 React 项目,我们还需要做大量的额外工作。</p>
<p>在今天开发 Web 应用时,上述的内容都只是基本的调试。有一些能支持更高级的调试——如评估表达式,即利用当前的变量值,来实时计算,并慢慢完成下一步的代码。最初,我是在用 Intellij Idea 写程序的时候,学会在后台编程时使用 <code>evaluate expression</code>。它可以在调度代码的时候,我们可以边实现功能。</p>
<p>你若问我,为什么我会这么练习?我想那大概是,我可以<strong>更早的得到反馈</strong>。我可以更早的知道,A 框架对于使用过 B 框架的人来说有些难度,我也能轻松地指出他们的差异。甚至,如果这是一个新的项目,那么我还能用一种『不很完美的姿势』完成之。而如果只是完成这个项目,那对于我而言也没有多少 实质性的提高。</p>
<p>如我们在引言里所说的,搜索引擎的流量在逐渐地减弱,但是这<strong>几乎</strong>是一种一劳永逸的方式。只需要制定一个合理的 SEO 策略,再瞧瞧看竞争对手的规则、用户的习惯等等。我们就可以坐等:用户从搜索引擎来到我们的网站。随后的日子里,只需要跟踪用户行为的变化,再做出一些适当的改变即可。</p>
<p>如上图所示的结果,是我用 Google 搜索:“程序员如何提高影响力”得到的结果。对应的第一个链接的,<code>程序员如何提高影响力2.0 - Phodal | Phodal - A Growth Engineer</code> 就是我博客的站点标题。对应在 HTML 中就是 title 标题:</p>
<figure>
<imgsrc="images/phodal-com-seo.png" alt="Phodal’s COM SEO" /><figcaption>Phodal’s COM SEO</figcaption>
<p>尽管在今天看来,jQuery Mobile 已经不适合于今天的多数场景了。这个主要原因是,当时的用户对于移动 Web 应用的理解和今天是不同的。他们觉得移动 Web 应用就是针对移动设备而订制的,移动设备的 UI、更快的加载速度等等。而在今天,多数的移动 Web 应用,几乎都是单页面应用了。</p>