您的位置:首页 > 其它

约定大于配置

2017-03-17 10:52 176 查看
    有这么一句话:一流的公司定义规范。二流的公司实现规范。三流的公司精通实现。四流的公司会用实现。

    约定大于配置,早就知道这句话了,刚开始的时候只知道在咱们程序员的世界里有这么一句话。到现在刚刚有所理解。有一种茅塞顿开的感觉,也有一种说不出道不清的感觉。这篇重点讲下小编我对约定的理解。

   简单来说符合人类习惯,符合大多数人的习惯的约定就是一种好约定,能够简化咱程序员写的代码的约定就是好约定,能够使写出的代码可重用,可扩展的约定就是十分恰当的约定。在敲代码的世界里,面向对象的感觉就是比面向过程要舒服的多,因为它面向对象的约定符合我么的人类世界的各种习惯。所以面向对象才更加的广泛。为什么说面向对象更加 的广泛,因为我知道目前JAVA很火。

    从编程语言说起,从最开始的二进制机器语言,汇编语言,在往上就是咱们的面向过程语言,又到最近的面向对象的语言。再到现在各种强大的IDE的托管代码。在我们编写代码时,都清楚的知道,比价两个变量是否相等,两个变量是否大于或小于。我们直接就可以使用我们熟知的数学运算符,或者equals,"=="等各种各样我们看起来很舒服的运算符。而这在机器语言,汇编语言的时候可不是这样的,虽然小编我没有接触过,但我知道那肯定不如现在的编程这么简单。也可以这么说,前辈们和计算机达成了一个约定,这个约定让编程变得更加的简单。我们不需要知道这些代码执行的原理是什么,我们仅知道会用就可以了。所以编程变得简单了。所以有一个好的约定十分的重要。

       在看下面的约定,来自马士兵老师的学习。

在配置文件里,我们配置了两个Action,每个Action有不同的方法,每个方法又对应了不同的映射页面。如果有成千上百个页面,我们也得这么一个一个的配置。想要解决办法吗?

<action name="user_*" class="userAction" method="{1}">
<result name="registPage">/WEB-INF/jsp/regist.jsp</result>
<result name="input">/WEB-INF/jsp/regist.jsp</result>
<result name="loginPage">/WEB-INF/jsp/loginPage.jsp</result>

</action>
<action name="cart_*" class="cartAction" method="{1}">
<result name="addCart">/WEB-INF/jsp/cart.jsp</result>
<result name="clearCart">/WEB-INF/jsp/cart.jsp</result>
</action>


在看第二个约定,提前告诉你,这个约定大大简化了我们的配置。当然了这个约定得要求我们书写代码得有一定的规范。得事先让开发的每个人都按照这个约定来。

<action name="*_*" class="{1}" method="{2}">
<result name ="{1}_{2}success" >{1}_{2}.jsp</result>

</action>


看完第二个代码,是不是很爽,那么多的代码只需要一个简单的约定就可以了。

    当然了这是在敲代码的约定,其实距离上面的约定规范还远着呢。我们都知道IIS,JBoss,tomcat都能够发布我们的网站。为什么离开了他们我们就不可以发布网站了呢。首先发布网站,别人访问你的网站,这肯定涉及了计算机网络的相关知识吧。虽然这些东西都是由硬件自动来完成了,但是这些服务器应用程序肯定有它的一套规则。像J2EE的13个规范,IIS的ISAPI,处理程序映射。帮程序员完成了大量的工作。小编我就觉得其实我们一直在使用这些实现。当然了还有很多各种各样的框架,其实他们也是自动帮助我们完成了很多工作。

     约定,学习编程似乎就是在学习约定,其实不是这样的,小编又有了新的念头了,我们其实在使用别人的实现,比如:我们都知道tomcat实现了J2EE的jsp,servlet规范。tomcat不是J2EE的规范内容,他实现了J2EE的规范。我们就可以使用tomcat来进行JSP网页的开发。要不然为什么tomcat不启动,咱们的JSP页就打不开呢?从这方面说似乎距离约定又远了。那么作为程序员又应该怎么去做呢。

    小编认为作为程序员肯定要敲代码的啊,不过敲的过程也应该多多思考,总结出一套针对服务器的一些约定,然后按照这些约定去实现我们的业务流程,根据这些约定和业务流程,再制定我们的开发规范。可以这么说,我们的实现部分是在金字塔的最低层的。我们也得向上走不是,那么我们就得清楚的理解,这些规范了。

    一些想法,有什么偏颇的,还请指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: