2014年11月10日,是个难忘的日子,这一天,小编的BS学习开始了,BS的开头,从牛腩新闻发布系统开始,之前学习的内容都是CS方面的知识,软考过后,开始学习BS,接触BS有几天的时间了,跟着牛腩老师敲着牛腩新闻发布系统,感觉棒棒哒,看了前面二十集,发现牛腩老师真的是把党的思想贯彻的淋漓尽致,跟着牛腩老师一起学习,发现了很多让我怦然心动的小知识,每次都让我的小宇宙爆发,现在就把这些小技巧分享给小编的小伙伴。该博文小编主要讲解三个方面的知识。第一:如何让代码整齐美观,第二:代码的注释,第三:连接数据库的小技巧。

    第一:如何让代码整齐美观

为什么要写漂亮的代码?这点很重要,因为代码写出来,除了要跑起来之外,还有一个就是要看,你自己要看,别人也要看,如果写的很乱,很不清楚,日后自己回过头来看,那种感觉可以用春晚的一句话来概括了,恶心她妈妈给恶心开门,恶心到家了。那么什么才是漂亮的代码?首先,好看,至少整齐,不会有太长的行,不会有太长的变量名,批量赋值语句,初始化语句都对齐,有正确明显的缩进,也不会有太短的变量名。其次,好理解,这个特点很抽象,有些代码一看就懂,但是有写代码让你很费脑筋,所以,漂亮的代码,应该读起来很通顺,明白你的意图是什么,还有就是自然,每一个东西都顺理成章。最后,没阻力,这个可能更抽象了,而不是到处是规则,到处是限制,到处是制约关系,犹如跷跷板给人的那种感觉。

怎样写漂亮的代码,首先命名很重要,让代码告诉你她自己,那么命名到底有多重要呢,重要到这几乎是很多软件项目成功或者失败的罪魁祸首,究其原因,代码不光支撑了0和1在计算机系统中运行的业务逻辑,同时也是开发者进行交流与研究的标准语言,没有意义或者有歧义的命名,就像两个等待交流的人,面对了一堆火星文无从下口,让交流变成灾难,也就会导致很多问题,同时好的命名是自说明的,让代码告诉开发者我是谁,我做什么,我怎么做,当然,除了静态式的必要的注释说明之外,动态式的代码也可以包含传递信息的作用,让代码告诉你她自己,因为代码是“活代码”。在牛腩新闻发布系统中,牛腩老师教小编一个技巧就是,每次写完之后,都可以用ctrl+k,d。能很快的让我们的代码整齐起来,而且不是一横一横的对齐,是整个模块一下子就整齐了。有兴趣的小伙伴可以试一试哦,好神奇的说。

第二:代码的注释

注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性,以便于以后的参考、修改。注释是解释性文本,在运行程序时,会被程序跳过,不做处理,在小编的理解中,注释就类似于小编小时候学习文言文的时候,课本下方对古文中晦涩难懂的文字用现代话语翻译出来的过程,那么对于一个程序员来说,编程规范可谓是重中之重。还记得个人重构机房收费系统的时候,那个注释叫一个少啊,小编是改了又改,当然,不要狭义的把编程规范仅仅理解成是编码规范,整个软件开发过程都是需要规范的,软件工程本身就是一种规范。接下来,小编就给大家讲讲注释。

        在编码规范的世界里,注释扮演着一个领衔主演的角色。那么,注释到底怎么重要了呢?首先,从编码者自身的角度考虑。我们完成一个项目,一般来说不是一天两天就完成了,经常是需要几周,几个月,甚至是几年。想象一下,如果我们之前没有写上相应的代码注释,现在让我们看自己几个月之前写的代码,我们能看懂多少?我们需要多长时间去回想我们自己当时的思路?这不是浪费时间嘛!而这些都是可以通过写注释来弥补的。其次,从别人的角度考虑。我们写代码,不仅仅是给自己看的,更重要的是让别人也能看懂。在软件开发的过程中,维护占大部分比例。而维护工作者可能不是当初编写代码的人。你可能是高手,编写代码的能力很高,本来应该是一天的工作,结果,你没有写注释,半天完成了。表面上看,似乎你的工作效率挺高的。但是我们应该为别人着想一下,后期维护的人可能需要用两天,甚至更长的时间去理解你写的代码。这就是好多人不愿意做维护工作的原因。我们总说,作为一个合格的程序员,要时时刻刻为客户着想,难道我们就不需要为和我们一起奋战的同胞们想一想吗?最后,从公司的角度考虑。如果我们不写注释,一天的工作半天完成了,为公司节省了半天时间。可是,到维护的时候,维护人员可能花了两天的时间才看懂你的代码。可想而知,你为公司带来了多大的“利益”!试问,如果你是公司老板,你会雇佣这样的程序员吗?肯定不会!总之,注释很重要,它是程序员之间沟通的鹊桥。

有句话说的很好:“一个人的活着不仅仅为了自己”。所以我们的每一行代码都不是为了实现这个功能就够了,关键的地方在于维护,所以我们提到这个注释就相当的有必要了。刚刚我们说过,当我们的程序转交别人的时候,那么如果我们的代码没有注释,那么没有人愿意接着你的代码写,也会对未来的维护增加了不必要的麻烦。有些人说,用//注释,变绿色就好了。其实这样比不注释的要好多了,但是若是你用///,我想你会发现另一个世界。我们来看看这个效果:

先来看看,我们在SQLHelper中写的代码:

/// <summary>
       /// 执行查询SQL语句或存储过程
       /// </summary>
       /// <param name="cmdText">查询SQL语句或存储过程</param>
       /// <param name="ct">命令类型</param>
       /// <returns></returns>
        public DataTable ExecuteQuery(string cmdText,CommandType ct)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(cmdText,GetConn());
            cmd.CommandType = ct;
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                  dt.Load(sdr);
            }
            return dt;
        }

然后,我们调用这个方法的时候,会有什么样神奇的画面出现捏:

第三:如何安全连接数据库

从VB机房收费系统一直走到现在,看到很多小伙伴连接数据库,若是用SQL Server 身份验证,用户名是sa,密码是:123456,感觉挺好,好记,但是之后发现这个很太多人用了,一般人多测试都用这个,所以自己的数据库别人闭着眼睛都能进去,安全性没有保障。有的小伙伴可能会说,数据库进行一次操作就连接一次,那么就不停的用:

string connStr=@"server=(local);database=newssystem;uid=sa;pwd=123456"

其实按照高内聚和低耦合的原则来讲,这是不符合要求的。然后我们就需要不断的找这句话,然后一处地方一处地方的更改,万一手一哆嗦,少改了一个,或者多了那么一个空格,就出不来结果了。是我们在web.config里边连接数据库,这样当我们的电脑需要更改连接数据库密码的时候,我们就方便多了。

<?xml version="1.0" encoding="utf-8"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>

    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>

  <appSettings/>
  <connectionStrings>
    <add name ="connStr" connectionString=" server=(local);database=newssystem;uid=sa;pwd=123456"/>
  </connectionStrings>

</configuration>

若是我们更改密码的时候,我们直接修改pass的值就搞定了,不必在代码里面进行修改,因为这是在一个外部的文件里边,我们只需要用文本打开这个文件:我们在保存我们的web的程序找找到了web.config这个文件,我们打开之后就是能直接修改。这是顺便介绍的一个技巧。我们接下来还是看我们的关键部分:

我们的DAL里边,SQLHelper里边这样写:

       连接数据库部分:

public sqlHelper()
       {
           string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
           conn = new SqlConnection(connStr);
       }

这个好处就不言而喻了。但是别忘了添加一个.net引用“System.Configuration"如图:

否则你的ConfigurationManager出不来,下一步就无法进行了。

小编寄语:该博文是小编第一次写BS方面的知识,内心小小的激动,该博文小编主要了三个方面的小知识,第一,如何让代码整齐美观,第二,代码的注释;第三,如何安全连接数据库,这小小的知识就像是BS路上的一朵朵小小的浪花,期待着这些小小的浪花激起惊涛骇浪,让我们在IT之路上越走越远......


