Differences between revisions 8 and 17 (spanning 9 versions)
Revision 8 as of 2008-07-01 13:06:29
Size: 4454
Editor: ZoomQuiet
Comment:
Revision 17 as of 2008-10-07 15:15:52
Size: 11105
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
#pragma section-numbers on #pragma section-numbers off
Line 4: Line 4:
||'''status'''|| 校对 || ZoomQuiet || 完成度~90%;||
||'''status'''|| 校对 || ZoomQuiet || 完成度~100%;||
Line 9: Line 10:
= 箴言 = ##startInc

= 行者箴言 =
Line 12: Line 15:
 * 汇集本书散落在各处的程序员 箴句 细说来由  * 汇集本书散落在各处的行者"箴言" 细说来由
 * 每节使用固定的述说模式:
  1. 给出E文定义
  1. 给出实例故事的出处
  1. 讲述产生的背景
  1. 展开解说相关的体验,给出进一步的阅读资料
Line 15: Line 23:
 * '''Use it! do not learnning'''
  * 来自 [:ObpLovelyPython/PyDay-5:PyDay-5]

 背景故事::
{{{
#!python
Python code
}}}

[编程杂谈]编程就象练书法
http://blog.donews.com/limodou/archive/2006/04/02/808281.aspx


[编程杂谈]做个项目吧
http://blog.donews.com/limodou/archive/2004/12/10/199174.aspx

== 寻找吧!不要先想着创造 ==
`Enjoy it! don't Learnning`
  * 来自 [:ObpLovelyPython/CDay-5:CDay -5 Python初体验和原始需求]

 背景::
  "[编程杂谈]做个项目吧"
   * 访问地址: http://blog.donews.com/limodou/archive/2004/12/10/199174.aspx
   * 精巧地址: http://bit.ly/YOdMc
  * 来自中国Python 著名行者 Limodou 的Blog,是他维护着 UliPad(当时还叫 NewEdit) 这一轻便实用纯Python 实现的编辑器项目
   * UliPad工程网站: http://code.google.com/p/ulipad/
  * 在文中 Limodou 倡导在项目开发的实际应用中学习相关知识
 
 解说::
  这是本书的核心本愿!
  * 在 CPyUG ~ China Python User Group(中国Python)用户组的邮件列表长期维护过程中笔者们发现:
   "怎么可以学好Python ?" 是初学者最经常和反复提到的一个问题!
  * 这个问题,怎么回答,其实不是简单的学习经验的分享,而是怎么传达 Pythonic 精神和自信的哲学性问题;
  * 通过 Limodou 的倡议,大家最终确认了这一学习原则:`用之,不学!`
  * 为学习Python 而学习,是最不可取和南辕北辙的;因为, Python 本来就是为了快速解决常见问题而创造出来的,不是为了印证什么编程理论或是模式;所以, "在战斗中学习战斗",是Python 学习的最合适态度,而且也只有在面对实际问题时,才可以真正感受到Python 的简便/友好/直觉!如果拉开架式,为了写出漂亮的OO的或是吻合什么模式的代码而且研究Python,那就失去了应用Python 来快捷解决问题的乐趣了.
  
  
{{{脚注::
CPyUG的主力邮件列表地址是:
http://groups-beta.google.com/group/python-cn
精巧地址: http://bit.ly/3895ZW
啄木鸟自由软件社区,则是另外一个中国Pythoner 聚集地;
和CPyUG 的关系可以参考:
http://wiki.woodpecker.org.cn/moin/WoodpeckerAbt
精巧地址: http://bit.ly/4DHYa0
}}}

== 寻之,不造! ==
`Searching at first,Don't try creat!`
Line 33: Line 56:
  * 来自 [:ObpLovelyPython/PyDay-4:PyDay-4]


 背景故事::
 图 atta1-1
  * 来自 [:ObpLovelyPython/CDay-4:CDay -4 可用的首个Python脚本]
 * '''你能够碰到的问题,99%的情况下其它人已经遇到过了,所以,最佳的解决方式就是找到那段别人解决相似问题的代码!'''
  * 来自 [:ObpLovelyPython/CDay-1:CDay -1 中文处理完成功能的实用化]

 背景::
  图 atta1-1 漫画电池内置
