Java后端技术概览

软件开发的核心原则

此处所说的是软件开发应该遵循的一些核心原则:

  • Don’t Repeat Yourself: 这是软件开发的一个基础原则,即不要做重复性劳动。也是现在所说的“极客文化”的一种。代码重复、工作重复在软件开发中都是不合理的存在。利用各种手段消除这些重复是软件开发的一个核心工作准则。
  • Keep it simple stupid:即KISS原则。在做软件设计的工作中,很多时候都不要想得过于复杂,也不要过度设计和过早优化,用最简单且行之有效的方案也就避免了复杂方案带来的各种额外成本。既有利于后续的维护,也利于进一步的扩展。
  • You Ain’t Gonna Need It: 即YAGNI原则。只需要将应用程序必需的功能包含进来,而不要试图添加任何其他你认为可能需要的功能。因为在一个软件中,往往80%的请求都花费在20%的功能上。
  • Done is better than perfect: 在面对一个开发任务时,最佳的一个思路就是先把东西做出来,再去迭代优化。如果一开始就面面俱到,考虑到各种细节,那么很容易陷入牛角尖而延误项目进度。
  • Choose the most suitable things: 这是在做方案选择、技术选型时候的一个很重要的原则。在面对许多技术方案、开源实现的时候,务必做到的是不能盲目求新,要选择最合适的而非被吹得天花乱坠的。

软件过程

一个软件的生命周期中,除了开发还有很多其他步骤,也都是需要掌握的一些技术。

  • 项目管理:项目管理对于一个软件的开发是非常重要的,能够保证项目进度有条不紊地进行,在可控的时间内以一定的质量交付。瀑布开发模型、螺旋开发模型是传统的项目管理模型。在互联网的开发工作中,敏捷开发则是比较受推崇的开发方式。所谓敏捷开发即快速实现原型,然后快速迭代。Scrum是目前普遍流行的敏捷开发方式之一。
  • 测试驱动开发:在平时的开发过程中,目前比较流行也是行之有效的一种方式就是Test Driven Develop,即测试驱动开发。此种方式的核心就是编写单元测试。简单来讲,就是先完成某一个功能的单元测试用例,然后在逐步消除测试用例的编译错误的过程中完成功能的开发。
  • 持续集成:某一个软件功能完成开发之后,后续还有测试、预发布、部署等过程。整个过程称之为集成,而持续集成指的是无需人工干预可以不断地进行这个过程。Jenkins、Quick Build都是比较典型的持续集成工具。

日常开发

日常开发指的是一些日常需要掌握的技能、工具等。

  • 编辑器:开发中现在用的比较多的编辑器包括Emacs、Vim和SublimeText。笔者用的最多的就是SublimeText,基本能够满足自己的开发需求,包括编写脚本代码、查看代码文件等。Vim和Emacs这两款编辑器相对SublimeText来说需要记住很多命令,有一定的上手门槛。
  • 源码版本管理:代码的版本管理工具由CVS到SVN再到现在的Git,已经在事实上形成了以分布式版本管理为主的版本管理方案。基于Git,可以采用Git Flow做为源码管理模型。
  • 项目工具:Github是一个第三方Git中央仓库,目前是世界最大的开源代码库,也能够做为私人的代码管理软件;Facebook开源的Phabrictor提供了非常强大的任务管理、Bug管理、测试、代码管理等,但其上手门槛相对较高;禅道是国人开发的一款项目管理工具,但是其免费版功能有限;以Tower.im为代表的第三方项目管理服务也是一个可选择的方案,风险在于数据都不再是私有的。

运行环境

后端应用开发完成之后是需要部署到服务器上对外提供服务的。从最开始的直接在物理机上部署服务到后来的虚拟环境、云环境再到现在火热的容器,直至最近兴起的无服务器技术。都是为了让服务的运行环境能够更加便于建立、更容易维护、更容易扩展。

  • Linux: 说到后端服务器肯定绕不过Linux。至少现在互联网的后端服务绝大多数都是部署在Linux的各种服务器版本中的。其中CentOS、Ubuntu以及Debian是用的比较多的版本。对于Linux,需要熟练掌握的就是很多常用Shell命令如ps、netstat、lsof、ss、df、dh等等。此外,很多性能分析命令如top、vmstat、iostat、sar等也需要熟练使用。
  • 应用服务器:就Java来讲,很多时候开发的都是Web应用,以HTTP协议对外提供服务。除了对性能要求比较苛刻的情况下会自己构建HTTP服务之外,大部分情况是需要依赖于支持Java程序的应用服务器的。目前最为常用的有࿱
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倾听铃的声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值