技术标签: 全栈工程师 编程爱好者聚集地 后端 后端开发 编程开发
软件应用程序就像冰山一样。用户看到的只是应用程序的一部分——在大多数情况下——应用程序的最大部分是看不到的。这就是令人难以捉摸又神秘的“后端”。
在Web开发的篇章中,我们主要讨论Web开发,因为它涉及与最终用户的直接互动——我们可以称之为“前端Web开发”。
在大多数应用中,非用户接口代码比用户接口代码多得多。复杂系统是在后台发生的各种使其工作的逻辑。
我们需要存储和检索数据,需要遵循业务逻辑和规则,并且需要对结果进行预测。所有这一切都发生在幕后。
后端开发人员是这样的开发人员。
这篇文章的目的在于,我将会考虑后端开发是一种不涉及创建生成用户界面的开发。这可能包括后端Web开发,可能也涉及编写API,创建库或和没有用户界面或甚至科学编程系统的系统组件一起工作。
在现实中,即使前端开发获得了大部分的荣耀,但是世界上存在的大多数代码(可以说是最有用的代码)是最终用户从来不会看到的后端代码。
简单来说,后端开发就是开发人员编写的不能直接看到的代码。
根据正在处理的应用程序的大小和范围,后端开发人员要做的事情有很大的不同。在我是一个后端开发人员时,我做了很多工作,工作于应用程序中的业务逻辑,以及从前端提取和检索数据。
在Web开发世界中,大多数后端开发人员从事于构建他们正在工作的应用程序背后的实际逻辑。
通常,前端开发人员构建用户界面,而后端开发人员编写代码,使其工作。
例如,前端开发人员在应用程序中创建一个界面,上面有一个按钮,按下按钮来获取客户的数据。
后端开发人员写可使得按钮工作的代码,通过指出从数据库中提取哪些数据并将其传回到前端(并最终显示在那里)。
后端开发人员也可能会大量参与系统架构,决定如何组织系统的逻辑,以便能够正常维护和运行。
他可能会参与构建框架或系统架构,以便于更容易编写程序。后端开发人员比前端开发人员花费更多的时间在实现算法和解决问题上。
我一直都很喜欢后端开发工作,因为它更像一个挑战。
这并不是说前端开发人员不解决难题,但通常前端开发工作更多的是关于创建用户界面和与之相关的内容,而不是实现实际的业务逻辑,使应用程序工作。
前端开发人员需要知道一系列用于创建用户界面的工具,而后端开发人员通常使用的是一套完全不同的工具和技能,以便于高效地完成他们的工作。
后端开发人员所需的一个重要技能与SQL和数据库有关。大多数后端系统需要连接到存储应用程序数据的数据库。
后端开发人员通常的工作是从数据库或其他数据源写入、读取和处理数据,因此拥有SQL等技能会非常重要。后端开发人员——至少对于Web开发——也需要擅长他们正在使用的技术栈的服务器端语言。
例如,虽然前端Web开发人员更多地专注于HTML,CSS和JavaScript,而后端开发人员需要更多地了解PHP Web框架,Ruby on Rails,ASP.NET MVC或任何正用于构建应用程序的服务器端Web开发框架。
最后,我想说,后端开发人员需要更多地了解应用程序架构,因为大多数情况下,后端开发人员需要去构建应用程序的体系结构和内部设计。
一个好的后端开发人员得知道如何使用各种框架和库,如何将它们集成到应用程序中,以及如何构建代码和业务逻辑,用一种使系统更易于维护的方式。
如果你喜欢设计应用程序的基础设施,实现算法和逻辑,以及工作于数据,那么你可能会喜欢成为一名后端开发人员。
我曾想为全栈开发人员另起一篇文章,但后来想到,既然已经涵盖了Web开发和后端开发,那么延伸开去谈论全栈开发更为理所当然,因为全栈开发刚好涉及了前端和后端开发。
实际上,全栈开发包括处理系统或软件开发堆栈的所有组件和层。它甚至可能涉及了解服务器硬件和架构,或者被认为是DevOps。
今天,越来越多的软件开发职位在寻找能够进行全栈开发的开发人员,因为对于软件开发人员来说能够工作于涉及的整个技术栈是很有价值的,而不是将前端开发与后端开发兵分两路。
一部分原因是现在越来越多的应用程序模糊了前端和后端开发之间的界限。
许多流行的JavaScript框架,如Angular,允许你在系统的用户界面部分中创建可以被视为业务逻辑的大部分内容。
此外,随着越来越多的团队采用敏捷方法,个体程序员被要求不仅仅能工作于他们的专业领域,因为任务被分配给团队远超过个人。
我认为成为一个全栈开发人员是有用的——并且你应该充分了解软件的每个层次发生了什么——但我不认为“专业化”全栈开发人员是顶好的主意,因为这不是一个专业领域。
基本上,你应该专注于获取你可能会用到的最常见的技术栈的广泛知识,但你应该选择一个或两个主要的专业,然后朝着选择的方向真正地去深入钻研。
所有软件开发人员都应该知道如何创建用户界面,所使用的框架的基础,如何从应用程序中存储和检索数据库中的数据,甚至了解基础设施如何支持软件,他们不需要成为所有所有这些领域的专家,因为这些领域不但相当大而且在不断扩大。
具备技术堆栈中通用和有效的所有知识或一些领域中的专业化知识或许要好得多。
然后,你仍然可以称自己为“全栈”,但实际上,对于团队而言,你这样的人才更加有用得多。
最后,不管你是转行也好,初学也罢,进阶也可,如果你想学编程~
【值得关注】我的 C/C++编程学习交流俱乐部!【点击进入】
问题答疑,学习交流,技术探讨,还有超多编程资源大全,零基础的视频也超棒~
Oracle里sql*plus的用户名即system用户,密码是自己设置的密码。如果密码忘记,可通过如下方法重置。1、win键+R键,输入cmd,打开命令提示符。2、输入sqlplus /nolog3、继续输入conn /as sysdba4、输入alter user 用户名 identified by 密码;5、修改成功后,会有上图“用户已更改”的...
目录1.如何对 Android 应用进行性能分析2.什么情况下会导致内存泄露3.如何避免 OOM 异常4.Android 中如何捕获未捕获的异常5.ANR 是什么?怎样避免和解决 ANR(重要)6.Android 线程间通信有哪几种方式7.Devik 进程,linux 进程,线程的区别8.描述一下 android 的系统架构9.android 应用对内存是如何限制的?我们应该如何合理使用内存?10. 简述 android 应用程序结构是哪些1
USBlyzer破解版 v2.2http://www.3322.cc/soft/19090.htmlBus Hound 6.0.1带注册码+中文版使用说明(最新的).rarhttps://zhidao.baidu.com/share/7ef52b4e0fcf206fd112beb168a664f9.htmlhttps://pan.baidu.com/shar
spring boot 2.x使用hikari数据源,在调用方法后启动数据时发现有个提醒信息奇怪,就是中间这行。2021-04-29 13:36:04.330 INFO 29552 --- [nio-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2021-04-29 13:36:04.465 INFO 29552 --- [nio-8081-exec-1] com.zaxxer.h...
相对一个函数中写的锁的逻辑进行并发测试,由于业务代码很复杂,中间会进行很多操作,所以想要使用PowerMockito进行mock,这些非测试目标函数都是静态方法,在只有1~2个线程运行的情况下,是可以mock成功的。但是线程数到3个以上,就会出现时好时坏的情况,有时候mock就会失效。因为对PowerMockito内部的实现原理不了解,在网上找到相关的资料搜集在这里。在多线程中使用powerm...
DML(Data Manipulation Language):数据操作语言插入:insert修改:update删除:delete一、插入语句1.方式一语法INSERT INTO 表名(字段名1,...) VALUES(值1,…);特点字段类型和值类型一致或兼容,而且一一对应可以为空的字段,可以不用插入值,或用null填充不可以为空的字段,必须插入值字段的顺序可以调换字段个数和值的个数必须一致字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致2.方式二语法IN
参考:SpringBoot整合AOPAOPAOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过 预编译 方式和 运行期动态代理 实现程序功能的统一维护的一种技术。利用 AOP 可以对业务逻辑的个部分进行隔离,从而从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP的相关术语通知(Advice)通知...
您好!感谢您联系微软技术支持。我了解到您遇到关于这边的问题请参考以下步骤解决请问是否能进入系统状态?可能是由于第三方软件干扰造成的建议您将所有第三方的杀毒优化软件卸载后做干净启动看还会出现情况么1.同时按Windows键+R,输入msconfig,回车2.点击在“常规”选项上,点击“正常启动”。3.点击在“服务”选项卡上,点按或单击选中“隐藏所有 Microsoft 服务”复选框,然后点按或单击...
搭建开发环境,快速安装MySQL,然后进行相关的学习,测试,开发。
题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。
Win10+matplotlib+中文乱码_2021.4.181. 开门见山2.参考来源思考1. 开门见山import matplotlib.pyplot as plt# 汉字字体,优先使用楷体,如果找不到楷体,则使用黑体plt.rcParams['font.sans-serif'] = ['KaiTi', 'SimHei', 'FangSong'] # 字体大小plt.rcParams['font.size'] = 12 # 正常显示负号plt.rcParams['axes.unic