牛腩新闻发布系统--学习Web的小技巧汇总
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的小技巧汇总的更多相关文章
- 牛腩新闻公布系统--学习Web的小技巧汇总
2014年11月10日,是个难忘的日子.这一天.小编的BS学习開始了.BS的开头,从牛腩新闻公布系统開始.之前学习的内容都是CS方面的知识,软考过后.開始学习BS,接触BS有几天的时间了,跟着牛腩老师 ...
- DRP PK 牛腩新闻发布系统
一.JSP与ASP (1)Web服务器的支持:大多数通用的Web服务器如:Apache.Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Pers ...
- 牛腩新闻发布系统(五):VS网站发布及常见问题
导读:在千万个回眸中,终于看见了牛腩的归途.好吧,牛腩该整合的都整合完毕了,到了发布的时候了.这时候,不得不再次感慨那句不知道感慨了多少次的感慨:为什么,我要遭遇这么多的坎坷?下面,结合自己的情况,说 ...
- 牛腩新闻发布系统(三):CSS盒子模型及其基本内容
导读: 这些天一直在做牛腩的网页,比如什么首页.出错页.新闻内容页等.在学习的不断推进中,一些刚开始理解的不是很好的东西,也逐渐的深刻了起来.下面,就对这一段时间的学习,做一个总结.主要总结内容有:盒 ...
- WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping——牛腩新闻发布系统
VS2011使用验证控件出现" WebForms UnobtrusiveValidationMode 需要"jquery"ScriptResourceMapping.请添 ...
- 牛腩新闻发布系统(二):SQLHelper重构(二)
导读:在上一篇博客中,介绍了简单的SQLHelper重构,即数据库链接,打开和关闭链接的优化等.现在,将介绍参数化查询和执行命令类型的改造. 一.必要性 1,参数化查询 在上篇博客中,在查询的时候,仅 ...
- 牛腩新闻发布系统(一):SQLHelper重构(一)
导读:在机房重构的时候,就用到了SQLHelper,但那时候即使把代码反复看了很多遍,也看了注释,还和同学交流,也依然是半懂不懂.现在,我再次用到了SQLhelper这个东西,就来说说SQLHelpe ...
- 【牛腩新闻公布系统】WebForms UnobtrusiveValidationMode 须要“jquery”ScriptResourceMapping。
问题: WebForms UnobtrusiveValidationMode须要"jquery"ScriptResourceMapping. 请加入一个名jquery ...
- 【NodeJS 学习笔记04】新闻发布系统
前言 昨天,我们跟着这位大哥的博客(https://github.com/nswbmw/N-blog/wiki/_pages)进行了nodeJS初步的学习,最后也能将数据插入数据库了 但是一味的跟着别 ...
随机推荐
- python3全栈开发-多进程的守护进程、进程同步、生产者消费者模式(重点)
一.守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes a ...
- 关于return的一些了解
写return是一种清晰的风格,可以防止一些意外的错误. 所以书上只说应该写,而不是必须写. 如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到"}&q ...
- Servlet技术 Cookie与Session
会话过程:用户打开浏览器,点击链接访问资源,最后到关闭浏览器的整个过程称之为会话. 会话使用:与服务器进行会话的过程中产生数据,数据被保存下来,服务器根据数据对客户进行辨别,做出个性化的响应. 介绍两 ...
- 异常处理&RandomAccessFile&节奏感
异常处理 异常处理方面的知识,下面是学习中记的笔记: try尝试捕获异常 catch对捕获的异常进行处理 多个catch要注意的问题: 一.顺序问题,先小后大,也就是先子类后父类.因为当异常出现的时候 ...
- UIkit复习:UIContorl及子控件的剖析
1.模块继承关系: 1.UIButton ->UIControl -> UIView 2.UILabel ->UIview 3.UIImageVie ...
- ACM Tempter of the Bone
小狗在古老的迷宫(maze)中发现了一个骨头,这使它非常着迷.然而,当他把它捡起来的时候,迷宫开始摇晃,狗狗可以感觉到地面下沉(sinking).他意识到这块骨头是一个陷阱(trap),他拼命地想摆脱 ...
- R语言:安装及使用
http://blog.csdn.net/pipisorry/article/details/53640638 ubuntu下安装 sudo apt-get install -y r-base源码安装 ...
- Java集合框架总结
java集合框架主要分为实现了Collection接口的List和Set.映射接口Map. |-- List 有序,元素都有索引,可重复. |-- Set 无序,不可以存储重复的元素. |-- Map ...
- Android图表库MPAndroidChart(十)——散点图的孪生兄弟气泡图
Android图表库MPAndroidChart(十)--散点图的孪生兄弟气泡图 起泡图和散点图如出一辙,但是个人认为要比散点图好看一点,我们来看下实际的演示效果 这个和散点图的实现很相似,我们一起来 ...
- JAVA面向对象-----成员内部类访问细节
JAVA面向对象-–成员内部类访问细节 私有的成员内部类不能在其他类中直接创建内部类对象来访问. 如果内部类中包含有静态成员,那么java规定内部类必须声明为静态的访问静态内部类的形式:Outer.I ...