我曾经认为--若是我了解JavaScript,那写后端会很容易。我之因此认为简单,是由于Node是JavaScript。我不必去学一门新语言。前端
然而,我错了。git
可是,后端是很难去学的。我花了很长的时间去学习它。(固然,我如今仍然尝试去掌握它)。github
我意识到在学习后端中我有些问题,由于我曾认为前端和后端是同样的 -- 它们都是代码而已。数据库
这是个很大的错误。后端
前端和后端彻底是不一样的野兽。我能正确地学习后端以前,我必须尊重他们的差别。服务器
若是让我来解析前端和后端之间的差别(在执行方面),我会说:frontend
当咱们构建前端事物,咱们很大程度上关注了用户对咱们构建的东西是怎么看的。咱们花费了大量的时间自问了下面这些问题(每一个问题都带来数不尽的工做):学习
咱们都关心。网站
有时候,咱们为了提升用户的视觉体验(带来愉悦感),咱们添加了诸以下面的事物:code
伴随着每一个附加功能,咱们还必须考虑它们可能带来的影响:
咱们考虑不少东西 -- 从用户的视图层面。这就是为何我说前端是有关视觉的。
咱们为用户着想。而后咱们为他们构建产品。
不幸的是,一些开发者自欺欺人地认为
用户 === 他们本身
。他们为本身创建网站而不是他们的用户。
让我具体一点。当我说到后端,我指的是前端和数据库之间的层。它也是前端和你须要通讯的任何API
之间的层(若是它经过你本身的服务器)。
咱们简化事情让一些人明白,我在讲你将在哪里建立一个Express
应用程序。
当你作后端工做时(前端->后端),你会发现咱们再也不建立接口了。你不用填写表单;你不用点击按钮。那是由于它们不须要。
后端不是关于视觉。没人肉眼看到发生了什么。它只是要运行...
可是,运行意味着什么?
后端容许前端和数据库之间的通讯(或任何外部的API)。回到之前,想象下一个电话接线员。若是你打电话给一我的,这些接线员必须手动的链接你和你要打给的那我的。(若是他们接线错误,你就打给了错的人)。
当你构建一个后端时,你就像电话接线员。你把东西链接起来就能够了。
当咱们构建后端时,咱们会问以下的问题:
咱们还要考虑速度和可靠性。(想象一下,若是你发送了一些东西,可是没有收到任何回复的话会发生什么...)。可是,这是更加高级的话题了。
这是我在学习后端的早期观察到的一种常见模式:
Google
上搜索,如何经过我想到的具体方式来实现东西Google
结果也许是空)我几乎老是错的,由于在学习后端的时候,不自觉地依靠了个人前端经验。我必须学习从新思考问题的方法。
这是我最大的收获:
不要觉得你对本身学的东西了如指掌。你几乎老是错的。慢下来,让你有时间和空间去学习。在学习的过程当中始终验证,以便你记住并从新链接你的大脑。