知道做什么而不是怎样做(摘抄)
很多初级程序员问我“我怎样做这个,或者我怎样做那个?”我总是会跟他们说“你想做什么呢?”听闻此言后,他们会死盯着我,就好像我跟他们的妈妈约会了一
样。这就是我的下一个观点,绝不要在知道你想做什么之前去学习怎样做,比如一个程序员想要搜索一个文本文件中是否存在的某个特定的词汇。下面是用C#来实
现该目的:
 string fileContent;
 string fileContent;  
 System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);
 System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);  
 System.IO.StreamReader myStreamReader = new StreamReader(myStream);
 System.IO.StreamReader myStreamReader = new StreamReader(myStream);   
 fileContent = myStreamReader.ReadToEnd();
 fileContent = myStreamReader.ReadToEnd();  
 myStreamReader.Close();
  myStreamReader.Close();  
 int idx = fileContent.
  int idx = fileContent.  
 IndexOf("string");
 IndexOf("string");   
 if (idx)
  if (idx)  
 {
 {  
 return true
 return true  
 }
   }  
现在我给他这些代码去做这件事,但是更重要的是理解自己正在试着做的是什么。在这个例子中我们想做的是:
1. 打开一个文件
2. 读其中的内容
3. 关闭文件
4. 搜索字串
5. 如果找到了则输出结果
用这个方法来解决事情产生了以下结果:
1. 它使语言无关
2. 使你的精力集中在需要做什么上
3. 使你的代码更易读和有效
知道要做什么将使你的代码更有目的性。现在在C++、PHP、VB.NET、Ruby on Rails中编写上述代码是很容易的事情了,因为你理解了要做什么而不是怎样去做。
 string fileContent;
 string fileContent;   System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);
 System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);   System.IO.StreamReader myStreamReader = new StreamReader(myStream);
 System.IO.StreamReader myStreamReader = new StreamReader(myStream);    fileContent = myStreamReader.ReadToEnd();
 fileContent = myStreamReader.ReadToEnd();   myStreamReader.Close();
  myStreamReader.Close();   int idx = fileContent.
  int idx = fileContent.   IndexOf("string");
 IndexOf("string");    if (idx)
  if (idx)   {
 {   return true
 return true   }
   }  现在我给他这些代码去做这件事,但是更重要的是理解自己正在试着做的是什么。在这个例子中我们想做的是:
1. 打开一个文件
2. 读其中的内容
3. 关闭文件
4. 搜索字串
5. 如果找到了则输出结果
用这个方法来解决事情产生了以下结果:
1. 它使语言无关
2. 使你的精力集中在需要做什么上
3. 使你的代码更易读和有效
知道要做什么将使你的代码更有目的性。现在在C++、PHP、VB.NET、Ruby on Rails中编写上述代码是很容易的事情了,因为你理解了要做什么而不是怎样去做。
 
                    
                 
         
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号