Line 39: Line 63:
  * `Batteries Included`~是Python 的哲学之一!
  * http://www.uselesspython.com/BatteriesIncluded.html 内置了足够多的模块,可以独立完成大多数常见任务的!
  * `Batteries Included`~'''电池内置''' 是Python 的哲学之一!
  * 详细说明: http://www.uselesspython.com/BatteriesIncluded.html
  * 精巧地址: http://bit.ly/2vPE15
  * 意思是python语言本身,已经天然
内置了足够多的实用模块,可以完成大多数常见任务的!
Line 42: Line 68:
  http://www.python.org/about/success/eztrip/
  ...

[编程杂谈]开始读源码吧
http://blog.donews.com/limodou/archive/2005/04/26/352565.aspx

== 不断的否定自己,但是要坚持最初的妄想 ==
    * EZTrip.com 选择Python 进行企业整合的故事: http://www.python.org/about/success/eztrip/
    * 精巧地址: http://bit.ly/4TrC2
  * "[编程杂谈]开始读源码吧"
   * 访问地址: http://blog.donews.com/limodou/archive/2005/04/26/352565.aspx
   * 精巧地址: http://bit.ly/nS0rE
   * 同样来自 Limodou 的体验分享,文中指出,想写出好代码,就要多看其它优秀作品的源代码;这不仅仅要提取出对自个儿用有的代码,同时也是学习他人的思路和工程设计/组织经验;
 
 解说::
  有自由/开源软件的世界里,解决问题的最快捷途径绝对不是自个儿堆代码解决!
  * 嗯嗯嗯,当然的出于"程序员"的自尊,以及关键性的经济条件,一般也不允许去买软件来解决问题;-)
  * Python 使用开源许可证:
   * 全文访问: http://www.python.org/download/releases/2.4.2/license/
   * 精巧地址: http://bit.ly/1xTbla
  * 所以,各种基于Python 的项目一般都乐于公开源代码;
  * 加之,Python 因为有丰富的C语言接口,实际上也是种方便的胶水语言--可以平滑的直接或是通过接口模块和各种开发语言協同完成任务!
  * 故而,用Python 来解决问题,基本上不用自个儿冥思苦想整出代码来,只要用心先搜索一下根据问题域的解决方案设想,广泛调研一下,基本都可以找到一个以上的支持模块或是软件--当然是Python 写的,下载来,稍微配置或是定制/修改一下就好! 作为Pythoner ,应该有这种自觉和自信!
  * 不过,Python 的各种支持模块/软件都是各行其是的分散在网络中,并没有象Perl 的CPAN 那样形成统一聚集地;
  * 当前,比较集中的 Python 作品索引中心有:
   * Python Package Index
    * 访问地址: http://pypi.python.org/pypi
    * 精巧地址: http://bit.ly/2QQiMz
    * Python 官方网络组织的模块包索引,和 setuotools 工具协同,可以自动下载和升级各种己注册模块;
   * The Vaults of Parnassus: Python Resources
    * 访问地址: http://py.vaults.ca/apyllo.py
    * 精巧地址: http://bit.ly/10KY2U
    * 以问题域为分类,长期收集有大量的软件包信息
   * Python Starship
    * 访问地址: http://starship.python.net/crew/index.html
    * 精巧地址: http://bit.ly/eMW11

 CPAN::
  attachment:cpan.jpg
  * 访问地址: http://www.cpan.org/
  * 即: Comprehensive Perl Archive Network ~ Perl 综合典藏网
  * 它是一个巨大的Perl软件收藏库,收集了大量有用的Perl模块(modules)及其相关的文件。由于CPAN的收藏丰富,使用者甚多,在世界各地都有许多CPAN的镜站(mirror site)存在。
 * CPAN亦是一支Perl程式的名字,其作用是让使用者容易从CPAN下载、安装、更新及管理其他在CPAN上的Perl程式,日常使用类似:{{{
~$ perl -MCPAN -e shell
#第一次进入CPAN时,CPAN将会进行一次配置(configuration)。当配置完成后,就可以利用CPAN来查询CPAN内的Perl模块,并且进行安装。一般操作如下:

CPAN> d /bioperl/

查询有关bioperl的模块

CPAN> install modulename

安装指定的模块
}}}
  * CPAN的成功引来很多其他编程语言社群的模仿。CTAN(Comprehensive TeX Archive Network,TeX综合典藏网)和CSAN(Comprehensive Scheme Archive Network,Scheme综合典藏网)都参考了CPAN的命名方式。另外PEAR(PHP Extension and Application Repository)也是类似CPAN的PHP程式网站!
  * 八卦一下: 在Perl 6 之后,由于全新设计的Parrot引擎,支持其它语言的解析和字节码编译,故而,Python 有望直接使用CPN!
  
