status

校对

ZoomQuiet

完成度~101%; 根据其它章节增补而修订微小文字

TableOfContents

行者箴言

光说不练徦把式, 光练不说傻把式! ~ 所以,汇集散落在书中各处的行者"箴言"细说来由;-)

少学,多用!

Enjoy it! don't Learnning

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

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

变之!守之!

Keep evolution,never foget the start idea!

发布,持续!

Keep realese,Keep publish!

能用,再修!

Run! before Enhancement

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

以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣, 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻;

网站.软件.

Site is Software!

背景
  • SaaS(Software as a Service,软件作为服务, 或称为软件即服务)是应用软件的一种销售方式, 客户按使用时间或使用量付费. 这些应用软件通常是在企业管理软件领域, 并通过互联网来使用.
  • 它是目前一种新型软件服务形式, 是从 ASP(ApplicationServiceProvider, 应用服务提供商)模式演变而来, 是一种通过Internet提供软件的模式. 用户不用再购买软件, 而改用向提供商租用基于Web的软件, 来管理企业经营活动, 且无需对软件进行维护, 服务提供商会全权管理和维护软件.

  • 对企业来说, SaaS的优点在于:
  • 从技术方面来看:企业无需再配备IT方面的专业技术人员, 同时又能得到最新的技术应用, 满足企业对信息管理的需求.
  • 从投资方面来看:企业只以相对低廉的"月费"方式投资, 不用一次性投资到位, 不占用过多的营运资金, 从而缓解企业资金不足的压力;不用考虑成本折旧问题, 并能及时获得最新硬件平台及最佳解决方案.
  • 从维护和管理方面来看:由于企业采取租用的方式来进行物流业务管理, 不需要专门的维护和管理人员, 也不需要为维护和管理人员支付额外费用. 很大程度上缓解企业在人力、财力上的压力, 使其能够集中资金对核心业务进行有效的运营.
解说
  • GUI~图形用户界面 (Graphic User Interface)的简称;也指代所有工作在各种图形化操作系统中,通过各种图形化窗口控件和用户交互的软件; 这类软件必然的依赖操作系统提供的图形控制接口,以便实时绘制,采集用户反馈等等;
  • 当然的Python 也可以开发这类软件的,而且可以使用的图形接口和框架也不少,这方面推荐 前面"Eurasia ~ 关注高性能的原创框架" 一节的作者沈崴的文章:Python 史书·GUI 部

  • 不过,现在的趋势是:"网站软件化",从Google桌面搜索(http://desktop.google.com)开始利用本地网页当搜索引擎的交互和控制界面,到Yahoo!mail 也使用Ajax 技术将邮箱作的象outlook;进一步的,百度的安全中心,更是利用网页安装杀毒引擎到用户桌面,但通过本地的Web服务,使用网页作为查杀病毒的控制界面!

  • 因为,人们越来越多的将时间化在网络中,通过浏览器,在网页中写作/沟通/购物/工作/学习/游戏,,,网页作为操纵信息的界面,人家已经非常非常习惯和熟练了;
  • 而且,网页,基于简单的HTML设计和解析,比使用操作系统的图形接口来绘制用户界面要轻松的多的多!
  • 所以,行者也建议,能愉懒使用网页作为GUI时,千万不要客气!

王道:简洁!

Kingcraft means simple!

背景
  • KISS = Keep It Simple, Stupid! = 保持简单,傻瓜化! ~= Simple is better

  • 定义在:What is KISS Principle?(什么是KISS原理?)
  • 访问地址: http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci521694,00.html

  • 精巧地址: http://bit.ly/11ApDO

  • 保持简单是敏捷开发中非常重要的一项实践, 但是这条原则说起来简单却做起来难. 因为每个程序员其实都是一个有完美主义的艺术家, 所做软件其实都是一件自己的艺术品, 同时受到许多关于设计方面的资料的影响, 所以在做设计的时候会情不自禁的加上许多"优雅特性"和"灵活性". 另一个很重要的原因在于, 在产品推出后又不得不疲于应付客户频繁提出的许多新增加的需求的时候, 会自然而然的想到:当时要是在做软件的时候能考虑到这些需求该多好啊, 现在来改实在是太麻烦了. 要是当初改的话, 也只用添加几条代码就可以了,,,
  • 其实,这两种原因都能归结为一个:程序员总希望自己所设计的系统能最大范围内适应变化!

  • 这种想法的出发点是非常好的, 可是在实际中却往往不是降低了工作量, 反而增加了巨大的工作量. 根本原因就在于:用户需求是无限量的, 你永远也无法预测客户的需求变化. 

  • 所以, Python 倡导简单即是美 ~ 大道至简! 简单直白的代码,好理解易维护,实在不成,堆倒重新写一点也不心痛;) 对永远在变化的需求, 心态上要拥抱变化,不能预防变化,简单稳固的小功能函式,其实是非常容易组合在一起,支持另外一个需求的,这种代码实现方式,永远比用一个理应精致细巧智能有前瞻性的模块来支持现有的简单需求,要舒服和可控的多!

