技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

随笔分类 -  代码风格&质量

上一页 1 2 3 4 5 6 下一页

重构:仔细查看,改进代码
摘要:http://www.csdn.net/article/2013-06-25/2815981-Refactoring-is-the-art-of-changing重构是一门改变已经正常的工作的艺术。但是重构是需要理由的。可能是设计改进,性能问题,安全角色或者很多其他的原因。我建议你进行一个练习:当你第二天早晨开始工作的时候,重新审视你的项目源码,尝试发现进行重构的机会。就算你的领导没有要求,仍然去做。因为在工作中,你希望有一些激动人心的时候。重构是一门改变已经正常的工作的艺术。但是重构是需要理由的。可能是设计改进,性能问题,安全角色或者很多其他的原因。改进程序的技术缺点是要冒风险的,尽管能够使 阅读全文

posted @ 2013-06-27 08:52 codestyle 阅读(347) 评论(0) 推荐(0) 编辑

日志打印
摘要:http://blog.csdn.net/mgoann/article/details/5681759日志打印日志重要性日志规则日志格式1、日志重要性日志无论是在开发过程还是定位问题以及了解应用的运行轨迹都有非常重要的意义。日志打印也是一项技术活,好的日志对日后的维护工作带来意想不到的帮助。通过日志的打印来定位问题通过日志的打印了解应用的运行轨迹通过日志完成性能调优通过日志了解应用状态2、日志规则l打印日志是用来分析的不是用来看的日志有很大一部分作用是用来分析的。打印出便于分析的日志,就是好的日志。便于分析可以从生产环境来考虑,大部分的生产环境都是Linux操作系统,Linux操作系统文本分析 阅读全文

posted @ 2013-06-04 15:22 codestyle 阅读(1480) 评论(0) 推荐(0) 编辑

awk新风格(模块化)的业务代码
摘要:main.sh (程序入口代码)参数DEBUG会决定logging模块的debug函数是否输出日志以方便调试,这其实是我目前形成的理念之一:一旦我决定在这里写下一个输出语句方便调试,那么这个语句我就不会再删除了我见过很多的研发人员(包括以前的我自己)喜欢在程序里加上一堆输出语句(alert,printf,MessageBox)打印一堆没有什么含义的语句(例如ssssssss,111111)以及变量的值,之后再删掉,删掉之后在添加,添加之后再删除。。。其实,他们是为了确定程序状态,看看程序有没有运行到添加输出语句的位置,或者想想看看程序在那个时刻的值到底是啥,但是他们觉得这些日志语句不属于业务逻 阅读全文

posted @ 2013-05-26 19:53 codestyle 阅读(409) 评论(0) 推荐(0) 编辑