== 否之!守之! ==
`Keep evolution,focus original Goal!`
Line 50: Line 121:
  * 来自 [:ObpLovelyPython/PyDay-3:PyDay-3]
  * 有关重构的心态经验

 背景故事::
{{{
#!python
Python code
}}}

== 没有完美的软件! ==
 * ''',够用并且容易使用的软件已经算是完美的了'''
  * 来自 [:ObpLovelyPython/PyDay-2:PyDay-2]
  * 有关需求控制经验

 背景故事::
{{{
#!python
Python code
}}}

== 你能够碰到的问题,99%的情况下其它人已经遇到过了 ==
 * ''',所以,最佳的解决方式就是找到那段别人解决相似问题的代码!'''
  * 来自 [:ObpLovelyPython/PyDay-1:PyDay-1]
  * 有关资源利用经验

 背景故事::
{{{
#!python
Python code
}}}

== 发布!为了全人类! ==
 * 因为'''一个人如果力求完善自己,他就会看到,为此也必须同时完善他人。一个人如果不关心别人的完善,自己便不可能完善。'''
  * 来自 [:ObpLovelyPython/PyDay-0:PyDay-0]
  * 有关社区体验经验

[编程杂谈]写写Blog吧
http://blog.donews.com/limodou/archive/2004/12/14/202590.aspx

=== 发布好象不是通告一嗓子就好的事儿 ===
 * '''分分分!学生的命根! 文档,文档,文档!软件的颜面!'''
  * 文档化开发体验


 背景故事::
{{{
#!python
Python code
}}}

== 没有最好,只有更合理! ==
  * 来自 [:ObpLovelyPython/PyDay1:PyDay+1]
  * 有关重构的进一步经验

