牛腩新闻发布系统--学习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初步的学习,最后也能将数据插入数据库了 但是一味的跟着别 ...
随机推荐
- Postgresql查询最近12个月、最近30天数据
-- 最近 12 个月 SELECT * FROM 表名 WHERE 日期字段 BETWEEN (now() - INTERVAL '12 months') AND now() -- 最近 30 天 ...
- Architecture : Describable Command and Identifiable Data
Architecture : Describable Command and Identifiable Data Description Terms Command A command is a fu ...
- 日历类和日期类转换 并发修改异常 泛型的好处 *各种排序 成员和局部变量 接口和抽象类 多态 new对象内存中的变化
day07 ==和equals的区别? ==用于比较两个数值 或者地址值是否相同. equals 用于比较两个对象的内容是否相同 String,StringBuffer.StringBuilde ...
- c++ Lambda表达式待修改
C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问. Lambda表达式的语法通过下图来介绍: 这里假设我们定义了一个如上图的lam ...
- FJUT寒假作业第三周数蚂蚁(记录第一道并查集)
http://210.34.193.66:8080/vj/Contest.jsp?cid=162#P7 思路:用并查集合并集合,最后遍历,找到集合的根的个数. 并查集是森林,森林中的每一颗树是一个集合 ...
- Ruby方法参数默认值的一个小技巧在Rails中的应用
我们需要生成一个gravatar格式的html.image标示,于是写了如下方法: def gravatar_for(user) gravatar_id = Digest::MD5::hexdiges ...
- Bootstrap3 代码-代码块
多行代码可以使用 <pre> 标签.为了正确的展示代码,注意将尖括号做转义处理. <p>Sample text here...</p> <pre>< ...
- RunLoop总结:RunLoop的应用场景(五)
今天要介绍的RunLoop应用场景感觉很酷炫,我们可能不常用到,但是对于做Crash 收集的 SDK可能会用得比较频繁吧.相比关于RunLoop 可以让应用起死回生,大家都听说过,可是怎么实现呢?今天 ...
- proc文件系统探索 之 根目录下的文件[二]
包括对proc根目录下stat,uptime,swaps三个文件的解析. /proc/stat 文件包含了系统启动后的一些系统统计信息. Cat /proc/stat: cpu 77781 1077 ...
- Activtiy完全解析(一、Activity的创建过程)
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/52452218 本文出自:[openXu的博客] 在Android开发过程中,我们几乎每天 ...