一个BUG的发现过程
摘要:首先是项目代码:statAd是我的功能模块API,他的功能定义是累加某个广告在某个投放位置的pv和uv(存到一个全局数组LIST里)详细说明:pv的概念大家很清楚就是浏览广告的人次,uv的概念则是某个时间段内,浏览过的人数(非人次,一人浏览多次算多个PV但只算一个UV);输入其实是已经经过初步计算的数据,它标识了一个人在某个页面浏览过某过个广告的次数,但是一个广告可以投放到多个页面,所以一个人可以在不同页面浏览相同的广告,这在输入数据里就会被当做多笔输入;下面是这个API的输入输出定义输入:userid(用户身份),adid(广告标示),adflag(广告投放位置),pv(该人已在此广告位置浏 阅读全文

posted @ 2013-05-22 20:16 codestyle 阅读(1391) 评论(1) 推荐(1) 编辑

转:談談gawk 裡的 igawk
摘要:http://bbs.chinaunix.net/thread-1450345-1-1.html我們寫腳本,很多情況下是一次性的,所以傾向寫一些常用的函數掉用,例如我的$HOME/lib/awk 就寫了一些函數, 然而怎樣掉用這些函數,不成每用一次就複製到腳本上,我在命令列又如何掉用呢?鑑於這種需求,Gnu awk為使用者提供了一個變量,和一個可以包含你寫的函數的命令,他們就是 AWKPATH 和 igawkAWKPATH 這個變量內定的路徑為 , 手冊上答案是.:/usr/local/share/awkhttp://www.gnu.org/manual/gawk/html_node/AWKP 阅读全文

posted @ 2013-05-15 01:22 codestyle 阅读(376) 评论(0) 推荐(0) 编辑

awk的模块化方案,在这公司苦逼很久以后想到的
摘要:test.sh#!/bin/shecho demos | igawk -f test.awktest.awk#!/usr/bin/igawk -f@include common.awk{ filename = $0 makeArray(filename,array) printArray(array) makeInsertSQL("aaa",array,"test.sql")}common.awkfunction sayHello(s,_ARGVEND_){ print "hello "s}function makeArray(fil 阅读全文

posted @ 2013-05-14 20:15 codestyle 阅读(445) 评论(6) 推荐(0) 编辑

C#: GC
摘要:1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Data; 6 using System.Data.SqlClient; 7 8 namespace FreeResource 9 {10 class TestConn11 {12 public void openConn(int i)13 {14 string connstr = "server=(lo... 阅读全文

posted @ 2013-05-11 20:52 codestyle 阅读(316) 评论(0) 推荐(0) 编辑

错误处理
摘要:仗剑独行(58****82)10:37:35void main(){ FILE *fp = open(); //假定fp是有效的 char *p = malloc(100); //假定也获得了内存 if(test()==error) { //这里的错误处理其实就是放掉资源 //关闭句柄,放掉之前申请的内存之类 fclose(fr); free(p); } ...} 仗剑独行(58****82)10:38:00你们公司的错误处理是这个意思吧 SH_漫总#MM(2*****48)10:38:35fopen? 一看就不是我们写的... 阅读全文

posted @ 2013-05-01 19:32 codestyle 阅读(244) 评论(0) 推荐(0) 编辑

重写之后的脚本。希望还好
摘要:#!/bin/sh################################################ ## author:lishujun ## date:2013-4-17 ## use:$./testread.sh 20130425 ## ##########... 阅读全文

posted @ 2013-04-30 19:18 codestyle 阅读(198) 评论(0) 推荐(0) 编辑

如何提升代码可读性?其实不是你想的那样
摘要:英文原文:What Makes Code Readable: Not What You Think 作为开发者,可能会经常听到“代码首先是写给人看的”、“写可读的代码相当重要”等等。 对于如何使代码的可读性更强,开发者往往都有自己的看法。那么你可曾仔细想过什么才能真正使代码可读性增强。 一些标准答案 无论你使用什么编程语言,你都可能会认同下面的建议可以增强代码的可读性:好的变量、方法、类名一个变量、类、方法只做一件事一致的缩进,一致的格式减少代码中的嵌套级别当然,还有很多其他标准答案,比如Clean Code(Robert Martin 著)和Code Complete(Steve... 阅读全文

posted @ 2013-04-28 01:24 codestyle 阅读(669) 评论(0) 推荐(0) 编辑

云风的个人空间 : 《代码大全》读书笔记
摘要:P7把主要精力集中于构建活动,可以大大提高程序员的生产率。在最近的一个项目中,对于这一点,我是深有体会。我们花了很长的时间做设计,结果接下来的许多工作都在愉快的心情下完成。我觉得 P28 的那个食物链的例子更有说服力,健康的生态环境中,海鸥吃新鲜的鲑鱼,鲑鱼吃新鲜的青鱼,青鱼吃新鲜的水蝽。这是一条健康的食物链。如果环境被污染了,水蝽在污染的水域游泳,那么海鸥,食物链的最后一环吃下的不仅仅是是不健康的鲑鱼体内的垃圾,还有青鱼,水蝽体内的污染物。软件开发中,架构师吃掉需求,设计师吃掉架构,程序员,软件食物链的最后一环,消化掉设计。如果一开始就被污染了,我们就不要指望程序员快乐了。整个软件都会具有放 阅读全文

posted @ 2013-04-25 00:16 codestyle 阅读(410) 评论(0) 推荐(0) 编辑

awk消除重复代码的方案1
摘要:#!/bin/shawk 'function createArray(filename,arrayname){ while(getline<filename == 1)#等于1的判断是必须的,否则文件不存在会产生死循环 { arrayname[$1] = $2 print arrayname[$1] } print ""}END{ createArray("aaa.txt",a); createArray("bbb.txt",b); print "output content of aaa.txt" 阅读全文

posted @ 2013-04-24 17:04 codestyle 阅读(220) 评论(0) 推荐(0) 编辑

这个例子看完,发现不是神马代码都需要重构
摘要:http://www.iteye.com/topic/118386 阅读全文

posted @ 2013-04-23 01:08 codestyle 阅读(169) 评论(0) 推荐(0) 编辑

代码抽象层次
摘要:看了kent的实现模式,对代码抽象层次有了一点理解,kent首先问了一个问题,下面的代码有神马问题?void compute(){ int flag = input(); flag |= 1; output(flag);}粗看来没有,但其实不然,但其实,input和output已经是高层抽象了,例如你并不知道输入来自于何方,到底是键盘输入呢,还是文件输入,又或者是网络输入,同样output也是如此,但是中间设置flag的语句则是一个低层抽象,如果整个函数都是低层抽象,代码应该是这样:void compute(){ int flag = 0; scanf(... 阅读全文

posted @ 2013-04-22 14:15 codestyle 阅读(1980) 评论(2) 推荐(1) 编辑

这是我写的
摘要:因为英文太烂,写不了英文注释,说以在这补一下这个脚本的功能说明:这个脚本是统计书籍的订购量,订购用户数,浏览量等信息(以天为单位),这里的书籍,是按章销售的,所以记录的最小粒度是章节的订购量,订购用户,那么脚本就需要根据bookId为唯一标识,去累加各章(在某一天的)的数据,汇总到一本书下。基本流程是:清理上次计算产生的临时文件下载最新的数据到临时文件统计 并将结果生成SQL脚本执行SQL脚本入库其中统计又分为3.1从临时文件创建一个books数组(他是一个复合数据结构,每本书的属性都可以通过books[id,"属性"]索引)3.2遍历章节销售记录,根据记录里的bookId 阅读全文

posted @ 2013-04-14 20:43 codestyle 阅读(361) 评论(1) 推荐(0) 编辑

我发誓,这真不是我写的
摘要:1 #!/bin/sh 2 3 echo "$0 start at `date +"%F %k:%M:%S"`" 1>&2 4 5 cd /www/scripts/stat/ 6 . stat_date.sh 7 . dblist.sh 8 9 . public_func 10 11 stat_date=`riqi $1` 12 instime=`date -d"$stat_date" +'%F'` 13 last_date=`date -d"$stat_date 1 day ago" 阅读全文

posted @ 2013-04-14 20:39 codestyle 阅读(433) 评论(0) 推荐(0) 编辑

Awk 中变量作用域的问题(Awk模块化,转载者自己添加的补充信息)
摘要:http://www.ibm.com/developerworks/cn/linux/l-cn-awkf/温 泉(saphires@sohu.com), 软件工程师, 捷思锐科技(北京)有限公司简介:本文从两个错误的例程开始,提出 Awk 中全局变量污染的现象,并分析其发生的原因。接下来,针对 Awk 变量作用域的特点,提出两种避免全局变量污染的常用方法,引出 Awk 中定义局部变量的方法,并提出修改过后的代码。然后,通过 Awk 的变量调试功能,提出修改过后代码存在的不足,并引出编写通用函数应注意的地方。最后,通过简单说明 Awk 中包含头文件的方法,倡导大家更科学,更有效的使用 Awk 这 阅读全文

posted @ 2013-04-03 11:07 codestyle 阅读(686) 评论(0) 推荐(0) 编辑

一次还算成功的重构实例
摘要:帮朋友重构的,重构的原则:消除过多的变量,消除控制结构的嵌套重构之前 1 protected void btnSubmit_Click(object sender, EventArgs e) 2 { 3 string content = this.txtContent.Value; 4 string phones = ""; 5 string[] arrphone = null; 6 7 int mobilenum = 0; //输入的号... 阅读全文

posted @ 2013-03-30 21:43 codestyle 阅读(275) 评论(0) 推荐(0) 编辑

王垠:程序设计里的“小聪明”(1)
摘要:很早就想写这样一篇博文了,可是一直没来得及动笔。在学校的时候,时间似乎总是不够用,因为一旦有点时间,你就想是不是该用来多看点论文。所以我很高兴,工作的生活给了我真正自由的时间,让我可以多分享一些自己的经验。 我今天想开始写这系列文章的原因是,很多程序员的头脑中都有一些通过“非理性”方式得到的错误观点。这些观点如此之深,以至于你没法跟他们讲清楚。即使讲清楚了,一般来说也很难改变他们的习惯。 程序员的世界,是一个“以傲服人”的世界,而不是一个理性的,“以德服人”的世界。很多人喜欢在程序里耍一些“小聪明”,以显示自己的与众不同。由于这些人的名气和威望,人们对这些小聪明往往不加思索的吸收,以至于不.. 阅读全文

posted @ 2013-03-15 18:36 codestyle 阅读(491) 评论(1) 推荐(0) 编辑

个人觉得还可以的php代码,老大不买账
摘要:function pageFactory($path,$layout){ $factorys = Array ("template/1.html"=>TemplatePage1); return new $factorys[$layout]($path,$layout);}class Page{ public $path = null; public $layout = ""; public $data = Array(); public static function load($path) { } pu... 阅读全文

posted @ 2013-03-15 14:56 codestyle 阅读(242) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 下一页