http://wiki.woodpecker.org.cn/moin/Py8Rong8Chi
{{{Gerald Lee <[email protected]>
reply-to [email protected],
to [email protected],
date Sat, Feb 23, 2008 at 11:28 AM
}}}
 * 原创:subject [CPyUG:40912] [http://groups.google.com/group/python-cn/browse_thread/thread/71c74c4e77577365/a4940f98b59bde43 跟进学习八荣八耻]


##startInc
` Python 八荣八耻 `
  * 来自 [:ObpLovelyPython/CDay-3:CDay-3]


 背景::
 * [编程杂谈]编程就象练书法 http://blog.donews.com/limodou/archive/2006/04/02/808281.aspx
  * 同样来自 Limodou 的体验
 
 解说::
   有关重构的心态经验



== 发布!持续! ==
`Keep realese,Keep publish!`
 * '''发布!为了全人类!'''因为'''一个人如果力求完善自己,他就会看到,为此也必须同时完善他人。一个人如果不关心别人的完善,自己便不可能完善。'''
 * 发布好象不是通告一嗓子就好的事儿 ~ '''分分分!学生的命根! 文档,文档,文档!软件的颜面!'''
  * 来自 [:ObpLovelyPython/CDay0:CDay0]


 背景::
 * [编程杂谈]写写Blog吧 http://blog.donews.com/limodou/archive/2004/12/14/202590.aspx
  * 同样来自 Limodou 的体验
 
 解说::
  有关社区体验经验/文档化开发体验



== 先用,再修! ==
`Running! before Enhancement`
 * '''没有完美的软件!够用并且容易使用的软件已经算是完美的了'''
  * 来自 [:ObpLovelyPython/CDay-2:CDay-2]

 * '''没有最好,只有更合理!'''
  * 来自 [:ObpLovelyPython/CDay1:CDay+1]


 背景::
 * [编程杂谈]编程就象练书法 http://blog.donews.com/limodou/archive/2006/04/02/808281.aspx
 
 解说::
  ` Python 八荣八耻 ` http://wiki.woodpecker.org.cn/moin/Py8Rong8Chi
Line 128: Line 176:
 背景故事::   * 有关需求控制经验
  * 有关重构的进一步经验
 


== 网站?软件! ==
`Site is kinds of Software!`
  * '''网站软件化绝对不是空话!''' 来自 [:ObpLovelyPython/CDay2:CDay2]

 背景::
  SaaS 概念
  *
 
 解说::
  如果看待GUI ?
  * 有关桌面软件开发趋势体验

== 王道?简洁! ==
`Kingcraft is pithy!`

  * '''KISS 才是王道!'''来自 [:ObpLovelyPython/CDay3:CDay3]

 背景::
 * KISS 概念
 
 解说::
  * 有关软件设计经验

== 想象,无垠! ==
`Imagine Unlimited!`
  * '''想象力才是 Pythoner 的唯一界限'''
  来自 [:ObpLovelyPython/CDayN:CDay +N]日故事

 背景::
 * Python的动态性真是让人吃惊
  * 访问地址: http://hi.baidu.com/limodou/blog/item/83f4b21937ed174043a9adb5.html
  * 快速访问: http://tinyurl.com/43teuz
 * 优雅型修饰
  * 访问地址: http://wiki.woodpecker.org.cn/moin/MiscItems/2008-04-17
  * 快速访问: http://tinyurl.com/4urfmx
 
 解说::
  * 有关资源深度利用经验~ 社区,交流,搜索,知识管理策略 ...

= 箴言凝练 =
`Motto zip`

== 蠎之禅 ==
一切尽在自言中:

图 atta1-2
attachment:atta1-2.png

在线的汉化版本收集:
  http://wiki.woodpecker.org.cn/moin/PythonZen

Line 130: Line 234:
#!python
Python code
}}}

== 网站软件化绝对不是空话! ==
  * 来自 [:ObpLovelyPython/PyDay2:PyDay+2]
  * 有关桌面软件开发趋势体验


 背景故事::
{{{
#!python
Python code
}}}

== KISS 才是王道! ==
  * 来自 [:ObpLovelyPython/PyDay3:PyDay+3]
  * 有关软件设计经验


 背景故事::
{{{
#!python
Python code
}}}

== 想象力才是 Pythoner 的唯一界限 ==
  * 来自 [:ObpLovelyPython/PyDayN:PyDay+1]
  * 有关资源深度利用经验~ 社区,交流,搜索,知识管理策略 ...


 背景故事::
{{{
#!python
Python code
}}}

== 小结 ==
## 总体语法等等叙述,注意给出相关知识的阅读指导


美丽好过丑陋;
明显好过隐晦;
简单好过复合;
复合好过复杂;
扁平好过嵌套;
稀疏好过密集;
可读性最重要;
即便实用性比纯度重要,
但是!特殊案例不可特殊到打破规则;
错误从来不会默默消失,
直到明确的让它闭嘴!
面对模糊,拒绝猜测的诱惑;
应该有一个(宁愿只有一个)显而易见的解决方法;
尽管刚开始方法不会是很明显,即使永远不做比"立刻"做要"聪明",
但是!现在就做永远比不做要好;
只要实现很难解释,那么它就不是一个好主意;
只要实现很容易解释,那么这就是一个好主意;
名称空间是个绝妙想法
--大家一起来实践这些规则吧!

-- by Tim Peters

}}}


##endInc

status

校对

ZoomQuiet

完成度~100%;

TableOfContents

行者箴言

光说不练徦把式,光练不说傻把式!

  • 汇集本书散落在各处的行者"箴言" 细说来由
  • 每节使用固定的述说模式:
    1. 给出E文定义
    2. 给出实例故事的出处
    3. 讲述产生的背景
    4. 展开解说相关的体验,给出进一步的阅读资料

