码农翻身——什么是框架?

张大胖立志走上Java之路, 听了大神Bill的指点, 先学了Java SE, 把集合、线程、反射、IO、泛型、注解之类的基础知识学了一遍, 在Bill的严厉督促下,写了大量的代码。

 

然后开始学Web基础,什么Http, html, javascript , css , servlet, jsp , tomcat ...... 又是一大堆知识点。 他在网上找了一个小网站, 自己模拟着做了一下, 虽然不是专业美工, 界面惨不忍睹, 但总算是把功能模仿了七七八八, 很有成就感。

 

大胖拿去给Bill 看了, Bill 夸奖道: “嗯,功能实现的还可以, 没有用任何框架能做成这样子, 很不错。 ”

 

大胖说: “框架?  什么是框架?”

 

Bill 愣了一下: “ 你还突然把我给问住了, 我们整天开口框架,闭口框架, 现在让我给框架下个定义, 我还真说不出来, 让我想想。 ”

 

Bill 闭目养神, 大胖虔诚等待。

 

不到一炷香功夫, Bill睁开眼睛:“ 我来给你举个例子, 你不是刚刚用servlet和jsp做了小的Web项目吗, 假设有人出钱让你再做一个类似的系统,你会怎么办?”

 

“那我就把现在的代码复制一下, 在上面改改, 不就得了? ”

 

“如果有十个八个类似这样的项目呢, 难道你都通过复制粘贴来做吗?” Bill 问

 

“十个八个? 我还是跳楼去吧。  ”

 

“那你没有想想把其中重复的一些东西抽取出来, 形成可以复用的东西?”

 

张大胖说: “ 听你这么说,还真的有一点可以复用的东西, 比方说URL和业务代码的映射, 我经常会遇到类似这样的 url:  www.xxx.com?action=login , 在后台的servlet 中我就判断,  如果action 的名称是login ,   我就把userName, password 这样的参数从表单中提取出来, 执行登录的代码。  我得写很多的if else 才能支持不同的业务逻辑, 很折磨人。 有时候我就想, 要是有一种方法, 能够直接把URL和Java类直接映射起来就好了 ,  这样就轻松多了!”

 

“没错,这是一个很好的想法, 还有吗? ” Bill 笑着问。

 

“嗯。。。 再比如数据验证啊,比如登录时用户名或者密码出错, 我要在浏览器端显示错误提示信息,这个也很难搞啊, 错误提示的字体、颜色、图标、位置太烦人了。”

 

“还有吗?”

 

“对了,访问数据库也是个大问题, 我写了很多的SQL, 很多的JDBC 代码, 仅仅是为了把数据从数据库取出来, 放到Java 对象中去。 你肯定知道,直接用JDBC编程得处理很多细节问题:一定要记住关闭连接了, 处理异常了 。。。等等, 不瞒你说,很多代码都是我复制粘贴的。”

 

“难道你不能写一个通用的类, 传入SQL,返回结果集吗? ”  Bill 问道。

 

“那我肯定是写了, 但是把结果集变成Java 对象还有一段很长的路呢, 没啥技术含量, 纯粹体力活, 怪不得人家叫我们码农! ”  大胖愤愤的说。

 

Bill 说: “我刚才翻了翻你的代码, 我发现很多的地方都让人不爽啊, 比如你几乎把所有的业务逻辑都写到Servlet当中去了, 中间还掺杂者页面控制和跳转, 这么乱七八糟像意大利面条一样的代码过了一个月估计你自己都看不明白了。 ”

 

大胖不好意思的笑了: “不用一个月,  这刚过了一个星期我就犯晕了。”

 

“所以嘛, 其实你这些问题我们的前辈早就遇到了, 他们也苦苦探索, 不断寻找好的实现方式, 找到以后就把各种经验给固化下来, 称为最佳实践。”

 

“最佳实践?  能举个例子嘛!”

 

“比如在Web开发中就有一个很好的实践啊,叫做MVC。  就是针对你上面的业务逻辑和页面控制混在一起提出的解决办法。 这个实践会强烈的建议你把数据模型、页面展示、页面跳转控制分开来写, 防止搅成一团。”  

 