解说
  • 此箴言是相关软件设计的,基于的理论是:"少即是多" ~ 由建筑大师密斯·凡德罗(Ludwig Mies van der Rohe 1886-1969)提出的:"少即是多(Less is more).", 被广泛引用于各个领域;
  • 与之交相辉映的是由14世纪逻辑学家、圣方济各会修士 奥卡姆的威廉(William of Occam)提出的一个原理,即,"奥卡姆剃刀原理"(Occam’s razor),通常的应用理解如下:
    • 如果你有两个原理,它们都能解释观测到的事实,那么你应该使用简单的那个,直到发现更多的证据。
    • 对于现象最简单的解释往往比较复杂的解释更正确。
    • 如果你有两个类似的解决方案,选择最简单的。
    • 需要最少假设的解释最有可能是正确的
  • 这个原理最早至少能追溯到亚里士多德的"自然界选择最短的道路";甚至于爱因斯坦,他本身也是一位格言大师,曾警告说: "万事万物应该尽量简单,而不是更简单."
  • 在软件行业,Pythonic 秉承了以上的思想:让代码保持简单!
  • 因此, Python 语言本身,已经为简单的完成功能,预先内置了丰富的模块--Batteries Included~电池内置就是出于此目标; 另外,极少的关键字设计,通过排版来划分语法结构的设定,无一不是为了令Python 代码更加象自然语言的表述,鼓励大家将软件都设计的很直白小巧,模块功能单一,函式不超过50行(即,一屏的高度),如此这般,就会发觉,自个儿的代码是越写越少,多数情况下都是复制自个儿以前的某份代码过来小修订一下就立即可用了,到最后用的最多按键将是:delete ;-)

想象;无垠!

Imagine Unlimited!

背景
解说
  • 在Python 世界中很多时候作起来比想象中要来的容易!
  • 因为从教育学角度的研究,人在同一时间内可以关注和处理的事儿只有7~9个,再多就有些顾此失彼了; 然而一个再小的软件涉及到的方方面面很容易就超过这个心理容量,而且在头脑中推演数据处理流程时,人脑的堆栈深度是非常浅的(不是所有人都可以作到象棋/围棋运动员那样儿可以在头脑中对弈的!)-- 所以,在想象中,就非常有可能越想越乱,越想越不敢动手作了;

  • 反而,先不管3721,趁着念头还鲜活,先将可以完成的部分快速变成可以运行的代码,一时无法想通的,变成空函式,伪类等等可以执行通过但是没有实际行为,仅仅标识出想法的有效代码来! 这样,下次的尝试,永远有可用的代码基础,每次我们就可以仅仅关注没有完成的部分,有可用的代码打底儿,每次尝试,都令我们真实的向目标进行了一步! 没有比这样由成就感累积而成的开发体验最舒服的了! 而且一直有真实不虚的代码可以运行和测试,比在头脑里空想要靠谱的多,安心的多;-)
  • Pythnoic 的感觉/体验/自信,就是鼓励大家不要顾虑自己是否对问题域有足够的知识积累己达到成竹在胸游刃有余的程度,直接去尝试! Python 脚本是轻松可得的,放弃,重构,从头再来,都不是难事儿;
  • 如果总是期待自个儿非得达到一个完美的积累状态再去动手实际开发,结果可能就是一直陷入积累的状态无法自拔. 其实,技术的发展已不是日新月异的级别了,可以说是每时每刻都有新的技术/框架/模块/思想的出现,想积累到一定程度再动手,可能积累的东西已经过时了,要抢在自个儿的想法没有过时之前变成代码,可用的软件,释放出来,抢占先机,才可能在这一过程中,及时发现最新技术/代码/思想 同步应用进来,令自个儿永不过期 ;-)

  • 所以,在Python 中,如何作? -- 不应该是个山门~ Python 隐密的规则/技巧/陷井 相比C++/C#/JAVA 等等主流语言来说,实在太少了,而且知道与否对于我们完成系统,几乎没有影响; 作什么? -- 这才是不同Pythoner 间的最大差异,这就取决于想象力,观察力,对周围事物的敏感程度,是否"足够懒惰","没有耐心" 随时都想着将人工反复作的事儿,利用Python 形成工具来帮助自个儿完成 -- 进而形成爽快的工具/系统,成为其它有类似需求的人们的最爱

箴言凝练

上述箴言,是中国Python 行者们的部分最佳体验,总结而成的; 但是!其实!一切早已包含在Python自言中:

蠎之禅

图 atta1-2 Python 内置的哲学诗文

attachment:atta1-2.png

附:我们的奋起宣言

每日至少抽一刻钟,解答邮件列表中初学者的问题, 
每周至少抽两小时,整理新学知识将体验发表/分享出去, 
    通过Blog/Wiki/MaiList/个人网站……
每旬至少抽四个小时, 来翻译自个儿喜爱的自由软件的文档, 
每月至少抽八小时, 快乐的编程, 推进自个儿的项目, 
每年至少参加一次, 自由软件的活动, 传播自由软件思想, 
    发展一名"自由人"……

只要我们每个人都坚持下去……
10年!就足以改变中国软件的整体风貌!


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