七种程序员的基本技能,它们是:
  ● 数组、字符串与哈希表● 正则表达式● 调试● 两门语言● 一个开发环境● SQL语言● 编写软件的思想 

数组、字符串与哈希表

任何受过专业训练的程序员,对“数据结构”这门课程中涉及到的各种数据结构都不会陌生,但是在实际的编程工作中,大部分的数据结构都不会用到,而且也永远都不会用到。虽然如此,深入地理解基本数据结构的概念和实现细节,仍然是每个程序员的任务。这不仅仅是因为,掌握这些知识将有利于更加正确和灵活地应用它们,而且也是因为,对于语言背后的实现细节的求知欲是一个优秀程序员的素质。

正则表达式

在程序员日常工作中,数据处理占据了相当的比重。而所有的数据之中文本又占据了相当的比重。文本能够被人理解、具有良好的透明性,利于系统开发、测试和维护等就必需要有一定规律遵循一种规则,当你掌握一门正则表达式语言,就能够培养你编程的直觉本能,达到较高水平,也能够在实践中提供更高的开发和执行效率。

调试

软件调试是软件工程的一个重要部分,其过程出现在软件工程的各个阶段,从最初的可行性分析、原型验证、到开发和测试阶段、再到发布后的维护与支持,都有软件调试过程参与。学习和灵活运用软件调试技术,不仅可以提高程序员工作效率,而且有利于对代码的感知力和控制力,加深对软件和系统的理解。此外,调试技术是解决各种软件难题的一种有效武器,它直击要害、锐不可挡,相对其它间接方法具有明显的优势。软件有大美,调试见真功!

两门语言

       

一个开发环境

随着技术的进步,IDE已经越来越强大,远远超出我们心目中的最初形象,越来越多的内容被涵盖到IDE中,从需求分析、业务建摸大批软件发布,IDE已经逐渐覆盖了软件开发的整个生命周期。

 SQL语言

说起SQL,绝大多数程序员对其作用都了然于胸--用来访问数据库嘛。确实,数据是信息系统的核心,没有数据的计算机应用没有任何意义。信息系统中,大量数据本质上就以实体--关系的模式存在,而RDBMS支持SQL这么简单但表达能力丰富的访问接口,同时还提供了内建的事务ACID特性保证和故障恢复能力--因此,RDBMS理所当然地成为了大部分信息系统的标准数据存储介质。于是,无论使用何种语言开发信息系统,从C、C++,Delphi到Java,从Perl、Python到Ruby,使用SQL访问RDBMS都是我们必须修炼的武功秘籍。

 编写软件的思想

说起程序员的武器自然少不了技术书籍,它们就像是拳谱、剑经、虽然不能马上转化为巨大的伤害输出,但假以时日勤以研读,有朝一日成为傍身绝学也是说不定。不过虽然各类技术书籍汗牛充栋,除去入门时浅显易用的参考和复杂深奥的学术专著,能够让所有程序员常看常新的心法秘籍还是不多。

posted @ 2008-08-04 21:18 eecc 阅读(117) | 评论 (1)编辑

Default.aspx全部代码:

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>Default</title>
    
<script language="javascript" type="text/javascript">
        var xmlHttp;
        
        function createXMLHttpRequest()
        {
            
//判断浏览器类型并创建对象
            
//IE
            if (window.ActiveXObject)
            {
                xmlHttp 
= new ActiveXObject("Microsoft.XMLHTTP");
            }
            
//FF
            else if (window.XMLHttpRequest)
            {
                xmlHttp 
= new XMLHttpRequest();
            }
        }
        
        
//光标处于输入框时引发的动作
        function updateTotal()
        {
            url 
= "Default2.aspx?A=" + form1.elements["A"].value + "&B=" + form1.elements["B"].value;
            xmlHttp.open(
"GET",url,true);
            xmlHttp.onreadystatechange 
= doUpdate;
            xmlHttp.send();
            
return false;
        }
        
        function doUpdate()
        {
            
if (xmlHttp.readyState == 4)
            {
                document.forms[
0].elements["TOT"].value = xmlHttp.responseText;
            }
        }
    
</script>
</head>
<body onload = "createXMLHttpRequest();">
    
<form id="form1" action = "">
        
<div>
            
<p>
            
<input type = "text" id="A" onkeyup = "updateTotal()" value = "0"/>
            
<input type = "text"  id="B" onkeyup = "updateTotal()"/ value = "0" />
            
</p>
            
<p>
            
<input type = "text"  id="TOT" />         
            
</p>
            
</div>
    
</form>
</body>
</html>

 

Default2.aspx全部代码(仅保留页面声明):

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2"  %>

 

Default2.aspx.cs全部代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default2 : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        
int a = 0;
        
int b = 0;
        
if (Request.QueryString["A"!= null)
        {
            a 
= Convert.ToInt16( Request.QueryString["A"].ToString());
        }
        
if (Request.QueryString["B"!= null)
        {
            b 
= Convert.ToInt16( Request.QueryString["B"].ToString());
        }
        Response.Write(a 
+ b);
    }
}

 

运行的效果图:

AJAX简单实例效果图

posted @ 2008-07-29 10:54 eecc 阅读(49) | 评论 (0)编辑
说的通俗一些,就是:
有一个叫做EventHandler 的家伙,他会告诉你(主程序),有一些事情发生了:这个事情是谁导致的呢?是某个object类型对象导致的,它用Source或Sender来表示。这个事情是什么事呢?e的内容就是事情的内容了。
至于Source和Sender,没有区别,你想用哪个就用哪个,其实都是一样的。
所以,我们在程序中的事件处理函数就是依赖于这个东西实现的:比方说你点了一个按钮,程序怎么知道应该用哪个函数来处理这个动作呢?那么EventHandler 这个家伙会告诉程序:"button1(sender)被点击(e)了,请调用对应的处理函数"。当然这个函数是谁,这个函数要做什么,是由你自己写的。
再深入一层,这个过程实际上就是:你的动作被windows捕获,windows把这个动作作为系统消息发送给程序(可以看message结构),程序从自己的消息队列中不断的取出消息,并在消息循环中寻找对应的处理方式,这时message结构中的类似于sender和e的东东就起到了引导程序使用正确的处理函数的作用。
归根究底,这个sender和e及其一整套的处理方式,只不过是windows消息机制的另外一种表现罢了。
是C#.NET的.
object sender 发出事件的对象
System.EventArgs e 对象中的数据
如果是按钮button的话,那sender就是那个button,
e是事件参数,在某些事件里,e用处不大,比如在MouseEventArgs的Mouse事件中,可以看到e包括mouse的坐标值等,以供你的程序使用。
posted @ 2008-05-05 13:50 eecc 阅读(192) | 评论 (1)编辑