前些日子有一位前辈说如果一个C#出身的项目经理来领导一群java程序员,那么这些多半会疯掉。java相对于C#而言开发效率比较低。

在javaWeb开发总是有一大堆的配置文件要去配置和修改,随着工程的进展,这些配置文件的内容极具增长。比如在Struts1.2中要去配置FormBean,如果工程中Form很多的时候,配置FormBean的配置文件自然就会分开写一个文件,配置文件的管理从一堆一叠分离到根据不同需要来书写,但是FormBean这些类还是无法避免,这样导致类的数量变得庞大。

当然,面对所有的软件开发过程中的恐慌,重复,人类艺术家们总能够寻找到解决之道。java软件开发的灵活性在这些地方清晰可见。有这样的一种现状:比如Struts +Hibernate+Spring实战宝典啊,框架学习等等一些书中,发现作者总是有意无意的告诉读者,这些框架的东西是为了解决大型项目中遇到的问题,将开发人员从重复的劳动中解救出来,更专注与项目的实际业务逻辑的处理。

程序员们从来都不缺乏时间,但是从来都不会浪费时间。框架是开发人员的自救之路,也是面对软件危机艺术家们采取的一种解决方法。

毫无疑问,在我感到重复编写FormBean类的时候,我总是偷一下懒,尝试寻求新的路径来避免这样的工作。对于程序员来将,偷下懒的时间越多越有成就感。

框架的优势就体现出来了。

如下代码:

  1. <h1>
  2. 动态ActionForm
  3. </h1>
  4. <hr>
  5. <form action="dynaAction.do" method="post">
  6. 姓名:
  7. <input type="text" name="userName" id="userName" />
  8. 年龄:
  9. <input type="text" name="userAge" id="userAge" />
  10. <input type="submit" value="提交" />
  11. <input type="reset" name="重置">
  1. </form>

这样的一个提交表达,当然要写一个FormBean。可是下面的动态配置就可以避免这样的代码编写。

  1. <!-- 配置动态ActionForm -->
  2. <form-beans>
  3. <form-bean name="dynaForm"
  4. type="org.apache.struts.action.DynaActionForm">
  5. <form-property name="userName" type="java.lang.String" />
  6. <form-property name="userAge" type="java.lang.Integer" />
  1. </form-bean>

配置文件中对FormBean进行配置,配置后的FormBean的类型是DynaActionForm它继承了ActionForm因此作用是一样的,但是这样避免了类的数量的增加。

其实在Java开发中这样的处理问题的思路还是很多的。Hibernate的实体映射配置文件使用注解写在java代码中,提高效率。JPA,Spring在具有文件配置的同时也都采用了注解。

思来想去,面对这么庞杂的知识点,怎样才能从容以对?轻量级框架,重量级框架,还有什么超轻量级框架。同一问题不同的解决方法,没有对与错,全在围绕着效率,方便,开放,耦合度,易读,安全等等展开。

当创造一样东西的时候,并不能毁灭一样东西,只能交给时间来处理,不过只要解决了当前最为重要最为紧迫的问题之后,我们有必要让这个亲手创造来的东西活的更久一些。

本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/949336,如需转载请自行联系原作者

从动态表单得到的一些思考相关推荐

  1. 动态表单工作量给后端

    动态表单工作量给后端 让前端远离互相伤害 一个IT公司的日常就是程序员.产品经理.UI等同事们的互相残杀: 应用,不少前端就备受煎熬,除了修改需求的魔咒外,还有后端的重构和调整接口诅咒,即便需求没改, ...

  2. element手机验证格式_基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)...

    前言 开发过程中遇到了一个需求,根据用户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的 在线访问:动态表单校验 github(欢迎star): https://github.com ...

  3. Vue.js+ElementUI+vant生成动态表单配置

    前言 我司最近在搭建一款后台管理系统,使用的是Vue全家桶配合Element-ui,遇到一个问题,需要处理很多的表单,所以想到的解决方案是通过后台配置生成动态表单,这对于我来说也算是新的挑战,涉及的功 ...

  4. Angular动态表单生成(八)

    动态表单生成之拖拽生成表单(下) 我们的动态表单,最终要实现的效果与Form.io的在线生成表单的效果类似,可以参考它的demo地址:https://codepen.io/travist/full/x ...

  5. angular4更改表单中显示的值_Angular 4 动态表单教程 Reactive Forms教程

    动态表单(React Forms)是一种动态构建表单的技术,用于解决有时候手动编写和维护表单所需工作量和时间会过大的问题.特别是在需要编写大量表单时.表单都很相似,而且随着业务和监管需求的迅速变化,表 ...

  6. 动态表单实现客户端二次过滤及字段汇总统计

    最终效果 动态表单  1.表格分录首行出现客户端二次过滤行 2.表格分录最后一行出现汇总行 实现代码 转载于:https://www.cnblogs.com/fyq891014/p/4188779.h ...

  7. jsf表单验证_动态表单,JSF世界期待已久

    jsf表单验证 新的PrimeFaces扩展版本0.5.0带来了新的DynaForm组件. 通常,如果知道行/列的数量,元素的位置等,则可以通过h:panelGrid或p:panelGrid构建非常简 ...

  8. 动态表单,JSF世界早已等待

    新的PrimeFaces扩展版本0.5.0带来了新的DynaForm组件. 通常,如果知道行/列的数量,元素的位置等,则可以通过h:panelGrid或p:panelGrid来构建非常简单的表单. 对 ...

  9. java中显示动态信息的方法_java里的动态表单技术

    最近的一个项目,由于客户的需求等信息不确定,为了降低以后修改的成本及产品的推广考虑到动态表单技术,之前也一直在考虑到动态表单技术,毕竟在delphi里已经实现过了,由于我们采用的hibernate的执 ...

最新文章

  1. 机器学习PAL产品优势
  2. 全球43亿IPv4地址正式耗尽,IPv6才是物联网的菜
  3. linux tf命令,Linux 基础命令
  4. 2019春第一次课程设计实验报告
  5. 37、Power Query-不使用IF嵌套进行匹配
  6. matlab静态变量怎样分配内存,matlab中的静态变量
  7. 『设计模式』撩妹秘籍竟是使用设计模式的抽象工厂模式
  8. linux 查看进程
  9. 卡尔曼_卡尔曼估计两步法
  10. java学习(155):序列化
  11. 《计算机网络 自顶向下方法》 第2章 应用层 Part1
  12. 微型计算机系统三层结构,微型计算机系统结构图.doc
  13. colorui开发文档_小程序原生高颜值组件库--ColorUI
  14. 线性动力学问题(二)
  15. 阿里字体图标库的使用
  16. matlab窄带水平集,窄带水平集方法
  17. Android之简单本地音乐播放器
  18. 2020vue运行出现ESLint is disabled since its execution has not been approved or denied yet. Use the ligh
  19. 迈思德物联网网关问答集锦
  20. 【BZOJ-1194】潘多拉的盒子 拓扑排序 + DP

热门文章

  1. 深度学习 keras_Keras深度学习教程
  2. python exec_Python exec()
  3. 2021年,产品经理是否仍在招聘风口?多年火热是否只是泡沫?
  4. 为什么C++编程让人觉得那么难学?
  5. 悄悄告诉你Java面试必备技能是什么?
  6. 作为一个产品经理,产品文档该怎样写
  7. redis cluster所有节点IP修改处理方案
  8. 利用人工智能“解锁”世界音乐
  9. 持续集成实践二之Jenkins与Sonar Qube集成
  10. Spark分区详解!DT大数据梦工厂王家林老师亲自讲解!