1. PHP最佳实践(译)

    原文: PHP Best Practices-A short, practical guide for common and confusing PHP tasks

    译者:youngsterxyf

    最后修订日期&维护者

    本文档最后审阅于2013年3月8日。最后修改于2013年5月8日。

    由我,Alex Cabal,维护该文档。我编写PHP程序已有很长一段时间了,当前我 经营着Scribophile,由认真作家组成的一个在线写作团体, Writerfolio,为自由职业者提供的一个易用写作工具集,以及 Standard Ebooks,一个图文并茂、无数字版权管理的公共领域电子书出版商。 有时我是个为吸引我的项目或客户而工作的自由职业者。

    如果你认为我在某些事情上能够帮到你,或者对本文档有点建议或纠正存在的错误,请给我写封邮件

    简介

    PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都有自己独有的特性、多余和怪异之处,也很难跟踪哪个版本有哪些问题。这也就 很好理解为什么有时它会遭到那么多的厌恶。

    尽管如此 …

    Tagged as : 翻译 PHP
  2. argparse - 命令行选项与参数解析(译)

    原文:argparse – Command line option and argument parsing

    译者:youngsterxyf

    argparse模块作为optparse的一个替代被添加到Python2.7。argparse的实现支持一些不易于添加到optparse以及要求向后不兼容API变化的特性,因此以一个新模块添加到标准库。

    与optparse相比较

    argparse的API类似于optparse,甚至在很多情况下通过更新所使用的类名和方法名,使用argparse作为一个简单的替代。然而,有些地方在添加新特性时不能保持直接兼容性。

    你必须视情况决定是否升级已有的程序。如果你已编写了额外的代码以弥补optparse的局限,也许你想升级程序以减少你需要维护的代码量。若argparse在所有部署平台上都可用,那么新的程序应尽可能使用argparse。

    设置一个解析器

    使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数。那么当你的程序运行时,该解析器就可以用于处理命令行参数。

    解析器类是 ArgumentParser 。构造方法接收几个参数来设置用于程序帮助文本的描述信息以及其他全局的行为或设置。

    import argparse
    parser = argparse.ArgumentParser(description='This is a PyMOTW sample program')
    

    定义参数

    argparse是一个全面的参数处理库。参数可以触发不同的动作,动作由 add_argument …

    Tagged as : Python 翻译
  3. 学习JavaScript - 我的经验与建议(译)

    原文:learning JavaScript - my experience and advice

    译者:youngsterxyf

    自从我曾提到自己在刚过去的几个月中学习了JavaScript,很多人就发email给我询问我是如何学习JavaScript的以及推荐如何学习。以下就是我的经验和最佳建议。

    注:我是想真正地学习JavaScript---不是捷径,或快速技巧,或元工具(meta-tools)之类让我不必要学习JavaScript的东西。我想学习、掌握、阅读、理解以及记住JavaScript这门语言,从而在以后的日子里能够理解所有其他以JavaScript编写的很酷的东西。

    首先---很多人可能会告诉你去阅读Douglas Crockford的著作《JavaScript语言精粹》。但当我开始阅读这本书时,才发现它是如此的紧凑简洁以致我根本不知道它在说啥!

    你知道何时一个专家是在谈论自己的领域,就不知道如何为其他人做点简化么?感觉这本书对于那些已有20年的C、Java或C++编程经验来说非常完美,他们只需要快速概览必知的JavaScript知识点。

    但它真的不是要教你学习JavaScript。它不会指导你学习任何东西。因此我建议先跳过这本书。

    相反,从Marijn Haverbeke的著作《JavaScript编程精解》开始学习吧。

    这本书一开始非常简单易学,简直是太简单了 …

    Tagged as : JavaScript 翻译
  4. JavaScript初学者应知的24条最佳实践(译)

    原文:24 JavaScript Best Practices for Beginners

    译者:youngsterxyf

    (注:阅读原文的时候没有注意发布日期,觉得不错就翻译了,翻译到JSON.parse那一节觉得有点不对路才发现是2009年发布的文章,不过还是不错的啦。另外,文章虽说24条最佳实践,其实只有23条,不知道原作者怎么漏了一条。)

    1.优先使用===,而不是==

    JavaScript使用两种相等性操作符:===|!==和==|!=。通常认为做比较的最佳实践是使用前一组操作符。

    "若两个操作数的类型和值相同,那么===比较的结果为真,!==比较的结果为假。" --- JavaScript语言精粹(JavaScript: The Good Parts)

    然而,如果使用==和!=,当比较不同类型的操作数时,你就会碰到问题啦。在这种情况下,这组操作符会尝试对操作数的值做无用的强制转换。

    2.Eval就是糟糕的代名词

    对于那些不熟悉JavaScript的人来说,函数"evel"让我们能够访问JavaScript编译器。我们可以通过给"eval"传递一个字符串参数来得到该字符串执行的结果 …

    Tagged as : JavaScript 翻译
  5. PHP之道---PHP基础知识(译)

    原文:PHP: The Right Way - The Basics

    译者:youngsterxyf

    比较操作符

    比较操作符往往是PHP的一个被忽视的方面,这会导致很多意想不到的结果。其中的一个问题源于严格比较(布尔值为整数的比较)。

    <?php
    $a = 5;     // 5为一个整数
    
    var_dump($a == 5);      // 比较值;返回true
    var_dump($a == '5');        // 比较值(忽略类型);返回true
    var_dump($a === 5);         // 比较类型/值(整数 vs. 整数);返回true
    var_dump($a === '5');       // 比较类型/值(整数 vs. 整数);返回false
    
    /**
      * 严格比较
      */
    if (strpos …
    Tagged as : PHP 翻译
  6. 数据压缩理论简介(译)

    原文:A introduction to compression

    译者:youngsterxyf

    最近我在思考GIF和JPEG图片格式之间的不同:为什么某些图片存储为GIF格式所占的磁盘空间更大,而另一些图片以JPEG格式存储要占用更大的磁盘空间?事实证明,这是因为不同的图片格式使用了不同的压缩方法。

    压缩是一组程序的简便说法,这些程序能够将数据装进更小的存储空间中,也能将数据从压缩编码中重新取回。这是一个双向的过程:输入文件能够产生经过压缩的输出,并且算法根据压缩后的输出能够重新给你一个输入的拷贝。

    冗余:行程长度编码(Run-Length Encoding)

    使压缩成为可能的是冗余:事实表明大多数的数据都以某种方式重复自己。例如,在一个文档中可能多次使用同一个单词,或者一张图片的多处包含相同的颜色。一个非常简单的冗余数据片段的示例如下所示:

    Redundancy: Before compression

    AAAAABBWWWWWWWWWPPPPQZMMMMVVV

    在这种情况下,冗余是明显的;整个样本中重复出现了一系列字母。压缩这种数据的一种简单方式是通过重复次数来代表重复出现的字母,从而削减了样本的总长度。

    Redundancy: After compression

    A5B2W9P4Q1Z1M4V3

    算法读取样本编码后的版本将能够完美地重现原来的数据:"A" 5次,"B" 2次,等等。这个简单算法的使用非常广泛,被称为行程长度编码(RLE …

    Tagged as : 理论 翻译
  7. JavaScript:继承和原型链(译)

    原文:Inheritance and the prototype chain

    译者:youngsterxyf

    对于具备基于类的编程语言(如Java或C++)经验的程序员来说,JavaScript有点混乱,因为它是一种动态语言,并且不提供class的实现(虽然关键字class是保留的,不可用作变量名)。

    说到继承,JavaScript只有一种结构:对象。每个对象都有一个内部链接指向另一个对象,这个对象称为原型 (prototype)。那个原型对象也有自己的原型,如此直到某个对象以null作为其原型。null,根据定义,没有原型,作为这种原型链的最后一环而存在。

    以原型链实现继承

    继承属性

    JavaScript对象可看作是动态地装载属性(这里指自有属性)的"包包",并且每个对象都有一个链指向一个原型对象。如下即为当尝试访问一个属性时发生的事情:

    // 假设有个对象o,其原型链如下所示:
    // {a: 1 …
    Tagged as : JavaScript 翻译
  8. Python格式字符串(译)

    原文:Python String Format

    译者:youngsterxyf

    每次使用Python的格式字符串(string formatter),2.7及以上版本的,我都会犯错,并且有生之年,我想我都理解不了它们的文档。我非常习惯于更老的 % 方法。所以着手编写自己的格式字符串手册。若你有一些其他好的示例请告知我。

    格式字符串手册

    数字格式化

    下面的表格展示了使用Python的后起新秀str.format()格式化数字的多种方法,包含浮点数格式化与整数格式化示例。可使用 print("FORMAT".format(NUMBER)); 来运行示例,因此你可以运行: print("{:.2f}".format(3.1415926)); 来得到第一个示例的输出。

    数字格式输出 描述
    3.1415926 {:.2f} 3.14 保留小数点后两位
    3.1415926 {:+.2f …
    Tagged as : Python 翻译

Page 3 / 5