首页 > 编程知识 正文

软件开发属于前端还是后端(java前端和后端的区别)

时间:2023-05-03 20:47:04 阅读:103720 作者:2615

在Web开发之初,没有前端或后端。原因很简单。当时服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器。

后来,即使Javascript给浏览器增加了一些AJAX效果,也是锦上添花。永远不要期望什么。因为页面的HTML主要是通过所谓的“模板”方法生成的:美工生成HTML模板,程序员使用JSP、Velocity、Freemaker等技术添加动态内容,仅此而已。

当时最流行的图片是这样的:

在自然键的J2EE系统中,这个表示层不仅是浏览器中运行的页面,也是Java编写的桌面端,但是Java在桌面端太令人失望了,无法开发。

每个程序员都是所谓的“全栈”工程师,不仅要处理HTML、JavaScript、CSS,还要实现业务逻辑,编写代码访问数据库。部署的时候,只需要把所有代码打成WAR包,扔到Tomcat指定的目录下,测试一下,没问题,收工回家!

资金雄厚的公司会将程序部署到应用服务器上,比如Weblogic和Websphere,还会使用来自大学和学院的EJB。

虽然看似生活“简单”“舒适”,但其实也要认识到那些多变、不合逻辑的商业需求,困苦的本质并没有改变。

1.前端和后端分离

随着人们对浏览器页面的视觉和交互功能的要求越来越高,“模板设置”的方式逐渐不能满足要求。这个所谓的表示层慢慢迁移到浏览器中,大量像Angular、ReactJS这样的框架不断涌现,前后端分离!

后端工程师只负责提供接口和数据,专注于业务逻辑的实现。前端工程师在浏览器中显示数据并履行职责。

像Java这样的语言非常适合实现复杂的业务逻辑,尤其是一些MIS系统,税务、电力、烟草、金融、通信等行业软件。因此,剥离表示层,只做后端是相当合适的。

但是,如果只实现业务逻辑,那么后端就不需要那么多技术了,SSH/SSM就可以了。

2.后端技术

互联网特别是移动互联网开始兴起后,大量用户怒吼,单机部署的一个小小的War包撑不住,只好分发。

原来的单一Tomcat必须变成Tomcat集群,jqdwdm需要一个Web服务器来做请求的负载均衡。不仅如此,还必须考虑状态问题和会话的一致性。

随着业务的日益复杂,我们不得不将一些业务放在一台机器(或集群)上,而将其他业务放在另一台机器(或集群)上。虽然系统的计算能力和处理能力都有了很大的提升,但是这些系统之间的通信却成为了让人头疼的问题。消息队列(MQ)和RPC框架(如Dubbo)应运而生。为了提高通信效率,各种序列化工具(如

如果单个数据库撑不住,那就做数据库读写分离。如果不行,就做子数据库和子表,从原始数据库中纵向或横向剪切所有内容。但是,无论如何剪切,都会使应用程序的访问变得非常麻烦,因为数据需要跨数据库进行Join//排序,并且需要事务。为了解决这个问题,“数据访问中间件”的各种工具和产品应运而生。

为了最大化性能,缓存是必不可少的,可以本地缓存(如Ehcache)也可以分布式缓存(如Redis)。如何做数据分片、数据迁移和故障转移是另一个超大的课题。

互联网用户喜欢上传图片和文件,他们必须构建一个分布式文件系统(比如FastDFS),这就要求高可用性和高可靠性。

当数据量大的时候,搜索需求自然会浮出水面。你必须得到一个支持全文索引的搜索引擎(比如Elasticsearch,Solr)。

当森林大的时候,有各种各样的鸟。我们必须考虑安全性、数据加密/解密、签名和证书,并防止SQL注入、XSS/CSRF和其他攻击。

3.“大后端”

如上所述,这么多系统都是分布式的。每次上线,运维的同学都说:协调这么多系统,累坏了。

我们要做好持续集成,能够自动部署和测试(其实前端也是如此)。后来,一个革命性的技术docker出现了,它可以保持开发、测试和生成环境的一致性。系统最初只在环境(如Ngnix、JVM、Tomcat、MySQL等)上部署代码。),但现在代码和环境打包在一起,运维工作一下子就简化了。

公司自己买服务器很贵,维护起来很麻烦,很难灵活增长。然后,做一些虚拟服务器,硬盘和内存可以动态扩展。

展(反正是虚拟的), 访问量大的时候多用点,没啥访问量了就释放一点,按需分配,很方便,这就是云计算的一个场景。

  随着时间的推移,各个公司和系统收集的数据越来越多,都堆成一座大山了,难道就放在那里白白地浪费硬盘空间吗?

  有人就惊奇地发现,咦,我们利用这些数据搞点事情啊, 比如把数据好好分析一下,预测一下这个用户的购买/阅读/浏览习惯,给他推荐一点东西嘛。

可是这么多数据,用传统的方式计算好几天甚至好几个月才能出个结果,到时候黄花菜都凉了,所以也得利用分布式的技术,想办法把计算分到各个计算机去,然后再把计算结果收回来, 时势造英雄,Hadoop及其生态系统就应运而生了。

  之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。

4、怎么学好后端?

现在无论是前端还是后端,技术领域多如牛毛,都严重地细分了,所以我认为真正的全栈工程师根本不存在,因为一个人精力有限,不可能搞定这么多技术领域,太难了。

  培训机构所说的“全栈”,我认为就是前后端还在拉拉扯扯,藕断丝连,没有彻底分离的时候的“全栈”工程师。

  那么问题来了, 后端这么多东西,我该怎么学? 

  往深度挖掘,可以成为某个技术领域的专家,如搜索方面的专家、安全方面的专家,分布式文件的专家等等,不管是哪个领域,重点都不是学会使用某个工具和框架, 而是保证你可以自己的知识和技术去搞定这个领域的顶尖问题。

  往广度发展,各个技术领域都要了解,对于某种需求,能够选取合适的软件和技术架构来实现它,把需求转化成合适的技术组件,让这些组件以合适的方式连接、部署、运行,这也需要持续地学习和不断的经验积累。

这里小编是一个有着5年工作经验的前端工程师,关于web前端有一个完整学习web前端的路线,学习材料和工具。需要的伙伴可以私信我,发送“前端”就可以获取领取地址,免费送给大家。对于学习web前端有任何问题(学习方法,学习效率,如何就业)都可以问我。希望你也能凭自己的努力,成为下一个优秀的程序员!非常感谢大家的关注,让小编更有动力写文,比心。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。