shepherdwind

寒假学习总结

一个寒假过来,这几天还在忙于适应学校生活呢。在家里一个多月几乎与电脑完全隔离,几许欣慰,总算不用整天对着电脑啦,呵呵。按照有关规定:每天上网6小时以上属于网瘾,那我们工作室所有人都有网瘾啦。不过技术总无法离我而去,有时候甚至想,来到工作室,一旦进入计算机世界,我就只能如此了吧。而且我越来越清楚的看到,自己对计算机技术的书爱不释手,而本专业的教材却很难静心看下去。无论如何,我总是在挣扎着,专业一定不能放弃啊。我也相信自己能够做到。第一次会上,副部老冯说:“寒假让你们回去看的资料,大家有什么体会,都写下来……”。也许大家都不喜欢做家庭作业吧,我也是,但在寒暑假看一些技术类的书,已然成为我的一种习惯。我觉得,作为程序组人员,对于技术的爱好是一种基本素质,所以我更倡导一种自然的学习方式,大家对什么感兴趣自己去学吧。只要投入,你就能从中发现乐趣的。在这里再提一下我们工作室的口号“激情投入,互动创造”,我很喜欢这句话,大家在工作室应该享受一种投入创造的快乐。下面总结一下我在寒假的学习情况吧。

寒假带了三本薄薄的书,书贵在精致,而不是数量,一个假期能看两三本书就够了。这三本书分别是,PHP高级程序设计_模式、框架与测试 、JavaScript语言精粹。还有一本是心理学的,就不提啦。这第二本尤其让人震撼,在此我摘一些卓越网的评价:这是一本厚积薄发、“薄”大精深的书。 Douglas Crockford仅仅用了160页来道出JavaScript的语言本质,值得任何正在或者想从事JavaScript开发的人阅读,并且非常需要反复阅读。……重读这本书后,如醍醐灌顶,对JS有了新的认识。不能不说这本JS语言精粹是我读过的一本最好的技术类书。我尤其喜欢这种简约的风格。总的来说,寒假的学习分为三大类,PHP、JavaScript和Vim使用。分别来谈谈

首先是PHP,这个寒假接触了一些PHP高级技术,比如PHP类、设计模式之类的。我觉得对于我们而言,书中所提到的PHP编码规范是很值得我们学习的,程序代码中的编码规范通常包括两大点:变量的命名和注解规范。还有一点就是代码的缩进,这个通常用tab键实现。常用的变量命名法(也包括css属性名或者class id名)有四种:匈牙利命名法、骆驼命名法、下划线命名法和帕斯卡命名法。在这里各举一个PHP命名的例子

$strMessage,这里str表示的变量贮存的是一个字符串string,匈牙利命名法关键是:变量名=属性+类型+对象描述

$nowDateCn,驼峰命名就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始;第二个单字的首字母大写或每一个单字的首字母都采用大写字母。

$now_date_cn,下划线命名用下划线分割变量,这在css中属性常用

$NowDateCn,帕斯卡命名法与驼峰命名法的差别仅仅在于它的第一个单词首字母也是大写的。

各种命名法其实可以混合使用,尤其是第一种和第三种可以很好的结合在一起使用。需要提醒的是,在一个应用程序中,应该坚持统一的命名规则,这样有利于代码的维护阅读。我想我们工作室最好能够形成一套统一的规范,这个工作我正在考虑当中呢。我们应该给工作室留下一些什么,比如还有我们需要一个常用的类库,这非常有利于我们的快速开发。 关于注解,PHP常用为 phpdoc模式,如下为一个函数的注解

/**
* 提交发送数据返回已序列化的PHP数据内容
*
* @param string $PostUrl 要指交的远程地址
* @param array $data 要提交的数据
* @return obj  远程返回的对像
*/
function getWebServerData($PostUrl,$data)
{
//函数体
}

第一行为/*,最后一行/,这种注解模式是一种可编译模式,也就是程序在编译时,这些注解不会被PHP解析程序忽视,而是可以成为一种PHP函数或类自身反射的信息数据。反射在程序中指的是一种语言对自身的判断,比如PHP函数func_get_args可以在本函数中或者传入参数序列。这有些想心理学中的元的概念,比如元认知,元记忆,元认知是指人对自身认知活动的时间分配、精力控制等等调控行为,而元记忆指人对自身记忆的记忆,也就是你知道自己记得什么(有些东西虽然自己知道自己记得,但是在某些情况下就是想不起来,比如某个熟人的名字一下子忘记了)。不过这对于我们没有太大的用处,在小规模应用中,很难用到反射的。所以注解用/*开头也行。@param这个表示传入参数,后面是函数参数类型,这个很容易看明白的。注解内容第一行是对本函数的描述。@param,@return这两个参数在函数注解中用得最多。

再看看Zend framework的注解,常用的还有@author表示作者

/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled……
*
* @category   Zend
* @package    Zend_Db
* @subpackage Table
* @copyright  Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license    http://framework.zend.com/license/new-bsd     New BSD License
* @version    $Id: Exception.php 16541 2009-07-07 06:59:03Z bkarwin $
*/

注解规范也属于代码规范的重要内容之一啦。说这么多其实,我的目的是能够在工作室留下一套常用的PHP类库或函数库,并且告诫程序组成员,代码是人可以阅读的计算机语言,所以可读性很重要。不过一个优秀的好用的函数库或类库,最重要的还是它们的逻辑实现过程,这个得靠大家的一起努力啦。工作室大一组员要加油啦,下学期也许我整个学期都要去实习,工作室重任就落在你们肩上了。此外就是JavaScript啦,这个暂时搁置,有机会给大家做一个 JavaScript专题,现代web技术JavaScript太强大了,这个世界已然不能没有你。那本JavaScript语言精粹,大家想看的可以问我要,现在我又借过来,准备看第二遍呢。