Bill意犹未尽, 继续举例: “再比如你说的第一个问题, 也早就有解决方案了, 可以利用XML或者Java注解来描述URL和Java 类之间的关系,你只需要声明一下, 背后的操作,都交由框架去处理了。  还有你的Java 对象和数据库表的对应关系, 也只需要声明一下,框架就可以帮你把数据取出来,填充到Java对象中去,这就极大的减轻了你的工作量。”

 

“Bill,   你又提到框架这个词了,可不可以这么说, 框架就像一个模板, 里边已经预置了一些公认的最佳实践,我要是想用的话, 把我项目相关的东西填充进去就可以了,是不是这样? ”

 

“可以这么理解, 框架像个半成品, 是无法独立运行的,必须由开发人员按照它定义的规则,把项目的代码放置到指定的地方, 由框架整合起来,这才是一个完整的应用程序。”

 

大胖挠着头说: “那框架其实也没什么啊, 我只要理解了那些最佳实践, 掌握了它的规则,可不就学会了吗?”

 

“没错, 现在很多Java Web系统都是基于像SpringMVC,  Hibernate, MyBatis这样的流行框架构造起来的,  框架不得不学, 但是如果只会使用框架, 只会填充代码, 那只是一个HTML填空人员。”

 

“那我学完了框架,可以用框架做项目了, 接下来学什么?” 大胖心里有点没底。

 

“你要是对Java 后端编程感兴趣, 还有很多东西啊, 用框架实现了业务只是很小一块, 还有系统架构设计, 缓存、性能、高可用性、分布式、安全、备份等很多内容啊, 你学的越多,就会发现无知的领域更多, 所谓学无止境啊!”

 

张大胖目视远方,沉默了。。。。。

假如时光能够倒流, 我会这么学习Java

什么是框架?

《餐馆点餐管理系统——基于Java和MySQL的课程设计解析》 在信息技术日益发达的今天,餐饮行业的数字化管理已经成为一种趋势。本次课程设计的主题是“餐馆点餐管理系统”,它结合了编程语言Java和数据库管理系统MySQL,旨在帮助初学者理解如何构建一个实际的、具有基本功能的餐饮管理软件。下面,我们将深入探讨这个系统的实现细节及其所涉及的关键知识点。 我们要关注的是数据库设计。在“res_db.sql”文件中,我们可以看到数据库的结构,可能包括菜品表、订单表、顾客信息表等。在MySQL中,我们需要创建这些表格并定义相应的字段,如菜品ID、名称、价格、库存等。此外,还要设置主键、外键来保证数据的一致性和完整性。例如,菜品ID作为主键,确保每个菜品的唯一性;订单表中的顾客ID和菜品ID则作为外键,与顾客信息表和菜品表关联,形成数据间的联系。 接下来,我们来看Java部分。在这个系统中,Java主要负责前端界面的展示和后端逻辑的处理。使用Java Swing或JavaFX库可以创建用户友好的图形用户界面(GUI),让顾客能够方便地浏览菜单、下单。同时,Java还负责与MySQL数据库进行交互,通过JDBC(Java Database Connectivity)API实现数据的增删查改操作。在程序中,我们需要编写SQL语句,比如INSERT用于添加新的菜品信息,SELECT用于查询所有菜品,UPDATE用于更新菜品的价格,DELETE用于删除不再提供的菜品。 在系统设计中,我们还需要考虑一些关键功能的实现。例如,“新增菜品和价格”的功能,需要用户输入菜品信息,然后通过Java程序将这些信息存储到数据库中。在显示所有菜品的功能上,程序需要从数据库获取所有菜品数据,然后在界面上动态生成列表或者表格展示。同时,为了提高用户体验,可能还需要实现搜索和排序功能,允许用户根据菜品名称或价格进行筛选。 另外,安全性也是系统设计的重要一环。在连接数据库时,要避免SQL注入攻击,可以通过预编译的PreparedStatement对象来执行SQL命令。对于用户输入的数据,需要进行验证和过滤,防止非法字符和异常值。 这个“餐馆点餐管理系统”项目涵盖了Java编程、数据库设计与管理、用户界面设计等多个方面,是一个很好的学习实践平台。通过这个项目,初学者不仅可以提升编程技能,还能对数据库管理和软件工程有更深入的理解。在实际开发过程中,还会遇到调试、测试、优化等挑战,这些都是成长为专业开发者不可或缺的经验积累
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值