用之,不学!

Enjoy it! don't Learnning

  • 来自 [:ObpLovelyPython/CDay-5:CDay -5 Python初体验和原始需求]
背景
解说
  • 这是本书的核心本愿!
  • 在 CPyUG ~ China Python User Group(中国Python)用户组的邮件列表长期维护过程中笔者们发现:
    • "怎么可以学好Python ?" 是初学者最经常和反复提到的一个问题!
  • 这个问题,怎么回答,其实不是简单的学习经验的分享,而是怎么传达 Pythonic 精神和自信的哲学性问题;
  • 通过 Limodou 的倡议,大家最终确认了这一学习原则:用之,不学!

  • 为学习Python 而学习,是最不可取和南辕北辙的;因为, Python 本来就是为了快速解决常见问题而创造出来的,不是为了印证什么编程理论或是模式;所以, "在战斗中学习战斗",是Python 学习的最合适态度,而且也只有在面对实际问题时,才可以真正感受到Python 的简便/友好/直觉!如果拉开架式,为了写出漂亮的OO的或是吻合什么模式的代码而且研究Python,那就失去了应用Python 来快捷解决问题的乐趣了.

{{{脚注:: CPyUG的主力邮件列表地址是: http://groups-beta.google.com/group/python-cn 精巧地址: http://bit.ly/3895ZW 啄木鸟自由软件社区,则是另外一个中国Pythoner 聚集地; 和CPyUG 的关系可以参考: http://wiki.woodpecker.org.cn/moin/WoodpeckerAbt 精巧地址: http://bit.ly/4DHYa0 }}}

寻之,不造!

Searching at first,Don't try creat!

  • 寻找吧!不要先想着创造--Python 是自足的

    • 来自 [:ObpLovelyPython/CDay-4:CDay -4 可用的首个Python脚本]
  • 你能够碰到的问题,99%的情况下其它人已经遇到过了,所以,最佳的解决方式就是找到那段别人解决相似问题的代码!

    • 来自 [:ObpLovelyPython/CDay-1:CDay -1 中文处理完成功能的实用化]
  • 背景
    解说
    • 有自由/开源软件的世界里,解决问题的最快捷途径绝对不是自个儿堆代码解决!
    • 嗯嗯嗯,当然的出于"程序员"的自尊,以及关键性的经济条件,一般也不允许去买软件来解决问题;-)
    • Python 使用开源许可证:
    • 所以,各种基于Python 的项目一般都乐于公开源代码;
    • 加之,Python 因为有丰富的C语言接口,实际上也是种方便的胶水语言--可以平滑的直接或是通过接口模块和各种开发语言協同完成任务!
    • 故而,用Python 来解决问题,基本上不用自个儿冥思苦想整出代码来,只要用心先搜索一下根据问题域的解决方案设想,广泛调研一下,基本都可以找到一个以上的支持模块或是软件--当然是Python 写的,下载来,稍微配置或是定制/修改一下就好! 作为Pythoner ,应该有这种自觉和自信!
    • 不过,Python 的各种支持模块/软件都是各行其是的分散在网络中,并没有象Perl 的CPAN 那样形成统一聚集地;
    • 当前,比较集中的 Python 作品索引中心有:
    CPAN
    • attachment:cpan.jpg
    • 访问地址: http://www.cpan.org/

    • 即: Comprehensive Perl Archive Network ~ Perl 综合典藏网
    • 它是一个巨大的Perl软件收藏库,收集了大量有用的Perl模块(modules)及其相关的文件。由于CPAN的收藏丰富,使用者甚多,在世界各地都有许多CPAN的镜站(mirror site)存在。
  • CPAN亦是一支Perl程式的名字,其作用是让使用者容易从CPAN下载、安装、更新及管理其他在CPAN上的Perl程式,日常使用类似:

    ~$ perl -MCPAN -e shell
    #第一次进入CPAN时,CPAN将会进行一次配置(configuration)。当配置完成后,就可以利用CPAN来查询CPAN内的Perl模块,并且进行安装。一般操作如下:
    
    CPAN> d /bioperl/
    
    查询有关bioperl的模块
    
    CPAN> install modulename
    
    安装指定的模块
    • CPAN的成功引来很多其他编程语言社群的模仿。CTAN(Comprehensive TeX Archive Network,TeX综合典藏网)和CSAN(Comprehensive Scheme Archive Network,Scheme综合典藏网)都参考了CPAN的命名方式。另外PEAR(PHP Extension and Application Repository)也是类似CPAN的PHP程式网站!
    • 八卦一下: 在Perl 6 之后,由于全新设计的Parrot引擎,支持其它语言的解析和字节码编译,故而,Python 有望直接使用CPN!

否之!守之!

Keep evolution,focus original Goal!

  • 不断的否定自己,但是要坚持最初的妄想 --不论战术上如何变化,千万不要忘记战略目标

    • 来自 [:ObpLovelyPython/CDay-3:CDay-3]
  • 背景
  • [编程杂谈]编程就象练书法 http://blog.donews.com/limodou/archive/2006/04/02/808281.aspx

    • 同样来自 Limodou 的体验
  • 解说
    • 有关重构的心态经验

发布!持续!

Keep realese,Keep publish!

  • 发布!为了全人类!因为一个人如果力求完善自己,他就会看到,为此也必须同时完善他人。一个人如果不关心别人的完善,自己便不可能完善。

  • 发布好象不是通告一嗓子就好的事儿 ~ 分分分!学生的命根! 文档,文档,文档!软件的颜面!

    • 来自 [:ObpLovelyPython/CDay0:CDay0]
  • 背景
  • [编程杂谈]写写Blog吧 http://blog.donews.com/limodou/archive/2004/12/14/202590.aspx

    • 同样来自 Limodou 的体验
  • 解说
    • 有关社区体验经验/文档化开发体验

先用,再修!

Running! before Enhancement

以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;

以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻;
  • 有关需求控制经验
  • 有关重构的进一步经验

网站?软件!

Site is kinds of Software!

  • 网站软件化绝对不是空话! 来自 [:ObpLovelyPython/CDay2:CDay2]

背景
  • SaaS 概念
解说
  • 如果看待GUI ?
  • 有关桌面软件开发趋势体验

王道?简洁!

Kingcraft is pithy!

  • KISS 才是王道!来自 [:ObpLovelyPython/CDay3:CDay3]

背景
  • KISS 概念
  • 解说
    • 有关软件设计经验

    想象,无垠!

    Imagine Unlimited!

    • 想象力才是 Pythoner 的唯一界限 来自 [:ObpLovelyPython/CDayN:CDay +N]日故事

    背景
  • Python的动态性真是让人吃惊
  • 优雅型修饰
    解说
    • 有关资源深度利用经验~ 社区,交流,搜索,知识管理策略 ...
  • 箴言凝练

    Motto zip

    蠎之禅

    一切尽在自言中:

    图 atta1-2 attachment:atta1-2.png

    在线的汉化版本收集:

    美丽好过丑陋;
    明显好过隐晦;
    简单好过复合;
    复合好过复杂;
    扁平好过嵌套;
    稀疏好过密集;
    可读性最重要;
    即便实用性比纯度重要,
    但是!特殊案例不可特殊到打破规则;
    错误从来不会默默消失,
    直到明确的让它闭嘴!
    面对模糊,拒绝猜测的诱惑;
    应该有一个(宁愿只有一个)显而易见的解决方法;
    尽管刚开始方法不会是很明显,即使永远不做比"立刻"做要"聪明",
    但是!现在就做永远比不做要好;
    只要实现很难解释,那么它就不是一个好主意;
    只要实现很容易解释,那么这就是一个好主意;
    名称空间是个绝妙想法
    --大家一起来实践这些规则吧!
    
    -- by Tim Peters


    ::-- ZoomQuiet [DateTime(2007-11-03T11:46:56Z)] PageComment2

    ObpLovelyPython/LpyAttach1motto (last edited 2013-04-07 03:05:48 by ZoomQuiet)