牛腩新闻发布系统--学习Web的小技巧汇总的更多相关文章

  1. 牛腩新闻公布系统--学习Web的小技巧汇总

    2014年11月10日,是个难忘的日子.这一天.小编的BS学习開始了.BS的开头,从牛腩新闻公布系统開始.之前学习的内容都是CS方面的知识,软考过后.開始学习BS,接触BS有几天的时间了,跟着牛腩老师 ...

  2. DRP PK 牛腩新闻发布系统

    一.JSP与ASP (1)Web服务器的支持:大多数通用的Web服务器如:Apache.Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Pers ...

  3. 牛腩新闻发布系统(五):VS网站发布及常见问题

    导读:在千万个回眸中,终于看见了牛腩的归途.好吧,牛腩该整合的都整合完毕了,到了发布的时候了.这时候,不得不再次感慨那句不知道感慨了多少次的感慨:为什么,我要遭遇这么多的坎坷?下面,结合自己的情况,说 ...

  4. 牛腩新闻发布系统(三):CSS盒子模型及其基本内容

    导读: 这些天一直在做牛腩的网页,比如什么首页.出错页.新闻内容页等.在学习的不断推进中,一些刚开始理解的不是很好的东西,也逐渐的深刻了起来.下面,就对这一段时间的学习,做一个总结.主要总结内容有:盒 ...

  5. WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping——牛腩新闻发布系统

    VS2011使用验证控件出现" WebForms UnobtrusiveValidationMode 需要"jquery"ScriptResourceMapping.请添 ...

  6. 牛腩新闻发布系统(二):SQLHelper重构(二)

    导读:在上一篇博客中,介绍了简单的SQLHelper重构,即数据库链接,打开和关闭链接的优化等.现在,将介绍参数化查询和执行命令类型的改造. 一.必要性 1,参数化查询 在上篇博客中,在查询的时候,仅 ...

  7. 牛腩新闻发布系统(一):SQLHelper重构(一)

    导读:在机房重构的时候,就用到了SQLHelper,但那时候即使把代码反复看了很多遍,也看了注释,还和同学交流,也依然是半懂不懂.现在,我再次用到了SQLhelper这个东西,就来说说SQLHelpe ...

  8. 【牛腩新闻公布系统】WebForms UnobtrusiveValidationMode 须要“jquery”ScriptResourceMapping。

    问题:       WebForms UnobtrusiveValidationMode须要"jquery"ScriptResourceMapping. 请加入一个名jquery ...

  9. 【NodeJS 学习笔记04】新闻发布系统

    前言 昨天,我们跟着这位大哥的博客(https://github.com/nswbmw/N-blog/wiki/_pages)进行了nodeJS初步的学习,最后也能将数据插入数据库了 但是一味的跟着别 ...

随机推荐

  1. text-size-adjust: none并没有什么用

    在样式文件中添加text-size-adjust: none,并没有什么用,移动端浏览器自动调整字体大小还是在进行,webkit已取消对其支持,移动端避免浏览器因为横屏.竖屏模式自动缩放字体大小可以加 ...

  2. angularJS入门笔记

    1.debug调试工具:batarang2.ng指令 1.ng-app=" " 定义angularJS的使用范围:----main方法,入口 ng-app="myModu ...

  3. 电子凭证 : Java 生成 Pdf

    来源:蛙牛, my.oschina.net/lujianing/blog/894365 如有好文章投稿,请点击 → 这里了解详情 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中 ...

  4. DEV中svg图标的使用

    0.开始之前 先看看使用效果 在操作栏的使用: 在菜单中的使用 1.简述SVG图标 中文名:可缩放矢量图形 外文名:Scalable Vector Graphics 外语缩写:SVG 开发商:万维网联 ...

  5. (一)python基础知识

    Python:解释型语言(一边翻译一边运行)注释:单行注释(#).多行注释(ctrl+/):''' '''和""" """ (python2 ...

  6. markdowm写博客测试

    markdowm测试文档 #include <bits/stdc++.h> using namespace std; int main() { printf("Hello Wor ...

  7. Android简易实战教程--第五十一话《使用Handler实现增加、减少、暂停计数》

    转载博客请注明出处:道龙的博客 之前,写过一篇使用异步任务AysncTask实现倒计时的小案例,喜欢的话可以参考博客:Android简易实战教程--第三十三话< AsyncTask异步倒计时&g ...

  8. springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)

    springMVC对Controller执行过程中出现的异常提供了统一的处理机制,其实这种处理机制也简单,只要抛出的异常在DispatcherServlet中都会进行捕获,这样就可以统一的对异常进行处 ...

  9. Python动态展现之一

    首先: def f(): print('first') def g(): f() g() def f(): print('second') g() 结果: >>> first sec ...

  10. Spark技术内幕:Shuffle Map Task运算结果的处理

    Shuffle Map Task运算结果的处理 这个结果的处理,分为两部分,一个是在Executor端是如何直接处理Task的结果的:还有就是Driver端,如果在接到Task运行结束的消息时,如何对 ...