网站首页 > 技术文章 正文
本文同步本人掘金平台的原创翻译:https://juejin.cn/post/6844903927528308749
我曾经认为--如果我了解JavaScript,那写后端会很容易。我之所以认为简单,是因为Node是JavaScript。我没必要去学一门新语言。
然而,我错了。
但是,后端是很难去学的。我花了很长的时间去学习它。(当然,我现在仍然尝试去掌握它)。
我意识到在学习后端中我有些问题,因为我曾认为前端和后端是一样的 -- 它们都是代码而已。
这是个很大的错误。
前端和后端完全是不同的野兽。我能正确地学习后端之前,我必须尊重他们的差异。
如果让我来解析前端和后端之间的差异(在执行方面),我会说:
- 前端是有关视觉
- 后端是有关通信
前端是有关视觉
当我们构建前端事物,我们很大程度上关注了用户对我们构建的东西是怎么看的。我们花费了大量的时间自问了下面这些问题(每个问题都带来数不尽的工作):
- 它看起来好不?
- 它有意义不?
- 它对用户友好不?
- 它容易理解不?
- 它够快不?
我们都关心。
有时候,我们为了提高用户的视觉体验(带来愉悦感),我们添加了诸如下面的事物:
- 视频/图片/动图Gifs
- 动效
- 颜色主题
伴随着每个附加功能,我们还必须考虑它们可能带来的影响:
- 视频/图片/动图Gifs太大了?
- 如果有人无法忍受我们的动效怎么办?
- 用户喜欢明亮的主题还是暗黑主题?
我们考虑很多东西 -- 从用户的视图层面。这就是为什么我说前端是有关视觉的。
我们为用户着想。然后我们为他们构建产品。
不幸的是,一些开发者自欺欺人地认为用户 === 他们自己。他们为自己建立网站而不是他们的用户。
后端是有关通信
让我具体一点。当我说到后端,我指的是前端和数据库之间的层。它也是前端和你需要通信的任何API之间的层(如果它通过你自己的服务器)。
我们简化事情让一些人明白,我在讲你将在哪里创建一个Express应用程序。
当你做后端工作时(前端->后端),你会发现我们不再创建接口了。你不用填写表单;你不用点击按钮。那是因为它们不需要。
后端不是关于视觉。没人肉眼看到发生了什么。它只是要运行...
但是,运行意味着什么?
后端允许前端和数据库之间的通信(或任何外部的API)。回到以前,想象下一个电话接线员。如果你打电话给一个人,这些接线员必须手动的连接你和你要打给的那个人。(如果他们接线错误,你就打给了错的人)。
当你构建一个后端时,你就像电话接线员。你把东西连接起来就可以了。
当我们构建后端时,我们会问如下的问题:
- 我们需要从前端那里得到什么信息?
- 我们应该传什么信息到数据库/API?
- 在数据库/API上的操作是否正确保存?
- 数据库/API返回什么信息呢?
- 我们应该返回什么信息给前端?
- 我们是在渲染网页吗?如果是,我们应该呈现哪个网页?
- 当信息错误或错失时,我们应该怎么做?
我们还要考虑速度和可靠性。(想象一下,如果你发送了一些东西,但是没有收到任何回复的话会发生什么...)。但是,这是更加高级的话题了。
不同的心理模型
这是我在学习后端的早期观察到的一种常见模式:
- 我会假设事情向着特定的方式运行
- 我会在Google上搜索,如何通过我想到的具体方式来实现东西
- (Google结果也许是空)
- 我会破解它并构建自己的基础设施
- 学习后,我才发现自己的方式很糟糕
我几乎总是错的,因为在学习后端的时候,不自觉地依靠了我的前端经验。我必须学习重新思考问题的方法。
这是我最大的收获:
不要以为你对自己学的东西了如指掌。你几乎总是错的。慢下来,让你有时间和空间去学习。在学习的过程中始终验证,以便你记住并重新连接你的大脑。
- 上一篇: 前端开发基础须知
- 下一篇: 前端入门——HTML的发展历史
猜你喜欢
- 2024-11-23 前端入门——HTML的发展历史
- 2024-11-23 前端开发基础须知
- 2024-11-23 10个每个前端开发人员都喜欢的JavaScript模式,是你的菜吗?
- 2024-11-23 前端必看书籍整理
- 2024-11-23 完美,这份七牛大神在线翻译国外大牛精简K8S学习笔记
- 2024-11-23 分享9个前端开发人员必备的查询手册工具网站
- 2024-11-23 翻译翻译:什么叫架构?
- 2024-11-23 前端之变(二)- "不变"的前端
- 2024-11-23 2020年零基础如何成为Web前端工程师?
- 2024-11-23 「前端 · 面试 」HTTP 总结(一)——HTTP 概述
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 601℃几个Oracle空值处理函数 oracle处理null值的函数
- 593℃Oracle分析函数之Lag和Lead()使用
- 581℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 578℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 573℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 566℃【数据统计分析】详解Oracle分组函数之CUBE
- 553℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 547℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)