ÂëÅ©´ÓPython¿ªÊ¼.pdf
http://www.100md.com
2020Äê3ÔÂ12ÈÕ
![]() |
| µÚ1Ò³ |
![]() |
| µÚ10Ò³ |
![]() |
| µÚ19Ò³ |
![]() |
| µÚ26Ò³ |
![]() |
| µÚ42Ò³ |
![]() |
| µÚ83Ò³ |
²Î¼û¸½¼þ(10871KB£¬129Ò³)¡£
ÂëÅ©´ÓPython¿ªÊ¼ÊÇ×÷ÕßÂÞ³¿Ð´µÄ¹ØÓÚpythonµÄÊé¼®£¬Ö÷Òª¶ÔpythonÕâÃűà³ÌÓïÑÔ×öÁË»ù´¡ÓÖÏêϸµÄ½éÉÜ£¬Ñ§Ï°python¾ÍÓ¦¸ÃÒÔ³ÌÐòÔ±µÄͳ¼ÆË¼Î¬½øÐÐÁ·Ï°¡£

ÂëÅ©´ÓPython¿ªÊ¼ÄÚÈÝÌáÒª
Pythonµ½µ×ΪʲôҪ½Ð×öPython(òþÉß)ÄØ£¿PythonµÄ·¢Ã÷ÈËGuido van Rossum˵£¬ÄÇÊÇÒòΪËûÐèÒªÒ»¸ö¼ò¶Ì¡¢¶ÀÌØ£¬»¹ÂÔ´øÓÐÉñÃØ¸ÐµÄÃû×Ö¡£(¸ÕÇÉÄÇʱËûÕýÔÚ¿´Ò»¸ö70Äê´úµÄBBCϲ¾çÐ㣬½Ð×ö¡°¾Þòþ¾çÍŵķÉÏèÂíÏ·ÍÅ¡±¡£) Python×÷ΪһÃűà³ÌÓïÑÔ£¬¿ÉÄÜ×îǷȱµÄ¾ÍÊÇ¡°ÉñÃØ¸Ð¡±ÁË¡£Ëü¿ÉÒÔÊÇ¡°ºÃÍæµÄ(Playful Programming)¡±£¬Ò²¿ÉÒÔÊÇ¡°ºÃѧµÄ¡±(PythonÉõÖÁ¿ÉÒÔÓÃÀ´½ÌÊÚ¸øÐ¡Ñ§Éú)¡£ÍêÈ«²»¶®±à³ÌµÄÈË¿ÉÒÔ°ÑPython×÷Ϊ×Ô¼ºµÄµÚÒ»Ãűà³ÌÓïÑÔ£¬µ«ÊÇ£¬Õâ²¢²»Òâζ×ÅËü²»¹»Ç¿´ó¡£
ÂëÅ©´ÓPython¿ªÊ¼×÷Õß¼ò½é
±¾ÆÚµÄÂëÅ©ÈËÎïÂÞ³¿£¬ËäÈ»²»ÊÇPython³ÌÐòÔ±£¬µ«ÊÇËûÉíÌåÁ¦ÐеØÊµ¼ùÁË¡°¼òµ¥¡±Õâ¼þÊ¡£ËûÒÔǰ¶Ë¹¤³ÌʦΪĿ±ê£¬³É¹¦µØ³ÉΪÁËÒ»ÃûÔÚÅ©³¡ÎñÅ©µÄ¶ÀÁ¢¿ª·¢Õß¡£³çÉмòÔ¼µÄMarkdown±à¼Æ÷Mou£¬¾ÍÊÇËûµÄ×÷Æ·Ö®Ò»¡£Ï£ÍûËûµÄÉú»î¾Àú£¬»á¸øÄãÒ»¸öеĽǶȺÍһЩ²»Í¬µÄÆôʾ¡£ÈÃÎÒÃÇ´ÓÒ»³É²»±äµÄÉú»îÖÐÕÒµ½Ò»Ð©ÐÂÏÊÔªËØ°É!ѧһÃÅеÄÓïÑÔ£¬½ÌÒ»¸öÅóÓÑѧ»á±à³Ì£¬»òÕßΪÄãµÄ¼ÒÈ˱àдµãʲô¡£¿ÉÄÜ£¬¾Í´ÓPython¿ªÊ¼¡£
ÂëÅ©´ÓPython¿ªÊ¼Ä¿Â¼
רÌ⣺´ÓPython¿ªÊ¼
PPPÊÇʲô£¿ºÃÍæµÄPython±à³Ì!
ΪʲôҪÓÃPythonʵÏÖ»úÆ÷ѧϰËã·¨?
µÚÒ»¸öº¢×ӵijöÉúʱ¼äÑо¿£º³ÌÐòÔ±µÄͳ¼ÆË¼Î¬Á·Ï°
ºÍº¢×ÓÒ»Æð×öÒ»Ö»µç×Ó³èÎï°É!
´ÓPython3µÄbytes/strÖ®±ðѧ±àÂëUnicode
ÈçºÎ¹¹ÔìÍŶÓPython¿ª·¢»·¾³
ÈËÎï
ÂÞ³¿£ºÃÎÏëÕÕ½øÏÖʵ£¬Ò»¸ö¶ÀÁ¢¿ª·¢ÕßµÄÌïÔ°Ê«
¶Á¡¶ÂëÅ©¡·ÍÂͲۻ¹ÄÜ×¬Òø×Ó!
ÈçºÎ½Ì±à³Ì£¬µ±ÄãÃæ¶Ôһ˫¿ÊÍûµÄÑÛ¾¦
ÏÊÔÄ
δÀ´µÄ±à³ÌÓïÑÔ¾¿¾¹ÊÇʲôÑù?
°Ë++
Puppet¡ª¡ªLuke KaniesµÄ¸ÖÌúÏÀ
³ö°æµÄδÀ´
ʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì
Êé°ñ
´ó¼Ò¶¼ÔÚ¶Áʲô?
³ÉÊéÊÖ¼Ç
ACM-ICPC¹Ú¾ü̸¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·¼°Ïà¹ØËã·¨Êé
ÉçÇø¶¯Ì¬
ÀÖÒ뿪·ÅÊ飺Python for Software Design
ͼÁé·Ã̸£º¶Ô»°Peter Harrington
ÌýÊ鼯»®£º¡¶³ÌÐòÔ±µÄ˼άÐÞÁ¶¡·
ÉçÇø½éÉÜ
ÂëÅ©´ÓPython¿ªÊ¼½ØÍ¼


ÊéÃû£ºÂëÅ©¡¤´ÓPython¿ªÊ¼(µÚ7ÆÚ)
×÷ÕߣºÍ¼ÁéÉçÇø³öÆ·
±¾ÊéÓɱ±¾©Í¼ÁéÎÄ»¯·¢Õ¹ÓÐÏÞ¹«Ë¾·¢ÐÐÊý×Ö°æ¡£°æÈ¨ËùÓУ¬ÇÖȨ±Ø
¾¿¡£
Äú¹ºÂòµÄͼÁéµç×ÓÊé½ö¹©Äú¸öÈËʹÓã¬Î´¾ÊÚȨ£¬²»µÃÒÔÈκη½Ê½¸´ÖÆ
ºÍ´«²¥±¾ÊéÄÚÈÝ¡£
ÎÒÃÇÔ¸ÒâÏàÐŶÁÕß¾ßÓÐÕâÑùµÄÁ¼ÖªºÍ¾õÎò£¬ÓëÎÒÃǹ²Í¬±£»¤ÖªÊ¶²úȨ¡£
Èç¹û¹ºÂòÕßÓÐÇÖȨÐÐΪ£¬ÎÒÃÇ¿ÉÄܶԸÃÓû§ÊµÊ©°üÀ¨µ«²»ÏÞÓڹرոÃÕÊ
ºÅµÈάȨ´ëÊ©£¬²¢¿ÉÄÜ×·¾¿·¨ÂÉÔðÈΡ£Ä¿Â¼
±àÕߵϰ
רÌ⣺´ÓPython¿ªÊ¼
PPPÊÇʲô£¿ºÃÍæµÄPython±à³Ì!
ΪʲôҪÓÃPythonʵÏÖ»úÆ÷ѧϰËã·¨£¿
µÚÒ»¸öº¢×ӵijöÉúʱ¼äÑо¿£º³ÌÐòÔ±µÄͳ¼ÆË¼Î¬Á·Ï°
ºÍº¢×ÓÒ»Æð×öÒ»Ö»µç×Ó³èÎï°É!
´ÓPython 3µÄbytesstrÖ®±ðѧ±àÂëUnicode
ÈçºÎ¹¹ÔìÍŶÓPython¿ª·¢»·¾³
ÈËÎï
ÂÞ³¿£ºÃÎÏëÕÕ½øÏÖʵ£¬Ò»¸ö¶ÀÁ¢¿ª·¢ÕßµÄÌïÔ°Ê«
¶Á¡¶ÂëÅ©¡· ÍÂÍÂ²Û »¹ÄÜ×¬Òø×Ó!
¼ùÐÐ
ÈçºÎ½Ì±à³Ì£¬µ±ÄãÃæ¶Ôһ˫¿ÊÍûµÄÑÛ¾¦
ÏÊÔÄ
δÀ´µÄ±à³ÌÓïÑÔ¾¿¾¹ÊÇʲôÑù£¿
°Ë++
Puppet¡ª¡ªLuke Kanies µÄ¸ÖÌúÏÀ
³ö°æµÄδÀ´
µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì
Êé°ñ
´ó¼Ò¶¼ÔÚ¶Áʲô£¿
³ÉÊéÊÖ¼Ç
ACM-ICPC¹Ú¾ü̸¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·¼°Ïà¹ØËã·¨Êé
ÉçÇø¶¯Ì¬
ÀÖÒ뿪·ÅÊ飺Python for Software Design
ͼÁé·Ã̸£º¶Ô»°Peter Harrington
ÌýÊ鼯»®£º¡¶³ÌÐòÔ±µÄ˼άÐÞÁ¶¡·
ÉçÇø½éÉÜ
·âµ×
±àÕߵϰ
´ÓPython¿ªÊ¼
±àÕß ÀîÅÎ
¶ÔÓÚÒ»ÖÖ±à³ÌÓïÑÔÀ´Ëµ£¬×îÖØÒªµÄ¾ÍÊÇÃû×ÖÁË¡£Ã»ÓкÃÃû×ÖµÄÓïÑÔÊÇ
ÎÞÂÛÈçºÎÒ²ÎÞ·¨³É¹¦µÄ¡£ÎÒ×î½ü·¢Ã÷ÁËÒ»¸ö·Ç³£°ôµÄÃû×Ö£¬ÏÖÔÚÕýÔÚ
ÕÒÄǸöºÏÊʵÄÓïÑÔ¡£
¡ª¡ªDonald Knuth(¸ßµÂÄÉ)
Python µ½µ×ΪʲôҪ½Ð×öPython(òþÉß)ÄØ£¿ PythonµÄ·¢Ã÷ÈË Guido
van Rossum˵£¬ÄÇÊÇÒòΪËûÐèÒªÒ»¸ö¼ò¶Ì¡¢¶ÀÌØ£¬»¹ÂÔ´øÓÐÉñÃØ¸ÐµÄÃû
×Ö¡£(¸ÕÇÉÄÇʱËûÕýÔÚ¿´Ò»¸ö70Äê´úµÄBBCϲ¾çÐ㣬½Ð×ö¡°¾Þòþ¾çÍŵÄ
·ÉÏèÂíÏ·ÍÅ¡±¡£)Python×÷ΪһÃűà³ÌÓïÑÔ£¬¿ÉÄÜ×îǷȱµÄ¾ÍÊÇ¡°ÉñÃØ
¸Ð¡±ÁË¡£Ëü¿ÉÒÔÊÇ¡°ºÃÍæµÄ(Playful Programming)¡±£¬Ò²¿ÉÒÔÊÇ¡°ºÃѧ
µÄ¡±(PythonÉõÖÁ¿ÉÒÔÓÃÀ´½ÌÊÚ¸øÐ¡Ñ§Éú)¡£ÍêÈ«²»¶®±à³ÌµÄÈË¿ÉÒÔ°Ñ
Python×÷Ϊ×Ô¼ºµÄµÚÒ»Ãűà³ÌÓïÑÔ£¬µ«ÊÇ£¬Õâ²¢²»Òâζ×ÅËü²»¹»Ç¿´ó¡£
¶ÔÓÚ¶®µÃPythonµÄÈËÀ´Ëµ£¬PythonicÊÇÒ»ÖÖ±à³Ì·ç¸ñ¡£Ëü³çÉÐÓÅÑÅ¡¢Ã÷
È·¡¢¼òµ¥£¬¡°Èç¹ûÄÜÓÃͬһÖÖ·½·¨À´×öÒ»¼þÊÂÇ飬ΪʲôҪ±äÀ´±äÈ¥
ÄØ£¿¡±ÕýÊÇÕâÖÖ×î´ó³Ì¶È¼ò»¯×ÔÉíµÄ˼ÏëÈÿÆÑ§½çÕÅ¿ªË«±Û»¶Ó
Python£¬ÉõÖÁ³ÆËüΪ¡°¿ÆÑ§µÄÓïÑÔ¡±¡£NumPy¡¢SciPy¡¢Matplotlib¿ÉÒÔÈÃ
Python³ÌÐòÔ±±àд¿ÆÑ§¼ÆËã³ÌÐò¡£ÖÚ¶àPythonistÒ²¿ÉÒÔ½è´Ë¿ªÆô¸ü¼ÓÓÐȤµÄѧϰÂọ́ºÊý¾Ýͳ¼Æ¡¢»úÆ÷ѧϰ¡¢¼ÆËã»ú¿ÆÑ§£¬ÉõÖÁ×ÔÈ»¿ÆÑ§¡£
¼òµ¥»á¼¤·¢³ö¸üÇ¿´óµÄ´´ÔìÁ¦Â𣿱¾ÆÚµÄÂëÅ©ÈËÎïÂÞ³¿£¬ËäÈ»²»ÊÇ
Python³ÌÐòÔ±£¬µ«ÊÇËûÉíÌåÁ¦ÐеØÊµ¼ùÁË¡°¼òµ¥¡±Õâ¼þÊ¡£ËûÒÔǰ¶Ë¹¤³Ì
ʦΪĿ±ê£¬³É¹¦µØ³ÉΪÁËÒ»ÃûÔÚÅ©³¡ÎñÅ©µÄ¶ÀÁ¢¿ª·¢ Õß¡£³çÉмòÔ¼µÄ
Markdown±à¼Æ÷Mou£¬¾ÍÊÇËûµÄ×÷Æ·Ö®Ò»¡£Ï£ÍûËûµÄÉú»î¾Àú£¬»á¸ø
ÄãÒ»¸öеĽǶȺÍһЩ²»Í¬µÄÆôʾ¡£
ÈÃÎÒÃÇ´ÓÒ»³É²»±äµÄÉú»îÖÐÕÒµ½Ò»Ð©ÐÂÏÊÔªËØ°É!ѧһÃÅеÄÓïÑÔ£¬½Ì
Ò»¸öÅóÓÑѧ»á±à³Ì£¬»òÕßΪÄãµÄ¼ÒÈ˱àдµãʲô¡£¿ÉÄÜ£¬¾Í´ÓPython¿ª
ʼ¡£×¨Ì⣺´ÓPython¿ªÊ¼PPPÊÇʲô£¿ºÃÍæµÄPython±à³Ì!
×÷Õß Magnus Lie Hetland
ŲÍþ¿Æ¼¼´óѧ¼ÆËã»ú¿ÆÑ§×¨Òµ¸±½ÌÊÚ¡£×î½üÔÚÑо¿ÏàËÆÐÔËÑË÷ºÍ¶ÈÁ¿
Ë÷Òý¡£ÖøÓС¶Python»ù´¡½Ì³Ì¡·¡¢¡¶PythonËã·¨¡·µÈ¡£ÒµÓàʱ¼ä×ö¼æ
Ö°ÑÝÔ±¡£¾³£ÊÕµ½ºÚ¿Í¹ØÓÚÇд輼ÊõµÄÓʼþ£¬´Ó²»»Ø¸´¡£
ÒëÕß˾ά
¸öÈËÈÏΪPythonµÄÇ¿´ó¹¦ÄÜÖ®Ò»£¬¾ÍÊÇËüÈñà³Ì±äµÃºÃÍæ¡ª¡ªÖÁÉÙ¶ÔÎÒ
À´ËµÊÇÕâÑù¡£Ö»Óие½±à³ÌÊÇÓÐȤµÄʱºò£¬²ÅÈÝÒ׸»ÓгÉЧ¡£Python×î
ÓÐÒâ˼µÄµØ·½Ö®Ò»¾ÍÊÇËüÄÜÈÃÄãµÄ¹¤×÷±äµÃ·Ç³£¸»ÓгÉЧ¡£ÕâÊǸöÁ¼ÐÔ
Ñ»·£¬ÔÚÉú»îÖУ¬ÕâÖÖÑ»·¿É²»¶à¡£
ºÃÍæµÄ±à³Ì(Playful Programming)ÊÇÎÒ·¢Ã÷µÄ´Ê£¬ÊǼ«ÏÞ±à³Ì
(Extreme Programming£¬Òà³ÆXP)µÄ·Ç¼«ÏÞ°æ±¾¡£XPµÄ´ó¶àÊýµã×ÓÎÒ
¶¼Ï²»¶£¬µ«ÊÇÎÒÌ«ÀÁÁË£¬²»ÄÜÍêÈ«×ñÊØËüµÄÔÔò¡£ËùÒÔÏÖÔÚÌôÁËһЩҪ
µã³öÀ´£¬½«ËüÃÇÓëPython³ÌÐò¿ª·¢µÄ×ÔÈ»·½Ê½×éºÏÆðÀ´¡£
³ÌÐòÉè¼ÆµÄÈáÊõ
¸÷λÌý˵¹ýÈáÊõÂð£¿ÕâÊÇÒ»ÖÖÈÕ±¾ÎäÊõ£¬ËüºÍËüÑÜÉú³öÀ´µÄÈáµÀÒÔ¼°ºÏ
ÆøµÀÒ»Ñù£¬¶¼×¢ÖØ·´Ó¦µÄÁéÃôÐÔ£¬»òÕß˵¡°Íä¶ø²»¶Ï¡±¡£±ÈÈüʱ£¬²»Ó¦¸Ã
ÊÔͼʹÓÃÔ¤ÏÈÉè¼ÆºÃµÄÒÆ¶¯ÃÉÆ¶ÔÊÖ£¬¶øÒªË³Æä×ÔÈ»£¬ÒÔ¶ÔÊֵ͝×÷»¹
ÖÎÆäÉí¡£ÕâÖÖ·½Ê½(ÔÚÀíÂÛÉϽ²)¿ÉÒÔ»÷°Ü±ÈÄã¸ß´ó¡¢Ç¿×³ºÍ¹îÚܵĶÔ
ÊÖ¡£ÄÇôÔõÑù½«ÈáÊõÓ¦Óõ½³ÌÐòÉè¼ÆÖÐÄØ£¿¹Ø¼üÔÚÓÚ¡°Èᡱ×Ö£¬Ò²¾ÍÊÇÁé»î
ÐÔ¡£ÔÚ±à³ÌÓöµ½Âé·³µÄʱºò(×Ü»áÓöµ½µÄ)£¬¾Í²»Ó¦¸Ã¹ÌÊØÓÚÔÀ´µÄÉè
¼ÆºÍÏë·¨£¬¶øÒªÁé»î±äͨ£¬ÒÔÈá¿Ë¸Õ¡£Òª×¼±¸ºÃÈ¥Ó¦¶ÔºÍÊÊÓ¦±ä»¯¡£²»
Òª½«Ã»ÓÐÔ¤Áϵ½µÄʼþ¿´×öÈÃÈ˾ÚÉ¥µÄÒâÍ⣬¶øÒª½«ËüÃÇ×÷Ϊ̽Ë÷еÄ
Ñ¡ÔñºÍ¿ÉÄÜÐÔµÄÆðµã¡£
Ҫ˵µÄÊÇ£¬µ±´ó¼Ò×øÏ²¢¼Æ»®Ó¦¸ÃÈçºÎ×éÖ¯³ÌÐòµÄʱºò£¬¶ÔÓÚÕâ¸ö¾ßÌå
µÄ³ÌÐò£¬Ä㻹ûÓÐÈκεľÑé¡£Ôõô¿ÉÄÜ»áÓоÑ飿±Ï¾¹Ëü»¹²»´æÔÚ
ÄØ¡£ÔÚʵÏÖ¹¦ÄܵÄʱºò£¬»áÖð½¥µØÑ§µ½¶ÔÔʼÉè¼ÆÓÐÓõÄÐÂ֪ʶ¡£²»Ó¦
¸ÃÎÞÊÓһ·×ßÀ´ËùÎüÈ¡µÄ½Ìѵ£¬¶øÓ¦¸Ã½«ËüÃÇÓÃÓÚÈí¼þµÄÖØÐÂÉè¼Æ(»ò
ÕßÖØ¹¹)ÖС£Õâ²»ÊÇ˵Ӧ¸ÃÏñÎÞÍ·²ÔÓ¬Ò»Ñù£¬ÂíÉϾͿªÊ¼×ÅÊÖ¹¤×÷¡ª¡ª
¶øÊÇ˵Ӧ¸ÃΪ¸Ä±ä¶ø×öºÃ×¼±¸£¬²¢ÇÒ½ÓÊÜ¡°×î³õµÄÉè¼Æ»áÐèÒª¸Ä½ø¡±ÕâÑù
Ò»¸ö¸ÅÄî¡£¾ÍÏñÒÔǰһλ×÷¼Ò˵µÄ¡°×«Ð´¼´ÖØÐ´¡±¡£
Áé»îÐÔµÄʵÏÖ°üÀ¨Ðí¶à·½Ã棬ÏÂÃæÊÇÆäÖеÄÁ½¸ö£º
ÔÐÍÉè¼Æ¡£Python×î°ôµÄ¹¦ÄÜÖ®Ò»¾ÍÊÇ¿ÉÒÔ¿ìËٵرàд³ÌÐò¡£±àд
ÔÐͳÌÐòÊǸü³ä·ÖµØÁ˽âÎÊÌâµÄÒ»Öֺܺõķ½·¨¡£
ÅäÖá£Áé»îÐÔÓкܶàÖÖ´æÔÚÐÎʽ¡£ÅäÖõÄÄ¿µÄ¾ÍÊÇÈóÌÐòij²¿·ÖµÄ
¸Ä±ä¸ü¼òµ¥£¬¶ÔÓÚÄãºÍÓû§À´Ëµ¶¼ÊÇÕâÑù¡£µÚÈýµãÊÇ×Ô¶¯»¯²âÊÔ¡£Èç¹ûÏ£ÍûÇáËɸıä³ÌÐòµÄ»°£¬ÄÇô×Ô¶¯»¯²âÊÔ¾ø
¶ÔÊDZز»¿ÉÉٵġ£Ê¹ÓÃԵزâÊÔ£¬¾ÍÄܱ£Ö¤ÄãµÄ³ÌÐòÔÚ½øÐÐÐ޸ĺó»¹ÄÜ
¹¤×÷¡£ÔÐÍÉè¼ÆºÍÅäÖö¼»áÔÚÏÂÃæµÄ¼¸½ÚÖÐÌÖÂÛ¡£
ÔÐÍÉè¼Æ
Ò»°ãÀ´Ëµ£¬Èç¹û¶ÔÓÚPythonµÄij¸öµØ·½²»Ã÷°×µÄ»°£¬ÄÇô³¢ÊÔһϾͺÃ
ÁË¡£Ê×ÏÈ£¬²»ÐèÒª½øÐÐ¶à·½ÃæµÄÔ¤´¦Àí¡ª¡ª±ÈÈç±àÒë»òÕßÁ´½Ó£¬¶øÕâÊÇ
ÆäËûºÜ¶àÓïÑÔËù±ØÐèµÄ¡£¿ÉÒÔÖ±½ÓÔËÐÐÄãµÄ´úÂë¡£²»Ö¹Èç´Ë¡ª¡ª»¹ÄÜÔÚ
½»»¥Ê½½âÊÍÆ÷ÀïÃæÖð¸öµØÔËÐУ¬É¨Çåÿ¸ö½ÇÂ䣬ֱµ½×Ô¼ºÍêÈ«Ã÷°×ÁËËü
µÄ¹¤×÷·½Ê½¡£
ÕâÀà̽Ë÷¹¤×÷²¢²»Ö»ÏÞÓÚÓïÑÔÌØÐÔºÍÄÚ½¨º¯Êý¡£µ±È»£¬Õâ¶ÔÓÚÁ˽âÀàËÆ
iterÕâÑùµÄº¯ÊýµÄ¹¤×÷·½Ê½ºÜÓÐÓ㬵«¸üÖØÒªµÄÊÇÇáËɵØÎªÄã×¼±¸±àд
µÄ³ÌÐò´´½¨ÔÐ͵ÄÄÜÁ¦£¬¿´¿´ËüÊÇÔõô¹¤×÷µÄ¡£
×¢Òâ ÔÚËù̸¼°ÎÊÌâµÄ±³¾°ÖУ¬ÔÐÍ(prototype)Õâ¸ö´ÊÒâζ×ÅʵÑé
ÐÔµÄʵÏÖ£¬¼´ÊµÏÖ×îÖÕ³ÌÐòÖ÷Òª¹¦ÄܵĴó¸ÅÄ£ÐÍ(mock-up)£¬µ«ÊÇ
ÔÚÒÔºóµÄ½×¶Î¿ÉÒÔÍêÈ«ÖØÐ´»ò²»ÖØÐ´ÔÓгÌÐò¡£Ò»°ãÀ´Ëµ¿ªÊ¼µÄÔÐÍ
×îºó¶¼»á±»¸Äд³ÉʵÓõijÌÐò¡£
ÔÚ½«Ò»Ð©Ë¼ÏëÈÚÈëµ½³ÌÐòµÄ½á¹¹Öкó(±ÈÈçÐèÒªÄÄЩÀàºÍº¯Êý)£¬½¨Òé
ʵÏÖÒ»¸ö¼òµ¥µÄ°æ±¾£¬Õâ¸ö°æ±¾µÄ¹¦ÄÜ¿ÉÄܷdz£ÓÐÏÞ¡£ÊµÏÖÁËÒ»¸ö¿ÉÔË
ÐеijÌÐòºó£¬¾ÍÄÜ·¢ÏÖÕâ¸ö¹ý³ÌÊǶàô¼òµ¥¡£È»ºó¿ÉÒÔÔö¼ÓÌØÐÔ¡¢¸Ä±ä
²»Ï²»¶µÄµØ·½£¬µÈµÈ¡£Ò²¿ÉÒÔ¿´¿´ËüÊÇÈçºÎ¹¤×÷µÄ£¬¶ø²»ÊÇÖ½ÉÏ̸±ø»
»Í¼±í¶øÒÑ¡£
»¹ÄÜÔÚÈκγÌÐòÉè¼ÆÓïÑÔÖÐʹÓÃÔÐÍÉè¼Æ£¬µ«ÊÇPythonµÄÇ¿´óÖ®´¦¾ÍÔÚ
ÓÚ±àдһ¸öÄ£ÐÍÖ»ÐèÒªºÜÉÙµÄͶÈ룬¶ø²»Óô󶯸ɸꡣÈç¹û·¢ÏÖµÄÉè¼Æ
²¢²»ÏñÔ¤ÆÚµÄÒ»ÑùºÃÓ㬾ͿÉÒÔÈÓµôÔÐÍ´ÓÍ·ÔÙÀ´¡£Õâ¸ö¹ý³Ì¿ÉÄÜÒª»¨
Éϼ¸¸öСʱ¡¢Ò»Ìì»òÕßÁ½Ìì¡£Èç¹ûÓÃC++±à³ÌµÄ»°£¬Òª°Ñij²¿·Ö×éÖ¯ºÃ
ÔËÐÐÆðÀ´µÄ»°¿ÉÄÜÐèÒª¸ü¶àµÄ¾«Á¦£¬¶ø·ñ¾öÔÐÍÒ²»á³ÉΪһ¸öÖØÒªµÄ¾ö
¶¨¡£¹ÌÊØÒ»¸ö°æ±¾£¬Ò²¾ÍʧȥÁËÁé»îÐÔ¡ª¡ª×¢¶¨±»ÔçÏȵľö¶¨½ûïÀס£¬¶øÔÚÕæÕýʵÏÖ³ÌÐòµÄʱºòËù»ñµÃµÄʵ¼Ê¾Ñ飬¿ÉÄÜ»áÖ¤ÊµÖØÐ´³ÌÐòµÄ¾ö
¶¨ÊÇ´íÎóµÄ¡£
ÿ¸öÏîÄ¿¶¼»á·ÖΪÁ½¸ö½×¶ÎµÄʵÏÖ¡£µÚÒ»¸öʵÏÖÖ»ÊǸöÃþË÷ÐÔÖʵÄÊÔ
Ñ飬ÔÚÕâ¸ö½×¶Î»áÆ´´Õ³öÒ»¸öÄܽâ¾öÎÊÌâ(»òÕßÊÇÎÊÌâµÄÒ»²¿·Ö)µÄ³ÌÐò£¬ÒÔ±ãÁ˽âËùÐèÒªµÄ×é¼þºÍÓÅÐã½â¾ö·½°¸µÄÐèÇó¡£ÄÜËæÊ±¿´µ½³ÌÐòµÄ
ËùÓÐç¢Â©£¬ÊÇѧϰ±à³ÌµÄ×îºÃÒ»¿Î¡£ÀûÓÃÐÂѧµ½µÄ֪ʶ£¬»á¶ÔµÚÒ»´Îʵ
ÏֵijÌÐòÒÔ¸ü¼ÓÕýʽµÄ·½Ê½½øÐÐÖØ½¨¡£µ±È»£¬´ó¼ÒÓ¦¸Ã°´×Ô¼ºµÄÏë·¨ÔÙ
¸Ä½ø´úÂ룬ÉõÖÁ¿ªÊ¼µÚÈý´ÎµÄʵÏÖ¡£Ò»°ãÀ´Ëµ£¬´ÓÍ·¿ªÊ¼Éè¼ÆËù»¨·ÑµÄ
ʱ¼ä²¢Ã»Óдó¼ÒÏëµÃÄÇô¶à¡£Èç¹ûÒѾ³¹µ×ÏëͨÁ˳ÌÐòµÄʵÓÃÐԵϰ£¬ÄÇôÇôúÂëµÄʱ¼äÓ¦¸Ã²»»áÌ«³¤¡£
¶Ô´úÂëÖØÐ´Ëµ²»
¾¡¹ÜÕâÀïÍÆ¼ö´ó¼ÒʹÓÃÔÐÍ£¬µ«ÔÚÈκÎʱºò¶ÔÓÚ´ÓÍ·¿ªÊ¼ÖØÐ´ÏîÄ¿¸ø
³öһЩ¾¯¸æÒ²ÊÇʳöÓÐÒò£¬ÓÈÆäÊǶÔÓÚÔÐÍÏÂÁ˺ܴ󹦷òµÄʱºò¡£¾Í
¶à·½ÃæÀ´½²£¬»¹ÊÇÍÆ¼ö´ó¼Ò¶ÔÔÐͽøÐÐÖØ¹¹ºÍÐ޸쬽«ÆäÍêÉÆÎª¹¦ÄÜ
ÐÔ¸üºÃµÄϵͳ¡£Ò»¸ö³£¼ûÎÊÌâ¾ÍÊÇ¡°µÚ¶þϵͳ×ÛºÏÖ¢¡±¡£ÄãÏ£ÍûµÚ¶þ¸ö
°æ±¾±äµÃ¸üºÃ£¬½á¹ûÈ´ÓÀÔ¶ÎÞ·¨Íê³É¡£
¶ø¡°³ÖÐøÖØÐ´×ÛºÏÕ÷¡±Ò²ÊÇÎÄѧ½çµÄÊõÓÖ÷Òª±íÏÖΪ¶Ô³ÌÐò½øÐÐһЩ
ÎÞÓõÄÐ޸쬳ÌÐòÔ±¿ÉÄÜ»áÒ»´ÎÓÖÒ»´ÎµØ´ÓÍ·¿ªÊ¼ÖØÐÂÉè¼Æ¡£´ÓijЩ
·½ÃæÀ´¿´£¬ÊʿɶøÖ¹¿ÉÄÜÊÇ×î¼Ñ²ßÂÔ¡ª¡ªÄܹ¤×÷×ãÒÓ¡£
È»ºó¡°´úÂëÆ£ÀÍ¡±ÏÖÏó¾Í³öÏÖÁË¡£³ÌÐòÔ±»áÑá·³´úÂ롣ʹÓÃÁ˺ܳ¤Ê±¼ä
Ö®ºó£¬¾Í»á¾õµÃ´úÂë³óªµÃ²»¿°ÈëÄ¿¡£ºÜÒź¶£¬ÓÉÓÚÐèҪǨ¾ÍºÜ¶àÌØ
ÊâÇé¿ö£¬´úÂë»á±äµÃ±¿ÖØ£¬ÆäÖл¹ÓдóÁ¿²»Í¬¸ñʽµÄ´íÎó´¦Àí´úÂë¡£
µ«ÕâЩ¶¼ÊÇа汾ÖбØÐëÒªÖØÐÂÒýÈëµÄ£¬¶øÇÒÒªºÄ·ÑÄãµÄ´óÁ¿¾«Á¦
(²»ÊÇÒÔµ÷ÊÔµÄÐÎʽ)À´Ê×ÏÈʵÏÖ¡£
»»¾ä»°Ëµ£¬Èç¹ûÈÏΪÔÐͳÌÐòÄÜÍêÉÆÎª¿ÉÒÔ¹¤×÷µÄϵͳ£¬ÄDz»¹ÜÔõô
˵¶¼Òª¼á³ÖÏÂÈ¥£¬¶ø²»ÊÇÍÆµ¹ÖØÀ´¡£ÏÂÃæµÄ¼¸ÕÂÀïÃæ£¬³ÌÐòµÄ¿ª·¢±»
Ã÷È··ÖΪÁ½¸ö°æ±¾£ºÔÐͺÍ×îÖÕ°æ±¾¡£Õâô×ö¼ÈÊÇΪÁËÇåÎú£¬Ò²ÊÇΪ
ÁËÇ¿µ÷±àдµÚÒ»°æÈí¼þµÄʱºòËù»ñµÃµÄ¾ÑéºÍ¶´²ìÁ¦¡£ÔÚÏÖʵÊÀ½ç
ÖУ¬ÒÔÔÐͺ͡°Öع¹×ÔÉí¡±×÷Ϊ×îÖÕϵͳµÄÖ¸µ¼Ë¼Ï뻹ÊǺܿ¿Æ×µÄ¡£
¶ÔÓÚ´ÓÍ·¿ªÊ¼µÄ¿ÉÅÂÖ®´¦£¬Çë²Î¼ûJoel SpolskyµÄÎÄÕ¡°Things You
Should Never Do£¬Part 1¡±(ÄãÓÀ²»¸Ã×öµÄÊ£¬µÚÒ»²¿·Ö)(¿ÉÒÔÔÚËû
µÄÍøÕ¾http:joelonsoftware.comÉÏÕÒµ½)¡£¸ù¾ÝSpolskyµÄ˵·¨£¬´ÓÍ·
д´úÂëÊÇÈκÎÈí¼þ¹«Ë¾¶¼»á·¸ÏµÄ×îÔã¸âµÄ¾ö²ßÐÔ´íÎó¡£
ÅäÖóéÏóµÄÖØÒªÔÔò£ºÒ»ÖÖ¸ü¼Ó¼òµ¥µÄÔÚ³ÌÐòÖÐÒýÈë³éÏóµÄ·½·¨£º´Ó´úÂëÖÐ
ÌáÈ¡·ûºÅ»¯³£Á¿(symbolic constant)¡£
ÌáÈ¡³£Á¿
Ç°ÃæËù˵µÄ³£Á¿(constant)Ö¸µÄÊÇÄÚ½¨µÄ×ÖÃæÁ¿£¬ÀýÈçÊý×Ö¡¢×Ö·û´®
ºÍÁÐ±í¡£ÔÚ³ÌÐòÖÐÕâЩ³£Á¿²»ÓÃÖØ¸´±àд£¬·ÅÖÃÔÚÈ«¾Ö±äÁ¿Öм´¿É¡£Ëä
Ȼ֮ǰµÄÕ½ÚÌÖÂÛ¹ýʹÓÃÈ«¾Ö±äÁ¿µÄ»µ´¦£¬µ«ÊÇÕâÖÖ»µ´¦Ò»°ãÖ»ÓÐÔÚÈ«
¾Ö±äÁ¿±»¸Ä±äµÄʱºò²Å»áÌåÏÖ³öÀ´£¬ÒòΪ³ÌÐòÔ±¿ÉÄÜÄÑÒÔ×·×ÙÄĶδúÂë
ÒýÆðÁËÄĸö¸Ä±ä¡£ÎÒ²»»á´¦ÀíÕâЩ±äÁ¿£¬ÔÚʹÓÃʱ°ÑËüÃǵ±×ö³£Á¿(Ò²
¾ÍÊÇÊõÓï·ûºÅ»¯³£Á¿)¾Í¿ÉÒÔÁË¡£ÎªÁ˱êʶ±äÁ¿ÊÇ×÷Ϊ·ûºÅ»¯³£Á¿¶Ô´ý
µÄ£¬¿ÉÒÔʹÓÃÌØÊâµÄÃüÃû¹æÔò¡ª¡ªÃû×ÖÖ»Óôóд×Öĸ£¬²¢ÇÒÓÃÏ»®Ïß·Ö
¸ôÿ¸öµ¥´Ê¡£
ÏÈÀ´¿´¸öÀý×Ó¡£ÔÚ¼ÆËãÔ²Ãæ»ýºÍÖܳ¤µÄ³ÌÐòÖУ¬Ã¿´ÎÐèÒª¦ÐÖµµÄʱºò¶¼
µÃдһ±é3.14¡£ÄÇôÈç¹ûºóÀ´ÐèÒª¸ü¾«È·µÄÖµ£¬±ÈÈç3.14159ʱ£¬ÓÖÔõô
°ìÄØ£¿¹À¼Æ¾ÍµÃËÑË÷Õû¸ö´úÂ룬ȻºóÓÃеÄÖµÌæ»»¾ÉµÄ¡£Õâô×ö²»ÄÑ£¬¶øÇҺܶàÓÅÐãµÄÎı¾±à¼Æ÷»¹ÄÜ×Ô¶¯Ìæ»»¡£µ«ÊÇÈç¹û¿ªÊ¼ÓõÄÖµÊÇ3Ôõ
ô°ì£¿×ܲ»ÄܰÑËùÓÐÓë3Æ¥ÅäµÄÊý×Ö¶¼Ìæ»»³É3.14159°É£¿µ±È»²»ÄÜ¡£´¦
ÀíÕâ¸öÎÊÌâ¸üºÃµÄ·½·¨ÊÇÓÃÏÂÃæÕâÐдúÂ뿪ʼ³ÌÐò£ºPI = 3.14£¬È»ºóʹ
ÓÃÃû×ÖPIÌæ´úÊý×Ö±¾Éí¡£ÕâÑùÒ»À´Èç¹ûÔÚÒÔºóÒª¸ü¾«È·µÄֵʱ£¬¸Ä¶¯Õâ
Ò»ÐоͿÉÒÔÁË¡£¼ÇסÕâÒ»µã£ºËùдµÄ³£Á¿(±ÈÈçÊý×Ö42»òÕß×Ö·û
´®¡°Hello, world!¡±)³öÏÖ´ÎÊý¶àÓÚÒ»´ÎµÄʱºò£¬¾ÍÓ¦¸Ã¿¼Âǽ«Ëü·ÅÈëÈ«
¾Ö±äÁ¿ÖС£
×¢Òâ ÊÂʵÉÏ£¬¦ÐµÄÖµ¿ÉÒÔÔÚmathÄ£¿éÖÐÕÒµ½£¬Ê¹ÓÃmath.pi¼´¿É£º
>> from math import pi
>> pi
3.1415926535897931
ÕâÒ»µã¿´ÆðÀ´ºÜÈÝÒ×Àí½â¡ª¡ªÃ»ÎÊÌâ¡£ÕæÕýµÄÄ¿µÄÔÚÏÂÃæ£ºÅäÖÃÎļþ¡£
ÅäÖÃÎļþ
Ϊ×Ô¼ºÊ¹Ó÷½±ãÌáÈ¡³£Á¿ÊÇÒ»ÂëÊ£¬»¹Òª¿¼ÂÇÓÐЩ³£Á¿ÊÇÒª¹«¿ª¸øÓû§
µÄ¡£±ÈÈçÓû§²»Ï²»¶GUI³ÌÐòµÄ±³¾°É«£¬Äã¾ÍÓ¦¸ÃÔÊÐíËûÃÇ»»ÁíÍâÒ»ÖÖ
ÑÕÉ«¡£»òÕß¿ÉÒÔÈÃÓû§ÔÚÆô¶¯ÄǺÃÍæµÄÓÎϷʱ£¬¿´µ½ËûÃÇ×Ô¼ºÉ趨µÄÎʺòÓÒÖ»òÊÇ¿ÉÒÔÔÚ¸Õ¸ÕʵÏÖµÄä¯ÀÀÆ÷Öиü¸ÄĬÈÏÆô¶¯Ò³¡£
ÕâÀï²»Êǽ«ÕâЩÅäÖñäÁ¿·ÅÔÚÄ£¿éµÄ¿ªÍ·£¬¶øÊǽ«ËüÃÇ·ÅÔÚµ¥¶ÀµÄÎļþ
ÖС£ÊµÏÖÕâ¸ö¹¦ÄܵÄ×î¼òµ¥·½·¨¾ÍÊÇΪÅäÖô´½¨µ¥¶ÀµÄÄ£¿é¡£ÀýÈ磬Èç
¹ûPIÔÚÄ£¿éÎļþconfig.pyÖÐÉ趨£¬Äã¿ÉÒÔ(ÔÚÖ÷³ÌÐòÄÚ)ÕâÑù×ö£º
from config import PI
Èç¹ûÓû§Ïë¸Ä±äPIµÄÖµ£¬ÄÇôËû¾ÍÖ»ÒªÐÞ¸Äconfig.py¾ÍÐУ¬¶ø²»Óÿ´Íê
ËùÓдúÂë¡£
¾¯¸æ ʹÓÃÅäÖÃÎļþ¾ßÓÐÁ½ÃæÐÔ¡£Ò»·½Ã棬ÅäÖù¦ÄܺÜÓÐÓ㬵«¶ÔÕû
¸öÏîĿʹÓü¯ÖС¢¹²ÏíµÄ±äÁ¿¿â»áÈÃÏîÄ¿µÄÄ£¿éÐÔϽµ¡¢ÕûÌåÐÔÉÏ
Éý¡£Ò»¶¨ÒªÈ·±£Ã»ÓÐÆÆ»µ³éÏó(±ÈÈç·â×°)¹æÔò¡£
ÁíÍâÒ»ÖÖ·½·¨ÊÇʹÓñê×¼¿âÄ£¿éConfigParser£¬ËüµÄ×÷ÓÃÊǶÔÅäÖÃÎļþ
ʹÓÃÊʵ±µÄ±ê×¼¸ñʽ¡£Ëü½ÓÊܱê×¼µÄPython¸³ÖµÓï·¨£¬±ÈÈçÈçÏÂÐÎʽ£º
greeting = 'Hello, world!'
(ÕâÑùÓï¾ä»áÔÚµÄ×Ö·û´®ÖмÓÉÏÁ½¸ö¶àÓàµÄË«ÒýºÅ)ÁíÍâÒ»ÖÖÔںܶà³Ì
ÐòÖÐʹÓõÄÅäÖøñʽÈçÏ£º
greeting: Hello, world!
ÐèҪʹÓÃ[files]»òÕß[colors]ÕâÑùµÄÊý¾ÝÍ·½«ÅäÖÃÎļþ»®·ÖΪ¼¸¸öÇø¶Î
(section)¡£Ãû³Æ¿ÉÒÔËæÒâÉ趨£¬µ«ÊÇÐèÒª½«ËüÃÇÓ÷½À¨ºÅÀ¨ÆðÀ´¡£´ú
ÂëÇåµ¥1ÊÇÒ»¸ö¼òµ¥µÄÅäÖÃÎļþʾÀý£¬Ê¹ÓÃËüµÄ³ÌÐòÈç´úÂëÇåµ¥2Ëùʾ¡£
ÓйØConfigParserÄ£¿éÌØÐԵĸü¶àÐÅÏ¢£¬¿ÉÒÔ²éÔÄ¿âÎĵµ¡£
´úÂëÇåµ¥1 ¼òµ¥µÄÅäÖÃÎļþ
[numbers]
pi: 3.1415926535897931
[messages]`
greeting: Welcome to the area calculation program!
question: Please enter the radius:
result_message: The area is´úÂëÇåµ¥2 ʹÓÃConfigParserµÄ³ÌÐò from ConfigParser import
ConfigParser
CONFIGFILE = python.txt
config = ConfigParser
¶ÁÈ¡ÅäÖÃÎļþ£º
config.read(CONFIGFILE)
´òÓ¡³õʼµÄÎʺòÓ
Òª²é¿´µÄÇø¶ÎÊÇ'messages'
print config.get('messages', 'greeting')
ʹÓÃÅäÖÃÎļþµÄÒ»¸öÎÊÌâ¶ÁÈ¡°ë¾¶£º
radius = input(config.get('messages', 'question') + ' ')
´òÓ¡ÅäÖÃÎļþÖеĽá¹ûÐÅÏ¢¡£
ÒÔ¶ººÅ½áÊø£¬ÒÔÔÚͬһÐÐÏÔʾ£º
print config.get('messages', 'result_message'), getfloat½«configֵת»»ÎªfloatÀàÐÍ£º
print config.getfloat('numbers', 'pi') radius2
¶ÔÓÚ½ÓÏÂÀ´¼¸¸öÏîÄ¿µÄÅäÖò»ÔÙ׸Êö£¬µ«Êǽ¨Òé¶ÁÕßÈÃ×Ô¼ºµÄ³ÌÐò¾ßÓÐ
¸ßÅäÖÃÐÔ¡£ÕâÑùÒ»À´£¬Óû§¾Í¿ÉÒÔ°´ÕÕ×Ô¼ºµÄϰ¹ßʹÓóÌÐò£¬Ê¹ÓÃʱҲ
»áÐÄÇéÓäÔᣱϾ¹Ê¹ÓÃÈí¼þ¹ý³ÌÖÐ×î´óµÄ´ìÕÛÖ®Ò»¾ÍÊDz»ÄÜÈÃÈí¼þ°´×Ô
¼ºÏëÒªµÄ·½Ê½¹¤×÷¡£
¡¶Python»ù´¡½Ì³Ì(µÚ2°æ)¡·Ç°¼¸Õ¶¼ÔÚ½éÉÜ×î»ù±¾µÄ³ÌÐòÉè¼ÆÀí
ÄÀýÈ缫ÏÞ±à³Ì¡¢ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ£¬¶ÔÓÚûÓжàÉÙ¿ª·¢¾Ñé»òÕß×¼±¸ÒÔPython½øÐбà³ÌÈëÃŵÄÐÂÊÖÀ´Ëµ£¬ÕâЩÕ½ÚÔòÊDz»ÈÝ´í¹ýµÄ¡£×÷Õß
¶ÔPythonÓïÑԵĸ÷¸ö·½ÃæµÄÆÊÎö׼ȷ¶øµ½Î»£¬¸÷²¿·Ö»á»¨Éϲ»Í¬Æª·ùÈ·
±£¶ÁÕßÀí½â¶øÓÖ²»»áÀË·Ñʱ¼ä¡£±¾Êé×îºóµÄ10¸öÏîÄ¿¶¼ÊÇÄѵõÄÁ·ÊÖ»ú
»á¡ª¡ªÕâÒ²ÊDZ¾Ê鲻ͬÓÚÆäËûPython½Ì³ÌµÄÌØÉ«Ö®Ò»¡£Õâ10¸öÏîÄ¿»ù±¾
¸²¸ÇÁËÇ°ÃæÕ½ÚËùÌáµ½µÄ¸÷ÖÖ֪ʶµã£¬Í¬Ê±ÓÖ²»·¦È¤Î¶ÐÔºÍʵÓÃÐÔ¡£±¾
ÎÄÕª×Ô¡¶Python»ù´¡½Ì³Ì(µÚ2°æ)¡·¡£ÎªÊ²Ã´ÒªÓÃPythonʵÏÖ»úÆ÷ѧϰËã·¨£¿
×÷Õß Peter Harrington
ÓµÓÐµçÆø¹¤³ÌѧʿºÍ˶ʿѧ룬ËûÔø¾ÔÚÃÀ¹ú¼ÓÖݺÍÖйúµÄÓ¢ÌØ¶û¹«
˾¹¤×÷7Äê¡£PeterÓµÓÐ5ÏîÃÀ¹úרÀû£¬ÔÚÈýÖÖѧÊõÆÚ¿¯ÉÏ·¢±í¹ýÎÄÕ¡£
ËûÏÖÔÚÊÇZillabyte¹«Ë¾µÄÊ×ϯ¿ÆÑ§¼Ò£¬ÔÚ¼ÓÈë¸Ã¹«Ë¾Ö®Ç°£¬ËûÔøµ£ÈÎ2
ÄêµÄ»úÆ÷ѧϰÈí¼þ¹ËÎÊ¡£PeterÔÚÒµÓàʱ¼ä»¹²Î¼Ó±à³Ì¾ºÈüºÍ½¨Ôì3D
´òÓ¡»ú¡£
ÒëÕßÇúÑǶ«
ÔÚд×÷¡¶»úÆ÷ѧϰʵս¡·Ê±£¬ÎÒΪʲôҪѡÔñPython×÷ΪʵÏÖ»úÆ÷ѧϰ
Ëã·¨µÄ±à³ÌÓïÑÔÄØ£¿ÆäÔÒòÖ÷Òª¿ÉÒÔ¹éÄÉΪÒÔÏÂÈýÌõ£º(1) PythonµÄÓï
·¨ÇåÎú£»(2) Ò×ÓÚ²Ù×÷´¿Îı¾Îļþ£»(3) ʹÓù㷺£¬´æÔÚ´óÁ¿µÄ¿ª·¢ÎÄ
µµ¡£
¿ÉÖ´ÐÐα´úÂë
Python¾ßÓÐÇåÎúµÄÓï·¨½á¹¹£¬´ó¼ÒÒ²°ÑËü³Æ×÷¿ÉÖ´ÐÐα´úÂë
(executable pseudo-code)¡£Ä¬Èϰ²×°µÄPython¿ª·¢»·¾³ÒѾ¸½´øÁ˺Ü
¶à¸ß¼¶Êý¾ÝÀàÐÍ£¬ÈçÁÐ±í¡¢Ôª×é¡¢×ֵ䡢¼¯ºÏ¡¢¶ÓÁеȣ¬ÎÞÐè½øÒ»²½±à
³Ì¾Í¿ÉÒÔʹÓÃÕâЩÊý¾ÝÀàÐ͵IJÙ×÷¡£Ê¹ÓÃÕâЩÊý¾ÝÀàÐÍʹµÃʵÏÖ³éÏóµÄ
Êýѧ¸ÅÄî·Ç³£¼òµ¥¡£´ËÍ⣬¶ÁÕß»¹¿ÉÒÔʹÓÃ×Ô¼ºÊìϤµÄ±à³Ì·ç¸ñ£¬ÈçÃæ
Ïò¶ÔÏó±à³Ì¡¢ÃæÏò¹ý³Ì±à³Ì¡¢»òÕߺ¯Êýʽ±à³Ì¡£²»ÊìϤPythonµÄ¶ÁÕß¿É
ÒÔ²ÎÔĸ½Â¼A£¬¸Ã¸½Â¼Ïêϸ½éÉÜÁËPythonÓïÑÔ¡¢PythonʹÓõÄÊý¾ÝÀàÐÍ
ÒÔ¼°°²×°Ö¸ÄÏ¡£PythonÓïÑÔ´¦ÀíºÍ²Ù×÷Îı¾Îļþ·Ç³£¼òµ¥£¬·Ç³£Ò×ÓÚ´¦Àí·ÇÊýÖµÐÍÊý
¾Ý¡£PythonÓïÑÔÌṩÁ˷ḻµÄÕýÔò±í´ïʽº¯ÊýÒÔ¼°ºÜ¶à·ÃÎÊWebÒ³ÃæµÄ
º¯Êý¿â£¬Ê¹µÃ´ÓHTMLÖÐÌáÈ¡Êý¾Ý±äµÃ·Ç³£¼òµ¥Ö±¹Û¡£
Python±È½ÏÁ÷ÐÐ
PythonÓïÑÔʹÓù㷺£¬´úÂë·¶ÀýÒ²ºÜ¶à£¬±ãÓÚ¶ÁÕß¿ìËÙѧϰºÍÕÆÎÕ¡£´Ë
Í⣬ÔÚ¿ª·¢Êµ¼ÊÓ¦ÓóÌÐòʱ£¬Ò²¿ÉÒÔÀûÓ÷ḻµÄÄ£¿é¿âËõ¶Ì¿ª·¢ÖÜÆÚ¡£
ÔÚ¿ÆÑ§ºÍ½ðÈÚÁìÓò£¬PythonÓïÑԵõ½Á˹㷺ӦÓá£SciPyºÍNumPyµÈÐí
¶à¿ÆÑ§º¯Êý¿â¶¼ÊµÏÖÁËÏòÁ¿ºÍ¾ØÕó²Ù×÷£¬ÕâЩº¯Êý¿âÔö¼ÓÁË´úÂëµÄ¿É¶Á
ÐÔ£¬Ñ§¹ýÏßÐÔ´úÊýµÄÈ˶¼¿ÉÒÔ¿´¶®´úÂëµÄʵ¼Ê¹¦ÄÜ¡£ÁíÍ⣬¿ÆÑ§º¯Êý¿â
SciPyºÍNumPyʹÓõײãÓïÑÔ(CºÍFortran)±àд£¬Ìá¸ßÁËÏà¹ØÓ¦ÓóÌÐò
µÄ¼ÆËãÐÔÄÜ¡£
PythonµÄ¿ÆÑ§¹¤¾ß¿ÉÒÔÓë»æÍ¼¹¤¾ßMatplotlibÐͬ¹¤×÷¡£Matplotlib¿ÉÒÔ
»æÖÆ2D¡¢3DͼÐΣ¬Ò²¿ÉÒÔ´¦Àí¿ÆÑ§Ñо¿Öо³£Ê¹Óõ½µÄͼÐΡ£
Python¿ª·¢»·¾³»¹ÌṩÁ˽»»¥Ê½shell»·¾³£¬ÔÊÐíÓû§¿ª·¢³ÌÐòʱ²é¿´ºÍ
¼ì²â³ÌÐòÄÚÈÝ¡£
Python¿ª·¢»·¾³½«À´»¹»á¼¯³ÉPylabÄ£¿é£¬Ëü½«NumPy¡¢SciPyºÍ
MatplotlibºÏ²¢ÎªÒ»¸ö¿ª·¢»·¾³¡£ÔÚ±¾ÎÄд×÷ʱ£¬Pylab»¹Ã»Óв¢Èë
Python»·¾³£¬µ«ÊDz»Ô¶µÄ½«À´ÎÒÃǿ϶¨¿ÉÒÔÔÚPython¿ª·¢»·¾³ÕÒµ½Ëü¡£
PythonÓïÑÔµÄÌØÉ«
ÖîÈçMATLABºÍMathematicaµÈ¸ß¼¶³ÌÐòÓïÑÔÒ²ÔÊÐíÓû§Ö´ÐоØÕó²Ù
×÷£¬MATLABÉõÖÁ»¹ÓÐÐí¶àÄÚǶµÄÌØÕ÷¿ÉÒÔÇáËɵع¹Ôì»úÆ÷ѧϰӦ
Ó㬶øÇÒMATLABµÄÔËËãËÙ¶ÈÒ²ºÜ¿ì¡£È»¶øMATLABµÄ²»×ãÖ®´¦ÊÇÈí
¼þ·ÑÓÃÌ«¸ß£¬µ¥¸öÈí¼þÊÚȨ¾ÍÒª»¨·ÑÊýǧÃÀÔª¡£ËäȻҲÓÐÊʺÏ
MATLABµÄµÚÈý·½²å¼þ£¬µ«ÊÇûÓÐÒ»¸öÓÐÓ°ÏìÁ¦µÄ´óÐÍ¿ªÔ´ÏîÄ¿¡£
JavaºÍCµÈÇ¿ÀàÐͳÌÐòÉè¼ÆÓïÑÔÒ²ÓоØÕóÊýѧ¿â£¬È»¶ø¶ÔÓÚÕâЩ³ÌÐòÉè
¼ÆÓïÑÔÀ´Ëµ£¬×î´óµÄÎÊÌâÊǼ´Ê¹Íê³É¼òµ¥µÄ²Ù×÷Ò²Òª±àд´óÁ¿µÄ´úÂë¡£
³ÌÐòÔ±Ê×ÏÈÐèÒª¶¨Òå±äÁ¿µÄÀàÐÍ£¬¶ÔÓÚJavaÀ´Ëµ£¬Ã¿´Î·â×°ÊôÐÔʱ»¹Ðè
ҪʵÏÖgetterºÍsetter·½·¨¡£ÁíÍ⻹Ҫ¼Ç×ÅʵÏÖ×ÓÀ࣬¼´Ê¹²¢²»ÏëʹÓÃ×ÓÀ࣬Ҳ±ØÐëʵÏÖ×ÓÀà·½·¨¡£ÎªÁËÍê³ÉÒ»¸ö¼òµ¥µÄ¹¤×÷£¬ÎÒÃDZØÐ뻨·Ñ´ó
Á¿Ê±¼ä±àдÁ˺ܶàÎÞÓÃÈß³¤µÄ´úÂë¡£PythonÓïÑÔÔòÓëJavaºÍCÍêÈ«²»
ͬ£¬ËüÇåÎú¼òÁ·£¬¶øÇÒÒ×ÓÚÀí½â£¬¼´Ê¹²»ÊDZà³ÌÈËÔ±Ò²Äܹ»Àí½â³ÌÐòµÄ
º¬Ò壬¶øJavaºÍC¶ÔÓڷDZà³ÌÈËÔ±ÔòÏñÌìÊéÒ»ÑùÄÑÓÚÀí½â¡£
ËùÓÐÈËÔÚСѧ¶þÄê¼¶ÒѾѧ»áÁËд×÷£¬È»¶ø´ó¶àÊýÈ˱ØÐë´ÓÊÂÆäËû¸ü
ÖØÒªµÄ¹¤×÷¡£
¡ª¡ª±«±È¡¤ÄÎÌØ
Ò²ÐíijһÌ죬ÎÒÃÇ¿ÉÒÔÔÚÕâ¾ä»°Öн«¡°Ð´×÷¡±Ìæ´úΪ¡°±àд´úÂ롱£¬ËäÈ»ÓÐ
ЩÈ˶ÔÓÚ±àд´úÂëºÜ¸ÐÐËȤ£¬µ«ÊǶÔÓÚ´ó¶àÊýÈËÀ´Ëµ£¬±à³Ì½öÊÇÍê³ÉÆä
ËûÈÎÎñµÄ¹¤¾ß¶øÒÑ¡£PythonÓïÑÔÊǸ߼¶±à³ÌÓïÑÔ£¬ÎÒÃÇ¿ÉÒÔ»¨·Ñ¸ü¶àµÄ
ʱ¼ä´¦ÀíÊý¾ÝµÄÄÚÔÚº¬Ò壬¶øÎÞÐ뻨·ÑÌ«¶à¾«Á¦½â¾ö¼ÆËã»úÈçºÎµÃµ½Êý
¾Ý½á¹û¡£PythonÓïÑÔʹµÃÎÒÃǺÜÈÝÒ×±í´ï×Ô¼ºµÄÄ¿µÄ¡£
PythonÓïÑÔµÄȱµã
PythonÓïÑÔΨһµÄ²»×ãÊÇÐÔÄÜÎÊÌâ¡£Python³ÌÐòÔËÐеÄЧÂʲ»ÈçJava»ò
ÕßC´úÂë¸ß£¬µ«ÊÇÎÒÃÇ¿ÉÒÔʹÓÃPythonµ÷ÓÃC±àÒëµÄ´úÂë¡£ÕâÑù£¬ÎÒÃǾÍ
¿ÉÒÔͬʱÀûÓÃCºÍPythonµÄÓŵ㣬Ö𲽵ؿª·¢»úÆ÷ѧϰӦÓóÌÐò¡£ÎÒÃÇ
¿ÉÒÔÊ×ÏÈʹÓÃPython±àдʵÑé³ÌÐò£¬Èç¹û½øÒ»²½ÏëÒªÔÚ²úÆ·ÖÐʵÏÖ»úÆ÷
ѧϰ£¬×ª»»³ÉC´úÂëÒ²²»À§ÄÑ¡£Èç¹û³ÌÐòÊǰ´ÕÕÄ£¿é»¯ÔÔò×éÖ¯µÄ£¬ÎÒ
ÃÇ¿ÉÒÔÏȹ¹Ôì¿ÉÔËÐеÄPython³ÌÐò£¬È»ºóÔÙÖð²½Ê¹ÓÃC´úÂëÌæ»»ºËÐÄ´ú
ÂëÒԸĽø³ÌÐòµÄÐÔÄÜ¡£C++ Boost¿â¾ÍÊʺÏÍê³ÉÕâ¸öÈÎÎñ£¬ÆäËûÀàËÆÓÚ
CythonºÍPyPyµÄ¹¤¾ßÒ²¿ÉÒÔ±àдǿÀàÐ͵ÄPython´úÂ룬¸Ä½øÒ»°ãPython
³ÌÐòµÄÐÔÄÜ¡£
Èç¹û³ÌÐòµÄËã·¨»òÕß˼ÏëÓÐȱÏÝ£¬ÔòÎÞÂÛ³ÌÐòµÄÐÔÄÜÈçºÎ£¬¶¼ÎÞ·¨µÃµ½
ÕýÈ·µÄ½á¹û¡£Èç¹û½â¾öÎÊÌâµÄ˼Ïë´æÔÚÎÊÌ⣬ÄÇôµ¥´¿Í¨¹ýÌá¸ß³ÌÐòµÄ
ÔËÐÐЧÂÊ£¬À©Õ¹Óû§¹æÄ£¶¼ÎÞ·¨½â¾öÕâ¸öºËÐÄÎÊÌâ¡£´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬Python¿ìËÙʵÏÖϵͳµÄÓÅÊÆ¾Í¸ü¼ÓÃ÷ÏÔÁË£¬ÎÒÃÇ¿ÉÒÔ¿ìËٵؼìÑéËã·¨»ò
Õß˼ÏëÊÇ·ñÕýÈ·£¬Èç¹ûÐèÒª£¬ÔÙ½øÒ»²½ÓÅ»¯´úÂë¡£
¡¶»úÆ÷ѧϰʵս¡·ÔÚamazon.comµÄ»úÆ÷ѧϰƷÀàÖÐÅÅÃû16£¬Êý¾ÝÍÚ¾òÆ·
ÀàÖÐÅÅÃû24¡£×÷ÕßPeter HarringtonÊÇÓ¢ÌØ¶ûǰÈ餳Ìʦ£¬ÓµÓÐ5ÏîÃÀ¹úר
ÀûȨ£¬ÔøÔÚѧÊõ¿¯ÎïÉÏ·¢±í¹ý¶àƪÎÄÕ¡£±¾Êé¹²ËIJ¿·Ö£¬½²Êö¼à¶½Ñ§Ï°
ºÍÎ޼ලѧϰ£¬Éæ¼°k½üÁÚËã·¨¡¢¾ö²ßÊ÷¡¢ÆÓËØ±´Ò¶Ë¹Ëã·¨¡¢Ö§³ÖÏòÁ¿
»ú¡¢AdaBoostËã·¨¡¢k¾ùÖµ¡¢·ÖÀà»Ø¹éÊ÷µÈÊ®¼¸ÖÖËã·¨£¬½²ÊöÿÖÖËã·¨
ʱ¶¼ÅäÓоßÌåʾÀý¡£±¾ÎÄÕª×Ô¡¶»úÆ÷ѧϰʵս¡·¡£µÚÒ»¸öº¢×ӵijöÉúʱ¼äÑо¿£º³ÌÐòÔ±µÄͳ¼ÆË¼Î¬
Á·Ï°
×÷Õß Allen Downey
Allen B. DowneyÊǸ»À¼¿ËÁÖÅ·ÁÖ¹¤³ÌѧԺµÄ¼ÆËã»ú¿ÆÑ§¸±½ÌÊÚ£¬ÔøÖ´
½ÌÓÚΤ¶û˹ÀûѧԺ¡¢¿Æ¶û±ÈѧԺºÍ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУ¡£ËûÏȺó»ñÂé
Ê¡Àí¹¤Ñ§Ôº¼ÆËã»ú¿ÆÑ§Ë¶Ê¿Ñ§Î»ºÍ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУ¼ÆËã»ú¿ÆÑ§²©
ʿѧλ¡£DowneyÒѳö°æÊ®Óà±¾¼¼ÊõÊ飬ÄÚÈÝÉæ¼°Java¡¢Python¡¢C++¡¢¸ÅÂÊͳ¼ÆµÈ¡£ËûÊÇ×ÔÓÉÊé¼®µÄ³«µ¼Õߣ¬Ò²ÊÇGoogle¹«Ë¾Ç°¿Í×ù
¿ÆÑ§¼Ò¡£ËûµÄ×îÐÂThinkϵÁÐÊ黹ÓÐThink Complexity, Think Python
µÈ¡£
ÒëÕß ÕŽ£·æ¡¢³Â¸Ö
Èç¹ûÔÚGoogleÉÏËÑË÷Õâ¸öÎÊÌ⣬Äã»á¿´µ½´óÁ¿µÄÏà¹ØÌÖÂÛ¡£ÓÐЩÈË˵ȷ
ʵÈç´Ë£¬Ò²ÓÐÈË˵Õâû¸ù¾Ý£¬»¹ÓÐÈ˳ÖÍêÈ«Ïà·´µÄ¹Ûµã£ºµÚÒ»¸öº¢×Ó»á
ÔÚÔ¤²úÆÚ֮ǰ³öÉú¡£
ÔÚÕâÀàÌÖÂÛÖУ¬ÈËÃÇ»áÓø÷ÖÖÊý¾ÝÀ´Ö¤Ã÷×Ô¼ºµÄ˵·¨£¬³£¼ûµÄÀý×ÓÈç
Ï¡£
¡°ÎÒÓÐÁ½¸öÅóÓÑ×î½ü¶¼¸ÕÉúÁ˵ÚÒ»¸öº¢×Ó£¬Á½¸ö±¦±¦µÄ³öÉúʱ¼ä¶¼±È
Ô¤²úÆÚÍíÁ˲¶àÁ½ÖÜ¡£¡±
¡°ÎҵĵÚÒ»¸öº¢×ÓÍíÁËÁ½ÖܲųöÉú£¬ÎÒÏëÎҵĵڶþ¸öº¢×Ó»áÌáǰÁ½
ÖÜ¡£¡±
¡°ÎÒ¾õµÃÕâûµÀÀí£¬ÒòΪÎÒ½ã½ãÊÇÎÒÂèÂèµÄµÚÒ»¸öº¢×Ó£¬Ëý¾ÍÌáǰ³öÉúÁË£¬Îҵö±í½ãÒ²Ò»Ñù¡£¡±
ÖîÈç´ËÀàµÄ´«ÎųÆÎª¾Ñé̸֮(anecdotal evidence)£¬ÒòΪËüÃÇ»ùÓÚ·Ç
¹«¿ª·¢±íµÄÊý¾Ý£¬¶øÇÒͨ³£ÊǸöÈ˸ÐÊÜ¡£ÔÚ·ÇÕýʽ³¡ºÏ£¬ÕâÀà˵´ÇûÎÊ
Ì⣬ËùÒÔÕâÀï²¢²»ÊÇ˵ÉÏÊö¹Ûµã²»¶Ô¡£ÎÊÌâÔÚÓÚ£¬ÎÒÃÇÐèÒª¸üÓÐ˵·þÁ¦
µÄÖ¤¾ÝºÍ¸ü¿É¿¿µÄ½áÂÛ¡£µ«ÕâЩ¾Ñé̸֮ÏÔÈ»×ö²»µ½ÕâÒ»µã£¬ÔÒòÈç
Ï¡£
¹Û²ìµÄÊýÁ¿Ì«ÉÙ
µÚһ̥±¦±¦µÄÈÑÉïÆÚ±È½Ï³¤£¬µ«ÕâÖÖ²îÒì¿ÉÄÜÔÚ×ÔÈ»²¨¶¯·¶Î§ÄÚ¡£
ÕâÖÖÇé¿öÏ£¬ÎÒÃÇÐèÒª±È½Ï´óÁ¿Ôи¾µÄÈÑÉïÆÚÊý¾Ý²ÅÄÜÅжÏÕâÖÖ²î
ÒìÊÇ·ñÕæµÄ´æÔÚ¡£
Ñ¡ÔñÆ«²î
µÚһ̥±¦±¦³öÉú±È½ÏÍíµÄ¸¸Ä¸»á¸üÓÐÐËȤ¼ÓÈëÕâÑùµÄÌÖÂÛ¡£ÕâÖÖ¶Ô
Êý¾Ý½øÐÐÑ¡ÔñµÄ¹ý³Ì¾Í»áµ¼Ö½á¹û²»×¼È·¡£
È·ÈÏÆ«²î
ÏàÐÅÕâÖÖ˵·¨µÄÈË»áÌṩ֧³ÖʾÀý£¬¶ø»³ÒÉÕâÖÖ˵·¨µÄÈËÔò»áÒýÓÃ
·´Àý¡£
²»×¼È·
´«ÎÅͨ³£¶¼ÊǸöÈ˵ľÀú£¬ÔÚ¼ÇÒä¡¢±íÊöºÍ¸´ÊöµÈ·½Ãæ¶¼»á²»×¼
È·¡£
ÄÇô£¬¸üºÃµÄ×ö·¨ÊÇÊ²Ã´ÄØ£¿
ͳ¼Æ·½·¨
ΪÁ˽â¾öÉÏÊö¾Ñé̸֮µÄÖÖÖÖ²»×㣬ÎÒÃÇ»áÔËÓÃÒÔÏÂͳ¼ÆÑ§ÊֶΡ£
ÊÕ¼¯Êý¾Ý
ʹÓôóÐÍÈ«¹úÐÔµ÷²éµÄÊý¾Ý£¬ÕâЩÊý¾ÝÊÇΪµÃ³öÃÀ¹úÈ˿ڷ½Ãæ¿É¿¿
µÄͳ¼ÆÍƶ϶ø×¨ÃÅÊÕ¼¯µÄ¡£ÃèÊöÐÔͳ¼Æ
¼ÆËãÄÜ×ܽáÊý¾ÝµÄͳ¼ÆÁ¿£¬²¢ÆÀ²â¸÷ÖÖÊý¾Ý¿ÉÊÓ»¯µÄ·½·¨¡£
̽Ë÷ÐÔÊý¾Ý·ÖÎö
ѰÕÒģʽ¡¢²îÒìºÍÆäËûÄܽâ´ðÎÒÃÇÎÊÌâµÄÌØÕ÷¡£Í¬Ê±£¬ÎÒÃÇ»á¼ì²é
²»Ò»ÖÂÐÔ£¬²¢È·ÈÏÆä¾ÖÏÞÐÔ¡£
¼ÙÉè¼ìÑé
ÔÚ·¢ÏÖÃ÷ÏÔµÄÓ°Ïìʱ(±ÈÈçÁ½¸ö×åȺ¼äµÄ²îÒì)£¬ÎÒÃÇÐèÒªÆÀÅÐÕâ
ÖÖÓ°ÏìÊÇ·ñÕæÊµ£¬Ò²¾ÍÊÇ˵ÊÇ·ñÊÇÒòÎªËæ»úÒòËØÔì³ÉµÄ¡£
¹À¼Æ
ÎÒÃÇ»áÓÃÑù±¾Êý¾ÝÍÆ¶ÏÈ«²¿È˿ڵÄÌØÕ÷¡£
ͨ¹ýÕâЩ²½Öè£¬ÈÆ¹ý¸÷ÖÖÏÝÚ壬ÎÒÃǾÍÄܵõ½¸ü¼ÓºÏÀíÒ²¸ü¿ÉÄÜÕýÈ·µÄ
½áÂÛ¡£
È«¹ú¼ÒÍ¥³É³¤µ÷²é
ÃÀ¹ú¼²²¡¿ØÖÆÓëÔ¤·ÀÖÐÐÄ(CDC)´Ó1973Äê¿ªÊ¼ÍÆÐÐÈ«¹ú¼ÒÍ¥³É³¤µ÷²é
(NSFG)£¬Ä¿µÄÊÇÊÕ¼¯(ÃÀ¹ú)¡°¼ÒÍ¥µÄÉú»î¡¢»éÒö×´¿ö¡¢ÉúÓý¡¢±ÜÔÐ
ºÍÄÐÅ®½¡¿µÐÅÏ¢¡£µ÷²éµÄ½á¹ûÓÃÓÚ¡¡Öƶ¨½¡¿µ·þÎñºÍ½¡¿µ½ÌÓý¼Æ»®£¬ÒÔ¼°¶Ô¼ÒÍ¥¡¢ÉúÓýºÍ½¡¿µµÄͳ¼ÆÑо¿¡±¡£1
1 ²Î¼û http:cdc.govnchsnsfg.htm¡£
ÎÒÃÇ»áÀûÓõ÷²éÊÕ¼¯µÄÊý¾ÝÀ´Ñо¿ÖîÈç¡°µÚÒ»¸öСº¢ÊÇ·ñ³öÉúµÃ½ÏÍí¡±Ö®
ÀàµÄÎÊÌ⡣ΪÁËÓÐЧʹÓÃÕâЩÊý¾Ý£¬ÎÒÃÇÐèÒªÀí½âÕâ¸öµ÷²éÊÇÔõôÉè¼Æ
µÄ¡£
NSFGÊÇÒ»¸öºá¶ÏÃæÑо¿(cross-sectional study)£¬Òâ˼¾ÍÊÇËüµÄÊý¾ÝÊÇ
һȺÈËÔÚij¸öʱ¼äµãµÄÇé¿ö¡£ÁíÒ»ÖÖ³£¼û·½·¨ÊÇ×ݹáÑо¿(longitudinal
study)£¬¾ÍÊÇÔÚÒ»¶Îʱ¼äÄÚ·´¸´¹Û²ìͬһȺÈË¡£
NSFGÒѾ½øÐÐÁË7´Î£¬Ã¿´Î³ÆÎªÒ»¸öÖÜÆÚ(cycle)¡£ÎÒÃÇ»áʹÓÃÀ´×ÔCycle 6µÄÊý¾Ý£¬ÕâЩÊý¾ÝÊÇÔÚ2002Äê1Ôµ½2003Äê3Ô¼äÊÕ¼¯µÄ¡£
NSFGµÄÄ¿µÄÊǵõ½¹ØÓÚÈË¿ÚÇé¿öµÄһЩ½áÂÛ£¬µ÷²é¶ÔÏóÊÇ15µ½44ËêµÄ
ÃÀ¹úÈË¡£
²ÎÓëµ÷²éµÄÈ˳ÆÎª±»µ÷²éÕß(respondent)£¬Ò»×é±»µ÷²éÕ߾ͳÆÎª¶ÓÁÐ
(cohort)¡£Í¨³££¬ºá¶ÏÃæÑо¿ÒâζמßÓдú±íÐÔ£¬¼´Ä¿±êÈËȺÖеÄÿ
Ò»¸öÈ˶¼ÓÐͬµÈµÄ¼¸ÂʲÎÓëµ÷²é¡£µ±È»£¬Êµ¼ÊºÜÄÑʵÏÖÕâÖÖÀíÏë×´¿ö£¬µ«Ö´Ðе÷²éµÄÈ˻ᾡ¿ÉÄܵØ×öµ½ÕâÒ»µã¡£
NSFG²»¾ßÓдú±íÐÔ£¬¶øÊÇÓÐÒâ½øÐÐÁ˹ý²ÉÑù(oversample)¡£Éè¼ÆÕß
Ëùµ÷²éµÄÎ÷°àÑÀÒá¡¢·ÇÒáÃÀ¹úÈ˺ÍÇàÉÙÄêµÄ±ÈÀý¶¼¸ßÓÚËûÃÇÔÚÃÀ¹úÈË¿Ú
ÖеıÈÀý¡£¹ý²ÉÑùÕâЩÈËȺÊÇΪÁËÈ·±£ÆäÖеı»µ÷²éÕßÊýÁ¿¹»´ó£¬´Ó¶ø
µÃµ½ÓÐЧµÄͳ¼ÆÍƶϡ£
µ±È»£¬¹ý²ÉÑùÔö´óÁ˸ù¾Ýµ÷²é½á¹ûÍÆ¶ÏÈ«ÌåÈ˿ڽáÂÛµÄÄѶȡ£ÉÔºòÎÒÃÇ
»á¼ÌÐøÌÖÂÛÕâÒ»µã¡£
ϰÌâ1
¾¡¹ÜNSFGÒѾ½øÐÐÁË7´Î£¬µ«Ëü²¢²»ÊÇ×ݹáÑо¿¡£ÔĶÁά»ù°Ù¿ÆÒ³Ãæ¹Ø
ÓÚºá¶ÏÃæÑо¿ºÍ×ÝÏòÑо¿¿ÉÒÔŪÇå³þÔÒò¡£
ϰÌâ2
Õâ¸öÁ·Ï°ÐèÒª´ÓNSFGÏÂÔØÊý¾Ý¡£
1. ´ò¿ªhttp:thinkstats.comnsfg.html£¬ÔĶÁÊý¾ÝµÄʹÓÃÐÒ飬Ȼºóµã
»÷¡°I accept these terms¡±(¼ÙÉèÄãȷʵͬÒâ)¡£
2. ÏÂÔØ2002FemResp.dat.gzºÍ2002FemPreg.dat.gzÁ½¸öÎļþ¡£Ç°ÕßÊDZ»
µ÷²éÕßÎļþ£¬Ã¿Ò»Ðдú±íÒ»¸ö±»µ÷²éÕߣ¬×ܹ²7643¸öÅ®ÐÔ±»µ÷²é
Õß¡£ºóÕßÊǸ÷¸ö±»µ÷²éÕߵϳÔÐÇé¿ö¡£
3. µ÷²éµÄÔÚÏß×ÊÁϵØÖ·£ºhttp:www.icpsr.umich.edunsfg6¡£ä¯ÀÀ×ó²à
µ¼º½À¸Öе÷²éµÄ¸÷²¿·Ö£¬´óÖÂÁ˽âÒ»ÏÂÆäÖеÄÄÚÈÝ¡£»¹¿ÉÒÔ
ÔÚhttp:www.cdc.govnchsdatansfgnsfg_2002_questionnaires.htmÉÏ
ÔĶÁµ÷²éÎʾíµÄÄÚÈÝ¡£4. ÅäÌ×ÍøÕ¾ÌṩÁË´¦ÀíNSFGÊý¾ÝÎļþµÄ´úÂë¡£´Ó
http:thinkstats.comsurvey.pyÏÂÔØ£¬È»ºóÔÚ·ÅÖÃÊý¾ÝÎļþµÄĿ¼ÖÐ
ÔËÐС£³ÌÐò»á¶ÁÈ¡Êý¾ÝÎļþ£¬È»ºó»áÏÔʾÿ¸öÎļþµÄÐÐÊý£º
Number of respondents 7643
Number of pregnancies 13593
5. ä¯ÀÀһϴúÂ룬´óÖÂÁ˽âÒ»ÏÂÆä¹¦ÄÜ¡£ÏÂÒ»½Ú»áÏêϸ½éÉÜ¡£
±íºÍ¼Ç¼
Ê«ÈË¡¢ÕÜѧ¼ÒSteve MartinÔøËµ£º
¡°Oeuf¡±¾ÍÊÇegg£¬¡°chapeau¡±¾ÍÊÇhat¡£ºÃÏñËùÓеĶ«Î÷ÔÚ·¨ÓïÖж¼¸úÔÚ
Ó¢ÓïÖеĽз¨²»Ò»Ñù¡£
¸ú·¨ÓïÒ»Ñù£¬Êý¾Ý¿â³ÌÐòÔ±µÄÓïÑÔÒ²¸úÎÒÃǵÄÈÕ³£ÓïÑÔÉÔÓв»Í¬¡£ÒòΪ
ÎÒÃÇҪ̸µ½Êý¾Ý¿â£¬ËùÒÔÓбØÒªÑ§Ï°Ò»Ð©×¨ÒµÊõÓï¡£
±»µ÷²éÕßÎļþÖеÄÿһÐж¼±íʾһ¸ö±»µ÷²éÕß¡£ÕâÐÐÐÅÏ¢³ÆÎªÒ»Ìõ¼Ç¼
(record)£¬×é³É¼Ç¼µÄ±äÁ¿³ÆÎª×Ö¶Î(field)£¬Èô¸É¼Ç¼µÄ¼¯ºÏ¾Í×é
³ÉÁËÒ»¸ö±í(table)¡£
¿´Ò»ÏÂsurvey.pyÖеĴúÂ룬¾Í»á¿´µ½RecordºÍTableÕâÁ½¸öÀàµÄ¶¨Ò壬ǰ
ÕßÊÇ´ú±í¼Ç¼µÄ¶ÔÏ󣬺óÕßÔòÊDZíʾ±íµÄ¶ÔÏó¡£
RecordÓÐÁ½¸ö×ÓÀ࣬·Ö±ðÊÇRespondentºÍPregnancy£¬Á½Õß·Ö±ðÊDZ»µ÷²é
Õߺͻ³ÔеļǼ¡£Ä¿Ç°ÕâЩÀàÔÝʱ»¹Êǿյ쬯äÖл¹Ã»ÓÐÓÃÓÚ³õʼ»¯Æä
ÊôÐÔµÄinit·½·¨¡£ÎÒÃÇ»áÓÃTable.MakeRecord·½·¨½«Ò»ÐÐÎı¾×ª»»³ÉÒ»¸ö
Record¶ÔÏó¡£
TableÒ²ÓÐÁ½¸ö×ÓÀàRespondentsºÍPregnancies¡£ÕâÁ½¸öÀàµÄinit·½·¨ÉèÖÃ
ÁËÊý¾ÝÎļþµÄĬÈÏÃû³ÆºÍÒª´´½¨µÄ¼Ç¼µÄÀàÐÍ¡£Ã¿¸öTable¶ÔÏó¶¼ÓÐÒ»
¸örecordsÊôÐÔ£¬ÊÇÒ»¸öRecord¶ÔÏóµÄÁÐ±í¡£
ÿ¸öTableµÄGetFields·½·¨·µ»ØÒ»¸öÖ¸¶¨¼Ç¼×ֶεÄÔª×é(tuple)ÁÐ±í£¬ÕâЩ×ֶξÍÊÇRecord¶ÔÏóµÄÊôÐÔ¡£
ÀýÈ磬ÏÂÃæÊÇPregnancies.GetFields£ºdef GetFields(self):
return [
('caseid', 1, 12, int),('prglength', 275, 276, int),('outcome', 277, 277, int),('birthord', 278, 279, int),('finalwgt', 423, 440, float),]
µÚÒ»¸öÔª×éµÄÒâ˼´ÓµÚ1Áе½µÚ12ÁÐÊÇcaseid×ֶΣ¬ÇÒÀàÐÍΪÕûÊý¡£Ã¿¸ö
Ôª×é°üº¬ÈçÏÂÐÅÏ¢¡£
field
±£´æ¸Ã×ֶεÄÊôÐÔµÄÃû³Æ¡£´ó²¿·ÖÇé¿öÏ£¬ÎÒʹÓÃNSFG±àÂëÊÖ²á
ÖеÄÃû³Æ£¬È«²¿ÓÃСд¡£
start
¸Ã×Ö¶ÎµÄÆðʼÁбàºÅ¡£ÀýÈ磬caseidµÄÆðʼ±àºÅÊÇ1¡£¿ÉÒÔÔÚNSFG
±àÂëÊÖ²áÖвéѯÕâЩ±àºÅ£ºhttp:www.icpsr.umich.edunsfg6¡£
end
¸Ã×ֶεĽáÊøÁбàºÅ¡£ÀýÈ磬caseidµÄ½áÊøÁбàºÅÊÇ12¡£¸úPython
Öв»Ò»Ñù£¬ÕâÀïµÄ½áÊøÁÐÒ²ÊǸÃ×ֶεÄÒ»²¿·Ö¡£
ת»»º¯Êý
½«×Ö·û´®×ª»»³ÉÆäËûÀàÐ͵ĺ¯Êý¡£¿ÉÒÔÓÃÄÚÖõĺ¯Êý£¬±ÈÈçintºÍ
float£¬Ò²¿ÉÒÔʹÓÃÓû§×Ô¶¨ÒåµÄº¯Êý¡£Èç¹ûת»»Ê§°Ü£¬ÊôÐÔµÄÖµ¾Í
»áÊÇ×Ö·û´®'NA'¡£Èç¹ûij¸ö×ֶβ»ÐèҪת»»£¬¿ÉÒÔʹÓÃidentityº¯Êý
»òÊÇstrº¯Êý¡£
´Ópregnancy¼Ç¼ÖпÉÒԵõ½ÒÔϱäÁ¿¡£
caseid
±»µ÷²éÕßµÄÕûÊýID¡£prglength
»³ÔÐÖÜÆÚ£¬µ¥Î»ÊÇÖÜ¡£
outcome
»³Ôнá¹ûµÄÕûÊý´úÂë¡£´úÂë1±íʾ»îÓ¤¡£
birthord
Õý³£³öÉúµÄÓ¤¶ùµÄ˳Ðò¡£ÀýÈ磬µÚһ̥Ӥ¶ùµÄ±àºÅÊÇ1¡£Èç¹ûûÓÐ
Õý³£³öÉú£¬¸Ã×Ö¶ÎΪ¿Õ¡£
finalwgt
±»µ÷²éÕßµÄͳ¼ÆÈ¨ÖØ¡£ÕâÊÇÒ»¸ö¸¡µãÖµ£¬±íʾÕâÃû±»µ÷²éÕßËù´ú±í
µÄÈËȺÔÚÃÀ¹ú×ÜÈË¿ÚÖеıÈÀý¡£¹ý²ÉÑùÈËȺµÄÈ¨ÖØÆ«µÍ¡£
Èç¹ûÄã×ÐϸÔĶÁ±àÂëÊֲᣬ¾Í»á·¢ÏÖÕâЩ±äÁ¿´ó²¿·Ö¶¼¾¹ýÁËÖØ±à
Âë(recode)£¬Ò²¾ÍÊÇ˵Õâ²¢²»Êǵ÷²éËù²É¼¯µÄÔʼÊý¾Ý£¬¶øÊǸù
¾ÝÔʼÊý¾Ý¼ÆËã³öÀ´µÄ¡£
ÀýÈ磬µÚһ̥»îÓ¤µÄprglengthÔÚÔʼÊý¾ÝÖÐÓбäÁ¿wksgest(ÈÑÉïÖÜÊý)
ʱ¾ÍµÈÓڸñäÁ¿µÄÖµ£¬·ñÔò¾Í»áÓÃmosgest 4.33(ÈÑÉïÔÂÊý³ËÒÔÿ¸öÔÂ
µÄƽ¾ùÖÜÊý)¹À¼Æ³öÀ´¡£
ÖØ±àÂëͨ³£×ñÑÊý¾ÝÒ»ÖÂÐÔºÍ׼ȷÐÔÔÔò¡£³ý·ÇÓÐÌØ±ðÔÒòÒ»¶¨ÒªÊ¹ÓÃ
ÔʼÊý¾Ý£¬·ñÔò¾ÍÓ¦¸ÃÖ±½ÓʹÓÃÖØ±àÂëºóµÄÊý¾Ý¡£
Äã¿ÉÄÜ»¹·¢ÏÖÁËPregnanciesÓÐRecode·½·¨£¬ÓÃÀ´×öһЩÆäËûµÄ¼ì²éºÍÖØ
±àÂ빤×÷¡£
ϰÌâ3
ÔÚÕâ¸öÁ·Ï°ÖУ¬ÎÒÃÇ»á±àдһ¸ö³ÌÐòÀ´¿´¿´Pregnancies±íÖеÄÊý¾Ý¡£
1. ÔÚsurvey.pyºÍÊý¾ÝÎļþµÄĿ¼Öд´½¨Ò»¸öfirst.pyÎļþ£¬È»ºó½«ÏÂÃæ
µÄ´úÂëÊäÈë»ò¸´ÖƵ½ÎļþÖУº
import surveytable = survey.Pregnancies
table.ReadRecords
print 'Number of pregnancies', len(table.records)
½á¹ûÓ¦¸ÃÊÇ13 593Ìõ»³ÔмǼ¡£
2. ±àдһ¸öÑ»·±éÀú±í(table)£¬¼ÆËãÆäÖлîÓ¤µÄÊýÁ¿¡£²éÔÄÁÙ´²½á
¹û(outcome)µÄÎĵµ£¬È·ÈÏÄãµÄ½á¹û¸úÎĵµÖеÄ×ܽáÒ»Ö¡£
3. ÐÞ¸ÄÕâ¸öÑ»·£¬½«»îÓ¤µÄ¼Ç¼·Ö³ÉÁ½×飺һ×éÊǵÚһ̥³öÉú£»ÁíÒ»
×éÊÇÆäËûÇé¿ö¡£ÔÙ¿´Ò»Ð©³öÉú˳Ðò(birthord)µÄÎĵµ£¬¿´¿´ÄãµÄ
½á¹û¸úÎĵµÖеĽá¹ûÊÇ·ñÒ»Ö¡£
ÔÚ´¦ÀíеÄÊý¾Ý¼¯Ê±£¬ÕâÖÖ¼ì²é¶ÔÓÚ·¢ÏÖÊý¾ÝÖеĴíÎóºÍ²»Ò»ÖÂ
ÐÔ¡¢¼ì²é³ÌÐòÖеĴíÎóÒÔ¼°¼ìÑé¶Ô×ֶαàÂ뷽ʽµÄÀí½âÊÇ·ñÕýÈ·µÈ
¶¼ÊǺÜÓÐÓõġ£
4. ·Ö±ð¼ÆËãµÚһ̥±¦±¦ºÍÆäËû±¦±¦µÄƽ¾ù»³ÔÐÖÜÆÚ(µ¥Î»ÊÇÖÜ)¡£Á½
×éÖ®¼äÓвîÒìÂ𣿲îÒìÓжà´ó£¿
´Óhttp:thinkstats.comfirst.py¿ÉÏÂÔØÕâ¸öÁ·Ï°µÄ´ð°¸¡£
ÏÔÖøÐÔ
ÔÚÇ°ÃæµÄÁ·Ï°ÖУ¬ÎÒÃDZȽÏÁ˵Úһ̥±¦±¦ºÍÆäËû±¦±¦µÄÈÑÉïÆÚ¡£Èç¹ûÒ»
ÇÐ˳Àû£¬¶ÁÕ߻ᷢÏÖµÚһ̥±¦±¦µÄ³öÉúʱ¼ä±ÈÆäËû±¦±¦µÄ³öÉúʱ¼äƽ¾ù
Íí13¸öСʱ¡£
ÀàËÆÕâÑùµÄ²îÒì³ÆÎªÖ±¹ÛЧӦ(apparent effect)£¬Òâ˼¾ÍÊÇËÆºõ·¢ÉúÁË
ÓÐÒâ˼µÄÊÂÇ飬µ«»¹²»È·¶¨¡£ÎÒÃÇ»¹ÐèÒª¿¼ÂÇÒÔÏÂÎÊÌâ¡£
Èç¹ûÁ½×éµÄ¾ùÖµ²»Ò»Ñù£¬ÆäËû»ã×Üͳ¼ÆÁ¿ÈçºÎ£¬±ÈÈçÖÐÖµºÍ·½²î£¿
ÎÒÃÇÄܸü¾«È·µØÃèÊöËüÃÇÖ®¼äµÄ²îÒìÂð£¿
ÓÐûÓпÉÄÜÕâÁ½×éʵ¼ÊÉÏÊÇÒ»ÑùµÄ£¬¶øÎÒÃÇËù¹Û²ìµ½µÄÕâÖÖ²îÒìÖ»
ÊÇËæ»ú²úÉúµÄ£¿Èç¹ûÊÇ£¬ÄÇÕâ¸ö½áÂ۾Ͳ»ÊÇͳ¼ÆÏÔÖøµÄ¡£
ÕâÖÖÖ±¹ÛЧӦÓÐûÓпÉÄÜÊÇÒòΪѡÔñÆ«²î»òÊÇʵÑéÉèÖÃÖеĴíÎóµ¼
Öµģ¿Èç¹ûÊÇ£¬ÄÇôÕâÖÖÖ±¹ÛЧӦ¾ÍÊÇÈËΪµÄ£¬Ò²¾ÍÊÇÎÒÃÇÒâÍâ´´
ÔìµÄ£¬¶ø²¢·Ç·¢ÏÖÁËÊÂʵ¡£Ï°Ìâ4
ѧϰͳ¼ÆÑ§µÄ×îºÃ·½·¨¾ÍÊÇ´ÓÒ»¸ö×Ô¼º¸ÐÐËȤµÄÏîÄ¿¿ªÊ¼¡£ÓÐûÓС°µÚ
һ̥±¦±¦³öÉú½ÏÍí¡±ÕâÀàÎüÒýÄãµÄÎÊÌâÀ´Ñо¿£¿
˼¿¼×Ô¼º¸ÐÐËȤµÄÎÊÌ⣬ÀýÈ紫ͳ¹ÛÄî¡¢ÓÐÕùÒéµÄ»°Ìâ»òÊÇÓÐÉç»áÓ°Ïì
µÄÎÊÌ⣬¿´¿´ÄãÄÜ·ñ½«ÕâЩÎÊÌâת»»³Éͳ¼ÆÑ§ÎÊÌâ¡£
ѰÕÒÄܽâ¾ö¸ÃÎÊÌâµÄÊý¾Ý¡£¹úÍâÕþ¸®ÊǺܺõÄÊý¾ÝÀ´Ô´£¬ÒòΪ¹«¹²Ñо¿
µÄÊý¾Ýͨ³£¶¼ÊÇÃâ·ÑµÄ2¡£ÁíÒ»¸ö²éÕÒÊý¾ÝµÄºÃÈ¥´¦ÊÇWolfram Alpha£¬ÆäÖÐÊÕ¼¯Á˺ܶྐྵýÑéÖ¤µÄ¸ßÖÊÁ¿µÄÊý¾Ý¼¯£¬ÍøÖ·
ÊÇhttp:wolframalpha.com¡£Wolfram AlphaµÄËÑË÷½á¹ûÊÇÓаæÈ¨ÏÞÖÆ
µÄ£¬ÔÚʹÓÃ֮ǰӦ¸ÃÔĶÁÒ»ÏÂÐÒé¡£
2 ÔÚ׫дÕâ¶ÎÄÚÈݵÄʱºò£¬Ó¢¹úij·¨Ôº¹æ¶¨¡°ÐÅÏ¢×ÔÓÉ·¨°¸¡±(Freedom of Information Act)Ò²ÊÊ
ÓÃÓÚ¿ÆÑ§Ñо¿Êý¾Ý¡£
GoogleºÍÆäËûµÄһЩËÑË÷ÒýÇæÒ²ÄܰïÄãѰÕÒÊý¾Ý£¬µ«ÍøÂçÉϸ÷ÖÖ×ÊÔ´µÄ
ÖÊÁ¿¸ßµÍ²»Ò»£¬ÅÐ¶ÏÆðÀ´²»ÈÝÒס£
Èç¹û·¢ÏÖÒѾÓÐÈ˻شðÁËÄãµÄÎÊÌ⣬Ҫ×Ðϸ¿´¿´»Ø´ðÊÇ·ñºÏÀí¡£Êý¾ÝºÍ
·ÖÎöÖеÄȱÏÝ¿ÉÄܻᵼÖ½áÂÛ²»¿É¿¿¡£Èç¹ûÊÇÕâÑù£¬ÄãÓ¦¸Ã²ÉÓò»Í¬µÄ
·½·¨À´·ÖÎöÊý¾Ý£¬»òÕßÊÇѰÕÒÆäËû¸üºÃµÄÊý¾ÝÀ´Ô´¡£
Èç¹ûÒÑ·¢±íµÄÂÛÎĻشðÁËÄãµÄÎÊÌ⣬ÄǾÍÓ¦¸ÃÄÜŪµ½ÔʼÊý¾Ý£¬ºÜ¶à×÷
Õß¶¼»áÔÚÍøÉÏÌṩ¡£µ«Èç¹ûÊý¾ÝÉæ¼°¸öÈËÒþ˽£¬×îºÃÁªÏµÒ»ÏÂ×÷Õߣ¬¸æ
ËßËûÄãÒªÈçºÎʹÓÃÊý¾Ý£¬»òÊǽÓÊÜÌØ¶¨µÄʹÓÃÐÒé¡£¼á³Öµ½µ×!
¡¶Í³¼ÆË¼Î¬£º³ÌÐòÔ±Êýѧ֮¸ÅÂÊͳ¼Æ¡·ÊÇÒ»±¾ÒÔÈ«ÐÂÊӽǽ²½â¸ÅÂÊͳ¼Æ
µÄÈëÃÅͼÊé¡£Å׿ª¾µäµÄÊýѧ·ÖÎö£¬DowneyÊÖ°ÑÊÖ½ÌÄãÓñà³ÌÀí½âͳ
¼ÆÑ§¡£¸ÅÂÊ¡¢·Ö²¼¡¢¼ÙÉè¼ìÑé¡¢±´Ò¶Ë¹¹À¼Æ¡¢Ïà¹ØÐԵȣ¬Ã¿¸öÖ÷Ìâ¶¼³ä
ÂúȤζÐÔ£¬¾±à³Ì½âÊͺó±äµÃ¸üΪÇåÎúÒ×¶®¡£
±¾ÊéÑо¿Êý¾ÝÖ÷ÒªÀ´Ô´ÓÚÃÀ¹úÈ«¹ú¼ÒÍ¥³É³¤µ÷²é(NSFG)ÓëÐÐΪ·çÏÕ
ÒòËØ¼à²âϵͳ(BRFSS)£¬Êý¾ÝÔ´¼°½â¾ö·½°¸µÄÏà¹Ø´úÂëÈ«²¿¿ª·Å£¬¾ß
ÌåÕ½ÚÁгöÁË´óÁ¿Ñ§Ï°ºÍ½ø½××ÊÁÏ£¬·½±ã¶ÁÕ߲ο¼¡£±¾ÎÄÑ¡×Ô¡¶Í³¼ÆË¼
ά£º³ÌÐòÔ±Êýѧ֮¸ÅÂÊͳ¼Æ¡·¡£ºÍº¢×ÓÒ»Æð×öÒ»Ö»µç×Ó³èÎï°É!
×÷Õß Warren Sande, Carter Sande
Warren(¸¸Ç×)±ÏÒµÓÚ¼ÓÄôóÀï¼ÖÄÇ´óѧµçÆø¹¤³Ìϵ¡£Ò»Ö±ÔÚÃæÏò¼Æ
Ëã»ú³õѧÕß½ÌÊÚÈí¼þ»ù´¡¿Î³Ì£¬±àд¹ý´óÁ¿¹ãÊÜ»¶ÓµÄ¼¼ÊõÎĵµ¡£
Carter¡ª¡ªWarrenÖ®×Ó£¬Ò»¸ö´ÏÃ÷¡¢ÈÈÇé¡¢ºÃÆæÐÄÇ¿¡¢Ï²»¶Ë¼¿¼ÎÊÌâ
µÄСÄк¢£¬ÈȰ®¼ÆËã»ú£¬Ï²»¶µ¯¸ÖÇÙºÍÍæ³¬¼¶ÂêÀö¡£ºÜСµÄʱºò¾Í¿ª
ʼ¸úן¸Ç×Íæ±à³Ì¡£
ÒëÕß ËÕ½ð¹úÎÒÃǽ«Òª½¨Á¢Ò»¸ö¼ò»¯Á˵ĵç×Ó³èÎï³ÌÐò£¬ÕýÈçÇ°ÃæËù˵µÄÒ»Ñù£¬ÕâÊÇ
Ò»ÖÖ·ÂÕæ¡£Äã¿ÉÒÔ¹ºÂòµç×Ó³èÎïÍæ¾ß(±ÈÈçÓÐÒ»¸öСÆÁÄ»µÄÔ¿³×Á´)£¬ÏÂÔØµç×Ó³èÎïÈí¼þ£¬»¹ÓÐÒ»Ð©ÍøÕ¾(Èç Neopets ºÍ Webkinz)£¬¾Í²ÉÓÃ
Á˵ç×Ó³èÎïµÄÐÎʽ¡£µ±È»£¬ËùÓÐÕâЩҲ¶¼ÊÇ·ÂÕæ¡£ËüÃÇ»áÄ£·ÂÒ»Ð©ÕæÊµ
¶¯ÎïµÄÐÐΪ£¬»á¶ö£¬»á¸Ðµ½¹Âµ¥£¬»á¾õµÃÀÛ¡£ÒªÈÃËüÃÇ¿ìÀÖ½¡¿µ£¬Äã±Ø
Ðë¸øËüÃÇιʳ£¬ºÍËüÃÇÍæ£¬»¹Òª´øËüÃÇ¿´²¡¡£
ÎÒÃǵĵç×Ó³èÎï»á¼òµ¥µÃ¶à£¬ÓëÄ㹺Âò»òÏÂÔØµÄµç×Ó³èÎïÏà±ÈûÓÐÄÇô
ÕæÊµ£¬ÒòΪÎÒÖ»ÊÇÏëÈÃÄãÓÐһЩ»ù±¾ÈÏʶ£¬¶øÇÒÎÒ²»Ï£Íû´úÂëÌ«¹ý¸´
ÔÓ¡£²»¹ýÄã¿ÉÒÔÔÚÕâ¸ö¼ò»¯°æ±¾µÄ»ù´¡ÉÏ£¬¸ù¾ÝÄãµÄÏë·¨½øÐÐÀ©Õ¹»ò¸Ä
½ø¡£
ÎÒÃǵijÌÐòÒª¾ß±¸ÒÔÏÂÌØÐÔ¡£
¶ÔÕâ¸ö³èÎï¿ÉÒÔÓÐ 4 Öֻ£º¸øËüιʳ¡¢´øËüÉ¢²½¡¢ºÍËüÍæ»òÕß´ø
Ëü¿´²¡¡£¿ÉÒÔ¼à²âÕâ¸ö³èÎïµÄ 3 ÖÖͳ¼ÆÐÅÏ¢£º¼¢¶ö¸Ð¡¢¿ìÀֶȺͽ¡¿µ¶È¡£
³èÎï¿ÉÒÔÐÑ×Å»òÕß˯¾õ¡£
¼¢¶ö¸Ð»áËæÊ±¼äÔö¼Ó¡£¿ÉÒÔͨ¹ýιʳ¼õÉÙ¼¢¶ö¸Ð¡£
³èÎï˯¾õʱ¼¢¶ö¸ÐµÄÔö¼Ó»á¼õÂý¡£
Èç¹û³èÎïÔÚ˯¾õ£¬Äã×öÈκλ¶¼»áÈÃËüÐѹýÀ´¡£
Èç¹û³èÎïÌ«¶öÁË£¬ËüµÄ¿ìÀÖ¶È»á¼õÉÙ¡£
Èç¹û³èÎïʵÔÚÌ«¶öÁË£¬ËüµÄ½¡¿µ¶È»á¼õÉÙ¡£
´ø³èÎïÉ¢²½»áͬʱÔö¼ÓËüµÄ¿ìÀֶȺͽ¡¿µ¶È¡£
Óë³èÎïÍæ»áÈÃËüµÄ¿ìÀÖ¶ÈÔö¼Ó¡£
´ø³èÎï¿´²¡»áÈÃËüµÄ½¡¿µ¶ÈÔö¼Ó¡£
³èÎïÓÐ 6 ¸ö²»Í¬µÄͼƬ£º
Ò»¸ö˯¾õµÄͼƬ£»
Ò»¸öÐÑ×ŵ«Ê²Ã´Ò²²»×öµÄͼƬ£»
Ò»¸öÉ¢²½µÄͼƬ£»
Ò»¸öÍæË£µÄͼƬ£»Ò»¸ö½øÊ³µÄͼƬ£»
Ò»¸ö¿´²¡µÄͼƬ¡£
ͼƬ¿ÉÒÔʹÓÃһЩ¼òµ¥µÄ¶¯»¡£ºóÃæ¼¸½ÚÎÒÃǽ«¿´µ½ÈçºÎ°ÑËùÓÐÕâЩÕû
ºÏÔÚÒ»Æð¹¹³ÉÒ»¸ö³ÌÐò¡£
GUI
Carter ºÍÎÒΪÎÒÃǵĵç×Ó³èÎï³ÌÐò´´½¨ÁËÒ»¸ö PythonCard GUI¡£ÆäÖÐÓÐ
һЩ°´Å¥ÓÃÀ´Íê³É»î¶¯£¬»¹ÓÐһЩ¼ÆÁ¿Æ÷ÏÔÊ¾ÖØÒªµÄͳ¼ÆÐÅÏ¢¡£ÁíÍ⻹
ÁôÓÐÒ»¸öλÖÃÏÔʾ³èÎïµÄͼƬ(³èÎïÕýÔÚ×öʲô)¡£¿´ÆðÀ´¾ÍÏñÓÒͼÕâ
Ñù£º
¶ÔÓ¦»î¶¯µÄ°´Å¥ÊÇÒ»ÖÖ ImageButton ÀàÐ굀 PythonCard ×é¼þ¡£ÀûÓÃÕâÖÖ
×é¼þ¿ÉÒÔ´´½¨´øÍ¼Æ¬µÄ°´Å¥£¬¶ø²»Ö»ÊÇÎı¾¡£¸÷¸ö¼ÆÁ¿Æ÷µÄ×é¼þÀàÐÍÊÇ
Gauge¡£Ö÷ͼƬÊÇÒ»¸ö Image ×é¼þ¡£±êÇ©ÊÇ StaticText ×é¼þ¡£
Äã¿ÉÒÔʹÓà PythonCard ×ÊÔ´±à¼Æ÷´´½¨ÕâÑùµÄ GUI¡£
Ë㷨ҪΪµç×Ó³èÎï³ÌÐòд´úÂ룬ÐèÒª¸üÃ÷È·µØÁ˽â³èÎïµÄÐÐΪ¡£ÒÔÏÂÊÇÎÒÃÇ
ҪʹÓõÄËã·¨¡£
ÎÒÃǰѳèÎïµÄÒ»¡°Ì족·ÖΪ 60 ¸ö²¿·Ö£¬Ã¿Ò»²¿·Ö³ÆÎªÒ»¸ö¡°µÎ´ð¡±¡£
ÿ¸öµÎ´ðµÄʵ¼Êʱ¼äÊÇ 5 ÃëÖÓ£¬ËùÒÔ³èÎïµÄ¡°Ò»Ì족¾ÍÊÇÎÒÃÇʵ¼Êʱ
¼äµÄ 5 ·ÖÖÓ¡£
³èÎïÔÚ 48 ¸öµÎ´ðÖж¼ÐÑ×Å£¬È»ºóËüÏë˯ 12 ¸öµÎ´ð¡£Äã¿ÉÒÔ°ÑËü½Ð
ÐÑ£¬²»¹ýÕâÑù»áÈÃËüºÜ²»¸ßÐË!
¼¢¶ö¸Ð¡¢¿ìÀֶȺͽ¡¿µ¶ÈµÄ·¶Î§¶¼ÊÇ 0 µ½ 8¡£
ÐÑ×Åʱ£¬¼¢¶ö¸Ðÿ¸öµÎ´ð»áÔö¼Ó 1 ¸öµ¥Î»£¬¿ìÀÖ¶Èÿ 2 ¸öµÎ´ð¼õÉÙ
1 ¸öµ¥Î»(³ý·ÇÔÚÉ¢²½»òÕßÍæ)¡£
˯¾õʱ£¬¼¢¶ö¸Ðÿ 3 ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
½øÊ³Ê±£¬¼¢¶ö¸Ðÿ¸öµÎ´ð¼õÉÙ 1 ¸öµ¥Î»¡£
ÍæÊ±£¬¿ìÀÖ¶Èÿ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
É¢²½Ê±£¬¿ìÀֶȺͽ¡¿µ¶Èÿ 2 ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
¿´²¡Ê±£¬½¡¿µ¶Èÿ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
Èç¹û¼¢¶ö¸Ð´ïµ½ 7£¬½¡¿µ¶Èÿ 2 ¸öµÎ´ð¼õÉÙ 1 ¸öµ¥Î»¡£
Èç¹û¼¢¶ö¸Ð´ïµ½ 8£¬½¡¿µ¶Èÿ¸öµÎ´ð¼õÉÙ 1 ¸öµ¥Î»¡£
Èç¹û˯¾õʱ±»½ÐÐÑ£¬¿ìÀֶȼõÉÙ 4 ¸öµ¥Î»¡£
Èç¹û³ÌÐò²»ÔÚÔËÐУ¬³èÎï¿ÉÄÜÐÑ×Å(ʲôҲ²»×ö)£¬Ò²¿ÉÄÜÔÚ˯
¾õ¡£
³ÌÐòÖØÆôʱ£¬ÎÒÃÇ»áͳ¼Æ¹ýÈ¥Á˶àÉٵδ𣬲¢¶ÔÓ¦¹ýÈ¥µÄÿ¸öµÎ´ð
¸üÐÂͳ¼ÆÐÅÏ¢¡£
¿´ÆðÀ´ºÃÏñ¹æÔòºÜ¶à£¬²»¹ý±àд´úÂëÆäʵºÜÈÝÒס£Êµ¼ÊÉÏ£¬Äã¿ÉÄÜ»¹Ïë
Ôö¼Ó¸ü¶àµÄÐÐΪ£¬ÈÃËü¸ü¼ÓÓÐȤ¡£ÉÔºó¾Í»á¸ø³ö´úÂë(»¹»á×öһЩ½âÊÍ)¡£
¼òµ¥¶¯»
²¢²»×ÜÊÇÐèÒª Pygame ²ÅÄÜÍê³É¶¯»¡£ÎÒÃÇ¿ÉÒÔÔÚ PythonCard ÖÐͨ¹ýʹ
Óö¨Ê±Æ÷Íê³É¼òµ¥µÄ¶¯»¡£¶¨Ê±Æ÷ÿ¸ôÒ»¶Îʱ¼ä»á´´½¨Ò»¸öʼþ¡£¿ÉÒÔ
±àдһ¸öʼþ´¦ÀíÆ÷£¬ÔÚ¶¨Ê±Æ÷µ½Ê±¼äʱÈÃij¸öÊÂÇé·¢Éú¡£Õâ¾ÍÀàËÆÓÚ
Ϊһ¸öÓû§¶¯×÷±àдʼþ´¦ÀíÆ÷£¬±ÈÈç˵µã»÷Ò»¸ö°´Å¥£¬Ö»²»¹ý¶¨Ê±Æ÷
ʼþÊÇÓɳÌÐò(¶ø²»ÊÇÓû§)Éú³ÉµÄ¡£
ÎÒÃǵĵç×Ó³èÎï GUI ½«Ê¹ÓÃÁ½¸ö¶¨Ê±Æ÷£ºÒ»¸öÓÃÓÚ¶¯»£¬ÁíÒ»¸öÓÃÓÚ
µÎ´ð¡£¶¯»Ã¿°ëÃë(0.5 Ãë)¸üÐÂÒ»´Î£¬µÎ´ðÿ 5 Ãë·¢ÉúÒ»´Î¡£
¶¯»¶¨Ê±Æ÷ʱ¼äµ½Ê±£¬ÎÒÃÇ»áËùÏÔʾ³èÎïµÄͼÏñ¡£Ã¿¸ö»î¶¯(½øÊ³¡¢Íæ
µÈ)¶¼ÓÐ×Ô¼ºµÄÒ»×éͼÏñÀ´ÊµÏÖ¶¯»£¬Ã¿×éͼÏñ½«´æ´¢ÔÚÒ»¸öÁбíÖС£
¶¯»»áÑ»·ÏÔʾÕâ¸öÁбíÖеÄËùÓÐͼÏñ¡£³ÌÐò½«¸ù¾ÝÕýÔÚ½øÐеĻÀ´
È·¶¨Ê¹ÓÃÄĸöÁÐ±í¡£
ÊÔÒ»ÊÔ£¬ÔÙÊÔÒ»ÊÔ
Õâ¸ö³ÌÐòÖл¹ÒªÊ¹ÓÃÒ»¸öÐÂÄÚÈÝ£¬Õâ³ÆÎª try-except ¿é¡£
Èç¹û³ÌÐòÒª×öÒ»¼þÊÂÇ飬¶øÇÒÕâ¸öÊÂÇéÓпÉÄܵ¼Ö´íÎó£¬ÄÇô×îºÃÌṩ
Ò»ÖÖ°ì·¨À´ÊÕ¼¯´íÎóÏûÏ¢²¢½øÐд¦Àí£¬¶ø²»ÊÇÈóÌÐòÖ±½ÓÍ£Ö¹¡£Õâ¿ÉÒÔ
ÀûÓà try-except ¿éÀ´×öµ½¡£
ÀýÈ磬Èç¹ûÏë´ò¿ªÒ»¸öÎļþ£¬µ«ÊÇÕâ¸öÎļþ²¢²»´æÔÚ£¬Äã¾Í»áµÃµ½Ò»Ìõ
´íÎóÏûÏ¢¡£Èç¹ûÄãûÓд¦ÀíÕâ¸ö´íÎ󣬳ÌÐò»áÔÚÕâÀïÍ£Ö¹¡£²»¹ý£¬Ò²Ðí
ÄãÏëÈÃÓû§ÖØÐÂÊäÈëÎļþÃû(û׼ËýÖ»ÊÇÇôíÁË)¡£ÀûÓà try-except
¿é£¬Äã¿ÉÒÔ»ñÈ¡µ½´íÎóÐÅÏ¢²¢¼ÌÐøÖ´ÐС£
¶ÔÓÚ´ò¿ªÎļþµÄÀý×Ó£¬try-except ¿éÈçÏÂËùʾ£º
try:
file = open(somefile.txt, r)
except:
print Couldn't open the file. Do you want to reenter the filename?
ÄãÏë³¢ÊԵIJ¿·Ö(¿ÉÄܵ¼ÖÂÒ»¸ö´íÎó)Òª·ÅÔÚ try ¿éÖС£ÔÚÕâ¸öÀý×ÓÖоÍÊdz¢ÊÔ´ò¿ªÒ»¸öÎļþ¡£Èç¹û¿ÉÒÔ´ò¿ªÎļþ¶ø²»»áµ¼Ö´íÎ󣬾ͻáÌø¹ý
except ²¿·Ö¡£
Èç¹û try ¿éÖеĴúÂëȷʵµ¼ÖÂÒ»¸ö´íÎ󣬾ͻáÔËÐÐ except ¿éÖеĴúÂë
except ¿éÖеĴúÂë¸æËß³ÌÐòÒ»µ©³öÏÖ´íÎó¸Ã×öЩʲô¡£Äã¿ÉÒÔÕâÑùÀ´
¿¼ÂÇ£º
try:
×öÕâ¼þÊ ( ²»×öÆäËûÊÂÇé...)
except:
Èç¹ûÓдíÎ󣬾Í×öÕâ¼þÊÂ
try-except Óï¾äÊÇ Python ´¦Àí´íÎóËù²ÉÓõķ½·¨£¬Õâͨ³£³ÆÎª´íÎó´¦
Àí(error handling)¡£´íÎó´¦ÀíÔÊÐíÄã±àд¿ÉÄܳö´íµÄ´úÂë(ÉõÖÁÊǺÜ
ÑÏÖØµÄ´íÎó£¬ÌÈÈôûÓдíÎó´¦Àí£¬ÕâЩ´íÎóÔÚÕý³£Çé¿öÏÂÉõÖÁ»áÈÃÄãµÄ
³ÌÐòÍ£Ö¹)£¬Ê¹³ÌÐòÈÔÄܼÌÐøÔËÐС£ÎÒÃDz»´òËãÔÚÕâ±¾ÎÄÀï¸üÏêϸµØÌÖ
ÂÛ´íÎó´¦Àí£¬²»¹ýÎÒÏ£ÍûÄãÄÜÁ˽âһЩ»ù´¡ÖªÊ¶£¬ÒòΪÔÚµç×Ó³èÎï´úÂë
Öоͻῴµ½´íÎó´¦Àí¡£
ÏÂÃæÀ´¿´Õâ¸ö´úÂ룬¼û´úÂëÇåµ¥¡£ÕâÀïµÄ˵Ã÷ÒѾ¶Ô´ó²¿·Ö¹¤×÷×öÁ˽â
ÊÍ¡£Õâ¸ö´úÂëÓе㳤£¬ËùÒÔÈç¹ûÄã²»Ïë×Ô¼º¼üÈ룬Ҳ¿ÉÒÔ´ÓÕâ¸öÍøÕ¾
(www.helloworldbook.com)ÏÂÔØ¡£PythonCard ×ÊÔ´ÎļþºÍËùÓÐͼƬҲ
¶¼ÒѾÌṩ¡£ÊÔ×ÅÔËÐÐÕâ¸ö³ÌÐò£¬È»ºóÔÙ¿´´úÂ룬ȷ±£ÄãÄÜÀí½âËüÊÇÈç
ºÎ¹¤×÷µÄ¡£
´úÂëÇåµ¥ VirtualPet.pysleeptest º¯ÊýʹÓÃÁËÒ»¸ö PythonCard ¶Ô»°¿ò£¬²»¹ýÉÔ×öÁ˵÷Õû¡£Äã¿É
Äܼǵã¬PythonCard Òª»ùÓÚÁíÒ»¸öÃûΪ wxPython µÄ Python Ä£¿é¡£ÕýÊÇ
ÒòΪÕâ¸öÔÒò£¬°²×° PythonCard ʱҪ°²×° wxPython¡£ÓÐʱ¿ÉÒÔʹÓÃÌØ
ÊâµÄ wxPython ²ÎÊýÀ´¸Ä±ä PythonCard µÄÐÐΪ¡£ÔÚÕâÀÎÒÃǸıäÁ˱ê
×¼ PythonCard ÏûÏ¢¿ò£¬ÈçÓÒͼËùʾ¡£
ÎÒÃǰÑËü±ä³ÉÒ»¸öÓиÐ̾ºÅµÄ¶Ô»°¿ò£¬»¹ÓÐ Yes ºÍ No °´Å¥£¬¾ÍÏñÓÒͼ
ÕâÑù¡£
¼´Ê¹Äã²»ÄÜÍêÈ«¶Á¶®Õâ¸ö´úÂëÒ²²»Óõ£ÐÄ¡£Èç¹ûÄãÏ£Íûѧϰ¸ü¶àÓйØ
PythonCard ºÍ wxPython µÄÄÚÈÝ£¬¿ÉÒÔÏÈ¿´¿´ PythonCard Íø
Õ¾£ºhttp:pythoncard.sourceforge.net¡£
ÔÚ±¾ÎÄÖУ¬ÎÒÃÇÖ»ÊÇÉÔÉÔÁ˽âÁ˼ÆËã»ú·ÂÕæµÄÒ»µãƤ룬֪µÀÁËÄ£ÄâÕæ
ʵÊÀ½çÖÐһЩ·½ÃæµÄ»ù±¾Ë¼Ï룬±ÈÈçÖØÁ¦ºÍʱ¼ä¡£Êµ¼ÊÉÏ£¬¼ÆËã»ú·ÂÕæ
ÔÚ¿ÆÑ§¡¢¹¤³Ì¡¢Ò½Ò©ºÍºÜ¶àÆäËûÁìÓò¶¼µÃµ½Á˹㷺ʹÓá£ÆäÖкܶà·ÂÕæ
·Ç³£¸´ÔÓ£¬¼´Ê¹ÓÃ×î¿ìµÄ³¬¼¶¼ÆËã»úÔËÐÐÒ²ÐèÒª»¨·Ñ¼¸ÌìÉõÖÁ¼¸¸öÐÇ
ÆÚ¡£²»¹ýÔ¿³×Á´ÉϵÄСµç×Ó³èÎïÒ²ÊÇÒ»ÖÖ·ÂÕæ£¬ÓÐʱ×î¼òµ¥µÄ·ÂÕæÒ²ÊÇ×îÓÐÒâ˼µÄ¡£
¶¯ÊÖÊÔÒ»ÊÔ
Ϊµç×Ó³èÎï GUI Ôö¼ÓÒ»¸ö Pause °´Å¥¡£Õâ»áÈóèÎïµÄʱ¼äÍ£Ö¹£¬²»ÂÛ³Ì
ÐòÊÇ·ñÔÚÔËÐС£(Ìáʾ£ºÕâ˵Ã÷¿ÉÄÜÐèÒªÔÚ pickle ÎļþÖб£´æ¡°ÔÝÍ£¡±×´
̬¡£)
¡¶Ó뺢×ÓÒ»Æðѧ±à³Ì¡·Ò»±¾ÀÏÉÙÏÌÒ˵ıà³ÌÈëÃÅÆæÊé!Ò»²áÔÚÊÖ£¬ÄãÍê
È«¿ÉÒÔ´ø×Å×Ô¼ºµÄº¢×Ó£¬¸úËæSande¸¸×Ó×éºÏÔÚÇáËɵķÕΧÖÐÊìϤÄÇЩ
±à³Ì¸ÅÄÈçÄڴ桢ѻ·¡¢ÊäÈëºÍÊä³ö¡¢Êý¾Ý½á¹¹ºÍͼÐÎÓû§½çÃæµÈ¡£
ÕâЩ֪ʶһµã¶ùÒ²²»¸ßÉÌýÆðÀ´±¸¸ÐÇ×ÇУ¬ÊéÖÐÑÔÓïÓÄĬ·çȤ¶ø²»Ê§
ÕæÒ壬ÈÃѧϰ¹ý³Ì³äÂúÀÖȤ¡£Ï¸ÐĵÄ×÷Õß»¹ÅäÉÏÁ˺¢×ÓÃǶ¼Ï²»¶µÄ¿É°®
Âþ»ºÍ¾¹ýÔËÐвâÊԵijÌÐòʾÀý£¬½ÌÄãÓÃ×îÒ×±àдºÍ×îÒ×Àí½âµÄPython
ÓïÑÔ£¬Ð´³öÄãÃÎÏëÖеÄÓÎÏ·³ÌÐò¡£±¾ÎÄÑ¡×Ô¡¶Ó뺢×ÓÒ»Æðѧ±à³Ì¡·¡£´ÓPython 3µÄbytesstrÖ®±ðѧ±àÂëUnicode
×÷Õß Eli Bendersky, Steve Ferg
Eli Bendersky¿ª·¢Èí¼þ³¤´ï15ÄêÖ®¾Ã¡£ÔÚ2008Ä꿪ʼʹÓÃPython,²¢ÇÒ
ÊÇÕâÃÅÓïÑÔµÄÖ÷Òª¹±Ï×ÕßÖ®Ò»¡£ËûʹÓùýºÜ¶àÓïÑÔ£¬µ«ÊÇ×î°®µÄ»¹ÊÇ
CºÍPython£¬ÒµÓàʱ¼ä°®ºÃ±à³Ì¡£ËûµÄ²©¿Íhttp:eli.thegreenplace.net
Steve FergÊÇһλ³ÌÐòÔ±ºÍϵͳ·ÖÎöʦ£¬Í¬Ê±Ëû»¹ÊÇ¿µÄζû´óѧÕÜѧ
ϵµÄ²©Ê¿¡£ËûµÄ²©¿Íhttps:pythonconquerstheuniverse.wordpress.com
ÒëÕß ÀîÁÕæç
ÒëÖøÓС¶±à³Ì´óʦ·Ã̸¼¡·¡¢¡¶±à³ÌÈËÉú¡·µÈ¡£ÏÖÕýÔÚ·ÒëCoding
Interview(³ÌÐòÔ±ÃæÊÔÌâ½âÃÜ)¡£
Òý×Ó£ºbytesstrÖ®±ð
Python 3×îÖØÒªµÄÐÂÌØÐÔ´ó¸ÅÒªËãÊǶÔÎı¾ºÍ¶þ½øÖÆÊý¾Ý×÷Á˸üΪÇåÎú
µÄÇø·Ö¡£Îı¾×ÜÊÇUnicode£¬ÓÉstrÀàÐͱíʾ£¬¶þ½øÖÆÊý¾ÝÔòÓÉbytesÀàÐÍ
±íʾ¡£Python 3²»»áÒÔÈÎÒâÒþʽµÄ·½Ê½»ìÓÃstrºÍbytes£¬ÕýÊÇÕâʹµÃÁ½Õß
µÄÇø·ÖÌØ±ðÇåÎú¡£Äã²»ÄÜÆ´½Ó×Ö·û´®ºÍ×Ö½Ú°ü£¬Ò²ÎÞ·¨ÔÚ×Ö½Ú°üÀïËÑË÷
×Ö·û´®(·´Ö®ÒàÈ»)£¬Ò²²»Äܽ«×Ö·û´®´«Èë²ÎÊýΪ×Ö½Ú°üµÄº¯Êý(·´Ö®
ÒàÈ»)¡£ÕâÊǼþºÃÊ¡£
²»¹ÜÔõÑù£¬×Ö·û´®ºÍ×Ö½Ú°üÖ®¼äµÄ½çÏßÊDZØÈ»µÄ£¬ÏÂÃæµÄͼ½â·Ç³£ÖØ
Òª£¬ÎñÇëÀμÇÓÚÐÄ£º×Ö·û´®¿ÉÒÔ±àÂë³É×Ö½Ú°ü£¬¶ø×Ö½Ú°ü¿ÉÒÔ½âÂë³É×Ö·û´®¡£
>>> '€20'.encode('utf-8')
b'\xe2\x82\xac20'
>>> b'\xe2\x82\xac20'.decode('utf-8')
'€20'
Õâ¸öÎÊÌâÒªÕâôÀ´¿´£º×Ö·û´®ÊÇÎı¾µÄ³éÏó±íʾ¡£×Ö·û´®ÓÉ×Ö·û×é³É£¬×Ö·ûÔòÊÇÓëÈκÎÌØ¶¨¶þ½øÖƱíʾÎ޹صijéÏóʵÌå¡£ÔÚ²Ù×÷×Ö·û´®Ê±£¬ÎÒ
ÃÇÉú»îÔÚÐÒ¸£µÄÎÞÖªÖ®ÖС£ÎÒÃÇ¿ÉÒÔ¶Ô×Ö·û´®½øÐзָîºÍ·ÖƬ£¬¿ÉÒÔÆ´
½ÓºÍËÑË÷×Ö·û´®¡£ÎÒÃDz¢²»¹ØÐÄËüÃÇÄÚ²¿ÊÇÔõô±íʾµÄ£¬×Ö·û´®ÀïµÄÿ
¸ö×Ö·ûÒªÓü¸¸ö×Ö½Ú±£´æ¡£Ö»ÓÐÔÚ½«×Ö·û´®±àÂë³É×Ö½Ú°ü(ÀýÈ磬ΪÁË
ÔÚÐŵÀÉÏ·¢ËÍËüÃÇ)»ò´Ó×Ö½Ú°ü½âÂë×Ö·û´®(·´Ïò²Ù×÷)ʱ£¬ÎÒÃDzŻá
¿ªÊ¼¹Ø×¢Õâµã¡£
´«ÈëencodeºÍdecodeµÄ²ÎÊýÊDZàÂë(»òcodec)¡£±àÂëÊÇÒ»ÖÖÓöþ½ø
ÖÆÊý¾Ý±íʾ³éÏó×Ö·ûµÄ·½Ê½¡£Ä¿Ç°ÓкܶàÖÖ±àÂë¡£ÉÏÃæ¸ø³öµÄUTF-8ÊÇ
ÆäÖÐÒ»ÖÖ£¬ÏÂÃæÊÇÁíÒ»ÖÖ£º
>>> '€20'.encode('iso-8859-15')
b'\xa420'
>>> b'\xa420'.decode('iso-8859-15')
'€20'
±àÂëÊÇÕâ¸öת»»¹ý³ÌÖÐÖÁ¹ØÖØÒªµÄÒ»²¿·Ö¡£ÀëÁ˱àÂ룬bytes¶Ô
Ïób'\xa420'Ö»ÊÇÒ»¶Ñ±ÈÌØÎ»¶øÒÑ¡£±àÂ븳ÓèÆäº¬Òå¡£²ÉÓò»Í¬µÄ±à
Â룬Õâ¶Ñ±ÈÌØÎ»µÄº¬Òå¾Í»á´ó²»Í¬£º
>>> b'\xa420'.decode('windows-1255')
'?20'
¾Ý˵°Ù·ÖÖ®°ËÊ®µÄ½ðÇ®Ëðʧ½ÔÒòʹÓôíÎóµÄ±àÂëµ¼Ö£¬Òò´ËÎñ±ØÐ¡ÐĽ÷É÷¡£
ʲôÊDZàÂ룿
»ù±¾¸ÅÄîºÜ¼òµ¥¡£Ê×ÏÈ£¬ÎÒÃÇ´ÓÒ»¶ÎÐÅÏ¢¼´ÏûϢ˵Æð£¬ÏûÏ¢ÒÔÈËÀà¿ÉÒÔ
Àí½â¡¢Ò×¶®µÄ±íʾ´æÔÚ¡£ÎÒ´òË㽫ÕâÖÖ±íʾ³ÆÎª¡°Ã÷ÎÄ¡±(plain text)¡£
¶ÔÓÚ˵ӢÓïµÄÈË£¬Ö½ÕÅÉÏ´òÓ¡µÄ»òÆÁÄ»ÉÏÏÔʾµÄÓ¢Îĵ¥´Ê¶¼Ëã×÷Ã÷ÎÄ¡£
Æä´Î£¬(ÔÒòÉÔºòÔÙÊö)ÎÒÃÇÐèÒªÄܽ«Ã÷ÎıíʾµÄÏûϢת³ÉÁíÍâijÖÖ±í
ʾ(²»·Á³ÆÖ®Îª¡°±àÂëÎı¾¡±£¬encoded text)£¬ÎÒÃÇ»¹ÐèÒªÄܽ«±àÂë
Îı¾×ª»Ø³ÉÃ÷ÎÄ¡£´ÓÃ÷Îĵ½±àÂëÎı¾µÄת»»³ÆÎª¡°±àÂ롱£¬´Ó±àÂëÎı¾ÓÖ
ת»Ø³ÉÃ÷ÎÄÔòΪ¡°½âÂ롱¡£
Õâ¸ö¹ý³ÌÓÐÈýµãºÜÖØÒª¡£
µÚÒ»µãÊÇÔÚ±àÂë»ò½âÂë¹ý³ÌÖв»µÃ¶ªÊ§ÈκÎÐÅÏ¢¡£ÎÒÃDZØÐëÄÜ×öµ½À´»Ø
´«µÝÏûÏ¢£¬´ÓÃ÷Îĵ½±àÂëÎı¾£¬È»ºóÓÖ´Ó±àÂëÎı¾»Øµ½Ã÷ÎÄ£¬È¡µÃµÄÃ÷
ÎĸúÎÒÃÇÒ»¿ªÊ¼ÓµÓеÄÍêȫһÑù¡£¾ÙÀýÀ´Ëµ£¬ÕâÕýÊÇΪʲôÎÒÃÇÎÞ·¨ÓÃ
Ò»ÖÖ×ÔÈ»ÓïÑÔ(¶íÓï¡¢ººÓï¡¢·¨Óï¡¢ÄÉÍß»ôÓïµÈ)À´±àÂëÁíÒ»ÖÖ×ÔÈ»Óï
ÑÔ(Ó¢Óï¡¢Ó¡µØÓ˹ÍßÎ÷ÀïÓïµÈ)¡£×ÔÈ»ÓïÑÔÖ®¼äµÄÓ³Éä¹ØÏµÌ«¹ýËÉ
É¢£¬ÎÞ·¨±£Ö¤Ò»ÌõÐÅÏ¢ÄÜÔÚÀ´»ØµÄת»»Öв»Ê§Õæ¡£
ÒªÇóÀ´»Ø×ª»»²»Ê§Õ棬Ҳ¾ÍÒâζ×ÅÃ÷ÎĺͱàÂëÎı¾Ö®¼äµÄÓ³É䱨ÐëÓÖ½ô
ÃÜÓÖ¾«È·¡£Õâ¾ÍÒý³öÁ˵ڶþµã¡£
Ϊȷ±£Ã÷ÎĺͱàÂëÎı¾Ö®¼äµÄÓ³Éä·Ç³£½ôÃÜ£¬Ò²¼´£¬ÎªÁËÄܷdz£¾«È·µØ
¹æ¶¨±àÂëºÍ½âÂë¹ý³ÌÊÇÔõô»ØÊ£¬ÎÒÃDZØÐë·Ç³£¾«È·µØ¹æ¶¨Ã÷Îĵıíʾ
ÊÇʲôÑùµÄ¡£
ÀýÈ磬¼Ù¶¨ÎÒÃǵÄÃ÷ÎÄÊÇÕâÑùµÄ£ºÓ¢ÃÀ×Öĸ±íµÄ26¸ö´óд×Öĸ£¬¼ÓÉÏ¿Õ
¸ñ£¬¼°3¸ö±êµã·ûºÅ£º¾äµã(¾äºÅ)¡¢ÎʺźͶ̻®Ïß(Á¬×Ö·û)¡£Õâ¾Í
ÐγÉÁË30¸ö×Ö·ûµÄÃ÷ÎÄ×Öĸ±í¡£ÐèÒªÊý×Öʱ£¬ÎÒÃÇ¿ÉÒÔÖ±½Óƴд³öÀ´£¬±ÈÈ磺six thousand seven hundred forty-three(ÁùǧÆß°ÙËÄÊ®Èý)¡£ÁíÒ»·½Ã棬ÎÒÃÇ¿ÉÄÜÏ£ÍûÃ÷ÎÄÊÇÕâÑùµÄ£º26¸ö´óд×Öĸ£¬26¸öСд×Ö
ĸ£¬10¸öÊý×Ö£¬¿Õ¸ñ·û£¬¼°Ê®¼¸ÖÖ±êµã·ûºÅ£¬°üÀ¨¾äµã¡¢¶ººÅ¡¢Ë«Òý
ºÅ¡¢×óÀ¨ºÅ¡¢ÓÒÀ¨ºÅµÈµÈ¡£ÓÚÊÇÎÒÃÇÓֵõ½Ò»ÕÅ75¸ö×Ö·ûµÄÃ÷ÎÄ×Öĸ
񡭜
Ò»µ©¾«È·µØ¹æ¶¨ÁËÏûÏ¢µÄÃ÷ÎıíʾÊÇʲôÑùµÄ£¬±ÈÈçÉÏÃæµÄ30¸ö×Ö·ûµÄ
×Öĸ±í£¬Ò²ÐíÊÇ75¸ö×Ö·ûµÄ×Öĸ±íÖÐÓÐÏÞµÄ×Ö·ûÐòÁУ¬ÎÒÃǾͿÉÒÔÉè¼Æ
Ò»Ì×ϵͳ(±àÂ룬code)£¬ÄܶÔÓÃÕâÕÅ×Öĸ±íд³ÉµÄÃ÷ÎÄÏûÏ¢½øÐпɿ¿
µÄ±àÂëºÍ½âÂë¡£ÕâÀàϵͳ×î¼òµ¥µÄÒ»ÖÖÊÇÃ÷ÎÄ×Öĸ±íÀïµÄÿ¸ö×Ö·ûÔÚ±à
ÂëÎı¾ÖÐÓÐÒ»¸öÇÒÖ»ÓÐÒ»¸ö¶ÔÓ¦µÄ±íʾ¡£¾Ù¸ö´ó¼Ò¶¼ÊìϤµÄĦ¶û˹µçÂë
µÄÀý×Ó£¬ÆäÖÐÃ÷ÎÄ¡°SOS¡±¶ÔÓ¦µÄ±àÂëÎı¾Îª... --- ...¡£
µ±È»£¬ÔÚÏÖʵÉú»îÖУ¬Ã÷ÎÄ×Öĸ±íÖÐ×Ö·ûµÄÑ¡ÔñÊܵ½±àÂëÎı¾Éϼ¼ÊõÏÞ
ÖÆµÄÓ°Ïì¡£¼Ù¶¨´æ´¢±àÂëÏûÏ¢ÓÐÈçϼ¸ÖÖ¼¼Êõ¿É¹©Ñ¡Ôñ£ºÒ»ÖÖ¼¼ÊõÖ§³Ö
256¸ö×Ö·ûµÄ±àÂë×Öĸ±í£¬ÁíÒ»ÖÖ¼¼ÊõÖ»Ö§³Ö128¸ö±àÂë×Ö·û£¬µÚÈýÖÖ¼¼
ÊõÖ»Ö§³Ö64¸ö±àÂë×Ö·û¡£Èç¹ûÎÒÃÇÇå³þ×Ô¼º¿ÉÒÔʹÓÃÖ§³Ö¸ü´ó±àÂëÎı¾
×Öĸ±íµÄ¼¼Êõ£¬ÎÒÃÇ×ÔÈ»¶øÈ»¾ÍÄܽ«Ã÷ÎÄ×Öĸ±íÀ©Õ¹µÃ±ÈÒÔÍù´óµÃ¶à¡£
·´Ö®ÒàÈ»¡£Èç¹ûÈ·¶¨Ã÷ÎÄ×Öĸ±íÒ»¶¨Òª·Ç³£´ó£¬ÎÒÃǾͻáÃ÷°×±ØÐëÕÒµ½
»òÉè¼ÆÒ»ÖÖÄÜ´æ´¢´óÁ¿±àÂë×Ö·ûµÄ¼¼Êõ¡£
Õâ¾ÍÒý³öÁËÏÂÃæµÄ»°Ì⣬Unicode¡£
Unicode
UnicodeµÄÉè¼Æ³õÖÔÊdzÉΪһÌ×ϵͳ£¬¿ÉÒÔ´æ´¢ÏÖ´æËùÓÐÈËÀàÓïÑÔµÄËù
ÓÐÃ÷ÎÄ×Ö·ûµÄ±àÂë±íʾ¡£Ó¢Óï¡¢·¨Óï¡¢Î÷°àÑÀÓϣÀ°Óï¡¢°¢À²®Óï¡¢Ó¡µØÓï¡¢ººÓïºÍÑÇÊöÓï(ШÐÎÎÄ×Ö)µÈ¡£
ÕâЩ×Ö·ûÊýÁ¿ÅÓ´ó¡£
Òò´Ë£¬Unicode¼Æ»®µÄÊ×ÒªÈÎÎñ¾ÍÊǰÑËùÓÐÕâЩ×Ö·ûÂÞÁгöÀ´£¬Êý¸ö
Êý¡£Õâ¾ÍÊÇUnicodeµÄǰ°ë²¿·Ö£¬Í¨ÓÃ×Ö·û¼¯(Universal Character
Set)¡£(ÕæÕý̸¼°Unicodeʱ£¬²»Òª°ÑÃ÷ÎÄ×Ö·û½Ð×ö¡°×Ö·û¡±£¬³ÆÖ®Îª¡°Âë
µã¡±(code points)¡£)
Íê³ÉÇ°ÃæµÄ¹¤×÷ºó£¬Ä㻹µÃÏë³öÒ»ÖÖ¼¼Êõ£¬ÒÔ´¢´æÈ«²¿¶ÔÓ¦µÄ±àÂëÎı¾
×Ö·û¡£(ÓÃUnicodeµÄ»°À´Ëµ£¬±àÂëÎı¾×Ö·û±»³Æ×÷¡°ÂëÖµ¡±(codevalues)¡£)
ʵ¼ÊÉÏ£¬Unicode¶¨ÒåÁ˲»Ö¹Ò»ÖÖ·½·¨£¬½«ÂëµãÓ³Éäµ½ÂëÖµ¡£ÕâЩ·½·¨
¶¼ÓÐ×Ô¼ºµÄÃû×Ö¡£ÆäÖв¿·ÖÃû×ÖÒÔ¡°UTF¡±¿ªÍ·£¬ÆäËûÒÔ¡°UCS¡±¿ªÍ·£º
UTF-8¡¢UTF-16¡¢UTF-32¡¢UCS-2¡¢UCS-4µÈµÈ¡£ÃüÃû¹æ·¶ÊÇ¡°UTF-<Âë
ÖµµÄ±ÈÌØÊý>¡±ºÍ¡°UCS-<ÂëÖµµÄ×Ö½ÚÊý>¡±¡£ÓÐЩ·½·¨(ÈçUCS-4ºÍUTF-
32)¹¦ÄÜÏàÈô¡£²Î¿´Î¬»ù°Ù¿ÆUnicodeÏà¹ØÒ³Ãæ¡£
¹ØÓÚÕâЩ·½·¨×îÖØÒªµÄÒ»µãÊÇ£¬ÓÐЩ·½·¨ÊǶ¨³¤±àÂ룬ÓÐЩÔòÊDZ䳤±à
Âë¡£»ù±¾Ë¼ÏëÊǶ¨³¤±àÂë¶¼ºÜ³¤£¬ÈçUCS-4ºÍUTF-32¶¼ÓÐ4×Ö½Ú(32±È
ÌØ)³¤£¬³¤µ½×ãÒÔholdסδÀ´¿ÉÆÚµÄ×î´óÂëÖµ¡£
Ïà±È¶øÑÔ£¬±ä³¤±àÂëÔòÉè¼Æ³É¼ò¶Ìµ«¿ÉÀ©Õ¹¡£ÀýÈ磬UTF-8¿ÉÒÔʹÓÃÉÙ
ÖÁ8±ÈÌØ(1×Ö½Ú)À´´¢´æLatinºÍASCIIÂëµã¡£²»¹ý£¬Ëü»¹ÓÐÒ»ÖÖ¡°½ÓÏÂÒ»
¸ö×Ö½Ú¡±»úÖÆ£¬ÒÔ±ãÔÚ±ØÒªÊ±(ÓпÉÄÜÓÃÀ´±íʾÖÐÎÄ×Ö·û)¿ÉÒÔʹÓÃ2¸ö
×Ö½ÚÉõ»ò4¸ö×Ö½Ú¡£¶ÔÓÚÎ÷·½¹ú¼ÒµÄ³ÌÐòÔ±£¬Õâ¾ÍÒâζ×ÅUTF-8¼È¸ßЧ
ÓÖÁé»î£¬UTF-8Ö®ËùÒÔ³ÉΪ½»»»UnicodeÎı¾ÊÂʵÉϵıê×¼±àÂ룬ÔÒòÕý
ÔÚÓÚ´Ë¡£
×ÜÖ®£¬²»´æÔÚËùνµ¥Ò»µÄUnicode±àÂëϵͳ»ò·½·¨£¬¶øÊÇÓкü¸ÖÖ±àÂë
·½·¨£»´òËã¸ú±ðÈ˽»»»Îı¾Ê±£¬ÄãÐèÒªÃ÷È·Ö¸¶¨×Ô¼º²ÉÓÃÁËÄÄÖÖ±àÂë·½
·¨¡£
±ÈÈ磬ÊDz»ÊÇÕâÑù£º
»òÕßÕâÑù£º
»òÕ߯äËû±àÂë·½·¨¡£
ÕâÓֻص½ÎÒÇ°ÃæÌá¹ýµÄ»°Ì⡣ΪʲôҪÓÃUnicodeÀ´±àÂ룿
ǰÎÄÌáµ½£º
Ê×ÏÈ£¬ÎÒÃÇ´ÓÒ»ÌõÐÅÏ¢¼´ÏûϢ˵Æð£¬ÏûÏ¢ÒÔÈËÀà¿ÉÒÔÀí½â¡¢Ò×¶®µÄ±í
ʾ´æÔÚ¡£
Æä´Î£¬(ÔÒòÉÔºòÔÙÊö)ÎÒÃÇÐèÒªÄܽ«Ã÷ÎıíʾµÄÏûϢת³ÉÁíÍâijÖÖ
±íʾ(²»·Á³ÆÖ®Îª¡°±àÂëÎı¾¡±)£¬ÎÒÃÇ»¹ÐèÒªÄܽ«±àÂëÎı¾×ª»Ø³ÉÃ÷
ÎÄ¡£´ÓÃ÷Îĵ½±àÂëÎı¾µÄת»»³ÆÎª¡°±àÂ롱£¬´Ó±àÂëÎı¾ÓÖת»Ø³ÉÃ÷ÎÄ
ÔòΪ¡°½âÂ롱¡£
ºÃµÄ¡£ÏÖÔÚÊÇʱºò̽ÌÖÕâЩÔÒòÁË¡£ÎªÊ²Ã´ÎÒÃÇ»áÏë׎«Ã÷ÎıíʾµÄÏû
Ϣת»»³ÉÁíÒ»ÖÖ±íÊ¾ÄØ£¿
Ò»¸öÔÒòµ±È»ÊÇÎÒÃÇÏëÒª±£ÃÜ¡£ÎÒÃÇÏëͨ¹ý¼ÓÃÜ(encrypting)ºÍ½âÃÜ
(decrypting)À´Òþ²ØÏûÏ¢µÄÃ÷ÎÄ£¬»ù±¾ÉϱàÂëºÍ½âÂëµÄËã·¨ÒªÇó±£ÃÜ
ºÍ²»À©É¢¡£
²»¹ý£¬ÕâÊǸö½ØÈ»²»Í¬µÄÖ÷Ìâ¡£ÑÛÏ£¬ÎÒÃǶԱ£Ãܲ»¸ÐÐËȤ£»ÉíΪ
Python³ÌÐòÔ±£¬ÎÒÃǸÐÐËȤµÄÊÇUnicode¡£Òò´Ë£º
ÉíΪPython³ÌÐòÔ±£¬ÎªÊ²Ã´ÎÒ»áÐèÒªÄܽ«Ã÷ÎÄÏûϢת»»³ÉijÖÖ±àÂë±í
ʾ¡¡±ÈÈçUTF-8Ö®ÀàµÄUnicode±íʾ£¿
¼Ù¶¨ÄãÕýÊæÊæ·þ·þµØ×øÔÚµçÄÔǰ£¬ÓÃÄã×îϲ»¶µÄÎı¾±à¼Æ÷£¬ÓÃ
Python(ÌØ±ðÊÇÓÃPython 3+)±àд±ê×¼µÄHello World³ÌÐò¡£ÄãµÄÕû¸ö³Ì
ÐòÖ»ÓÐÏÂÃæÕâÒ»ÐдúÂë¡£
print(Hello, world!)
ÕâÀïµÄ¡°Hello, world!¡±¾ÍÊÇÃ÷ÎÄ¡£ÄãÔÚÆÁÄ»ÉÏ¿´µÃ¼ûËü¡£Äã¿ÉÒÔÔĶÁ£¬Ã÷°×ËüµÄº¬Òå¡£Ëü¾ÍÊÇÒ»×Ö·û´®£¬Äã¿ÉÒÔ¶ÔËüÖ´ÐÐ×Ö·û´®ÀàÐ͵ıê×¼²Ù
×÷£¬±ÈÈç½ØÈ¡Ò»¸ö×Ó´®(ÇÐÆ¬)¡£
²»¹ýÏÖÔÚ¼Ù¶¨Äã×¼±¸½«Õâ¸ö×Ö·û´®¡°Hello, world!¡±·Åµ½Ò»¸öÎļþÖУ¬²¢
½«¸ÃÎļþ±£´æµ½Ó²ÅÌÉÏ¡£Ò²ÐíÄã´òË㽫Õâ¸öÎļþ·¢Ë͸øÅóÓÑ¡£
ÕâÒâζ×ÅÄã±ØÐ뽫ÄÇ¿ÉÁ¯ÊÝСµÄ×Ö·û´®Öð³öPython³ÌÐòÖÐÎÂů¡¢ºÍÄÀ¡¢°²È«µÄ¼Ò£¬ÄÇÀïËü¾ÍÒÔÃ÷ÎÄ×Ö·ûµÄÐÎʽ´æÔÚ¡£Äã±ØÐë°ÑËüÍÆÈëÎļþϵͳ
ÄÇÒõÀ䡢ûÓÐÈËÇéζµÄÍⲿÊÀ½ç¡£ÄÇÀïËü²»»áÒÔ×Ö·ûµÄÐÎʽ´æÔÚ£¬Ö»ÓÐ
1ºÍ0£¬Ò»¶ÑÔÓÂҵĵãµãµÎµÎ£¬³äµçºÍδ³äµçµÄ΢Á£¡£¶øÕâÒâζ×ÅÔ±¾ÐÒ
¸£ÊÝСµÄÃ÷ÎÄ×Ö·û´®±ØÐëÒÔ1ºÍ0µÄijÖÖÌØ¶¨ÅäÖÃÀ´±íʾ£¬ÕâÑùÒ»À´£¬ÓÐ
ÈËÏëÒª»ñÈ¡ÄÇ×é1ºÍ0£¬½«Ëüת»»»Ø¿É¶ÁµÄÃ÷ÎÄ£¬ÍêÈ«¿ÉÒÔ°ìµ½¡£
½«Ã÷ÎÄת»»³É1ºÍ0µÄÌØ¶¨ÅäÖõĹý³Ì¾ÍÊDZàÂëµÄ¹ý³Ì¡£ÎªÁ˽«×Ö·û´®Ð´
ÈëÎļþÖУ¬Äã±ØÐë²ÉÓÃijÖÖ±àÂëϵͳ(±ÈÈçUTF-8)¶Ô×Ö·û´®½øÐбà
Âë¡£Òª´ÓÎļþÖÐÈ¡»Ø×Ö·û´®£¬ÄãÓÖ±ØÐë¶ÁÈëÎļþ£¬¶ÔÕâ×é1ºÍ0½øÐнâ
Â룬ת»Ø³ÉÃ÷ÎÄ¡£
´ÓÎļþ¶Áд×Ö·û´®Ê±ÐèÒª¶ÔËü½øÐбàÂëºÍ½âÂë²¢²»ÊÇÐÂÏÊÊ£¬Õâ²»ÊÇ
Python 3¶ÔUnicodeµÄÐÂÖ§³ÖÒýÈëµÄ¶îÍ⸺µ£¡£ÆäʵÄãÒ»Ö±ÔÚ×öÕâ¼þÊ¡£
²»¹ý¾ÍÊDz»ÔõôÃ÷ÏÔ¶øÒÑ¡£½ÏÔç°æ±¾µÄPython²ÉÓÃASCII±àÂë·½°¸¡£Òò
ΪÔÚÄÇЩ¾ÃÔ¶µÄÄê´ú£¬Ò²Ö»ÓÐASCIIÕâÖÖ±àÂë·½°¸£¬Äã²»ÐèÒªÖ¸¶¨×Ô¼º
ÏëÒª¶ÁдASCII±àÂëµÄÎļþ¡£PythonÖ±½Ó¼Ù¶¨ÎļþĬÈϾͲÉÓÃASCII£¬×Ô
¶¯½øÐбàÂëºÍ½çÃæ¡£µ«ÊÇ£¬ÎÞÂÛÄãÊÇ·ñÒâʶµ½Õâµã£¬ÎÞÂÛºÎʱ£¬Ö»ÒªÄã
µÄ³ÌÐò´ÓÎļþ¶Áд×Ö·û´®£¬Python¶¼»áÔÚÄ»ºóæµ£¬ÎªÄãÍê³É±àÂëºÍ½â
Â빤×÷¡£
×ÛÉÏ£¬Õâ¾ÍÊÇΪʲôÉíΪPython³ÌÐòÔ±µÄÄãÐèÒªÄܽ«Îı¾±àÂë³ÉUTF-
8(»òÆäËûijÖÖ±àÂ룺UTF-16¡¢ASCIIµÈ)£¬»ò½«UTF-8ת»Øµ½Îı¾¡£Äã
ÐèÒª½«×Ö·û´®±àÂë³ÉÒ»×é1ºÍ0£¬ÕâÑù²ÅÄܽ«ÕâЩ1ºÍ0·Å½øÎļþ£¬È»ºó½«
Îļþ·¢Ë͸øÆäËûÈË¡£
ʲôÊÇÃ÷ÎÄ£¿
Ç°ÃæÌáµ½±àÂë½âÂë¹ý³ÌÓÐÈýµãÐèҪעÒ⣬ÎÒ̽ÌÖÁËÇ°ÃæÁ½µã¡£ÏÂÃæÊÇ
µÚÈýµã¡£
Ã÷ÎĺͱàÂëÎı¾Ö®¼äµÄ²î±ðÊÇÏà¶ÔµÄ£¬ÇÒÒÀÀµÓï¾³¡£
×÷Ϊ³ÌÐòÔ±£¬ÎÒÃÇ»á°ÑÊéÃæÎı¾µ±×÷Ã÷ÎÄ¡£µ«Ò²Òª´ÓÆäËû½Ç¶È·ÖÎöÊÂ
Îï¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔ°Ñ¿ÚÍ·Îı¾¿´×÷Ã÷ÎÄ£¬¶øÊéÃæÎı¾¿´×÷±àÂëÎı¾¡£
´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬ÊéÃæÓïÊDZàÂë¹ýµÄ¿ÚÓï¡£ÊÀ½çÉÏÓкܶàÖÖ²»Í¬µÄ±à
Â룬½«¿ÚÓï±àÂë³ÉÊéÃæÓï¡£¾ÙÀýÀ´Ëµ£¬ÓйŰ£¼°ÏóÐÎÎÄ×Ö¡¢ÂêÑÅÏóÐÎÎÄ
×Ö¡¢À¶¡×Öĸ¡¢Ï£À°×Öĸ¡¢°¢À²®ÎÄ¡¢ÖйúµÄ±íÒâÎÄ×Ö£¬»¹Óзdz£Æ½»¬
µÄÌì³ÇÎÄ(Devanagari)£¬¼´Ê¹ÊǼòдÌåÒ²³Ê·æÀû¼âÈñµÄШÐΡ£ÕâЩ¶¼ÊÇ¿ÚÓï´ÊµÄÊéд±àÂë¡£ÕýÈçÓ¢¹úÕþÖÎÕÜѧ¼ÒÍÐÂí˹¡¤»ô²¼Ë¹(Thomas
Hobbes)ËùÑÔ£¬ËüÃǶ¼ÊÇ¡°ÎÒÃÇÒ²ÐíÀµÒÔ¼ÇסÎÒÃÇ˼ÏëµÄ¼ÇºÅ¡±¡£
ÕâÓÖÌáÐÑÎÒÃÇ£¬ÔÚ²»Í¬µÄÓï¾³ÖУ¬¼´Ê¹ÑÔÓï±¾Éí¡ª¡ªÓïÑÔ¡ª¡ªÒ²¿ÉÄܱ»
¿´×÷ÊÇÒ»ÖÖ±àÂëÐÎʽ¡£Ôڴ󲿷ÖÔçÆÚÏÖ´úÕÜѧÖÐ(ÏëÏë»ô²¼Ë¹ºÍÂå
¿Ë)£¬ÑÔÓï(»òÓïÑÔ)»ù±¾Éϱ»ÈÏΪÊÇ˼ÏëºÍÀíÄîµÄ±àÂë¡£µ±ÎÒ½«ÎÒµÄ
Ïë·¨±àÂë³ÉÓïÑÔ˵³ö¿Ú²¢¶ÔÄã˵µÄʱºò£¬¹µÍ¨¾Í·¢ÉúÁË¡£ÄãÌýµ½ÎÒÑÔÓï
µÄÉùÒô£¬½«Æä½âÂë³ÉÏë·¨¡£µ±ÎÒ¾ÓÉÓïÑԳɹ¦µØ½«×Ô¼ºÐÄÀïµÄÏë·¨´«µÝ
µ½ÄãÐÄÀïµÄʱºò£¬ÎÒÃǵĹµÍ¨Ò²¾Í³É¹¦ÁË¡£ÓÉÓÚÎÒµÄÑÔÓÄãÐÄÀïµÄÏë
·¨¸úÎÒÐÄÀïµÄ´ï³ÉÒ»ÖÂʱ£¬Äã±ãÀí½âÁËÎÒ¡£(²Î¿´Ian HackingµÄWhy
Does Language Matter to Philosophy?)
×îºó£¬×¢ÒâÔÚÆäËûÓï¾³ÖУ¬¡°Ã÷ÎÄ¡±ÉõÖÁ²»ÊÇÎı¾¡£Ã÷ÎÄÊÇÉù²¨µÄ(±ÈÈç
ÒôÀÖ)£¬¿ÉÒÔ±àÂë³Émp3Îļþ¡£Ã÷ÎÄÊÇͼÏñµÄ£¬¿ÉÒÔ±àÂëΪgif¡¢png»ò
jpgÎļþ¡£Ã÷ÎÄÊǵçÓ°µÄ£¬¿ÉÒÔ±àÂë³ÉwmvÎļþ¡£²»Ò»¶ø×ã¡£
±àÂëºÍ½âÂëÎÞËù²»ÔÚ¡£
Ó¢ÎÄÔÎÄ£ºThe bytesstr dichotomy in Python 3
Unicode for dummies ¡ª EncodingÈçºÎ¹¹ÔìÍŶÓPython¿ª·¢»·¾³
×÷Õß BePROUD¹«Ë¾×ÊÉ³Ìʦ
BePROUDÊÇÒ»¼ÒרעÓÚPython¿ª·¢µÄ¹«Ë¾£¬ÒòÔÆ¼¯ÁËÖÚ¶àÐÐÒµ¾«Ó¢
¶øÎÅÃûÓÚÈÕ±¾¹úÄÚ¡£
ÒëÕß Ê¢ÈÙ
Ôø¾ÍÖ°ÓÚ°®Á¢ÐÅÖйú£¬³¤ÆÚ´ÓÊÂͨÐÅ¡¢ITÉ豸µÄÑз¢¡¢²âÊÔµÈÏà¹Ø¹¤
×÷¡£Ï²°®½Å±¾ÓïÑÔ£¬ÌرðÊÇPython¡£Ï£Íû½«PythonµÈ½Å±¾ÓïÑÔ¸üºÃµØ
Ó¦ÓÃÓÚ×Ô¶¯»¯²âÊÔµÈÁìÓòÖ®ÖС£
ÔÚ¸öÈË¿ª·¢»·¾³ÖУ¬¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄϲºÃ½øÐÐÔ´´úÂë¹ÜÀí£¬Ò»Ð©Ïë·¨ÒÔ
¼°ÐÅÏ¢Ò²¿ÉÒÔ×ÔÐмǼ¡£
ÄÇôÓɶàÈ˹²Í¬¿ª·¢Ò»¸öÏîÄ¿ÓÖÊÇÔõÑùµÄÇéÐÎÄØ£¿Ê×ÏÈ£¬¿ª·¢µÄ³É¹ûÐè
ÒªÔÚÍŶӳÉÔ±Öй²Ïí¡£Æä´Î£¬²âÊÔ¿ª·¢³É¹ûµÄ²âÊÔ»·¾³Ò²ÐèҪͳһ½¨
Á¢¡£½Ó×Å£¬¿ª·¢µÄ·½·¨ÓëÐÅÏ¢Ò²ÒªÔÚÍŶӳÉÔ±Öй²Ïí¡£¿É¼ûÍŶӳÉÔ±Ö®
¼äµÄ¹µÍ¨±Ø²»¿ÉÉÙ¡£ÄÇô£¬ÈçºÎʹÍŶӿª·¢¸ßЧ½øÐУ¿ÈçºÎ¹¹½¨ÍŶӿª·¢»·¾³£¿±¾ÎľÍÕâЩ
ÎÊÌâµÄÏà¹Ø·½·¨ºÍÓÐÓõŤ¾ß½øÐнéÉÜ¡£
ÔÚ¹«¹²·þÎñÆ÷ÉϽ¨Á¢Óû§¡¤ÉèÖÃȨÏÞ
Ê×ÏÈ£¬ÎÒÃǽéÉÜÒ»ÏÂÔÚÍŶӹ«¹²·þÎñÆ÷ÉϽ¨Á¢Óû§²¢ÉèÖÃȨÏ޵IJÙ×÷²½
Öè¡£
Óû§ÓëÓû§×éµÄ½¨Á¢
½¨Á¢¿ª·¢ÍŶӵÄÓû§ºÍÓû§×é¡£ÔÚ¿ª·¢Ê±Ê¹ÓõķþÎñÆ÷ÉÏÔËÐÐן÷ÖÖ¸÷
ÑùµÄÓ¦ÓóÌÐò£¬Èç¹û¶¼Ê¹ÓÃrootÓû§µÄ»°£¬ÔÚ°²È«ÐÔÉÏ»á´æÔںܴóÒþ
»¼£¬ÎÒÃÇÒ²²»ÆÚÍûÄÇÑù¡£ÔÚ¹«¹²·þÎñÆ÷ÉÏ£¬½¨ÒéʹÓÃÆÕͨÓû§È¨ÏÞÔËÐÐ
¿ª·¢³ÌÐò¡£
Ê×ÏȽ¨Á¢Ò»¸ö¿ª·¢Óû§×顣ȻºóÈçÏÂËùʾ£¬²ÉÓÃrootȨÏÞºÍgroupaddÃü
Á½¨Á¢ÃûΪdevµÄÓû§×é¡£
sudo groupadd dev
½Ó׎¨Á¢Óû§¡£Ê¹ÓÃadduserÃüÁ´´½¨bpbookÓû§×飬²¢ÔÚÃüÁîÐÐÖÐ
ʹÓÃ--ingroupÑ¡ÏÆäÌí¼Óµ½Ö®Ç°½¨Á¢µÄdevÓû§×éÖС£
sudo adduser bpbook --ingroup dev
ÕâÑùÒ»À´¾ÍÔÚϵͳÖн¨Á¢ÁËÒ»¸öÃûΪbpbookµÄÓû§¡£Èç¹ûҪɾ³ýÓÃ
»§£¬¿ÉÒÔÖ±½ÓʹÓÃuserdelÃüÁî½øÐÐɾ³ý¡£
sudo userdel ¨Cr bpbook
Sudoers
ÆÕͨÓû§ÓÐʱ»áÐèҪʹÓ󬼶Óû§(root)µÄȨÏÞÈ¥Ö´ÐÐһЩÃüÁî¡£Õâ
ʱ¿ÉÒÔͨ¹ýetcsudoersÎļþÖеÄÉ趨¸øÓèÆÕͨÓû§Ö´ÐÐÌØ¶¨rootÃüÁîµÄ
ȨÏÞ¡£½ÓÏÂÀ´£¬ÎÒÃÇͨ¹ý±à¼¸ÃÎļþ£¬¸³Óè֮ǰ½¨Á¢µÄbpbookÓû§Ò»¶¨
µÄȨÏÞ¡£±à¼sudoerÎļþÐèÒªÖ´ÐÐvisudoÃüÁî¡£
sudo visudoÉÏÃæÃüÁîÖ´Ðк󣬽«»á´ò¿ªetcsudoersÎļþ¡£ÏÂÃæÊÇͨ¹ýetcsudoersÎÄ
¼þ¸³ÓèbpbookÓû§È¨ÏÞµÄÒ»¶ÎÑùÀý£º
%dev ALL=(ALL) ALL
bpbook ALL=(ALL) ALL
ÉÏÃæµÄÉ趨º¬Òå¾ÍÊǸ³ÓèdevÓû§×éÒÔ¼°ÏÂÃæµÄÓû§bpbookʹÓÃsudoÃü
ÁîµÄȨÏÞ¡£µÚÒ»ÐÐÊǸ³ÓèÓû§×飬µÚ¶þÐÐÊǸ³ÓèÓû§È¨ÏÞ£¬Á¬ÔÚÒ»Æð±í
ʾ¸³Óè¶þÕß¿ÉÒÔÖ´ÐÐrootȨÏÞµÄËùÓÐÃüÁî¡£
sudoersÎļþµÄȨÏÞÅäÖøñʽÈçÏÂËùʾ£º
%Óû§×éÃû Ö÷»úÃû=(ȨÏÞ)ÃüÁî
Óû§Ãû Ö÷»úÃû=(ȨÏÞ)ÃüÁî
virtualenv
µ±¶àÊýÈ˹²Í¬¿ª·¢ÏîĿʱ£¬²»ÄÜÒòΪij¸ö×éÔ±Ìí¼ÓÁËij¸ö¿â»òÕß±ä¸üij
¸ö°æ±¾£¬¶øÓ°ÏìÕû¸öÍŶӵĿª·¢»·¾³¡£ÔÚʹÓÃPython¿ª·¢Ê±£¬ÍƼöʹÓÃ
virtualenv¡£ÒòΪʹÓÃÁËvirtualenv£¬ÄÜʹ¿ª·¢»·¾³µÄ±ä¸ü(È簲װеĿâ
»òÕß°æ±¾Éý¼¶)½ö½ö¶ÔÐÐΪÕß±¾ÉíµÄ¿ª·¢»·¾³ÓÐЧ¡£Òò´Ë£¬ÎÒÃDZØÐëÓÐ
ЧʹÓÃvirtualenv¹¹½¨¶àÈË¿ª·¢»·¾³¡£
ÈÎÎñ¹ÜÀíϵͳ
ÎªÍÆ½øÍŶӿª·¢µÄ˳Àû½øÐУ¬Ê×ÒªÈÎÎñ¾ÍÊÇÄܹ»×¼È·°ÑÎÕÿ¸ö¿ª·¢ÈÎÎñ
µÄ¸ºÔðÈ˼°Æä¿ª·¢½ø¶ÈµÄ×´¿öÐÅÏ¢£¬²¢¼ÓÒÔÊáÀí¡£ÔÚÕâÀ¹ÜÀíÈÎÎñ¾Í
ÐèÒªÓõ½ÈÎÎñ¹ÜÀíϵͳ(Issue Tracking System :ITS)¡£
ITSÊÇÔÚ¿ª·¢¹ý³ÌÖд´½¨ÈÎÎñ¡¢×·×Ù״̬¡¢¹ÜÀíÈÎÎñµÄϵͳ¡£TracºÍ
RedmineÊÇÒÔticketΪµ¥Î»½øÐÐÈÎÎñ¹ÜÀíµÄϵͳ¡£Ê¹ÓÃITSʱ£¬²»½ö¿ÉÒÔ
¹ÜÀíÈÎÎñ£¬»¹¾³£×÷Ϊ´´½¨ticketÐÅÏ¢²¢Â¼È빤×÷ÈÎÎñµÄÈë¿Ú¡£
ITSÖлá¸ù¾Ý²»Í¬Çé¿ö¸ø´´½¨µÄticket·ÖÅ䲻ͬµÄ״̬(Èçн¨¡¢½øÐÐ
ÖС¢½â¾ö¡¢ÒÑÑéÖ¤¡¢¹Ø±Õ¡¢±£ÁôµÈ)¡¢¸øÓ費ͬµÄÓÅÏȼ¶ÊôÐÔ(½ô¼±¡¢¸ß¡¢ÆÕͨ¡¢µÍ)¡¢Î¬»¤ÔðÈÎÈËÐÅÏ¢¡¢ÁгöÍê³ÉÆÚÏÞ£¬»¹¿ÉÒÔ²éѯÉÏÊöËù
ÓÐÐÅÏ¢¡£Òò´Ë£¬¶ÔÓÚÕû¸öÏîĿ״¿öµÄ°ÑÎÕÊǷdz£ÓÐÀûµÄ¡£Í¬Ê±£¬½«¿ª·¢½øÐÐÈÎÎñ·Ö¸î£¬Í¨¹ýticketµÄÐÎʽ·ÖÅ䏸ÏîÄ¿×é³ÉÔ±£¬Õâ
Ò²ÊÇÒ»ÖÖÏîÄ¿¿ª·¢µÄÊֶΣ¬³Æ×÷ticketÇý¶¯¿ª·¢¡£ÓÉÓÚͬAgile¿ª·¢ÓÐ×Å
ºÜºÃµÄÆ¥Åä¹ØÏµ£¬Òò´ËÎÒÃÇÒ²½«ÆäͶÈëµ½×î½üµÄ¿ª·¢ÖнøÐÐʹÓá£
°æ±¾¹ÜÀíϵͳ
ÔÚÍŶӿª·¢µÄ¹ý³ÌÖУ¬ÐèÒªÓÐÒ»¸öµØ·½¼¯ÖйÜÀíÿλ³ÉÔ±¿ª·¢µÄ´úÂë³É
¹û¡£ÁíÍâ£¬Ëæ×Å¿ª·¢µÄ²»¶ÏÍÆ½ø£¬Ò²»á²úÉú¸÷ÖÖ¸÷ÑùµÄBUG£¬ÔÚÕâ¸öʱ
ºò£¬ÎªÁËÁ˽âBUGÊÇÔÚʲôʱºò»ì½øÀ´µÄ£¬ÐèÒªÄܶԿª·¢µÄ´úÂë½øÐÐÀú
Ê·×·×Ù¡£
ÓÚ´Ë£¬°æ±¾¿ØÖƹÜÀíϵͳ(Version Control System£ºVCS)¾ÍÄÜ·¢»Ó×÷
ÓÃÁË¡£°æ±¾¹ÜÀíϵͳ£¬ÈçÆäÃû×ÖËùʾ£¬ÊǹÜÀíÔ´´úÂë¼°Æä±ä¸üÀúÊ·µÄϵ
ͳ¡£VCSÖ÷Òª´ú±íSubversionÕâÑù¼¯ÖÐÐ͵ĹÜÀí¹¤¾ß£¬ºÍMercurial¡¢Git
ÕâÑùµÄ·Ö²¼Ê½°æ±¾¹ÜÀí¹¤¾ß¡£±¾ÎÄʹÓõÄÊÇMercurial¡£
MercurialÓëTracÁª¶¯°ó¶¨
½«ITSÓëVCS½øÐÐϵͳ°ó¶¨£¬¾Í¿ÉÒÔʹµÃÏîÄ¿ÖÐticketºÍÔ´´úÂë±ä¸ü¹ý³Ì
¸ü¼ÓÇåÎú¡£±¾½Ú¶ÔMercurialºÍTracµÄϵͳ°ó¶¨·½·¨½øÐÐ˵Ã÷¡£TracÓë
Mercurial½øÐÐϵͳ°ó¶¨ÐèÒª°²×°TracµÄmercurial-plugin²å¼þ¡£¶ø
mercurial-plugin²å¼þÓÉSubversion½øÐйÜÀí£¬ËùÒÔÊ×ÏÈÐèÒª°²×°
Subversion¡£
sudo aptitude install subversion
Subversion°²×°Íê±ÏÖ®ºó£¬¾Í¿ÉÒÔÏÂÔØTracµÄmercurial-plugin²å¼þÁË1 ¡£
1 ÆäʵÕâÊÇsvn checkoutµÄÃüÁ¶ø²»Êǵ¥´¿ÒâÒåµÄÏÂÔØ¡£¡ª¡ªÒëÕß×¢
svn co http:svn.edgewall.comrepostracplugins0.12mercurial-plugin
ÏÂÔØÍê³Éºó¾Í¿ÉÒÔ°²×°¸Ã²å¼þÁË¡£
cd mercurial-plugin
python setup.py install
mercurial-plugin²å¼þ°²×°Íê³ÉÖ®ºó£¬ÐèҪͨ¹ý±à¼trac.iniÎļþ2°ó¶¨MercurialºÍTrac¡£Ê×ÏÈ£¬Ìí¼Óʹmercurial-plugin²å¼þÉúЧµÄcomponentes
¶Î£¬ÈçÏÂËùʾ£º
[components]
tracext.hg. = enabled
2 ¸ÃÎļþÊÇÔÚtrac½¨Á¢µÄ¹¤³ÌconfĿ¼Ï£¬Èçhomeeronshebpbookconf¡£¡ª¡ªÒëÕß×¢
½Ó×ÅÖ¸¶¨´úÂë¿âµÄÀàÐͺʹúÂë¿âµÄĿ¼¡£ÔÚtrac¶ÎÖеÄrepository_typeÖ¸
¶¨±íʾMercurialµÄhg£¬ÔÚrepository_dirÖÐÖ¸¶¨´úÂë¿âµÄ·¾¶(±¾ÀýÖÐ
ÊÇvarhgbpbook)
[trac]
repository_type = hg
repository_dir = varhgbpbook
¾¹ýÒÔÉÏÉ趨£¬¾Í¿ÉÒÔʹTracÓëMercurial°ó¶¨£¬MercurialÖеĸüÐÂÈÕÖ¾
Ò²»á·´Ó¦ÔÚTracÖС£
С½á
±¾ÎĽéÉÜÁËÍŶӿª·¢µÄ»·¾³¹¹½¨£¬¸ø³öÁ˹«¹²·þÎñÆ÷ÉϵÄÓû§ÓëÓû§×é
½¨Á¢²¢ÉèÖÃȨÏ޵IJÙ×÷Á÷³Ì£¬ÒÔ¼°ITS¡¢VCSµÈÔÚÍŶӿª·¢ÖÐÊÊÓõĸ÷
ÖÖ¹¤¾ß¡£
Áé»îÔËÓÃMercurial¡¢TracÕâÀ๤¾ß£¬Ê¹¿ª·¢³É¹û¿ÉÒÔÔÚÍŶӳÉÔ±Öй²
Ïí£¬Õ⽫»á´ó´óÍÆ½øÍŶӿª·¢µÄЧÂÊ¡£ÁíÒ»·½Ã棬Skype¡¢DropBox¡¢Google DocsµÈ¹¤¾ßµÄʹÓã¬ÓÖ¿ÉÒÔ½¨Á¢Í¨¹ýÍøÂç½øÐйµÍ¨²¢¹²Ïí¿ª·¢
ÐÅÏ¢ÓëÊý¾ÝµÄÇÅÁº£¬Ê¹µÃ¿ª·¢¿ÉÒÔËæÊ±ËæµØ½øÐУ¬´ó·ù½µµÍÁ˲îÂúÍͨ
Ðŵijɱ¾¡£
ÍŶӿª·¢Öи´ÔÓµÄÇéÐÎÓкܶࡣֻÓÐÁé»îÔËÓø÷ÖÖ¹¤¾ß£¬Ìá¸ßЧÂÊ£¬²Å
ÄÜÈ¡µÃÒ»¶¨³É¹û¡£Ê¹Óø÷À๤¾ßÌá¸ß¿ª·¢Ð§ÂÊÎÞÒÉÊÇÒ»ÖÖÀÖȤ£¬´ó¼ÒÒ²
¿ÉÒÔ³¢ÊÔ½«±¾ÎĽéÉܵŤ¾ßͶÈëµ½¸÷×ÔµÄÍŶӿª·¢ÏîÄ¿ÖÐʹÓÃÒ»ÏÂŶ¡£
¡¶Python¿ª·¢ÊµÕ½¡·À´×ÔÓÚÕæÕýµÄ¿ª·¢ÏÖ³¡£¬ÓÉBePROUD¹«Ë¾µÄ×ÊÉî
Ô±¹¤Ö´±Ê£¬Äý½áÁËÀÏÅÆ³ÌÐòÔ±ÔÚÈÕ³£¹¤×÷ÖлýÀ۵Ŀª·¢¾Ñ飬ÊÇÒ»±¾ÄÑ
µÃµÄºÃÊé¡£±¾ÎÄÑ¡×Ô¡¶Python¿ª·¢ÊµÕ½¡·ÈËÎïÂÞ³¿£ºÃÎÏëÕÕ½øÏÖʵ£¬Ò»¸ö¶ÀÁ¢¿ª·¢ÕßµÄÌïÔ°Ê«ËûÖÖÓлúÊ߲ˡ¢Ëû¸ãÈ«¾°ÉãÓ°¡¢Ëû×Ô¼ºÉè¼ÆÖÆ×÷Ó²¼þ²úÆ·£¬Ëû»¹ÊǸö
³ÌÐòÔ±£¬²¢ÒÔ´ËΪÉú¡£ÂÞ³¿£¬ËûÊÇMarkdown±à¼Æ÷MouµÄ×÷Õߣ¬Ëû
¾ÍÊÇһλÉú»îÔÚÅ©³¡ÉϵĶÀÁ¢¿ª·¢Õß¡£ÌáÆðÎÒÃÇÕâ¸öʱ´úµÄÂëÅ©ÃÇ£¬ÈËÃÇÁªÏëµ½×î¶àµÄÊÇ¡°¼Ó°à¡±¡¢¡±¸Ï½ø¶È¡°¡¢¡°²»½¡¿µµÄÉú»î·½Ê½¡±¡¡ºÃ
ÏñÕâЩÊǺͱà³ÌÃܲ»¿É·ÖµÄÑÜÉúÆ·¡£È»¶ø£¬ÔÚÂÞ³¿ÉíÉÏÎÒÃÇ¿´µ½ÁíÍâ
Ò»ÖÖ¿ÉÄÜÐÔ£¬ÎÒÃÇ¿ÉÒÔ£¬»î³ö×Ô¼ºÏëÒªµÄÏÖʵ
MouStand¡ª¡ªÈÃÃÎÏë±ä³ÉÏÖʵ
ÎÒÊ®·Öϲ»¶ Mou µÄ logo£¬Õâ¸öÐÎ×´ÊÇÏëÏó³öÀ´µÄ£¬Ö®Ç°ËüÔÚÏÖʵÖÐ
²¢²»´æÔÚ¡£µ«ÊÇÎÒ°ÑËü±ä³ÉÁËÏÖʵ¡£
ΪʲôҪ×Ô¼º×öÒ»¸ö Markdown ±à¼Æ÷?
ÎÒ¸Õ¿ªÊ¼ÖªµÀ Markdown Õâ¸öÓïÑÔ£¬¾Í¾õµÃͦÓÐÒâ˼£¬ÏëÕÒÒ»¸ö
Markdown µÄ±à¼Æ÷¡£µ±Ê±ÓÐÁ½¸öÊÕ·ÑµÄ±à¼Æ÷¡£ÆäÖÐÒ»¸öÖÐÎÄÖ§³Ö²»
Ì«ºÃ£¬ÀÏÌø£¬Ò»´òÖÐÎĵÄʱºòÄǸö¼üÉÏÏÂÌø¡£ÁíÍâÒ»¸öÔ¤ÀÀ½çÃæºÍ±à¼½çÃæÊÇ·Ö¿ªµÄ¡£ÒªÏëÔ¤ÀÀ¾ÍµÃµãÒ»ÏÂÔ¤ÀÀµÄÃüÁ²»ÄÜͬʱÏÔʾ¡£ÎÒÏë
Òª×ó±ß±à¼ÓÒ±ßÔ¤ÀÀ£¬ÕâÑù¾Í¿ÉÒÔʵʱԤÀÀ£¬Ò»±ß±à¼£¬Ò»±ßÏÔʾµÄ£¬¿ÉÊÇûÓС£ÄÇû°ì·¨£¬ÊÐÃæÉÏûÓÐÖ»ÄÜ×Ô¼º×ö¡£È»ºóÎÒ¾Í×öÁË¡£
Mou µÄͬ²½¹ö¶¯»¹²»¾«È·¡£ÒòΪÎÒÕâ¸öÊǰ´ÕÕ×óÓÒÁ½¸ö´°¿ÚµÄ³¤¶È£¬°Ù
·Ö±ÈÀ´Ë㡣ͬ²½±È½ÏÄÑ×ö¡£Èç¹ûÒª¾«È·Æ¥ÅäÖ»Äܰ´ÔªËØ¡£±ÈÈç×ó±ßÊǶþ
¼¶±êÌ⣬µÚÒ»¸ö¶þ¼¶±êÌâ¶ÔÓұߵĶþ¼¶±êÌ⣬ÕâÑùÀ´Ë㶨λ²Å×¼¡£µ«ÊÇ
ÎÒÏÖÔÚ»¹²»ÖªµÀÔõô×ö¡£
ÄãºÜϲ»¶Õâ¸ö Mou µÄÕâ¸ö logo?
Êǵģ¬Mou ÏÖÔÚµÄ logo ÊÇ·½³ÙÉè¼ÆµÄ£¬Îҷdz£Ï²»¶¡£µÚÒ»¸ö°æ±¾µÄ
logo ÊÇÎÒ»µÄ£¬µ«»µÄ²»ºÃ¡£ºóÀ´ÔÚ¶¡Ò»µÄ½éÉÜÏÂÄܹ»ÓÐÐÒÇëµ½·½³ÙΪ
Mou ÖØÐÂÉè¼Æ logo¡£ÎÒµ±Ê±µÄÒªÇó¾ÍÊǼò½à£¬Í»³ö M¡£ÎÒ¾õµÃËûÉè¼Æ
µÄ·Ç³£°ô£¬ÕâÖÖÔìÐÍÊÇ·½³ÙÏëÏó³öÀ´µÄ£¬Ö®Ç°ÏÖʵÖв¢Ã»ÓÐÕâÖÖÐÎ×´µÄ
ÎïÌå¡£Îҷdz£Ï²»¶Õâ¸öÔìÐÍ£¬ÒÔÖÁÓÚÎÒÏë°ÑËü±ä³ÉʵÎï¡£µ«Éè¼Æ logo
ºÍ°ÑËü±ä³ÉʵÎïÊÇÁ½ÂëÊ¡£µ±³õÉè¼Æ logo µÄʱºò²¢Ã»Óп¼Âǵ½Òª×ö³É
ʵÎï¡£
Mou ×î³õ(µÚÒ»¸ö¹«¿ª²âÊÔ°æ Mou 0.6.0)µÄ logo£¬2011 Äê 9 Ô£¬ÂÞ³¿
Éè¼Æ£º
Mou 0.6.4 µÄ logo£¬2011 Äê 10 Ô£¬·½³ÙÉè¼Æ£ºMou 0.7.2 µÄ logo£¬2012 Äê 8 Ô£¬·½³ÙÉè¼Æ¸Ä½ø£¬ÑØÓÃÖÁ½ñ£º
¼ÈÈ»¹ØÓÚ MouStand Õâ¸öʵÎïËùÓеÄÒ»Çж¼ÊÇÄã×Ô¼ºÉè¼ÆµÄ£¬ÄǾʹӰü
×°½²Æð°É¡£
°ü×°ÎÒ¿¼ÂǹýÖ½ºÐ£¬µ«ÊDz»Ì«½áʵ¡£ÍßÀãÖ½ÊÇÈáÐԵģ¬ÈáÐÔµÄһѹ¾Íѹ
»µÁË£¬Ôõô°ì£¿ÏÖÔÚ¿ìµÝ¶¼±È½Ï±©Á¦£¬ËùÒÔÎÒÃÇÐèÒª¸ÕÐԵİü×°¡£Õâ¸ö
ľ֯°ü×°ºÐÊÇÖ¸½Ó½á¹¹¡£ËüÓÐÒ»¸öÓŵã¾ÍÊÇÎȹ̡¢Ìرð½áʵ£¬¿ÉÒÔ±£Ö¤
³¤Í¾µÄÔËÊäµ±ÖÐÀïÃæµÄ¶«Î÷²»ÊÜË𺦡£²ÄÁϵ±È»ÊÇÔ½ÇáÔ½ºÃ£¬Çáµã¿ÉÒÔ
Ê¡ÓÊ·Ñ£¬µ«ÊDz»ÄÜÌ«ÇᣬÒòΪ»¹Òª¿¼Âǵ½Ç¿¶È¡£µ±Ê±ÎҾͿ¼ÂÇÁ½ÖÖ²Ä
ÁÏ£¬Ò»ÖÖÊÇͩľ£¬·Ç³£Çá¡£µÚ¶þÖÖÊÇËÉľ¡£µ«ÊÇͩľҪÊÇÕâ¸öºñ¶È²»½á
ʵ¡£Ò»²ÈÉÏÈ¥¾ÍËéÁË¡£ËÉľµÄ²ÈÉÏȥûʲôÎÊÌâ¡£
·¢»õµÄʱºòľºÐµÄÍâÃæ»¹ÒªÌ×Ò»¸öÍßÀãÖ½ÏäµÄ£¬¸ÕÈá²¢¼Ã£¬¶àÒ»²ã±£
»¤¡£Äã¿´ÉϸÇÖ»²ÉÓÃÕâÁ½¸ùľÌõ£¬¶øÕâ±ßûÓС£ÕâÊÇÎªÊ²Ã´ÄØ£¿Õâ¸ö¸ÕºÃ¿É
ÒÔ¿Ûס£¬Èç¹ûÕâ±ßÔÙ¼ÓÁ½¸ùľÌõ£¬¾Í¿Û²»×¡ÁË£¬»á¶¥×¡ MouStand Éϱß
ÕâÁ½¸öÍÈ£¬¾ÍÐèÒª°ÑÕâ¸öºÐ×ÓÔÙ¸ßÒ»µã£¬ÄÇÑù¾ÍÀ˷ѲÄÁÏÁË¡£¿¼Âǵ½Ç¿
¶È¡¢Ò²¿¼Âǵ½½ÚÊ¡²ÄÁÏ¡£³ß´ç¶¼ÊÇÆ¥ÅäµÄ£¬ÎªµÄÊÇ×î´óÏ޶ȵĽÚÊ¡²Ä
ÁÏ¡£
°ü×°ÉϵıêǩҲÊÇÎÒ×Ô¼ºÉè¼Æ¡£Îҵķç¸ñÊÇÊôÓÚ¼ò½àËØÑŵķç¸ñ¡£´óÃæ
»ýÁô°×£¬ÉÏÃæÒ»ÌõÊǺڵװ××Ö£¬ÆäÓàÊǰ׵׺Ú×Ö¡£¸Ç×ÓÀïÃæµÄ±êǩעÃ÷
ËüµÄÏêϸ¹æ¸ñ¡£Ã¿¸ö MouStand ÖØ 36 ¿Ë(Ò»¸ö Color Packs Ì××°°üº¬ 4¸ö MouStand£¬Ä¾ºÐÖØ 200 ¿Ë¡£µ«ÊÇÓÐÎó²î£¬Îó²îÎÒ¹ÊÒâдµÄ´óһЩ¡£
±ÈÈçľͷÀïÃæÓÐË®·Ö£¬Ë®¸ÉÁËÖ®ºó»á±äÇᣬʪ¶È´ó»¹ÓпÉÄܱäÖØ¡£
ÕâЩ¶«Î÷¼ÓÆðÀ´£¬ÔÙ¼ÓÍâÃæÌ×Ò»¸öÖ½Ï䳬²»¹ý 500 ¿Ë¡£ÎªÊ²Ã´ 500 ¿Ë£¿
ÒòΪ·¢»õÎÒ²ÉÓÃÓÊÕþ£¬EMS Êǰ´ 500 ¿ËÀ´Ë㣬500 ¿ËÒÔÄÚÊÇÒ»¸ö¼Û¸ñ£¬501 ¿ËÓÖ¼ÓÇ®¾Í²»»®ËãÁË£¬ËùÒÔ±£Ö¤ 500 ¿ËÒÔÄÚ¡£
ÔÙ˵˵²úÆ·±¾Éí¡£
ÎÒÈ¥ÄêÓÃÒø×Ó£¬´¸×ÓÔä³öÀ´Ò»¸ö±ÈÕâ¸öСµÄÐÎ×´¡£ÓÃÒø×ÓÇóÉÒøË¿¡£ÔÙ
ÕÛһϡ£Ò²ÊÇÓô¸×ÓÇÃһϣ¬ÕÛÈý´Î³ÉÕâÑù£¬±ÈÕâ¸öС¡£
È¥Äê(2012 Äê 7 ÔÂ)ÓÃÒø×ÓÔä³öÀ´µÄ Mou µÄ logo£º
Ôٻص½ MouStand£¬¿ªÊ¼Ê±£¬ÎÒÏë×ö logo ÄÇÖÖÑÕÉ«£¬µ«Êǵ÷²»³öÀ´¡£Õâ
¸ö¼Ó¹¤²½ÖèÊÇÕâÑùµÄ£¬ÏȰÑÒ»¿éÆ½ÃæµÄÂÁ°åÇиî³ÉÆ½ÃæÐÎ×´£¬ÇиîºÃÒÔ
ºó£¬Ôٰѱ߽ǽøÐÐÊÖ¹¤´òÄ¥£¬ÒòΪ»úÆ÷´òÄ¥ºÃÖ®ºóÓÐë´Ì¡£´òÄ¥ºÃÖ®
ºó£¬µÚ¶þ²½½øÐÐÕÛÍ䣬°ÑÆ½ÃæµÄͼÐÎÕÛÈý´Î£¬È»ºó¾Í³ÉÐÎÁË¡£±ä³ÉÒ»¸ö
»ù±¾µÄÐÎ×´Ö®ºó£¬ÔÚ½øÐÐÅçɰ´¦Àí£¬Ê¹±íÃæÐγÉÒ»ÖÖÅçɰµÄЧ¹û¡£Ëµ°×
ÁËÕâ¸öÅçɰ¾ÍÊÇÓÃÅçǹÅçϸɰ¡£ÓÃϸɰÁ£×²»÷ËüµÄ±íÃæ£¬×²³öÎÞÊýµÄС
¿Ó£¬¾ÍÐγÉÁËÅçɰЧ¹û¡£ÅçɰµÄ¹¦Ð§Ò»¸öÊÇÃÀ¹Û¡£ÁíÍ⣬ÕÛÍäÁËÖ®»áÓÐѹºÛ(ÕÛÍäºÛ)£¬Åçɰ¿ÉÒ԰Ѻۼ£¼õÈõ¡£Õ⻹ÓеÚËIJ½£¬Ñô¼«Ñõ»¯´¦
Àí¡£ÅçÍêɰ֮ºó±íÃæ¶¼ÊÇÂÁ£¬½øÐÐÑô¼«Ñõ»¯£¬Ê¹±íÃæÉú³ÉÒ»²ãÈýÑõ»¯¶þ
ÂÁ¡£ÈýÑõ»¯¶þÂÁºÜÓ²£¬ÄªÊÏÓ²¶È´ïµ½8¡£ÏñÀ¶±¦Ê¯¡¢ºì±¦Ê¯¡¢Ä¥µ¶Ê¯Ö÷
Òª³É·Ö¶¼ÊÇÈýÑõ»¯¶þÂÁ¡£Ñõ»¯³ÉÈýÑõ»¯¶þÂÁÊǶÔËü±íÃæ½øÐÐÒ»ÖÖ±£»¤¡£
ÏÖÔÚµÄЧ¹û¾ÍºÜÓ²£¬²»ÈÝÒ×»®ÉË¡£Ò²±È½Ï¹â»¬¡£
È»ºóÔÙ½øÐÐȾɫ¡£Äã¿´µ½µÄÕâ¸öÑÕɫʵ¼ÊÉϲ»ÊÇÓÍÆá£¬¶øÊÇīˮ¡£Ñõ»¯
ºó£¬ÈýÑõ»¯¶þÂÁµÄ½á¹¹ÊÇ͸Ã÷µÄ¿××´½á¹¹£¬ÓÃīˮһȾµÄ»°¾ÍÉøÍ¸½ø
È¥¡£×îºóÒ»²½½øÐзâ¿×£¬ÓÿªË®Ö󣬰ÑÑÕÁÏ·âÔÚÀïÃæ¡£(ÑÕÁÏ)ÒÑ¾Éø
͸½øÈ¥ÁË£¬±ÈÓÍÆáÒªºÃÓá£MacBook ±íÃæÒ²ÊÇÕâÖÖ¹¤ÒÕ£¬Ö»²»¹ýÄÇÖÖÅç
ɰÅçµÃ±È½Ïϸ¡£ÎÒÃÇÕâ¸öÅçɰ¿ÅÁ£´óһЩ¡£¿ÅÁ£´óÊÇÒòΪÊܵ½¼Ó¹¤¹¤ÒÕ
µÄÏÞÖÆ£¬¹¤ÒÕ´ï²»µ½ÄÇô¸ß¡£ÁíÍ⣬ÕÛÍäµÄʱºò£¬ºÛ¼£ºÜÃ÷ÏÔ£¬Èç¹ûÓÃ
ϸɰÅçºÛ¼£·Ç³£Ã÷ÏÔ£¬ÑڸDz»µô£¬ËùÒÔÖ»ÄÜÓÃÖеȿÅÁ£µÄ£¬¸ÕºÃ°ÑÕÛºÛ
Ñڸǵô¡£ÕÛµÄʱºò»úÆ÷ÓÐÁ½¸ö¼âһѹ£¬Ã¿¸öÕÛÍä´¦¶¼ÓÐÒ»ÌõµÀ£¬ÏÖÔÚ²»
ÈÝÒ׿´³öÀ´£¬ÊÇÓÃÅçɰ¸ø´¦ÀíµôÁË¡£ÕâÒ»¿é»¹Óнŵæ(ÈÞ²¼Ìù)£¬¶ÔÏÂ
Ãæ½øÐб£»¤¡£
¸Õ²ÅÎʵ½ºóÃæµÄ¿×ÊǸÉʲôµÄ£¿×îºóµÄÑô¼«Ñõ»¯Òª°Ñ¹¤¼þ×÷Ϊµç¼«½þµ½
ÈÜÒºÀï¡£Õâ¸öÊǵ¼µçµÄ£¬±ØÐëÓиö´¥µã£¬ËùÒÔÔÚÕ⿪Á˸ö¿×£¬ÈÃÕâ¸öµØ
·½Ò»Ö±µ¼µç¡£½øµ½ÈÜÒºÀïÑõ»¯£¬Ò»Í¨µç£¬±íÃæÉú³ÉÑõ»¯Ä¤¡£¸Õ¿ªÊ¼×öÑùÆ·µÄʱºòûÓпªÕâ¸ö¿×£¬ÊÇÔÚÕâÁ½¸öλÖÃ(MÉÏÃæµÄÁ½¸ö
¼â)¼Ð×ŵġ£¼Ð×ŵÄʱºò±íÃæ³öÏּкۣ¬¼ÐºÛ·Ç³£ÄÑ¿´¡£ËùÒÔÕýʽÉú²ú
µÄʱºò¾ÍÔÚºóÃæ¿ªÁ˸ö¿×£¬ÈÃËü°Ñ¼ÐºÛÒþ²Øµ½ÀïÃæ£¬¸üÃÀ¹ÛÒ»µã¡£
MouStand ³ß´çΪʲôÕâô¶¨£¿
³ß´ç»¹ÓнǶȣ¬Òª¼æ¹Ë(iPhone ºÍ iPad)ˮƽģʽºÍ´¹Ö±Ä£Ê½£¬¶¼ÄÜ
·Å¡£Õâ¸öˮƽ·ÅÖÃûÎÊÌ⣬Êú×Å·ÅҲûÎÊÌâ¡£Á½ÖÖģʽ¶¼Ö§³ÖµÄÇé¿ö
Ï£¬±£Ö¤ËüÌå»ý×îС£¬¾ÍÕÒµ½Õâôһ¸öƽºâ£¬ÔÙ´óÁËÀË·Ñ¡£Õâ¸öÔìÐÍ¿É
ÒÔÁ½±ß·Å¡£Õâ±ß·ÅÒ»¸ö£¬±ÈÈçÁ½¸öÈË£¬ÄãÔÚÕâ±ßÍæÊÖ»ú£¬ÎÒÔÚÕâ±ßÍæÕâ
¸ö¡£Á½¸öÍÈÖ®¼äµÄ¼ä¾àÒ²ÊÇ¿¼ÂǹýµÄ£¬Èç¹û¼ä¾àÔÙ´óµã¶ùÊÖ»úÊú×ŷžÍ
Íϲ»×¡ÁË£¬Â©ÏÂÈ¥ÁË¡£ÔÐÍÉè¼ÆµÄʱºò£¬ÎÒÊÇÓÃÖ½×öµÄ£¬ÓõÄÊÇÒ»°ÙÎåÊ®¿Ë¿¨Ö½¡£³ÐÖØÃ»·¨
²â£¬Ö»ÊDzâ½Ç¶È£¬Óà iPad ±È»®Õâ°Ñ½Ç¶È¹À¼Æ³öÀ´£¬¿´Ê²Ã´½Ç¶Èµ¹²»
ÁË¡£Ç°Ãæ½ÅµÄ³¤¶È£¬²Î¿¼Ò»Ï iPhone¡¢iPad µÄºñ¶È£¬³¤Ò»µã£¬ÕâÑù¾Í·
²»¹ýÈ¥¡£
MouStand µÄÔÐÍÊÇÓÃÖ½×öµÄ£º
¾ßÌå¼Ó¹¤ÊÇÔõôÍê³ÉµÄ?ÎÒÊǰÑÉè¼ÆÍ¼Ö½×öºÃ£¬È»ºó¼Ó¹¤¹¤ÒÕÈ·¶¨£¬ÔÙÁªÏµ´ú¹¤³§¡£Õâ¸öľºÐÊÇ
ɽ¶«²ÜÏØ´ú¹¤¡£×öÁËÁ½°Ù¸ö£¬»¹ÊǺÃ˵´õ˵È˼ҲŸø×ö¡£Õâ¸öÊôÓÚÏÞÁ¿
Éú²ú£¬²»ÏñÈ˼Ҵ󹤳§ÅúÁ¿Éú²ú£¬ÄÇÑù³É±¾·Ç³£µÍ¡£ÂÁºÏ½ð¼Ó¹¤ÊÇÔÚ¹ã
ÖÝ¡£±êÇ©»¹ÓÐÄ¾Í·Íæ¾ßµÄÖ½ºÐÊÇÎÒ×Ô¼ºÂòµÄ´òÓ¡Ö½£¬´òÓ¡»ú¡¢ÇÐÖ½»ú£¬ÍêÈ«ÊÇ×Ô¼º×ö¡£Ä¾Í·Íæ¾ßÖ½ºÐÉϵÄͼÐκÍͼ½âÊÇÎÒÓà Silo ½¨Ä£Èí¼þ½¨³öÄ£ÐÍ£¬½ØÍ¼ºóÔÙ
µ¼Èë Illustrator ÀïÃè³öÀ´Ïß¿òͼ£¬°ü×°Ò²ÊÇÎÒ×Ô¼º×öµÄ¡£Õâ¸öÊÇÈý¸ùľ
Ìõ¡£ÕâÊǸ½ÔùµÄÍæ¾ß¡£Õâ¸öÍæ¾ßÊÇÏÖÓеģ¬ÎÒÖ»²»¹ýŪÁËÒ»¸ö°ü×°¡£Õâ
¸öÍæ¾ß½Ð¿×Ã÷Ëø£¬¾Ý˵ÔÚ¿×Ã÷µÄʱºò¾ÍÓÐÁË¡£
Ä¾Í·Íæ¾ß°ü×°ºÐÉϵÄͼÐÎÊÇÏÈÓà Silo ½¨Ä££¬ÔÙÓà Illustrator Ãè³öÀ´µÄ£ºÕâ¸öÌùÖ½Ò²ÊÇÎÒ×Ô¼º×öµÄ¡£ÏëÌùÄľÍÌùÔÚÄÄ¡£Äã°ÑºóÃæµÄÄDzãֽ˺ÏÂ
À´¡£Õâ¸öÏñ GitHub ѧϰ£¬GitHub ²»ÊÇÒ²ÊÇÓÐÒ»¸ö shop£¬Ò²ÂôÌùÖ½µÄ¡¢Âô±×Ó£¬ËüÒ²ÊÇÒÔËüµÄ logo ·¢Õ¹µÄÖܱ߲úÆ·£¬ÎÒÕâÒ²ÊÇÒÔ logo ·¢Õ¹µÄ
Öܱ߲úÆ·¡£ÄãµÄÍøÕ¾×öµÄͦºÃ¿´µÄ£¬¼ò½àƯÁÁ¡£
¾ÍÊǼ¸ÕŽØÍ¼ÍùÉÏÒ»¶Ñ¡£¸Õ¿ªÊ¼Ñ§ÉãÓ°µÄʱºòѧ¹ý Photoshop£¬Õâ¶¼ÊÇ
֮ǰ»ýÀ۵Ļù´¡£¬ÕâЩ֪ʶȫÓÃÉÏ¡£×ö MouStand Íøµê£¬ÒªÉãÓ°£¬°Ñ²ú
Æ·ÅÄÏÂÀ´£¬ÔõôÅĺÿ´£¬Åª¸öÉãӰСÅï×Ó£¬²¼ºÃµÆ¹â¡¢½Ç¶È¡¢Ö§¼ÜŪ
ºÃ£¬Åĺã¬ÔÙµ÷µ÷ÁÁ¶È¡£°ÑÕÕÆ¬ÅªµÄºÃÒ»µã¡£ÅÄÕÕÆ¬´ó¸ÅŪÁËÁ½Ìì¡£
Ä㶨¼ÛÊÇÔõô¶¨µÄ£¿ÂôÁ˶àÉÙÁË£¿
¼Û¸ñ¾ÍÊdzɱ¾¼ÓÉÏÅÜÍȵÄ··Ñ£¬´ÓÎÒסµÄÅ©³¡µ½ÓʾÖÀ´»ØÆï×ÔÐгµÒª
20 ¹«Àï¡£Õâ¸öÎÒ¶¨µÄÊÇÿһ¸ö¶þÊ®¾Åµ¶¡£°´Õâ¸ö¼Û¸ñÀ´Ëã¡£²Î¿¼ÁËÒ»
ϹúÍâÊг¡ iPad Ö§¼ÜµÄ¼Û¸ñ¡£Ò»°ãÈýÊ®µ¶£¬ÎÒµÄÊǶþÊ®¾Åµ¶¡£Ö»²»¹ý
ÎÒÃÇÊÇËĸöÒ»ÆðÂô£¬Á½¸öÒ»ÆðÂô£¬¾ÍÏÔµÃ±È½Ï¹ó¡£Æäʵһ¸öÄóöÀ´£¬¶þ
Ê®¾Åµ¶£¬ÔÚ¹úÍâÀ´ËµÊǺÜÕý³£µÄÒ»¸ö¼Û¸ñ¡£µ«ÊÇľºÐÖ»ÓÐÁ½°Ù¸ö£¬Ì«¶à
ÁËľºÐ̫ռµØ·½£¬¼ÒÀïÒ²·Å²»Ï¡£
²Êɫһ°ÙÌ×£¬ºÚ°×µÄÒ»°ÙÌ×£¬Ò»¹²Á½°ÙÌס£ÏÖÔÚÂôÁ˶þÈýÊ®Ìס£¶¼ÂôÁË
Ò²Õõ²»Á˶àÉÙÇ®¡£Ö÷ÒªÊÇ×Ô¼º×ö×ÅÍæ£¬ÓÐÕâ¸öÀÖȤ¡£ÎÒÃæÏòµÄ¿Í»§Ö÷Òª
ÊǹúÍâµÄ£¬¹úÄÚµÄÉÙ¡£ÒªÊÇŪ¸öÌÔ±¦µêÆÌ£¬ÎҸоõÓеãÂé·³¡£¹úÄÚĿǰ
ÂôÁ˰ËÌס£
ÒÔºó»¹Ïë¼ÌÐø×öʵÎïÓ²¼þÂð£¿
²»ÏëÔÙ×öʵÎïµÄ¶«Î÷£¬Âé·³¡£ÒòΪ×öÒ»Ì×¶«Î÷¿¼ÂǵĶ«Î÷Ì«¶àÁË£¬·½·½
̾̾¶¼Òª¿¼ÂÇ¡£»¹Òª´æ»õ»¹Òª·¢»õ¡£×öÈí¼þ¶àʡʡ£Íæ¹ýÈ¥¾Í¹ýÁË¡£Íæ
¹ý¾Í²»ºÃÍæÁË¡£
ÎóÈëÆç;²ÅÄÜ·¢ÏÖÌÒ»¨Ô´
ÎÒÏë×öµã¹¤¾ß£¬ÎªÎÒÒÔºóǰ¶Ë¹¤³ÌʦµÄÖ°Òµ×öºÃÆÌµæ£¬µ«ÊÇдµ½×îºó
·¢ÏÖдÈí¼þÒѾÓÐÊÕÈëÁË£¬¿ÉÒÔ²»ÕÒ¹¤×÷ÁË¡£
ÄãÔÚÄÄÉϵĴóѧ£¿
ÎÒ´óѧÉϵÄ̫ԿƼ¼´óѧ¡£ÎÒÊÇ 2005 ¿ªÊ¼£¬ 2009 Äê±ÏÒµµÄ¡£µ±Ê±Ñ§µÄ
ÊÇͨÐŹ¤³Ì£¬ÎÒÒÔΪ×Ô¼º»á¸ÐÐËȤ£¬ÆäʵûÓС£ÏÖÔÚÕâ¸öרҵ±ÏÒµµÄÓÐÒ»°ë¶¼²»ÊÇ×ö±¾×¨Òµ¹¤×÷µÄ¡£ÓеÄÈË×öͨПãÐźŻùÕ¾£¬Òª²»¾ÍÊÇÂ¥µÀ
ÀïÃæ°²¸öÎÞÏßÍø¡£ÎÒ¾õµÃ²»ºÃÍæ£¬ËùÒÔºóÀ´¾ÍÍæÆðÁËÈ«¾°ÉãÓ°¡£
ÎÒÔÚÄãµÄÍøÕ¾ÉÏÄÜ¿´¼ûÒ»¸ö½Ð 86vt µÄÍøÒ³£¬ÀïÃæÓÐÄãÃÇ´óѧµÄµØÍ¼ºÍ
ºÜ¶àµØµãµÄÈ«¾°ÕÕÆ¬£¬¸Ð¾õ¾ÍÏñ×Ô¼ºÔÚУ԰ÀïÃæÐÐ×ßÒ»Ñù¡£
86vt ÊÇÎÒ×öµÄÎÒÃÇѧУµÄ(È«¾°ÉãÓ°)ÐéÄâÐ£Ô°ÍøÕ¾¡£ÎÒ¿¼´óѧ֮ǰ£¬¿´Õâ¸öÑ§Ð£ÍøÕ¾Í¦Àõģ¬Ö»ÓÐÁ½ÈýÕÅͼƬ£¬¾õµÃºÜÆÆ¡£ÈëÁËѧÒÔºó¾õµÃ
»¹Í¦Æ¯ÁÁµÄ£¬ÊÇÑ§Ð£ÍøÕ¾Ã»ÓÐÌåÏÖ³öÀ´£¬ºóÀ´ÎÒ¾ÍÏëÓÃÒ»ÖÖ·½·¨°ÑѧУ
·ç¸ñÌåÏÖ³öÀ´¡£ÎÒÃÇѧУÐéÄâУ԰ 86vt ÊÇÉÏѧµÄʱºòÍê³ÉµÄÒ»¸öÏî
Ä¿¡£
Õâ¸öÏîĿʵ¼ÊÉÏÒ»¸öÔ¾Í×öÍêÁË¡£µ«ÊÇǰÆÚ×¼±¸Ñ§ÖªÊ¶Ñ§µÄʱ¼ä±È½Ï
³¤¡£ÎÒ 2007 Ä꿪ʼѧȫ¾°ÉãÓ°·½ÃæµÄ֪ʶ£¬Ñ§ÍêÖ®ºó 2008 Äê 4 Ô·ݲÅ
¿ªÊ¼×öÕâ¸öÏîÄ¿¡£ÕâÀïÃæÓÐÈýÊ®¶à¸ö³¡¾°¡£ÅĵÄʱºò¶¼ÒªÑ¡ÈËÉÙµÄʱ
ºò£¬È˶àÁËͼƬƴ½ÓµÄ±È½ÏÄÑ´¦Àí£¬È«¾°²»ÊÇÅÄÒ»ÕžÍÍêÁË£¬ÊÇÅĺܶà
ÕÅÆ´ÆðÀ´²ÅÄÜÐγÉÒ»ÕÅ¡£Èç¹ûÄãÊÇ×ß¶¯µÄ£¬ÔÚÕâÅÄÁËÒ»ÕÅ£¬ÓÖÅܵ½ÄÇÁË£¬ÄÇÕÅÅÄÉÏÄãÁË£¬ÄÇ¾Í°ë½Ø°ë½ØµÄ¡£
Õâ¸öÈ«¾°ÉãÓ°¾ßÌåÔõôÅÄ£¿
ÎÒÓÃµÄ 8 ºÁÃ×ÓãÑÛ¾µÍ·£¬ÔÆÌ¨¡¢Èý½Å¼Ü¡£ÔÆÌ¨¾ÍÊDZ£Ö¤ÐýתµÄ½Úµã¾«
È·£¬Ã»ÓÐÊӲ²ÅºÃÆ´½Ó¡£ÔÆÌ¨ÉÏÃæÓп̶ȡ£ÏÖÔÚºÃÒ»µã¶ùµÄÔÆÌ¨¶¼ÊÇ
´øËøµÄ¡£±ÈÈç 90 ¶ÈÒ»¸öËø£¬ÕâôһתÏìһϣ¬¾ÅÊ®¶Èµ½ÁË£¬·Ç³£·½
±ã¡£ÏÖÔÚÎÒÒªÅÄÄÇÑùÒ»·ùÕÕÆ¬µÄ»°Ö»Òª°ë·ÖÖÓ×óÓÒ¡£ÐèÒªÅÄËÄÕÅ£¬¾ÅÊ®
¶ÈÅÄÒ»ÕžÍÐС£ÅÄÍêÖ®ºó»ØÈ¥Æ´½Ó¡£±È½ÏϸµÄ´¦ÀíÒ»¸öÆ´½ÓÕÕÆ¬ÒªÒ»¸ö
Сʱ¡£ÒªÊÇ×ö¸ö´ó¸Å£¬¼¸·ÖÖӾͺÃÁË¡£
Äã´Óʲôʱºò¿ªÊ¼Ð´´úÂëµÄ£¿
ÔÚѧУµÄʱºò¸ãÉãÓ°£¬Òª°ÑÕÕÆ¬·ÅÔÚÍøÉÏ£¬È»ºó¿ªÊ¼Ñо¿ÍøÂçÏà¹ØµÄÖª
ʶ¡£ÍøÒ³¡¢¿Õ¼ä¡¢ÓòÃû¡£ÒòΪ¸Õ¿ªÊ¼Ïë°ÑÕÕÆ¬·Åµ½ÍøÉÏ£¬²Å½Ó´¥µ½»¥Áª
ÍøÖªÊ¶(¼¼Êõ·½Ãæ)¡£Èç¹ûÎÒ²»ÉãÓ°£¬¿ÉÄÜÎҾͽӴ¥²»µ½»¥ÁªÍø(¼¼Êõ
·½Ãæ)¡£
Óиöѧ³¤(ÊæÎÄÁÁ)£¬±ÈÎÒ´óÒ»¼¶£¬»¹Ã»±ÏÒµ¾ÍÔÚÑÅ»¢ÉϰàÁË¡£ÎÒÃǾõ
µÃËûºÜÀ÷º¦¡£ÎÒ×öÕâ¸ö 86vt ÍøÕ¾µÄʱºò£¬Ò²ÏòËûÇë½ÌÁ˲»ÉÙÎÊÌ⣬ÄÇ
¸öʱºòËû¾ÍÊÇÎÒµÄżÏñ¡£Ëûµ±Ê±ÒѾÊÇǰ¶Ë¹¤³ÌʦÁË£¬Ò²ÊÇתÁ˺ü¸
Ȧ£¬È»ºóÓֻص½Ç°¶Ë£¬ËûÏÖÔÚÔÚ°¢Àï°Í°Í´øÍŶӡ£ÎÒµ±Ê±¾ÍÏ룬ÎÒÒ²Ïë
ÏñËûÄÇÑùÀ÷º¦£¬ÎÒҲҪѧÕâ¸ö£¬ÎÒÒ²Òªµ±Ç°¶Ë¹¤³Ìʦ!ʵ¼ÊÉÏÔÚ´óѧÎÒ
¶Ô»¥ÁªÍø»¹²»ÔõôÁ˽⣬±ÏÒµÒÔºóÏëÕÒÕâôһ¸ö¹¤×÷Ôõô°ì£¿ÄǾÍѧ
ß¡£Ñ§Ö»ÄÜÔÚ¼Òѧ£¬µÈʲôʱºò°Ñǰ¶Ë¹¤³ÌʦÏà¹ØµÄ֪ʶѧÍêÖ®ºó£¬ÔÙ
ÕÒ¸öǰ¶ËµÄ¹¤×÷×ö¡£ËùÒÔ±ÏÁËÒµÖ®ºóҪѡÔñÕÒ¹¤×÷»¹ÊǻؼҴý×Å£¬ÎÒ¾Í
Ïë»Ø¼Ò´ý×Å£¬¼ÒÀïÒ²Ö§³Ö£¬ÔÚ¼Ò¾ÍÔÚ¼Ò°É£¬Ò²²»Ö¸×ÅÎÒ¹¤×÷¡£
È»ºóÄã¾ÍÔÚ¼Òѧϰǰ¶Ë֪ʶ£¿
±ÏÒµºó»Øµ½¼ÒÏÈ¿ªÊ¼Ñ§µÄ HTML£¬CSS ºÍ JavaScript¡£Ñ§Á˼¸¸öÔºó×ö
³öÁË resizeMyBrowser£¬½Ó×ÅÓÖÔÚ resizeMyBrowser µÄ»ù´¡ÉÏ×öÁ˸ö
Safari ä¯ÀÀÆ÷²å¼þ Resize¡£
Ö®ºóÓÖÁ˽⵽ǰ¶ËÓÅ»¯·½ÃæµÄ֪ʶ£¬Í¨¹ýѹËõ CSS£¬JavaScript µÈÎļþ
Äܹ»Ìá¸ßÒ³Ãæ³õ´ÎÏÂÔØËÙ¶È£¬ÎÒ¾ÍÏëÕÒ¸öºÃÓõÄѹËõ¹¤¾ß£¬µ±Ê±¶¼ÊÇÃüÁîÐе쬾ÍÊÇÔÚ Mac ƽ̨¶¼ÊÇÃüÁîÐеŤ¾ß¡£ÎÒ¾õµÃÌ«Âé·³£¬ÏëÒªÒ»
¸öͼÐνçÃæ£¬µ«ÊÇÊÐÃæÉÏûÓС£Ã»°ì·¨Ö»ÄÜÑ¡Ôñ×Ô¼º×ö¡£´ÓÄǸöʱºò¿ª
ʼѧ Objective-C£¬Ïë×Å×öÒ»¸ö YUI Compressor µÄͼÐνçÃæ£¬·½±ãÅúѹ
Ëõ CSS¡¢JS Îļþ¡£ÓÚÊÇ×öÁËÎҵĵÚÒ»¸ö Mac Ó¦Óà Smaller¡£
ÔÙºóÀ´Á˽⵽ Markdown£¬ÓÖдÁË Mou¡£
ÆäʵÎÒ×öµÄÕâЩ¸ö¹¤¾ß»ù±¾É϶¼ÊǸúǰ¶Ë¹¤³ÌʦÕâ¸öÖ°ÒµÏà¹ØµÄ¡£Êµ¼Ê
ÉÏ×÷Ϊһ¸öǰ¶Ë¹¤³ÌʦÐèÒª×öÕâЩ¹¤×÷£¬ÓÃÕâЩ¹¤¾ß¿ÉÒÔÌá¸ßÎҵŤ×÷
ЧÂÊ£¬ÎÒÏë×öµãÕâЩ¹¤¾ß£¬ÎªÎÒÒÔºóǰ¶Ë¹¤³ÌʦµÄÖ°Òµ×öºÃÆÌµæ¡£¹¤×÷
µÄʱºòЧÂÊ»á¸ßÒ»µã¡£
¿ÉÊÇдµ½×îºó·¢ÏÖдÈí¼þÒѾÓÐÊÕÈëÁË£¬ÕÒǰ¶Ë¹¤³ÌʦµÄ¹¤×÷²»ÊDZØÒª
µÄÁË¡£ÎÒÊÇ´ÓÉãӰתµ½Ñ§ Web µÄ֪ʶ£¬Ïë³ÉΪ Web ǰ¶Ë¹¤³Ìʦ£¬È´ÔÚ
ѧϰ Web ǰ¶Ë·½ÃæÖªÊ¶µÄ¹ý³ÌÖв»Öª²»¾õµÄת³ÉÁË¿ª·¢Èí¼þ¡£ÉÏ´ÎÔÚ
QCon ÈÏʶ¸öÒ»ÌÔµÄÅóÓÑ(¸ð²Ó»Ô)£¬Ëû˵ÎÒ¸üÏñÒ»¸ö²úÆ·¾Àí£¬²»Ïñ
³ÌÐòÔ±¡£
ÄãÏÖÔÚÓ¦¸Ã¿ÉÒÔÕÒµ½Ç°¶ËµÄ¹¤×÷Á˰ɡ£
ÆäʵÒѾÓкܶ๫˾ÕÒ¹ýÎÒÁË£¬Mac Èí¼þ¿ª·¢·½ÃæµÄ¾Ó¶à£¬Web ǰ¶ËÒ²
ÓС£ÓÐÒ»¸öµÂ¹úµÄ¹«Ë¾ Wunderlist£¬ÑûÎÒÈ¥×ö Objective-C ¿ª·¢¡£µ«ÊÇÎÒ
¼ÒÈ˶¼ÔÚÕ⣬³ö¹úÌ«Âé·³ÁË¡£°¢ÀïµÄ Mac ¿ª·¢ÍŶÓÑûÇë¹ýÎÒÁ½´Î£¬Ö»ÊǵÚÒ»´ÎµÄʱºò»¹Ã»ÓÐÈ¥¹¤×÷µÄ´òË㣬µÚ¶þ´ÎµÄʱºòÎÒÕý´òËã×öÓ²¼þ£¬×öÕâ¸öÖ§¼Ü£¬Ò²³é²»¿ªÉí¡£ÏÖÔÚÒ²ÔÝʱ»¹Ã»ÓÐÈ¥¹«Ë¾¹¤×÷µÄ´òË㣬ÔÚ¼Ò
×ÔÓɹßÁË£¬È¥¹«Ë¾»á²»Ì«Ï°¹ß°É¡£»¹ÓÐÌÚѶҲÑûÇë¹ý£¬×öǰ¶Ë¹¤³Ìʦ¡£
ËûÃÇ˵ÎÒÍøÕ¾Éè¼ÆµÄºÃ£¬ÆäʵÎÒ¾õµÃ×öµÄºÜ¼òµ¥£¬¾ÍÊǼ¸ÕŽØÍ¼¶øÒÑ¡£
ÄãÄÜÓÐÕâÑùµÄ˼·£¬×ö³öÏÖÔÚÕâЩ²úÆ·ºÍÄãÓгä×ãµÄÏÐϾʱ¼äÓйØÏµ
°É£¿
¿Ï¶¨ÓйØÏµ¡£ÎÒÔÚÈí¼þ¿ª·¢Ç°ÆÚµÄʱºò·Ç³£¿àÄÕ¡£ÓÐʱºòÒ»¸öÎÊÌâÁ¬×Å
Ò»Á½¸öÐÇÆÚûÓÐ˼·£¬¾ÍÕûÌìÔÚÄÇÏ룬˯¾õµÄʱºò»¹Ï룬һÌìµ½Íí²»Í£
µØÏ룬ÄDzÅÄÜÏë³öÀ´¡£¿ÉÄÜÔÚ¹«Ë¾Ã»ÓÐÄÇô¶àµÄʱ¼äÏëÁË¡£
ÎÒ×öµÄºÜ¶à¶«Î÷¶¼ÊÇÒÔÍæÎªÖ÷¡£¿ÉÄܸúСʱºò¾³£²ð¶«Î÷Óйء£ÎÒ¸¸Ä¸
¸øÎұȽϴóµÄ×ÔÓÉ¡£ÉÏѧѧϰ·½Ãæ²»»á±Æ×ÅÎÒ¡£µ«ÊÇÎÒ×Ô¼ºÖªµÀѧ¡£¿¼
¸ßÖС¢´óѧ£¬±¨Ö¾Ô¸µÄʱºòËûÃÇÒ²²»»á¸ÉÉæ£¬¶¼ÊÇÎÒ×Ô¼º¾ö¶¨¡£ËûÃÇÏà
ÐÅÎÒ¡£
ÄãÏÖÔÚÉú»îÔÚÅ©³¡ÉÏÂð£¿ÔÚ¼Ò¶¼¸ÉЩʲô£¿
ÔڼұȽÏÏУ¬ÏÐ×ÅûÊ¡£Èí¼þ¿ª·¢Ç°ÆÚ±È½Ï棬ºóÆÚ¾ÍÊÇά»¤ÁË¡£Î¬»¤
ÿÌì»Ø»ØÓʼþ£¬¿Í»§Ö§³Ö¡£ÊµÔÚÏÐ×ÅûÊÂÁË×ö×öй¦ÄÜ£¬²»ÏñǰÆÚÄÇô
½ô¡£
ÎÒ¼ÒÔÚÌì½òºº¹ÁÇø¸½½üµÄºº¹ÁÅ©³¡£¬ÄǸöµØ·½ÊôÓÚºÓ±±£¬ÊǺӱ±Ê¡ÔÚÌì
½òµÄ·ÉµØ¡£ËµÊÇÅ©³¡£¬Êµ¼ÊÉϾÍÊǺܶàÅ©´åÁ¬ÔÚÒ»¿é¡£Õâ¿éµØÊÇÔÚÌì½ò
Êо³ÄÚ£¬µ«ÊÇÊôÓÚºÓ±±Ê¡¹Ü¡£
ÎÒÏÖÔÚÿÌìÔçÉϾÍÔÚÔ°×ÓºóÃæ½½½½µØ£¬ÖÖÖֲˡ£¾ÍÔÚÎÒ¼Ò·¿ºóÃæÄÇôһ
¿é¡£ÎÒÖÖÁËÊ®¿ÅÈ˲ξͻîÁËÎå¿Å¡£»¹ÖÖÁËÒ»¿ÅÀ¶Ý®Ê÷£¬À¶Ý®ÊôÓÚ¹àľ£¬ºÜ°«£¬¾ÍÏñÖÜΧÂí·±ßµÄ¹àľ£¬ÉÏÃæ½áССµÄÀ¶Ý®¹û¡£ÎÒ¶¼ÊÇÔÚÌÔ±¦ÉÏ
ÂòµÄÖÖ×Ó¡£ÎÒ¾³£»á¸ø´ÐÃÇ£¬»¹ÓÐÀ¶Ý®Åçµã¶ùË®£¬²»´òÒ©£¬´¿ÌìÈ»ÂÌÉ«
ʳƷ¡£ÏеÄûʶùÎÒ»á´ò´òɳ´ü£¬¶ÍÁ¶ÉíÌå¡£ÓʾÖÀëÎÒ¼Ò10¹«Àÿ´ÎÆï³µÈ¥
Óʾַ¢»õ(Moustand)Íù·µ¾ÍÒªÁ½¸öСʱ¡£Í¾ÖУ¬»á¾¹ýÏç¼äС·£¬Ìì
ÆøºÃµÄʱºò£¬¾°É«»¹ÊDz»´íµÄ¡£ÄãÒÔºóÓÐʲô´òË㣿
ÔÚ¼Ò´ý×ÅÄåÁË£¬ÔÙÈ¥¹¤×÷£¬Õҷݹ¤×÷£¬ÌåÑéÒ»ÏÂÉϰàµÄ¸Ð¾õ£¬ÎÒ»¹Ã»ÉÏ
¹ý°àÄØ£¬²»ÖªµÀÉϰàʲô¸Ð¾õ¡£¶Á¡¶ÂëÅ©¡· ÍÂÍÂ²Û »¹ÄÜ×¬Òø×Ó!»î¶¯¹æÔò£ºÔÚͲÛÌùÖÐÁôÑÔ£¬Ñ¡³öÈκÎÒ»ÆÚÖÐÄã×îϲ»¶µÄÎÄÕºÍ×ϲ
»¶µÄÎÄÕ£¬¼´¿É»ñµÃͼÁéÉçÇøÒø×Ó 2 Á½!·²Í²Û͵ÃÖÀµØÓÐÉùÕߣ¬¼ÓÔù
Òø×Ó 3 Á½(¹² 5 Á½)!(ÔõÑùʹÓÃÒø×Ó¶Ò»»Í¼Êé)
»î¶¯Ê±¼ä£º±¾»î¶¯³¤ÆÚÓÐЧ¡£¼ùÐÐÈçºÎ½Ì±à³Ì£¬µ±ÄãÃæ¶Ôһ˫¿ÊÍûµÄÑÛ¾¦
×÷Õß Philip Guo
˹̹¸£´óѧ¼ÆËã»ú¿ÆÑ§²©Ê¿¡£Ñо¿ÁìÓòÖ÷񻃾¼°ÈË»ú½»»¥¡¢ÔÚÏß½Ì
Óý¡¢Èí¼þ¹¤³ÌµÈ¡£ËûÔÚ2010Äê×Ô¼º¹¹½¨ÁËÒ»¸ö»ùÓÚ×ÔÓÉÍøÂçµÄ±à³Ìѧ
ϰ¹¤¾ß½Ð×öOnline Python Tutor(pythontutor.com)£¬Ä¿Ç°ÒÑÓг¬¹ý20Íò
ÈËʹÓÃÁËÕâ¸ö¹¤¾ß¡£
¹ýÈ¥µÄÒ»ÄêÖУ¬Ðí¶à¼ÆËã»úרҵµÄ½ÌÊںͽÌÓýר¼Ò¶¼Ð´Á˹ØÓÚ MOOCÈçºÎÀ©´ó¼ÆËã»ú½ÌÓý·þÎñµÄ¹æÄ££¬Ê¹µÃ³ÉǧÉÏÍòµÄѧÉú¶¼ÄÜÏíÊܵ½¡£¶ø
ÎÒÏë´ÓÁíÍâÒ»¸ö½Ç¶È£¬ËµÒ»ËµÎÒÊÇÈçºÎÔÚ9¸öÔµÄʱ¼äÀïÏò1λѧÉú½ÌÊÚ
¼ÆËã»ú±à³ÌµÄ¡£
2011Äê7Ôµ½2012Äê3ÔÂÖ®¼ä£¬ÎÒ¸øBrian Goler½ÌÊÚ»ù±¾µÄ±à³Ì֪ʶ£»Ëû
ÊǾɽðɽÍåÇøÒ»Î»ÓоÑéµÄÆóÒµ¼Ò£¬ÔÚÊг¡¡¢ÏúÊۺͲúÆ·¿ª·¢µÈ·½Ãæ¶¼
Óй㷺µÄ¾Ñé¡£Brian֮ǰûÓбà³Ì¾Ñ飬µ«ÔÚ¼¸¸öÔµÄʱ¼äÀËû¾Í
×ö³öÁËSwearBuy£¬Ò»¸öÈÃÈËÃǶÔϲ°®µÄ²úÆ··¢±íÆÀÂÛµÄÃâ·Ñ webÓ¦ÓóÌ
Ðò¡£¸üÖØÒªµÄÊÇ£¬Brian»ñµÃÁË×ÔѧµÄÄÜÁ¦£¬Äܹ»½ÓÏÂÀ´×Ô¼ºËÑѰ¡¢Ñ§
ϰ¸ü¸ß½×µÄ¼¼ÊõÄÚÈÝ¡£ÎÒµÄÖ÷Òª¹±Ï×£¬ÊÇÖ¸µ¼Ëû¿Ë·þһЩͨ³£»á´ò»÷³õ
ѧÕßµÄÕϰ¡£
±³¾°
Brianͨ¹ýÎҵĸöÈËÍøÕ¾ÉÏÖªµÀÁËÎÒ£¬ÒòΪÀï±ßÓм¸Æª¼ÆËã»ú¿ÆÑ§½ÌÓý
µÄÎÄÕ¡£ÏÂÃæÕªÂ¼ËûÔÚ 2011Äê7Ô¸øÎÒ·¢µÄµÚÒ»·âÓʼþÀïµÄÒ»¶ÎÄÚÈÝ£º
ÎÒÃÇû¼û¹ýÃæ£¬µ«ÎÒÏëÊÔÊÔ¿´ÄÜ·ñ´ÓÄúÕâ¶ùµÃµ½Ð©½¨Òé¡£
ÎÒÔÚÍøÉÏËÑѰÄܰïÎÒѧϰ±à³ÌµÄµ¼Ê¦µÄʱºò·¢ÏÖÁËÄãµÄÍøÕ¾¡£¸ü׼ȷ
µØËµ£¬ÎÒÔÚÉÏÒ»ÃżÆËã»ú¿Î³Ì£¬ÎÒÏ£ÍûÕÒÒ»¸öµ¼Ê¦£¬Ã¿ÖÜÄܵ±Ã渨µ¼
ÎÒ1-2 ´Î£¬Ã¿´Î1Сʱ×óÓÒ¡£
ÎÒÕýÔÚÉÏMITµÄOCW6.00¿Î³Ì¡£¾¡¹ÜOCWºÍÆäËûµÄÔÚÏ߿γ̶¼ºÜ
°ô£¬µ«ÎÒ¾õµÃÈç¹ûÓиöÈË¿ÉÒÔÇë½Ì¡¢»¹Äܼì²éÎÒµÄ×÷Òµ£¬²¢¸øÓë·´
À¡£¬ÄÇÎҵĽø¶ÈÓ¦¸Ã»á¸ü¿ìЩ£¬¶Ô¸ÅÄîµÄÀí½âÒ²»á¸üÉîÈë¡£
ÄúÔÚMITºÍStanford¶¼´ý¹ý£¬Ó¦¸ÃÈÏʶһЩºÏÊʵÄÈ˰ɣ¿»òÕߣ¬¿ÉÒÔ
¸øÎÒÍÆ¼öÏÂÈ¥ÄĶùÕÒºÏÊʵÄÈË£¿µ±È»£¬ÎÒ»áÏò¸¨µ¼µÄÈ˸¶Ç®µÄ¡£
ÒòΪÄÇ»á¶ùÎҸպò»Ã¦£¬ÓÚÊÇÎÒ¾ÍÇ××Ô¸¨µ¼Brian¡£ÎÒÃǵÚÒ»´ÎµÄһС
ʱ»áÃæÊÇÔÚËû¼Ò£¬µÚ¶þ´ÎÊÇÔÚ¸½½üµÄÒ»¼Ò¿§·È¹Ý¡£Ö®ºóÎÒÈ¥²Î¼Óij¸öѧ
Êõ»áÒ飬ÓÚÊǵÚÈý´ÎµÄ¸¨µ¼ÎÒÃǾÍͨ¹ýSkypeÔÚÏßÊÓÆµµç»°½øÐС£ÎÒÃÇ
ÓÃÁËSkypeµÄÆÁÄ»¹²Ïí¹¦ÄÜ£¬ÕâÑùÔÚÁÄÌìµÄʱºòÎÒ¾ÍÄÜͬʱ¿´µ½ËûµÄµç
ÄÔÆÁÄ»¡£ÕâÖÖÐÎʽ·Ç³£Êʺϸ¨µ¼£¬ÓÚÊÇÎÒÃǾö¶¨½ÓÏÂÀ´µÄËùÓи¨µ¼¶¼Í¨
¹ýSkype½øÐС£ÎÒÖ»µ±Ã渨µ¼¹ýBrianÁ½´Î£¬¶øÎÒÃǵÄSkypeÊÓÆµÍ¨»°Ê±
³¤¸ß´ï 50 Сʱ(´óÔ¼ 40 ´Î)¡£ÔÚSkypeÉϵÄÔÚÏ߸¨µ¼½øÐеÄÈç´Ë˳³©£¬ÎÒÃǶ¼¸Ðµ½ºÜ¾ªÏ²¡£ÕâÉõÖÁ±È
ÎÒÃǵ±ÃæÁÄÌì¸üÓÐЧ£¬ÄÇÑù»¹»áÊÜÀ§ÓÚàÐÔӵĿ§·ÈÌüºÍÏÁСµÄ±Ê¼Ç±¾µç
ÄÔÆÁÄ»¡£½èÖúSkypeµÄÆÁÄ»¹²Ïí¹¦ÄÜ£¬ÎÒÄÜÔÚÎÒ×Ô¼ºµÄ¹«Ô¢Àï±ßÊæ·þµØ
¿´µ½BrianµÄµçÄÔÆÁÄ»£¬²¢ÇÒÓëËûʵʱ»¥¶¯¡£Èç¹ûÎÒÐèÒª»Ð©²ÝͼÀ´Ëµ
Ã÷£¬ÄÇÎÒÖ»ÐèÒª¹²ÏíÆÁÄ»£¬È»ºóÓûæÍ¼°åÀ´»¾ÍÐÐÁË¡£(Salman Khan
¾ÍÊÇÓÃÀàËÆµÄ°ì·¨½ÌËûµÄ±íµÜ£¬ÓÚÊǾÍÓÐÁËÏÖÔÚÖªÃûµÄ¿Éº¹Ñ§Ôº½ÌÓýÊÓ
Ƶ¡£)
»ùÓÚÏîÄ¿µÄѧϰ
BrianµÄÄ¿±êÊÇѧϰ»ù±¾µÄ±à³Ì¼¼ÇÉ£¬Ìá¸ß×Ô¼º£»¶ø²»ÊÇÒª»ñµÃÒ»·Ý³Ì
ÐòÔ±µÄ¹¤×÷£¬»òÊdzÉΪһÃûÑо¿ÈËÔ±¡£ÔÚ¼ûÎÒ֮ǰ£¬BrianÒѾͨ¹ýÉÏ
MIT¿ª·Å¿Î³ÌÖеġ°¼ÆËã»ú¿ÆÑ§Óë±à³Ì»ù´¡¡±£¬×ÔѧÁ˼¸ÖÜ Python ±à³Ì¡£
¿ªÊ¼µÄ¼¸´Î¸¨µ¼ÖУ¬ÎÒÃÇͨ¹ý¿Î³Ì½²ÒåºÍ×÷Òµ£¬¸´Ï°ÁË»ù±¾µÄ±à³Ì¸Å
Äî¡£
È»¶ø£¬ÎҺܿì¾ÍÒâʶµ½£¬½ö½öͨ¹ýѧԺʽµÄ¿Î³Ì×ÊÁÏÀ´Ñ§Ï°£¬ÎÞ·¨ÈÃ
Brian ×㹻ͶÈ룬ÓÈÆä¿¼Âǵ½ËûÒѾ´óѧ±ÏÒµ20ÄêÕâ¸öÏÖʵ¡£Ëû¿´ÆðÀ´
²¢²»Âú×ãÓÚֻѧϰһЩ¼ÆËã»úѧ¿ÆµÄÊõÓï¡¢×öһЩÕë¶Ô´óѧÉúµÄÊýѧÏà
¹ØµÄСÁ·Ï°¡£
Òò´Ë£¬ÎÒ¾ö¶¨½ÌBrian³ÉΪһ¸öʵÓÃÖ÷ÒåµÄÒµÓà³ÌÐòÔ±£¬¶ø²»ÊÇÒ»¸ö±¥
ѧµÄ¼ÆËã»ú¿ÆÑ§×¨¼Ò¡£ÎÒ¹ÄÀøËûÏë³öÒ»¸ö¸ø×Ô¼º»òÅóÓÑÓá¢×Ô¼ºÒ²Ô¸Òâ
×öµÄÈí¼þ¡£ÏàÓ¦µØ£¬ÎÒ½«Ö¸µ¼ËûÍê³ÉÕâ¸öÈí¼þÏîÄ¿¡£Õâ¸öÏë·¨Èç´Ë¼ò
µ¥£¬µ«Ð§¹ûÈ´Òì³£ºÃ¡£
BrianÌá³öÁËһЩidea£¬²¢×îÖÕ¾ö¶¨ÊµÏÖÆäÖеÄÒ»¸ö£¬Ò²¾ÍÊǺóÀ´µÄ
SwearBuy¡£ÔÚ½ÓÏÂÀ´µÄ9¸öÔÂÀËûÿÖܶ¼Í¶ÈëÊ®¼¸¸öСʱµÄʱ¼ä±àд
SwearBuy£¬³£³£¸Éµ½ÉîÒ¹¡£ÎÒÃÇÿÖܶ¼ÓÐÒ»µ½Á½´ÎµÄSkype¸¨µ¼£¬Ã¿´Î
³ÖÐøÒ»µ½Á½¸öСʱ¡£¸¨µ¼ÖеĴ󲿷Öʱ¼ä£¬ÎÒ¶¼ÓÃÀ´»Ø´ðBrianµÄÎÊ
Ì⣬°ïËûµ÷ÊÔbug£¬ÓÐʱ»¹¸úËû½á¶Ô±à³Ì£¬Ò»Æðдµã¶ù´úÂë¡£ÎÒÿ´Î½²
µÄʱ¼ä¶¼Ö»Óм¸·ÖÖÓ¡£³ýÁËÄÜÈÃËûµÄ×¢ÒâÁ¦¸ß¶È¼¯ÖÐÍ⣬ÕâÖÖ»ùÓÚÎÊ´ð
µÄÐÎʽ¶ÔÎÒÀ´ËµÒ²ºÜ²»´í£¬ÒòΪÎÒ¼¸ºõ²»±Ø»¨Ê±¼äÌáǰ×öʲô׼±¸¡£
»ùÓÚÏîÄ¿µÄѧϰʮ·Ö¸ßЧ£¬ÒòΪBrianÊ®·ÖÖØÊÓËû×Ô¼ºµÄµÚÒ»¸öÏîÄ¿¡£
ËûµÄѧϰ±»ÐèÇóÇ£×Å×ߣ¬¶ø²»ÊÇһЩԤÏÈÉèÖúõĵÄѧÊõ¿Î³Ì¡£ÒòΪËû
¶ÔSwearbuyµÄÈÈÇé·Ç³£¸ß£¬ËùÒÔ³£³£»áÏë³öºÜ¶àй¦Äܵĵã×Ó¡£ÎªÁËʵÏÖÕâЩ¹¦ÄÜ£¬Ëû±ØÈ»ÒªÑ§Ï°Ò»Ð©Ðµıà³Ì¼¼Êõ¡£Òò´Ë£¬ÎҵĽÇÉ«¾Í±ä³É
ÁË£º
ÆÀ¹ÀËûÏëʵÏֵŦÄܵĿÉÐÐÐÔ£¬Èç¹ûÐèÒªµÄ»°£¬Ö¸µ¼ËûÍê³ÉÒ»¸ö¼ò
µ¥°æ±¾£»
ÌôÑ¡×îÊʺÏËûÐèÒªµÄ±à³Ì¹¤¾ß¡¢·ç¸ñÒÔ¼°¼¼ÇÉ£»
¸øËûÕÒµ½ºÏÊʵÄ×Ôѧ×ÊÁÏ(±ÈÈç´úÂëʾÀý¡¢²©¿Í¡¢ÔÚÏ̡߽̳¢Êé
µÈ)£»
ÔÚËûŬÁ¦Àí½âºÍÓ¦ÓÃ×ÔѧµÄÄÚÈÝʱ£¬»Ø´ðËûµÄÒÉÎÊ¡£
±à³ÌʵÏÖÒ»¸öÈÎÎñ£¬³£³£Óм¸Ê®ÖÖÉõÖÁÉϰÙÖÖ·½Ê½£»ÕâÖÖÑ¡ÔñµÄ¶àÑù
ÐÔ³£³£ÈóõѧÕßÊÖ×ãÎÞ´ë¡£ÒòΪѡÔñÌ«¶à£¬ËûÃÇ·´¶ø²»Öª´ÓºÎÈëÊÖ¡£
ÎÒÒª×öµÄ£¬Ö÷Òª¾ÍÊǰïËû½«Ñ¡Ôñ·¶Î§ËõСµ½Ò»¸ö¿É¿ØµÄ·¶³ë£¬ÊʺÏËû¸÷
¸ö½×¶ÎµÄѧϰ£»È»ºóÈÃËûÈ¥×Ôѧ£¬Óöµ½ÎÊÌâʱÎÒÔÙ½â´ðËûµÄÒÉÎÊ¡£
ÎÒÊ®¶àÄêµÄ±à³ÌºÍ½ÌÊÚ±à³ÌµÄ¾Ñ飬ʹµÃÎÒÔÚÿ¸öÐèҪѡÔñµÄµãÉÏ£¬¶¼
Äܽ«Ñ¡Ôñ·¶Î§ËõСµ½ÎÒÈÏΪ×îÊʺÏBrianѧϰµÄ³Ì¶È¡£±ÈÈ磬ÎÒÑ¡ÔñÈÃ
ËûÓÃ×î»ù±¾µÄ±à³ÌÓïÑÔ(±ÈÈç Python£¬JavaScript£¬SQL)¹¦ÄÜÀ´¡°´Ó
Í·¡±´î½¨ SwearBuy£¬¶ø²»ÊÇÔÚÒÑÓеÄһЩ¸´Ô web Ó¦Óÿª·¢¿ò¼ÜÉÏ¿ª
ʼ¡£¾¡¹ÜΪ´Ë Brian ²»µÃ²»Ð´¸ü¶àµÄ´úÂëÀ´¡°´ÓÍ·¡±(Õâ¸ö´Ê¶ù¿ÉÄÜÓÐЩ
²»×¼È·£¬ÒòΪ²»¿ÉÄÜÍêÈ«´ÓÁ㿪ʼ)¿ªÊ¼ÊµÏÖÆÚÍûµÄ¹¦ÄÜ£¬µ«Ëûͨ¹ýÕâ
¸ö¹ý³Ì£¬Äܹ»ÉîÈëµ½ÄÚ²¿ÔÀí£¬ÉîÈëÀí½â¸÷¸ö²¿·ÖÊÇÈçºÎ×éºÏµ½Ò»Æð
µÄ¡£
BrianµÄÏîÄ¿ÊÇÎÒÃÇSkype»á»°µÄ¾øºÃµÄ»ù´¡£¬ÒòΪÎÒÄܽ«×Ô¼ºÒª½ÌÊÚµÄ
иÅÄîÈÚÈëµ½ËûÏëʵÏÖµÄй¦ÄÜÖÐÈ¥¡£ÄÄŸü¶àµÄ¿ÎºóÁ·Ï°Ëù·¢»ÓµÄ×÷
Óã¬Ò²±È²»ÉÏÒ»¸öÊôÓÚѧÉú×Ô¼ºµÄµÄÓ¦ÓóÌÐò¡£
ÔÚÕõÔúÖÐѧϰ
ÔÚÎÒÃÇÿ´Î1-2СʱµÄSkype¸¨µ¼¿ªÊ¼Ç°£¬Brianͨ³£»á±à³Ì10-15¸öС
ʱ£¬ËùÒÔËû×ÜÊÇÓôóÁ¿¼±ÇеÄÎÊÌâÒªÎÊ£¬ÓкܶàÐÂдµÄ´úÂëÐèÒªÎÒ°ïËû
À´µ÷ÊÔºÍÓÅ»¯¡£Èç¹ûÎÒÖ»ÊǸøËû½²¿Î£¬¶ø²»»ùÓÚÈκα³¾°£¬ÄÇËû²»¿ÉÄÜ
Ïû»¯µÄÕâô³¹µ×£¬ºÜ¿ÉÄÜÖ»ÊǵãµãÍ·£¬È»ºó˵¡°àÅ£¬ºÃ°É£¬ºÃÏñÊÇÕâô
»ØÊ¶ù¡¡²»´í£¬È»ºóÄØ£¿¡±Ïà·´£¬ÒòΪËûÔÚÿ´Î¸¨µ¼Ö®Ç°£¬¶¼Ò»Ö±ÔÚ
ºÍ¾ßÌåµÄ´úÂëÏà¹ØµÄÎÊÌâ¾À²ø¡ª¡ªÉõÖÁ¾³£Òò´Ë¶øÊÜ´ìºÍ¾ÚÉ¥¡ª¡ªËùÒÔ
ÿµ±ÎÒ¸øËû½âÊÍÇå³þÁËʲô֮ǰ¿´ÆðÀ´ºÃÏñ²»¿ÉÓâÔ½µÄÎÊÌâʱ£¬ËûµÄ·´Ó¦ÍùÍùÊÇ¡°ÍÛŶ!ÏÖÔÚÎÒËãÊdz¹µ×Ã÷°×ÁË!¡±¡£ËûµÄϲÔúÍÊÍȻÿ´Î¶¼ÄÇ
ôÃ÷ÏÔ¡£ÎÒ¾õµÃ¶ÔÏû»¯ÖªÊ¶À´Ëµ£¬Ã»ÓбÈÕâ¸üºÃµÄ·½Ê½ÁË£ºÏÈ»¨Éϼ¸
¸öСʱŬÁ¦½â¾öÎÊÌ⣬²»¶Ï»ýÀÛÐÄÖз³ÔêµÄÇéÐ÷£¬È»ºóÔÙ½ÓÊܵ¼Ê¦µÄ
Ö¸µ¼¡£
ΪÁ˼õÉÙBrianµÄÍ´¿à£¬ÎÒ°ïËû´î½¨ÁË¿ª·¢»·¾³£¬×öÁËһЩ·¦Î¶µÄ¹¤
×÷£¬ÒòΪÕâЩ¶«Î÷²»»áÖ±½Ó´Ù½øËûµÄѧϰ¡£ÎÒÏ£ÍûËû°Ñ¾«Á¦»¨·ÑÔÚ±à³Ì
ºÍ´îSwearBuyÉÏ£¬¶ø²»ÒªÀË·Ñʱ¼ä×öЩ²»Ïà¹ØµÄÊÂÇ飬±ÈÈç´î½¨·þÎñÆ÷
»òÊǰ汾¿ØÖÆÏµÍ³¡£(µ±È»ÁË£¬Èç¹ûËûµÄÄ¿±êÊdzÉΪһ¸öϵͳ¹ÜÀíÔ±£¬ÄÇÎÒ¾¡¿ÉÒÔÈÃËûÈ¥¾À½áÄÇЩϸ½Ú¡£)
Óкܶàʱ÷ÖµÄÊé¡¢ÔÚÏ߽̳ÌÒÔ¼°Ö±²¥½ÚÄ¿£¬¶¼Ðû³ÆÄÜÈÃÄãÔÚ7Ìì»òÊÇ3ÖÜ
ʱ¼äÀïѧ»á±à³Ì(»òÕß±ðµÄʲô¼¼ÄÜ)¡£ºÜÃ÷ÏÔ£¬Äã²»¿ÉÄÜÔÚ¼¸ÖÜÀï¾Í
ÕÆÎÕÒ»ÃÅм¼ÄÜ£¬¶øÇÒÎÒ¾õµÃҲû¼¸¸öÈËÕæµÄÏàÐÅ¡£ÕâЩ¡°¿ìËÙ»ñÈ¡¼¼
ÄÜ¡±¼Æ»®µÄÕæÕýÎÊÌâÔÚÓÚ£¬ËûÃǺöÊÓÁ˿ɳÖÐøÐÔ¡£ÕâЩ¿Î³Ì¾ÍºÃÏñ¼õ·Ê
ʳÆ×Ò»Ñù£¬¿ÉÄÜ»áÈÃÄãÂíÉϼõµô 10 °õÌåÖØ£¬µ«È´ÎÞ·¨ÈÃÄã±£³Öס£¬³ý
·ÇÄãÕæÕýµØÑø³ÉÁ˺õÄϰ¹ß¡£ÀàËÆµÄ£¬³ý·ÇÄã²»¶ÏŬÁ¦ºÜ¶àÄ꣬·ñÔòÒ²
ÎÞ·¨¾«Í¨±à³Ì£»ÎªÁ˼¤Àø×Ô¼º²»¶ÏŬÁ¦£¬Äã±ØÐëÊÇÔÚ×ö×Ô¼ºÓÐÈÈÇéµÄÊÂ
Ç顣ŬÁ¦ÕõÔú¿É²»ÊÇʲôÓÐȤµÄʶù£¬Èç¹ûûÓÐÊʵ±µÄ¼¤Àø£¬Ì«ÈÝÒ×Ôç
ÔçµØ·ÅÆúÁË¡£
µ±BrianÒâʶµ½Ëû²»ÔÙÐèÒªÎҵĸ¨µ¼Ê±£¬ÎÒÖªµÀÎҳɹ¦ÁË¡£¾¡¹ÜËûÒ²³Ð
ÈÏÒª³ÉΪһÃû¼¼ÒÕ¾«Õ¿µÄ³ÌÐòÔ±£¬×Ô¼º»¹ÐèҪŬÁ¦ºÃ¼¸Ä꣬µ«ËûÒѾ֪
µÀÔÚÏÖÓеÄˮƽÏ£¬ÈçºÎŬÁ¦²ÅÄܵ½´ïÄǸö¸ß¶È¡£ÔÚ¹ýÈ¥µÄ¾Å¸öÔÂÀËûѧµ½ÁË×ã¹»¶àµÄ¶«Î÷£¬Äܹ»Ö§³ÖËû¼ÌÐø×ÔѧÏÂÈ¥¡£ÎÒ¸øÁËËû×ã¹»µÄ·½
·¨ºÍÖÇ»ÛÀ´¼ÌÐø×Ôѧ£¬¶ø²»ÊÇÌîѼʽµØÓ¦¸¶Ò»¸öѧÉú£¬ÎҸе½ºÜ×ÔºÀ¡£
×îºóµÄ˼¿¼
ÔÚÎÒÃǵĸ¨µ¼½áÊøÖ®ºó£¬Brian·´Ó³Ëµ£¬¾¡¹ÜËûÊÜÒæÓÚÕâÖÖ¡°Í¨¹ý×öÀ´Ñ§
ϰ¡±µÄ·½·¨£¬µ«ËûÈÔÈ»ÈÏΪ£¬½«»ùÓÚÏîÄ¿µÄѧϰºÍ´«Í³µÄ¼ÆËã»ú¿Î³Ìѧ
ϰ½áºÏÆðÀ´£¬ÓкܴóµÄ¼ÛÖµ¡£ÔÚ¹¹½¨SwearBuyµÄ¹ý³ÌÖУ¬Ëû¾³£Í¨¹ý
Google¡¢ÔĶÁ¼¼Êõ²©¿Í¡¢´ÓStackOverflowÉÏ¿½±´´úÂëµÈ·½Ê½£¬À´ÁÙʱ½â
¾ö×Ô¼ºµÄÎÊÌâ¡£½á¹û£¬Ëû·¢ÏÖ×Ô¼º¾³£µÃ³ö²¢·Ç×îÓŵķ½°¸£¬¶øÇÒÓõÄ
¶«Î÷×Ô¼º¶¼ÎÞ·¨ÍêÈ«Àí½â¡£BrianµÄһЩ¾Þ´óµÄ½ø²½£¬À´×ÔÓÚËû´ÓÏîÄ¿
ÖгéÉí³öÀ´£¬×ª¶øÈ¥¿´Êé»òÌý¿Îʱѧµ½µÄеĸÅÄȻºóÏë×ÅÈçºÎ½«Æä
Óõ½SwearBuyÖС£×Ô´ÓÎÒÃÇ2012Äê3Ô½áÊø×îºóÒ»´ÎµÄ¸¨µ¼ÒÔÀ´£¬ÎÒ6¸öÔÂûÓÐÊÕµ½Brian
µÄÏûÏ¢ÁË¡£×î½üËû¸øÎÒ·¢µÄµç×ÓÓʼþÖÐÌáµ½£¬Ëû¸Õ¸ÕдÁ˸öPython½Å
±¾£¬°ï×Ô¼º¸ø¸öÈË¹ÉÆ±Í¶×ʽ¨Á¢Ä£ÐÍ£º¡°¶ÔÕâ¸ö½Å±¾ÎҸе½ºÜ×ÔºÀ£¬Òò
ΪÕâÊÇÎÒ×öµÄµÚÒ»¸öʵÓõÄ×ÔÓù¤¾ß¡£ÎÒ¹ýÈ¥Ò»Ö±¶¼ÔÚÆÀ¹À¹ÉƱͶ×ÊÏî
Ä¿£¬Ò»Ö±ÏëÄ£Äâ¸÷ÖÖ³¡¾°£»Ò»¿ªÊ¼ÎÒÓõÄÊÇExcel£¬µ«ºóÀ´ÖÕÓÚ·¢ÏÖ
Python²ÅÊÇ×öÕâ¼þʶùµÄ²»¶þ֮ѡ¡£¡±
ÎÒºÜϲ»¶Õâ·âÓʼþ£¬ÒòΪËüչʾÁ˱à³Ì¼¼ÄܵÄ×÷Óã¬ÈÃÔ±¾ÎÞÁÄÇÒÀ§ÄÑ
µÄÈÎÎñÄܹ»ÇáËÉÍê³É¡£ÎÒÏ£Íûÿ¸öѧϰ±à³ÌµÄÈ˶¼ÄÜÓÐÂõ¹ýÄǵÀ¿²¶ùµÄ
ʱ¿Ì£¬´ÓÄÇÒÔºó¾Í²»½öÊÇΪѧУ»ò¹«Ë¾µÄ»î¶ù¶ø±à³Ì£¬¶ø¸ü¶àµÄÊÇΪ×Ô
¼º¶ø±à³Ì¡£
ÎÒ»¹Ïë˵һ±éÄǾäÀÏ»°£¬»ý¼«ÐÔÒâζ×ÅÒ»ÇС£BrianµÄ»ý¼«ÐÔÀ´×Ô×Ô¼º
µÄÏîÄ¿£¬ËùÒÔʵ¼ÊÉÏËûÊÇ×ÔѧµÄ¡£ÎÒÒª×öµÄ½ö½öÊǶ¨ÆÚÖ¸µ¼Ò»ÏÂËû£¬°ï
Ëû×îÓÐЧµØ½ø²½£¬ÈÃËûµÄŬÁ¦±äΪÓÐЧµÄѧϰ¡£
ÎÒµÄÕâЩ¾ÑéÈçºÎ²ÅÄÜÍÆ¹ãµ½½ÌÊÚ´óÅúµÄ×ÔÎÒ¼¤ÀøµÄ³Ì¶ÈÔ¶²»¼°Brian
µÄѧÉúµÄ½Ìѧʵ¼ùÖÐÈ¥£¿ÎÒÃþË÷³öµÄÕâЩ¼¼ÇÉÈçºÎÄܲ»ÔÙ¾ÖÏÞÓÚÒ»¶ÔÒ»
µÄ¸¨µ¼ÕâÖÖÐÎʽ£¿ÎÒÒ²²»ÖªµÀ¡£ÎÒÖ»ÖªµÀ£¬Èç¹ûÄãÄÜÈÃѧÉú²úÉúÕæÕýµÄ
»ý¼«ÐÔ£¬°ïËûÃÇÒÆ³ýѧϰÖÐһЩ²»±ØÒªµÄÕϰ£¬¶øÇÒÔÚÊʵ±µÄʱºòÀËû
ÃÇÒ»°Ñ£¬ÄÇôʵ¼ÊÉÏËûÃǾÍÍêÈ«¿ÉÒÔ×Ôѧ¡£
Ó¢ÎÄÔÎÄ£ºTeaching Programming To A Highly Motivated Beginner
ÒëÕß ÕÅÖØæë
±±ÓÊÈË¡£Ñ§¹ýÉè¼Æ£¬¼¼ÊõÔÚѧ£»Ç°²úÆ·Éè¼ÆÊ¦£¬ÏÖÈοª·¢¹¤³Ìʦ¡£ÈÈ
°®ÃÀºÃ£¬Å¬Á¦³ÉΪ´´ÔìÃÀºÃµÄÈË¡£Í¼ÁéÉçÇøID: zhongqiÏÊÔÄδÀ´µÄ±à³ÌÓïÑÔ¾¿¾¹ÊÇʲôÑù£¿
×÷Õß Ëɱ¾Ðкë
RubyÓïÑÔ·¢Ã÷Õߣ¬ÒàÊÇÑÇÖÞÊ×ÇüÒ»Ö¸µÄ±à³ÌÓïÑÔ·¢Ã÷Õß¡£ÏÖ¼æÈÎÍøÂç
Ó¦ÓÃͨÐÅÑо¿Ëù(NaCl)Ñо¿Ô±¡¢ÀÖÌì¼¼ÊõÑо¿ËùÑо¿Ô±¡¢HerokuÊ×
ϯ¼Ü¹¹Ê¦µÈ¡£êdzơ°Matz¡±¡£ÌÖÑá¶«¾©£¬Ï²»¶ÎÂȪ¡£
ÒëÕß ÖÜ×Óºã
IT¡¢±à³Ì°®ºÃÕߣ¬¼¼ÊõÕ¬£¬³õÖÐÊ±ÔøÔÚNOI(¹ú¼ÒÐÅϢѧ°ÂÈü)Ìì½ò
ÈüÇø»ñÒ»µÈ½±£¬´óѧ±ÏÒµºóÔøÈÎIT×Éѯ¹ËÎÊ£¬¾«Í¨Ó¢ÓïºÍÈÕÓÒëÖø
ÓС¶30Ìì×ÔÖÆ²Ù×÷ϵͳ¡·¡¢¡¶´óÊý¾ÝµÄ³å»÷¡·¡¢¡¶AndroidÓ¦Óÿª·¢
ÈëÃÅ¡·¡£
´Ó¹ýÈ¥±à³ÌÓïÑÔµÄÀúÊ·ÖУ¬ÎÒÃÇ¿ÉÒÔ¿´³ö±à³ÌÓïÑÔÊÇÔÚ²»¶ÏÊÔ´íµÄ¹ý³Ì
Öз¢Õ¹ÆðÀ´µÄ¡£Óкܶà±à³ÌÓïÑÔÒѾÏûÍö£¬½ö½öÔÚÀúÊ·ÖÐÁôÏÂÁËËüÃǵÄ
Ãû×Ö£¬µ«ÆäÖÐËù°üº¬µÄ˼Ï룬ȴ±»ºóÀ´µÄ ÓïÑÔÒÔ²»Í¬µÄÐÎʽÎüÈ¡ºÍ½è
¼ø¡£
ÀýÈ磬SNOBOL µÄ×Ö·û´®´¦Àí¹¦ÄÜ£¬¿ÉÒÔ˵ÊÇÏÖ´ú½Å±¾ÓïÑÔ»ù±¾¹¦ÄÜ
µÄ׿ÏÈ¡£´ËÍ⣬20ÊÀ ¼Í70Äê´úÓÉÃÀ¹úÂéÊ¡Àí¹¤Ñ§Ôº(MIT)¿ª·¢µÄÒ»ÖÖ
ÃûΪCLU
1µÄÓïÑÔÖеü´úÆ÷(Iterator)µÄ¸ÅÄҲ±»RubyÒÔ´úÂë¿é
(Block)µÄÐÎʽ¼Ì³ÐÁËÏÂÀ´¡£
1 CLU ÊÇÓÉMITµÄ°Å°ÅÀ? Àû˹¿Æ·ò(Barbara Liskov£¬1939¡ª )Ëù¿ª·¢µÄÓïÑÔ£¬Àû˹¿Æ·òÓÚ
2008 Äê»ñµÃͼÁé½±¡£(ÔÊé×¢)
´Ó±à³ÌÓïÑԵĽø»¯¹ý³ÌÀ´¿´£¬Ò»¸öÏÔÖøµÄ¹Ø¼ü´Ê¾ÍÊÇ¡°³éÏ󻯡±¡£³éÏ󻯾ÍÊÇÌṩһ¸ö³éÏóµÄ¸ÅÄʹÓÃÕß¼´±ã²»¾ß±¸¹ØÓÚÆäÄÚ²¿ÏêϸÇé¿öµÄÖª
ʶ£¬Ò²Äܹ»¶ÔÆä½øÐÐÔËÓá£ÓÉÓÚ²»±ØÁ˽âÆäÄÚ²¿µÄÇé¿ö£¬Òò´ËÒ²±»³Æ
Ϊ¡°ºÚÏ仯¡±¡£
һЩ¹ÅÀϵıà³ÌÓïÑÔ£¬ÀýÈçBASIC ¾ÍûÓÐʵÏÖ³ä·ÖµÄ³éÏ󻯡£ËäÈ»ËüÌá
¹©ÁËÓÃÓÚ¹ý³Ì¹²ÏíµÄ×Ó³ÌÐòÕâ¸ö¸ÅÄµ«ÊÇ×Ó³ÌÐòÖ»ÄÜͨ¹ý±àºÅÀ´µ÷
Ó㬶øÇÒ²»ÄÜ´«µÝ²ÎÊý¡£ÓÉÓÚ¡°¸³ÓèÃû³Æ¡±ÊdzéÏ󻯵ÄÖØÒª²¿·Ö£¬ËùÒÔ˵
ËüµÄ³éÏó»¯ÊDz»³ä·ÖµÄ¡£½ü´úµÄ±à³ÌÓïÑÔÖУ¬¶¼¿ÉÒÔΪһϵÁйý³Ì(³Ì
Ðò)¸³ÓèÏàÓ¦µÄÃû³Æ¡£
È»¶ø£¬½ö½ö½«¹ý³Ì½øÐгéÏ󻯻¹Ô¶Ô¶²»¹»¡£¼¸ºõËùÓеĹý³Ì¶¼ÐèÒª½øÐÐ
Ò»¶¨µÄÊäÈëÊä³ö²Ù×÷£¬¶ø²¢²»ÊÇÓëÊý¾ÝÎ޹صġ£Òò´Ë£¬ÔÚÏÂÒ»¸ö½×¶Î
ÖУ¬¶ÔÊý¾Ý½øÐкÚÏ仯¾ÍÏԵ÷dz£ÖØÒª¡£¸Õ²ÅÎÒÃÇÌáµ½µÄCLU£¬¾ÍÊÇÊý
¾Ý³éÏ󻯳öÏÖÔçÆÚµÄÒ»ÖÖÓïÑÔ¡£
ÔÚÊý¾Ý³éÏ󻯵ÄÑÓ³¤ÏßÉÏ£¬¾Í×ÔÈ»¶øÈ»²úÉúÁËÃæÏò¶ÔÏó±à³ÌµÄ¸ÅÄî¡£Ëù
ν¶ÔÏ󣬾ÍÊdzéÏ󻯵ÄÊý¾Ý±¾Éí£¬Òò´ËÃæÏò¶ÔÏóºÍÊý¾Ý³éÏó»¯Ö®¼ä½ö½ö
¸ôÁ˱¡±¡µÄÒ»ÕÅÖ½¡£ÔÚÏÖÔÚµÄ21 ÊÀ¼Í±à³ÌÓïÑÔÖУ¬ÃæÏò¶ÔÏóÒѾÊdz£
ʶÁË£¬×î½ü¼¸ºõËùÓеÄÓïÑÔ¶¼»ò¶à»òÉÙµØÌṩÁËÃæÏò¶ÔÏóµÄÄÜÁ¦¡£ µ±
È»£¬ÆäÖÐÒ²ÓÐһЩÓïÑÔ¹ÊÒâ²»Ìṩ¶ÔÃæÏò¶ÔÏóµÄÖ§³Ö2¡£
2 ÀýÈ磬ÏÂÒ»½ÚÖн«Òª½éÉܵÄÓɱ£ÂÞ ? ¸ñÀ×¶òÄ·ËùÉè¼ÆµÄArc ÓïÑÔ£¬¾Í(ÖÁÉÙÔÚÆäÄÚÖù¦ÄÜÖÐ)
²»Ö§³ÖÃæÏò¶ÔÏ󣬾ݱ£ÂÞ˵£¬ÊÇÓÐÒâÕâÑùÉè¼ÆµÄ¡£(ÔÊé×¢)
Ëæ×ųéÏ󻯵IJ»¶ÏÉîÈ룬³ÌÐòÔ±¼´±ã²»È¥¹ØÐÄÄÚ²¿µÄÏêϸÇé¿ö£¬Ò²¿ÉÒÔ
±àд³ö³ÌÐò¡£ÈËÀàÒ»´ÎËùÄÜÕÆÎյĸÅÄîÊýÁ¿ÊÇÓÐÏ޵ģ¬ÓÐ˵·¨³Æ£¬´ó²¿
·ÖÈËÒ»´ÎÖ»ÄܼÝÔ¦7¡À2¸ö×óÓҵĸÅÄî¡£ÕâÑùÒ»À´£¬Èç¹ûÄܹ»ÈÃÎÊÌâµÄ´¦
Àí·½Ê½¸ü¼Ó³éÏó£¬Ò²¾Í¿ÉÒÔ½â¾ö¸ü¸´ÔÓµÄÎÊÌâ¡£
ÊÜĦ¶û¶¨ÂɵÄÓ°Ï죬Éç»á¶ÔÓÚÈí¼þÒ²Ìá³öÁËÔ½À´Ô½¸ßµÄÒªÇó¡£ÈËÀàÉç»á
Ô½À´Ô½ÒÀÀµ¼ÆËã»ú£¬Òò´Ë¾ÍÐèÒª¿ª·¢³ö¸ü¶à¸ü¿É¿¿¡¢¸ü±ãÒ˵ÄÈí¼þ¡£
ÔÚ½²ÊöÈí¼þ¿ª·¢µÄÒ»±¾ÃûÖø¡¶ÈËÔÂÉñ»°¡·ÖУ¬×÷Õ߸¥À×µÂÀï¿Ë¡¤²¼Â³¿Ë
˹дµÀ£º3 ÎÞÂÛʹÓÃʲô±à³ÌÓïÑÔ£¬Éú²úÒ»Ìõ»ù±¾Óï¾äËùÐèÒªµÄ¹¤Êý¼¸
ºõÊÇÒ»¶¨µÄ¡£
3 ¡¶ÈËÔÂÉñ»°¡ª¡ªÈí¼þÏîÄ¿¹ÜÀíÖ®µÀ¡·(The Mythical Man-Month: Essays on Software
Engineering)Ê״γö°æÓÚ1975Ä꣬²¢ÓÚ1995 Äê½øÐÐÁËÀ©³äºÍÔÙ°æ¡£¸¥À×µÂÀï¿Ë¡£²¼Â³¿Ë˹
(Frederick P. Brooks, Jr.£¬1931¡ª )ÊÇÃÀ¹úµÄÈí¼þ¹¤³Ìʦ£¬ÔøÖ÷³Ö¿ª·¢ÁËIBMµÄOS360²Ù×÷ϵͳ£¬ÓÚ1999Äê»ñµÃͼÁé½±¡£
Ò²¾ÍÊÇ˵£¬Èç¹ûÒªÃèÊöͬÑùµÄËã·¨£¬AÓïÑÔÐèÒª1000ÐУ¬BÓïÑÔÖ»ÐèÒª
10Ðеϰ£¬Ö»Òª²ÉÓÃBÓïÑÔÉú²úЧÂʾͿÉÒÔÌá¸ß100±¶¡£
¿ÉÄÜÓÐÈË»á¾õµÃ¡°ÕâÌ«³¶Á˰ɡ±¡£´ò¸ö±È·½£¬ÓÃJavaºÍRubyÃèÊöͬÑùµÄËã
·¨£¬Óï¾äÐÐÊýÏà²î2±¶¶àÒ²²»Ï¡Ææ£¬Èç¹ûÊÇ»ã±àÓïÑÔºÍRubyÏà±ÈµÄ»°£¬Ò²ÐíÄܲúÉú100±¶ÉõÖÁ1000±¶µÄ²î¾à¡£
ÄܲúÉúÕâÑùµÄÉú²úЧÂʲîÒ죬ÕýÊdzéÏ󻯵ÄÁ¦Á¿¡£³éÏó¶È¸ßµÄ±à³ÌÓïÑÔ
²»±ØÃèÊöÏêϸ¹ý³Ì£¬´Ó¶ø¿ÉÒÔÓüò¶ÌµÄ´úÂë´ïµ½Ä¿µÄ¡£ºÍ³éÏ󻯳̶ȵÄ
²îÒìÏà±È£¬±äÁ¿Ãû³Æ¡¢ÓÐûÓÐÖ¸¶¨Êý¾ÝÀàÐÍÖ®ÀàµÄ¶¼Ö»ÄÜËãÊÇÎó²î¼¶±ð
µÄ²îÒì¶øÒÑ¡£
100ÄêºóµÄ±à³ÌÓïÑÔ
´Ó±à³ÌÓïÑԵĽø»¯Õâ¸öÊÓ½ÇÀ´¿´£¬Æäʵ×î½ü²¢Ã»ÓÐʲô´óµÄ¶¯×÷¡£ÏÖÔÚ
ʹÓÃ×î¹ã·ºµÄ±à³ÌÓïÑÔ¼¸ºõ¶¼ÊÇ10 ¶àÄêǰ³öÏֵ쬼´±ãÊDZȽÏеÄJava
ºÍRuby Ò²Êǵ®ÉúÓÚ20 ÊÀ¼Í90 Äê´úºó°ë£¬¾àÀëÏÖÔÚÒ²ÒѾÊÇ15Äê֮ǰµÄ
ÊÂÁË¡£Ò²Ðí¿ÉÒÔ˵£¬ÏÖÔÚÕýÊDZà³ÌÓïÑÔ½ø»¯µÄºÃʱ»ú°É¡£
×î½ü£¬Êܵ½CPU¶àºË»¯µÈÒòËØµÄÓ°Ï죬Erlang4ÕâÖÖ²¢Ðд¦ÀíÓïÑÔÊܵ½ÁË
²»ÉÙ¹Ø×¢¡£²»¹ýErlangÔçÔÚ1987Äê¾Íµ®ÉúÁË£¬Ò²²¢²»ÊÇʲôж«Î÷£¬ÓÐ
µãʧÍûѽ¡£
4 ErlangÊÇÓÉÈðµäµçÐŹ«Ë¾°®Á¢ÐÅ(Ericsson)ÆìϼÆËã»ú¿ÆÑ§Ñо¿ÊÒËù¿ª·¢µÄÒ»ÖÖ±à³ÌÓïÑÔ£¬·¢²¼ÓÚ1987Ä꣬²¢ÓÚ1998 ÄêʵÏÖ¿ªÔ´¡£
ÄÇô£¬Î´À´µÄ±à³ÌÓïÑÔ¾¿¾¹»á±ä³ÉʲôÑùÄØ£¿
ÃÀ¹ú·çÏÕͶ×ʼҡ¢Lisp ÆôÃɼҡ¢×÷¼Ò±£ÂÞ¡¤¸ñÀ×¶òÄ·ÔÚÆä¡¶Ò»°ÙÄêºóµÄ
±à³ÌÓïÑÔ¡·5Ò»ÎÄÖÐÏëÏóÁË100 Äêºó¿ÉÄÜ»á³öÏֵıà³ÌÓïÑÔ£¬²¢ÌáÒ齫Ëû
µÄ¹ÛµãÓ¦Óõ½ÏÖÔڵıà³ÌÓïÑÔÖС£
5 ±£ÂÞ ? ¸ñÀ×¶òÄ·(Paul Graham£¬1964¡ª )ÊÇÃÀ¹ú·çÏÕͶ×ʼҡ¢¼ÆËã»ú¿ÆÑ§×÷¼Ò¡£¡¶Ò»°ÙÄê
ºóµÄ±à³ÌÓïÑÔ¡·(The Hundred-Year Language)Ò»ÎÄÊÕ¼ÓÚ±£ÂÞ ? ¸ñÀ×¶òÄ·µÄÎ¶ºÚ¿ÍÓë»
¼Ò¡·Ò»ÊéÖУ¬ÈËÃñÓʵç³ö°æÉç2011Äê4Ô³ö°æ£¬ÈîÒ»·åÒë¡£
ËûÖ÷ÕÅ£¬100ÄêºóµÄ±à³ÌÓïÑÔ½ø»¯µÄÖ÷Ïߣ¬Ó¦¸ÃÒÔÉÙÁ¿¹«ÀíΪ»ù´¡µÄ¡°Óµ
ÓÐ×îС×î¼ò½àºËÐĵÄÓïÑÔ¡±¡£ÔÚÏÖÓбà³ÌÓïÑÔÖУ¬×î¾ßÓÐÕâÒ»ÌØÕ÷µÄĪ
¹ýÓÚËû×îϲ»¶µÄLispÁË¡£ËùÒÔ˵£¬ËûµÄÖ÷ÕÅʵ¼ÊÉϾÍÊÇ˵£¬Lisp²ÅÊÇ100
Äêºó±à³ÌÓïÑԵĽø»¯·½Ïò¡£
ßí£¬ÏñÎÒÕâÑùµÄСÈËÎïÒª¸úËû½Ð°åºÃÏñҲͦ²»×ÔÁ¿Á¦µÄ£¬²»¹ýÎÒ»¹ÊÇÈÏ
Ϊ£¬¶ÔÓÚδÀ´£¬Ó¦¸Ã»ùÓÚ´Ó¹ýÈ¥µ½ÏÖÔڵı仯·½Ïò£¬²¢ÔÚÆäÑÓ³¤ÏßÉÏ×ö
³öÔ¤²â¡£µ±È»£¬½«À´Ò²Ðí»á·¢ÉúһЩÎÞ·¨Ô¤ÁϵÄ×´¿ö£¬´Ó¶ø´ó·ùŤת֮
ǰµÄǰ½ø·½Ïò£¬²»¹ýÕâÑùµÄÊÂÇé´Ó¶¨ÒåÀ´Ëµ±¾À´¾ÍÊÇÎÞ·¨Ô¤²âµÄ£¬Äã·Ç
ÒªÔ¤²âËü£¬±¾ÖÊÉÏÒ²ÊǺÁÎÞÒâÒåµÄ¡£
×÷Ϊһ¸ö±à³ÌÓïÑÔÓùÕ¬×壬ͨ¹ý·´¹Û¹ýÈ¥°ë¸öÊÀ¼ÍÒÔÀ´±à³ÌÓïÑԵĽø»¯
·½Ïò£¬ÎÒÈÏΪ±à³ÌÓïÑÔ¾ø¶Ô²»»á°´ÕÕ±£ÂÞ¡¤¸ñÀ×¶òÄ·Ëù˵£¬Ïò×Å¡°Ð¡¶ø¸É
¾»¡±µÄ·½ÏòÀ´½ø»¯¡£ÏÖÔڵıà³ÌÓïÑÔ£¬ÎÞÂÛÊǹ¦ÄÜÉÏ»¹ÊÇÓï·¨É϶¼ÒѾ
²»ÊÇÄÇÑùµ¥´¿ÁË£¬ËäÈ»Ò²Ôø¾ÓÐÈËŬÁ¦³¢ÊÔ½«ÕâЩÓïÑÔ±äµÃ¸üС¸ü¼ò
µ¥£¬µ«°üÀ¨±£ÂÞ¡¤¸ñÀ×¶òÄ·×Ô¼ºËùÉè¼ÆµÄArc
6ÔÚÄÚ£¬¶¼¾ö²»ÄÜËãÊdzɹ¦
µÄ³¢ÊÔ¡£
6 Arc ÓïÑÔÊÇLisp µÄ·½ÑÔÖ®Ò»£¬Óɱ£ÂÞ ? ¸ñÀ×¶òÄ·ÓëÂÞ²®ÌØ ? Ì©ÅË? ĪÀï˹(Robert Tappan
Morris£¬1965¡ª )¹²Í¬Éè¼Æ£¬ÓÚ2008 ÄêÊ״η¢²¼¡£
ÔÚÎÒ¿´À´£¬±à³ÌÓïÑԵĽø»¯¶¯»ú£¬²»Êǹ¤¾ßºÍÓïÑÔ±¾ÉíµÄ¼ò»¯£¬¶øÊǽ«
ͨ¹ýÕâЩ¹¤¾ßºÍÓïÑÔËùµÃµ½µÄ½á¹û(½â¾ö·½°¸)¸ü¼ò½àµØ±í´ï³öÀ´¡£½ü
°ë¸öÊÀ¼ÍÒÔÀ´£¬±à³ÌÓïÑÔ²»¶ÏÌṩÓú·¢¸ß¶ÈµÄ³éÏó»¯ÌØÐÔ£¬Ò²ÕýÊÇΪÁË
´ïµ½Õâ¸öÄ¿µÄ¡£Òò´ËÎÒÃÇ¿ÉÒÔºÜ×ÔÈ»µØÈÏΪ£¬ÕâÖÖÇ÷ÊÆÔÚ½«À´Ò²Ó¦¸Ã»á
¼ÌÐø±£³Ö¡£»ùÓÚÉÏÊö¹Ûµã£¬Èç¹ûÒªÎÒÀ´Ô¤²â100 Äêºó±à³ÌÓïÑÔµÄÑù×Ó£¬ÎÒÈÏΪӦ¸Ã
»áÊÇÏÂÃæÈýÖÖÇé¿öµÄÆäÖÐÖ®Ò»£º
1. ±ä»¯²»´ó¡£±à³ÌÓïÑÔµÄд·¨´Ó20 ÊÀ¼Í80 Äê´ú¿ªÊ¼¾Í¼¸ºõûÓÐʲô
½ø»¯£¬½ñºó¼´±ã³öÏÖеÄд·¨£¬Ò²Ö»ÊÇÏÖÓÐд·¨µÄ±äÐζøÒÑ¡£(´Ó
·¢Õ¹ÉÏÀ´¿´£¬ÊDZȽϱ¯¹ÛµÄδÀ´)
2. ʹÓñà³ÌÓïÑÔÀ´±à³ÌÕâ¸öÐÐΪ±¾Éí²»´æÔÚÁË¡£ÈËÀà¿ÉÒÔͨ¹ýºÍ¼ÆËã
»ú¶Ô»°(´ó¸ÅÊÇÓÃ×ÔÈ»ÓïÑÔ)À´²éѯºÍ´¦ÀíÐÅÏ¢¡£(ÀàËÆ¡¶ÐǼÊÃÔ
º½¡·ÖеÄÊÀ½ç£¬¶ÔÓÚ±à³ÌÓïÑÔ¼ÒÀ´ËµÊDZȽÏʧÂäµÄδÀ´)
3. ·¢Ã÷Á˲ÉÓøü¸ß³éÏó¶Èд·¨µÄ±à³ÌÓïÑÔ¡£ÕâÖÖÓïÑÔÔÚÏÖÔÚºÜÄÑÏë
Ï󣬲»¹ýÓ¦¸ÃÊDZÈÏÖÔÚ¸ü¼ÓÇ¿µ÷What£¬¶ø¶ÔÓÚÈçºÎ½â¾öÎÊÌâµÄHow
²¿·ÖµÄϸ½Ú£¬Ôò²»ÔÙÐèÒªÈËÀàÈ¥¹ýÎÊ¡£(ÄÑÒÔÔ¤²âµÄδÀ´)
µ±È»£¬ÉÏÃæµÄÔ¤²âÒ²Ö»²»¹ý½ö½öÊÇÔ¤²â¶øÒÑ£¬ÓпÉÄÜÓëδÀ´µÄʵ¼ÊÇé¿ö
´óÏྶͥ£¬»òÕß˵£¬Óëʵ¼Ê´óÏྶͥµÄ¿ÉÄÜÐԱȽϴó°É¡£²»¹ý»°Ëµ»Ø
À´£¬100 ÄêºóÎÒÒ²ÒѾ²»ÔÚÕâ¸öÊÀÉÏÁË£¬Õâ²»ÊǰײÙÐÄÂï¡£
20ÄêºóµÄ±à³ÌÓïÑÔ
ͨ¹ý¶Ô100ÄêºóµÄÔ¤²â£¬ÎÒÃÇÃ÷°×ÁË¡°Ô¤²â100 ÄêºóµÄÊÂÇéÊǷdz£À§ÄÑ
µÄ¡±¡£ÏëÏë¿´£¬100ÄêǰÁ¬·É»ú»¹Ã»ÓÐÃñÓû¯ÄØ£¬100ÄêºóÎÒÒѾ¿ÉÒÔ×ø
ÔÚ·É»úÉÏÊæÊæ·þ·þµØÐ´ÕâÆª¸å×ÓÁË£¬Õâ×ãÒÔ˵Ã÷£¬ÒªÏëÏóÉç»áµÄ±ä»¯ÊÇ
Ï൱À§Äѵġ£
ÄÇô£¬¸ü½üÒ»µãµÄδÀ´ÓÖÔõôÑùÄØ£¿±ÈÈç˵20 Äêºó¡£20 Äêǰ£¬ÈÕ±¾¸Õ
¸Õ¸ÄÄêºÅΪƽ³É7£¬ÏÖÔÚºÍÄǸöʱºòÏà±È£¬Ó¡ÏóÖÐÉç»áÓ¦¸ÃûÓз¢Éú·Ç
³£¼«¶ËµÄ±ä»¯¡£¼ÆËã»úµÄÐÔÄܵȷ½ÃæÈ·ÊµÓÐÁ˳¤×ãµÄ½ø²½£¬²»¹ý·¢Õ¹Ç÷
ÊÆ»¹ÊÇÁ¬ÐøµÄ£¬²¢·ÇÎÞ·¨Ô¤²â¡£¶ÔÓÚ20 ÄêºóµÄδÀ´£¬ÎÒÏëÓ¦¸Ã¿ÉÒÔ¸ù
¾ÝÏÖÔڵķ¢Õ¹Ç÷ÊÆÀ´×ö³öÅжϡ£
7 ³ýÁ˹«Ôª¼ÍÄêÍ⣬ÈÕ±¾ÈË»¹ÆÕ±éϰ¹ßʹÓÃÄêºÅ¼ÍÄê¡£ºÍÖйú·â½¨Íõ³¯Ê±ÆÚÒ»Ñù£¬ÄêºÅÒ»°ãÊÇ
ËæÌì»ÊµÄ¸ü»»¶ø½øÐиüµü¡£1989 Ä꣬Ã÷ÈÊÌì»Ê¼´Î»£¬¸ÄÄêºÅΪƽ³É£¬Òò´Ë 2012 ÄêÊÇÆ½³É 24
Äê¡£ÔÚÆ½³É֮ǰµÄÉÏÒ»¸öÄêºÅÊÇÕѺ͡£
¸öÈËÈÏΪ£¬Õâô¶ÌµÄʱ¼äÄÚ£¬±à³ÌÓïÑÔ±¾ÉíÓ¦¸Ã²»»á·¢Éú¶à´óµÄ±ä»¯¡£
ʵ¼ÊÉÏ£¬ÏÖÔÚʹÓõĺܶàÓïÑÔ£¬ÔÚ20 Äêǰ¾ÍÒѾ´æÔڵġ£Òò´ËÎÒÔ¤
¼Æ£¬20 ÄêºóµÄÓïÑÔ£¬Ó¦¸ÃÊÇÔÚ·Ö²¼´¦Àí(¶ą̀¼ÆËã»úÐ×÷´¦Àí)ºÍ²¢
Ðд¦Àí(¶à¸öCPU Ð×÷´¦Àí)¹¦ÄÜÉϽøÐÐÇ¿»¯£¬Ê¹µÃ¿ª·¢Õß²»ÐèÒªÌØ±ð»¨ÐÄ˼¾ÍÄܹ»Ê¹ÓÃÕâЩ¹¦ÄÜ¡£
Ö®ËùÒÔÒª¹Ø×¢·Ö²¼´¦ÀíºÍ²¢Ðд¦Àí£¬ÊÇÒòΪ½ñºó¸öÈËÒ²¿ÉÒÔͨ¹ýÔÆ¼ÆËã
µÄÐÎʽʹÓõ½±ÈÏÖÔÚ¸ü¶àµÄ¼ÆËã»ú£¬¶øËæ×Åÿ̨¼ÆËã»úµÄCPU ¶àºË»¯£¬¾ÍÏ൱ÓÚ°²×°Á˸ü¶àµÄCPU£¬ÕâЩÇéÐζ¼ÊǺÜÈÝÒ×ÏëÏóµÄ¡£
²»¹ý£¬ÎÒÈÏΪÏÖÔÚµÄÏ̡߳¢RPC(Remote Procedure Call£¬Ô¶³Ì¹ý³Ìµ÷
ÓÃ)µÈÏÔʽµØÊ¹Ó÷ֲ¼´¦ÀíºÍ²¢Ðд¦ÀíµÄÐÎʽ£¬ÔçÍí»áÓöµ½Æ¿¾±¡£µ±ºË
ÐÄÊýÁ¿³¬¹ýÊýǧ¸öµÄʱºò£¬ÏÔʽָ¶¨¾Í±äµÃºÁÎÞÒâÒåÁË£¬µ÷ÊÔÆðÀ´Ò²»á
±äµÃ·Ç³£Í´¿à¡£ÎÒÆÚ´ýÔÚ20 Äêºó£¬Äܹ»³öÏÖÍ»ÆÆÕâÖÖ¾ÖÏ޵ļ¼Êõ£¬¼´
ÎÞÐèÏÔʽ²Ù×÷¾Í¿ÉÒÔʵÏÖ·Ö²¼´¦ÀíºÍ²¢Ðд¦Àí¡£
ѧÉúÃǵÄÏëÏó
¼¸Äêǰ£¬ÎÒÔø¾ÔÚĸУÖþ²¨´óѧ¿ªÕ¹¹ýÒ»´Î¹ØÓÚ±à³ÌÓïÑԵļ¯Öн²×ù¡£
ÔÚ½²×ùÖÐÎÒ¸øÑ§ÉúÃdzöÁË¡°ÏëÏóÒ»ÏÂ20ÄêºóµÄ±à³ÌÓïÑÔ¡±ÕâÑùÒ»¸öÌâÄ¿£¬²¢ÔÚ½²×ù×îºóÒ»ÌìÌá½»±¨¸æ¡£ºÜÓÐÒâ˼µÄÊÇ£¬´ó¶àÊýѧÉú²¢Ã»ÓÐ×ö³öÎÒ
ÉÏÃæËù˵µÄ¹ØÓÚ·Ö²¼´¦ÀíºÍ²¢Ðд¦ÀíÖ®ÀàµÄ¼¼ÊõÐÔÔ¤²â£¬¶øÊÇÌá³öÁËÖî
Èç¡°Èñà³Ì±äµÃ¸ü¼òµ¥µÄÓïÑÔ¡±¡¢¡°Ï£ÍûÓÃ×ÔÈ»ÓïÑÔÀ´¿ØÖƼÆËã»ú¡±Ö®ÀàµÄ
ÏëÏó¡£Í¨¹ýÕâЩ´ð°¸£¬Ëƺõ¿ÉÒÔ¿´³öËûÃÇÆ½³£ÎªÁËÍê³É±à³Ì×÷Òµ¶ø±»ÕÛ
Ä¥µÃºÎµÈÍ´¿à¡£
²»¹ý£¬ÕâÑùµÄ´ð°¸ÖУ¬Ò²ÐíÒ²Ô̺¬×ÅÕæÀí¡£½üÄêÀ´£¬±à³ÌÓïÑÔËÆºõÔ½À´
Ô½ÄÑÒÔÍÑÀëIDE(Integrated Development Environment£¬¼¯³É¿ª·¢»·¾³)
¶øµ¥¶ÀÄóöÀ´ËµÁË¡£¶ÔÓÚRubyÒ²×ÜÓÐÈËÎÊ¡°Ã»ÓÐIDEÂ𣿡±Ö®ÀàµÄÎÊÌ⣬µ±È»£¬ºÃÏûÏ¢ÊÇ×î½üEclipse ºÍNetBeans ÒѾ֧³ÖRubyÁË¡£
ÓеãÅÜÌâÁË¡£×ÜÖ®£¬Î´À´µÄ±à³ÌÓïÑÔ¿ÉÄܲ»»áÏñ¹ýÈ¥µÄ±à³ÌÓïÑÔÄÇÑù£¬ÈÃÓïÑÔ±¾Éíµ¥¶À´æÔÚ£¬¶øÊÇºÍ±à¼Æ÷¡¢µ÷ÊÔÆ÷¡¢ÐÔÄÜ·ÖÎöÆ÷µÈ¿ª·¢¹¤¾ß
Ï໥ÅäºÏ£¬ÒÔ´ïµ½Ìá¸ßÕûÌåÉú²úЧÂʵÄÄ¿µÄ¡£»°Ëµ£¬ÄDz»¾ÍÊÇ Smalltalk
Âð8£¿
8 Smalltalk ÕýÊÇÒ»ÖÖ¿¼ÂÇÁË¡°Óë±à¼Æ÷¡¢µ÷ÊÔÆ÷¡¢ÐÔÄÜ·ÖÎöÆ÷µÈ¿ª·¢¹¤¾ßÏ໥ÅäºÏ¡±¶øÉè¼ÆµÄÓï
ÑÔ¡£¹ýÈ¥Ëü²¢²»ÄÜËãÊdzɹ¦µÄ£¬µ«Ëæ×ż¼ÊõµÄ½ø²½£¬ÆäÀíÄî»ñµÃÁËÔ½À´Ô½¶àµÄÓÃÎäÖ®µØ£¬»òÐí
ÕæÄܾíÍÁÖØÀ´Ò²Î´¿ÉÖª¡£
ßí£¬ÀúÊ·ÊÇ·ñ»áÖØÑÝÄØ£¿
¡¶´úÂëµÄδÀ´¡·ÊÇ Ruby Ö®¸¸Ëɱ¾ÐкëµÄÓÖÒ»Á¦×÷¡£×÷Õß¶ÔÔÆ¼ÆËã¡¢´ó
Êý¾Ýʱ´úϵĸ÷ÖÖ±à³ÌÓïÑÔÒÔ¼°Ïà¹Ø¼¼Êõ½øÐÐÁËÆÊÎö£¬²¢¶Ô±à³ÌÓïÑÔµÄ
δÀ´·¢Õ¹Ç÷ÊÆ×ö³öÔ¤²â£¬ÄÚÈÝÉæ¼°Go¡¢VoltDB¡¢node.js¡¢CoffeeScript¡¢Dart¡¢MongoDB¡¢Ä¦¶û¶¨ÂÉ¡¢¶àºË¡¢NoSQL µÈµ±½ñ±¸ÊÜ
¹Ø×¢µÄ»°Ìâ¡£°Ë++Puppet¡ª¡ªLuke Kanies µÄ¸ÖÌúÏÀ
×÷Õß ÓàÐ˳¬
ǰÐÂÀËÔÆ¼ÆËãϵͳ¿ª·¢¹¤³Ìʦ£¬ÏÖÔÚUnitedStack¸ºÔðDevopsÏà¹ØÊÂ
Îñ¡£ÈÈÖÔÓÚ¿ªÔ´ÉçÇø£¬³£ÓÃID Newptone£¬ÖÐÎÄÒë×÷ţƤÌÇ¡£ËûºÍËû
µÄС»ï°éÃÇ(һֻèºÍÒ»Ö»ÍÃ×Ó)ÏÖ¾ÓסÔÚ±±¾©³Çijһ°²¾²µÄ½ÇÂ䡣ͼ
ÁéÉçÇøID:ţƤÌÇ
Puppet¶ÔÓÚ×öDevOpsµÄͬѧÀ´Ëµ£¬ÊǸö·Ç³£ÊìϤµÄÃû×Ö£¬µ«ÈÔÓÐÈË»¹²»
Á˽âËü¡£ÄÇôÎÒÏÈÀ´¼òµ¥½éÉÜһϣºPuppetÊÇÓÉPuppetlabs¹«Ë¾¿ª·¢µÄϵ
ͳ¹ÜÀí¿ò¼ÜºÍ¹¤¾ß¼¯£¬±»ÓÃÓÚIT·þÎñµÄ×Ô¶¯»¯¹ÜÀí¡£ÓÉÓÚÁ¼ºÃµÄÉùÃ÷ʽÓïÑÔºÍÒ×ÓÚÀ©Õ¹µÄ¿ò¼ÜÉè¼ÆÒÔ¼°¿ÉÖØÓÿɹ²ÏíµÄÄ£¿é£¬Ê¹µÃGoogle¡¢Cisco¡¢Twitter¡¢RedHat¡¢New York Stock ExchangeµÈÖڶ๫˾ºÍ»ú¹¹ÔÚ
ÆäÊý¾ÝÖÐÐĵÄ×Ô¶¯»¯¹ÜÀíÖÐÓõ½ÁËPuppet¡£°ëÄêÒ»¶ÈµÄPuppetConf´ó»á
Ò²õÒÉíÓÚÖØÒª¼¼Êõ»áÒéÖ®ÁС£AWSµÄCloudFormationÎĵµÖÐÓÐÒ»¶Î¹ØÓÚ
PuppetµÄ½éÉÜ£¬Æä¿ªÍ·ÊÇÕâô˵µÄ: Puppet has become the de facto
industry standard for IT automation¡£
ͬʱ£¬PuppetÔÚOpenStackÖÐÒ²·¢»Ó×ÅÖØÒªµÄ×÷ÓãºOpenStack-ciÉçÇø½«
ÆäÓÃÓÚOpenStack wikiϵͳ,³ÖÐø¼¯³ÉϵͳµÈµÈµÄÔËά¹ÜÀí£»´ËÍâÉçÇøµÄ
puppet-openstackÏîÄ¿ÓÃÓÚÍê³ÉOpenStack·þÎñµÄ×Ô¶¯»¯²¿ÊðºÍ¹ÜÀí£¬Ä¿
ǰÒѾÔÚstackforgeÖÐÍйܲ¢Í¨¹ýOpenStackµÄGerritϵͳÀ´¹ÜÀí´úÂëÌá
½»£»´ËÍ⣬Cisco,RedHat,MiriantisµÈ¶à¼Ò¹«Ë¾µÄOpenStack·¢Ðаæ»ò²¿Êð
¹¤¾ßÖоùʹÓõ½ÁËpuppet-openstack¡£Ä¿Ç°£¬PuppetÔÚUnitedStackµÄÈÕ³£
ÔËά¹ÜÀíºÍ²úÆ·µÄ×Ô¶¯»¯²¿ÊðÖÐÒ²Æðµ½ÁËÖØÒª×÷Óá£
ºÃÁË£¬¸Õ¸Õ»¹²»Á˽âPuppetµÄ¶ÁÕßÃÇÏÖÔÚÒѾ֪µÀPuppetÊÇÒ»¸öÅ£±Æºå
ºåµÄ×Ô¶¯»¯ÔËά¹ÜÀí¹¤¾ß¡£¿ÉÄÜÓÐÈËÒѾÏÂÍêÁËÈí¼þ°üÔ¾Ô¾ÓûÊÔÁË£¬ÏÈ
±ð¼±£¬ÓйØPuppetµÄʹÓÃ×ÊÁÏÔÚÍøÉÏ¿ÉÒÔËѵ½Ò»´ó¶Ñ£¬¹Ù·½µÄÎĵµÒ²Ïê
ϸµ½ÁË¡°ÁîÈË·¢Ö¸¡±¡£¹ØÓÚPuppetµÄʹÓþÑé·ÖÏíºÍ¸÷ÖÖÌØÐÔµÄÉîÈë̽ÌÖ
ÒÔ¼°ÈçºÎʹÓÃPuppet¹ÜÀíOpenStack²¿ÊðµÄ·½°¸·ÖÎö£¬Å¶£¬¶¼²»ÔÚ±¾ÎĵÄ
ÌÖÂÛ·¶Î§Ö®ÄÚ¡£
±¾ÎĵÄÖØµãÊÇ°ËØÔÒ»ÏÂPuppetΪʲô¿ÉÒÔÕâô³É¹¦¡£Í¬Ê±£¬Îª±ÜÃâÒýÆð
·ÇPuppet³ÌÐòÔ±¸Ð¹ÙÉϵIJ»ÊÊ£¬ÎÒÆÁ±ÎÁ˸÷ÖÖ´úÂë¼¶±ðµÄչʾºÍ¶Ôϸ½Ú
µÄ̽ÌÖ¡£
Luke KaniesµÄ¼¼Êõ֮·
¹ÊÊÂÒª´ÓLuke Kanies£¬ÕâλtwitterêdzÆÓëPuppetµÄ·þÎñÆ÷¶Ë½ø³ÌÃûͬÃû
µÄ¸çÃÇ˵Æð£¬ÔںܾúܾÃÒÔǰ...³É³¤£º¿à±ÆµÄѧÉúʱ´ú
ÔÚ1992ÄêµÄʱºò£¬Luke½øÈëŵ˼À¼Ñ§Ôº³ÉΪÁËÒ»Ãû»¯Ñ§×¨ÒµµÄѧÉú£¬Õâ
ÊÇÒ»ËùλÓÚÍþ˹¿µÐÁÖݵÄСѧУ£¬È«ÃÀÅÅÃûÔÚ178×óÓÒÅÇ»²¡£
С»ï×ÓºÜÕùÆøÖ»´ôÁËÒ»Äê¾ÍÅܵ½ÁË´óÃû¶¦¶¦µÄÀïµÂѧԺ£¬³ÉΪÁËÇDz¼Ë¹
µÄУÓÑ¡£²»¹ýµ¹Ã¹µÄÊÇÀïµÂѧԺ±»ÆÀΪȫÃÀÊ®´ó¿à±ÆÑ§Ð£Ö®Ò»£¬6Äê±Ï
ÒµÂʽöΪ75%£¬Ò²¾ÍÊÇÓÐ14µÄͬѧÄò»µ½±ÏÒµÖ¤¡£ÓбðÓںܶàÎÄÀíѧԺ
×ÔÓÉÑ¡¿ÎµÄģʽ£¬ÀïµÂµÄ´óһѧÉú±ØÐëÍê³É¹æ¶¨µÄÈËÎıØÐ޿γ̣¬Ñ§Ï°
Ï£À°¼°ÂÞÂíµÄ¹ÅµäÎÄ»¯¡£ÕâÃſγÌÒѾÓг¬¹ý50ÄêµÄÀúÊ·£¬ÀïµÂ¶¯ÓÃÁË
ѧУ×îΪǿ´óµÄʦ×ÊÁ¦Á¿À´ÎªÑ§Éúµì¶¨ÎÄ»¯»ù´¡¡£Õ⻹ûÍêÄØ£¬Ö®ºóѧ
Éú»¹±ØÐëÔÚËĸöÍØÕ¹ÁìÓòÑ¡¿Î£ºÎÄѧ¡¢ÕÜѧ¡¢×ڽ̡¢ÒÕÊõ·½Ãæ;ÀúÊ·¡¢Éç¿Æ¡¢ÐÄÀíѧ·½Ãæ;×ÔÈ»¿ÆÑ§·½Ãæ;»¹ÓÐÊýѧ¡¢Âß¼¡¢ÓïÑÔѧ»òÍâÓï¡£´ó
ÈýѧÉú±ØÐëͨ¹ýרҵ²âÊÔ£¬´óËÄѧÉúÔò±ØÐëÍê³ÉרÌâ±ÏÒµÂÛÎIJÅÄܱÏ
Òµ¡£±ÏÒµÂÛÎIJ¢²»¿ÉÅ£¬¿ÉŵÄÊÇÀïµÂѧԺµÄ±ÏÒµÂÛÎĵÄѧʱÊÇÒ»Ä꣬ËùÒÔÓÐÏë³ö¹úÁôѧµÄͬѧ£¬ÇëÃÜÇйØ×¢ÁíÍâ¾ÅËù´óѧµÄÃû×Ö¡
¸ÃÀ´µÄ»¹ÊÇ»áÀ´µÄ£¬1996Ä꣬Luke´óËÄÁË¡£ÒªÏë˳Àû±ÏÒµµÄ»°£¬Ëû±ØÐë
µÃÐÞÍêÕⳤ´ïÒ»ÄêµÄÂÛÎÄÏîÄ¿£¬ÕâÒâζ×ÅÔÚÕâÒ»ÄêÄÚËû±ØÐëÒª¶¯ÊÖÉè¼Æ
ºÍʵÏÖ£¬²¢ÓÃʵÑéÊý¾ÝÖ¤Ã÷£¬×îÖÕ×éÖ¯³ÉÂÛÎÄÀ´Íê³É¿ÎÌâ¡£LukeµÄÂÛÎÄ
ÌâÄ¿ÊÇSite-directed Mutagenesis in Soy Cytosolic Ascorbate Peroxidase£¬ÎÒÍÆÇÃÁ˰ëÌ죬ÖÐÎÄ·Òë´óÖÂÊÇ£º´ó¶¹¿¹»µÑªËáÑιýÑõ»¯Îïø°ûÖʵ͍
µãÓձ䡣
´ò¹¤£ºÆ¯²´ºÍ»ýÀÛÍòÐÒµÄÊÇ£¬ÎÒÃDz»ÓÃÈ¥Ñо¿Ò»¿ÚÆø¶¼Äî²»ÍêÃû×ÖµÄÂÛÎÄ¡£³¶Ô¶ÁË£¬Luke
±ÏÒµºóûȥÕÒÒ»·ÝºÍ»¯Ñ§Ïà¹ØµÄ¹¤×÷¶øÊÇÈ¥ÁËCypersiteµ±ÆðÁËMacϵͳ
¹ÜÀíÔ±¡£ÔÚCypersiteµÄÈÕ×ÓÀLukeʹÓÃAppleScript¸É×ÅÐÐMacOSµÄ¹Ü
Àí¹¤×÷£¬²»¹ý¸ÉÁ˲»µ½Ò»Ä껹ûתÕýµÄʱºò£¬Ëû±ãÅÜ·ÁË¡£
ÒòΪÔÚ97ÄêµÄ12Ô·ݣ¬ËûÔÚMetro One TelecommunicationsÕÒµ½ÁËÒ»·Ýϵ
ͳ¹ÜÀíÔ±µÄ»î¶ù¡£Metro One Telecommunicationsµ±Äê¿ÉÊÇÄÉ˹´ï¿ËÉÏÊÐ
¹«Ë¾£¬Ö÷ÒªÒµÎñÊÇÌṩµç»°ºÅÂë²éѯ·þÎñ¡£ÔÚÆäáÛ·åʱ£¬¹«Ë¾ÔÚÈ«ÃÀÓµ
ÓÐ7000Ãû¹ÍÔ±£¬È»¶øÔÚ2009Äê³õ£¬ÔÚÊÛÍê×îºóÒ»²¿·ÖµÄ¾ÓªÒµÎñºó£¬¸Ã
¹«Ë¾»¹Ê£Óà3ÈË¡£ÃéÁËÒ»ÑÛMetro One½ñÌìµÄ¹É¼Û£º0.01ÃÀÔª¡£Í¨ÐÅÐÐÒµ
ÔçÒÑÊÇ×òÈջƻ¨ÁË£¬Îâ¾ü²©Ê¿ÒѾÔÚ¡¶À˳±Ö®áÛ¡·Öн«ÕâЩÀúÊ·ÃèÊöµÃ
¾¡ÖÂÁÜÀì¡£
ÓÖ³¶Ô¶ÁË£¬ÔÚMetro OneµÄ1ÄêÁã9¸öÔÂÀLukeµÄÖ÷Òª¹¤×÷ÊǹÜÀí·ÖÉ¢
ÔÚÈ«ÃÀµÄ30¸öºô½ÐÖÐÐÄ£¬°üÀ¨Á˺ô½ÐÖÐÐļÆËãÉ豸µÄ²¿ÊðºÍÉèÖã¬Íâ¼Ó
´Ó×ܲ¿¶ÔÆä½øÐв»¼ä¶ÏµÄά»¤¡£¿´µ½ÕâÀÎÒͻȻÏ뵽ij¼ÒstartupµÄ´´
ʼÈË֮ǰÔÚµçÐŲ¿ÃÅ×ö¹ýÏàͬµÄ¹¤×÷£¬ºóÀ´ËûÈ¥×öÁËÒ»¸öºÜìŵĿÉÊÓ»¯
²¿Ê𹤾ߣ¬ÎҲ²âͨÐÅÐÐÒµµÄ²¿Êð¹¤×÷³äÂúÁËÖØ¸´µÄ»úеÀͶ¯£¬ÓÐÒ»ÖÖ
×Ô¶¯»¯µÄÇ¿ÁÒÐèÇó¡£ÕâÀïÌáһϣ¬provisionÔøÊǵçÐÅÐÐÒµÖеÄÒ»¸öÊõ
Óרָ°²×°Í¨ÐÅÉ豸ǰµÄ×¼±¸¹¤×÷£¬¶øÔÚdevopsÖг£ËµÌáÆðµÄbare-
metal provisionÊÇÖ¸ÔÚ¼ÆËã»úÉϰ²×°²Ù×÷ϵͳ»òÕßhypervisorµÄ¹ý³Ì¡£
ÔÚ1999Ä꣬LukeÀ뿪ÁËÕâ¼Òµç»°¹«Ë¾£¬ÔÚBlueStarµ£ÈÎϵͳ¹¤³Ìʦ£¬BlueStarÊÇÒ»¼ÒÂô½â¾ö·½°¸µÄ¾ÏúÉÌ£¬Ö÷ÓªÒµÎñÓУºRFID, Auto ID, POS,Mobility products¡£LukeÖ÷Òª¸ºÔðÒ»¼ÒDSL ISP·þÎñÆ÷¶Ë»ù´¡¼Ü¹¹µÄÉè¼Æ
ºÍʵÏÖ¡£Ëû¹¹½¨ÁËÒ»Ì××Ô¶¯»¯Çҿɼ¯ÖйÜÀíµÄϵͳ£¬²¢¸ºÔð»ù´¡¼Ü¹¹Ïî
Ä¿µÄ³ÖÐø¿ª·¢ÒÔ¼°ÊµÊ©ºÍά»¤¡£
LukeÔÚ¡°À¶Ï衱¸ÉÁË»¹Ã»µ½Á½Ä꣬ÓÖÅÜÈ¥ÁË¿¨ÌرËÀÕÈÚ×Ê·þÎñ¹«Ë¾µ£ÈιË
ÎÊ£¬Ìṩϵͳ×Ô¶¯»¯¹ÜÀíÏà¹ØµÄ×Éѯ¡£ÎÒ²éÁËÏ£¬¿¨ÌرËÀÕ¹«Ë¾Î»ÁÐÊÀ
½ç500Ç¿£¬³ÉÁ¢ÓÚ1925Ä꣬ÊÇÊÀ½çÉÏ×î´óµÄ¹¤³Ì»úеºÍ¿óɽÉ豸Éú²ú³§
¼Ò¡¢È¼Æø·¢¶¯»úºÍ¹¤ÒµÓÃÈ¼ÆøÂÖ»úÉú²ú³§¼ÒÖ®Ò»£¬Ò²ÊÇÊÀ½çÉÏ×î´óµÄ²ñ
ÓÍ»ú³§¼ÒÖ®Ò»¡£ÎÒÔÚÍøÉÏûÓв鵽LukeÔÚÕâ¶Îʱ¼ä¾ßÌå¸ÉÁËЩʲô£¬Ö»
ÄܸÐ̾Luke×÷Ϊһ¸öϵͳ¹ÜÀíÔ±ÊÇÔõô»ì½øÒ»¸ö¸ß˧¸»µÄÈÚ×ʹ«Ë¾µ£ÈÎ
¹ËÎʵġ£
´´ÒµÒÁʼ£º¶ÔÂÖ×ÓµÄÐÞÐÞ²¹²¹ÔÚ¿¨ÌرËÀÕ´ýÁËÁ½Äêºó£¬Luke¿ªÊ¼µ¥·É£¬ÕÒÈ˺ϻﴴ½¨ÁËReductive
Consulting(2010Äê¸ÄÃûΪPuppetlabs)£¬Í·ÏÎÊǶÀÁ¢¹ËÎÊ£¬×¨ÃÅ´ÓÊÂ
Unix»ù´¡ÉèÊ©×Ô¶¯»¯Ïà¹ØµÄ×Éѯ¡£Ëû×ÅÊÖÑо¿µ±Ç°¿ªÔ´µÄϵͳ¹ÜÀíºÍ¼à
¿Ø¹¤¾ßÈçCFEngine,ISconf,NagiosµÈµÈ£¬²¢ÇÒͨ¹ý¶þ´Î¿ª·¢°ÑÕâЩ¹¤¾ßÁª
½á³ÉÒ»Ì×Âú×ã¿Í»§ÐèÇóµÄ½â¾ö·½°¸¡£ÕâÊÇÒ»¸öÖØÒªµÄ½×¶Î£¬Luke¿ªÊ¼½«
»ýÀÛ¶àÄêµÄ¾ÑéºÍ˼¿¼×ª±äΪ¶Ô¹¤¾ßµÄ¸Äд£¬ÕâÆÚ¼äËûµÄÖ÷Òª¹¤×÷°üÀ¨
ÖØÐ´ÁËCFEngineµÄ½âÎöÆ÷ºÍ¿ª·¢ÁËISConf3£¬Õâ¶ÔºóÀ´µÄPuppet¿ª·¢¹¤
×÷²úÉúÁËÖØÒªÓ°Ïì¡£
CFEngine¼ò½é
Ê×ÏÈ£¬À´ËµÒ»Ï´óÃû¶¦¶¦µÄCFEngine£¬ÕâÊÇÒ»¿î³öÉúÓÚ1993ÄêµÄÀÏÅÆ
ϵͳÅäÖùÜÀí¹¤¾ß£¬CFEngineµÄ×÷ÕßMark BurgessÏ£Íû¿ÉÒÔʹ¼òµ¥µÄ
¹ÜÀíÈÎÎñ×Ô¶¯»¯£¬Ê¹À§ÄѵÄÈÎÎñ±äµÃ½ÏÈÝÒס£ËüµÄºËÐÄÀíÄîÊÇʹϵͳ
´ÓÈκÎ״̬¶¼ÄÜÊÕÁ²µ½Ò»ÖÖÀíÏë״̬¡£
ÕâÑùµÄ¹¤¾ß¶Ôµ±Ê±»¹ÔÚʹÓÃÁãÁãɢɢµÄ½Å±¾À´¹ÜÀí»úÆ÷µÄϵͳ¹ÜÀíÔ±
À´Ëµ¼òÖ±¾ÍÊǶ¬ÌìµÄÃÞ°À£¬ÏÄÌìµÄÑ©¸â£¬ºÚ°µÖеĵÆÅÝ£¬¼¢¶öÖеÄÃæ
°ü¡£Ö®ºó£¬CFEngine×ÔÈ»¶øÈ»µØ³ÉΪÁËϵͳÅäÖùÜÀí¹¤¾ßÖеıê¸Ë¡£
CFEngineÓÐÁ½ÖÖ¹¤×÷ģʽ£º¼È¿ÉÒÔʹÓÃstandaloneģʽ¼´Í¨¹ýcfagent
À´Íê³Éµ¥Ì¨·þÎñÆ÷µÄÅäÖùÜÀí¹¤×÷£¬Ò²¿ÉÒÔͨ¹ýCS¼Ü¹¹(cfservdºÍ
cfagent)À´¹ÜÀíÕû¸ö¼¯ÈºµÄÅäÖùÜÀíµÄ·Ö·¢¹¤×÷¡£
CFEngineµÄ¹¤×÷·½Ê½ÊÇ»ùÓڽű¾·Ö·¢£ºÔÚÅäÖÃÎļþÖÐÓÐÒ»¸ö²ÎÊý³ÆÎª
shellcommands£¬ÓÃÓÚÅäÖÃÒªÖ´ÐеÄÃüÁî»ò½Å±¾£¬actionsequenceÔòÓÃ
ÓÚÉèÖÃshellcommandsµÄÖ´ÐÐ˳Ðò¡£
ÔÙÀ´¿´¿´CFEngineµÄ°æ±¾¸üУº1993Ä꣬CFEngine1·¢²¼£»1998Ä꣬CFEngine2·¢²¼£¬¶øÊ®Äêºó£¬Ö±µ½2008Ä꣬CFEngine3æ©æ©À´³Ù£¬µÚÈý
°æ·¢ÉúÁ˾޴ó¸Ä±ä£¬¿ÉÒÔͨ¹ýʹÓÃDSLÀ´¶¨Òåϵͳ״̬£¬ÒÔÖÁÓÚÆä²»
ÄÜÔÙ¼æÈݾɰ汾CFEngine2µÄÅäÖÃÓïÑÔ¡£±¾ÎÄ̸µ½CFEnigneʱ£¬ÊÇÖ¸
CFEngine2¡£
ISconf¼ò½éISconfÔòÊÇÁíÍâÒ»¿îÅäÖùÜÀí¹¤¾ß£¬ËüµÄºËÐÄÀíÄîÊÇϵͳµÄ×îÖÕ״̬
ÊÇÒ»Öµģ¬¼´Ê¹±»¹ÜÀíµÄ»úÆ÷Êǹػú״̬£¬µ±ËüÃÇÍê³ÉÆô¶¯Ö®ºó£¬Ïà
¹ØÃüÁî¾Í»á±»Ö´ÐУ¬µ½´ïÒ»ÖµÄ״̬¡£Í¬Ê±Õû¸öϵͳÎÞÐèÖÐÐĽڵ㣬ÃüÁî¿ÉÒÔÔÚÈκÎһ̨½ÚµãÉÏÖ´Ðв¢¸´ÖƵ½ËùÓнڵãÉÏ¡£ISconf×ܹ²¾
ÀúÁË4´úµÄÑÝ»¯¡£ISconf1ºÍ2ÊÇÓÉshell½Å±¾±àд£¬LukeÔÚ2002ÄêµÄʱºò
¿ª·¢ºÍÉè¼ÆÁËISconf3£¬²¢Ê¹ÓÃPerlÔÚ2µÄ»ù´¡ÉϽøÐÐÁËÖØÐ´¡£ISconf3
ÓÐÈý¸öºËÐÄÌØÐÔ£º
È·¶¨ÐÔµÄÖ´ÐÐ˳Ðò
Ö´ÐÐÖÐÓÐʧ°ÜʱÁ¢¼´Í˳ö
״̬ά»¤
´ÓÉÏÃæµÄÌØÐÔÀ´¿´£¬ÊÇÒ»¸öͦ¿áµÄ²úÆ·¡£LukeÔÚ02ÄêµÄʱºòÍê³ÉÁË¿ª
·¢£¬²¢ÔÚ03ÄêµÄLISA(Large Installation Systems Administration)»áÒé
ÉÏ·¢±íһƪÃûΪ'ISconf: Theory, Practice, and Beyond'µÄpaper£¬Ì¸µ½ÁË
ISconfµÄÌØÐÔ£¬¿ª·¢ISconfÖлñµÃµÄ¾ÑéºÍ½Ìѵ£¬ÒÔ¼°ºÍCFengineµÄ
¼¯³É£¬·ÖÎöISconf 3µÄÊÊÓó¡¾°µÈµÈ¡£²»¹ýISconfÉçÇøÔÚ½éÉÜISconf3
µÄÀúʷʱ¶ÔLukeµÄÂÛÎÄÆÄÓÐ΢´Ê£¬Äã¿ÉÒÔÔÚISconfµÄ¹ÙÍø¶Áµ½ÕâÆªÎÄ
Õ¡£²»¹ý£¬ISconfÖ¹²½ÓÚµÚËİ棬×îºóµÄ°æ±¾·¢²¼Ê±¼äÍ£ÁôÔÚ06Äê8ÔÂ
13ÈÕ£¬ÔÒòδ֪¡£
×ÔÔìÂÖ×Ó
Ëæ×ÅLukeµÄÃÎÏëÔ½À´Ô½´ó£¬ÕâЩ¹¤¾ß¼¯Ò²±äµÃÔ½À´Ô½ÅÓ´ó¡£¶ø´Ëʱ¶ÔÕâ
ЩÏÖÓеĿªÔ´¹¤¾ßµÄÐÞÐÞ²¹²¹ÒѾ²»ÄÜÂú×ãËûµÄÐèÇóÁË¡£×îÖÕ£¬ËûÒâʶ
µ½Ö»ÓÐËû×Ô¼º£¬²ÅÄÜÈ¥´´Ôì×Ô¼ºÏëÒªµÄ¹¤¾ß¡£×÷Ϊһ¸ö¶àÄêµÄÔËάÈË
Ô±£¬ËûÉîÉî¸ÐÊܵ½ÁË¿à±ÆµÄϵͳ¹ÜÀíÔ±ÃÇÐèÒªÓÐÒ»¸öÕ¸ÐµĹ¤¾ßÀ´Ê¹µÃ
ËûÃǵŤ×÷¸ü¸ßЧ£¬¸ü±ã½Ý¡£Òò´Ë£¬Ëû¿ªÊ¼¿¼ÂÇÈ¥¿ª·¢Ò»¸öй¤¾ß£¬Ê×
ÏÈÕâ¸ö¹¤¾ßÊÇΪϵͳ¹ÜÀíÔ±¶øÉè¼ÆµÄ¡£ÄÇôÔõô²ÅÄܳÆÎªµÃÉÏÊÇΪϵͳ
¹ÜÀíÔ±Éè¼ÆµÄÄØ£¿
ÏÈÀ´¼òµ¥Ë¼¿¼Ò»ÏÂϵͳ¹ÜÀíÔ±¶ÔÓÚÅäÖùÜÀí¹¤¾ßµÄÖ÷ÒªÐèÇó£ºÑ§Ï°³É±¾
µÍ£¬¿ª·¢¸ßЧ£¬¿çƽ̨£¬´úÂë¿É¸´Ó㬰²È«£¬¿ÉÀ©Õ¹ÐԸߵȵȡ£
×îºÃµÄÇé¿ö¾ÍÊÇϵͳ¹ÜÀíÔ±Ö»Ðè¹ØÐÄij¸ö·þÎñ»òÕßÈí¼þ°üµÄ״̬£¬ÀýÈç
ÎÒÏ£Íû²¿ÊðÒ»¸öApache Web·þÎñÆ÷£¬ÎÒÖ»¹ØÐÄApacheµÄ°üÊÇÒѰ²×°µÄ
״̬£¬·þÎñÊÇÔËÐеÄ״̬£¬¶ø²»ÒªÈÃÎÒÈ¥²ÙÐÄÕâ¸öApache°üÊÇ×°ÔÚUbuntuÏµĻ¹ÊÇRedhatÏ£¬È»ºóµ½µ×ÊÇÒªÖ´ÐÐyum install»¹ÊÇapt-get
install£¬È»ºó»¹Òª²ÙÐÄÕâ¸öapache½ø³Ìµ½µ×ÊÇÓÃinit»¹ÊÇupstart¹ÜÀíµÄ¡£
´ËÍ⣬»¹ÓÐÈçºÎ¶ÔÒÀÀµ¹ØÏµ½øÐд¦Àí¡£ÏÈǰµÄÅäÖùÜÀí¹¤¾ß¶¼ÊǹØ×¢ÔÚ
ÈçºÎÈ¥Íê³ÉÿһÏÏà¶ÀÁ¢µÄ¹¤×÷£¬ÀýÈçÅäÖÃApache·þÎñ¾ÍÊÇÒ»¶Îshell
½Å±¾¶øÒÑ£¬¶øÃ»ÓÐÈ¥¿¼ÂÇËüÃÇÖ®¼äÊÇ´æÔÚ¹ØÁªµÄ£¬ÀýÈçµ±ApacheµÄÅäÖÃ
Îļþ·¢Éú±ä¸üʱ£¬ÊÇÓ¦¸ÃÖØÆôApache·þÎñÀ´Ê¹Ö®ÉúЧ£¬¶øÖØÆôApache·þ
ÎñµÄǰÌáÊÇϵͳÒѾ°²×°ÁËApache¡£
Õâ¶ÔÓÚµ±Ê±Õ¼¾ÝÖ÷Á÷µÄÒÔ·Ö·¢shellperl½Å±¾µÄÅäÖùÜÀíÈí¼þÀ´Ëµ£¬¼òÖ±
ÊÇÌ췽ҹ̷¡£²»¹ýLuke¾ÍÊÇÕâôÉèÏëµÄ£¬ËûÔÚ¹¹Ë¼PuppetµÄÉè¼ÆÊ±£¬¾Í
Ï£Íû½«ÏµÍ³³éÏó³É×ÊÔ´£º²ÉÓÃÃæÏò¶ÔÏóµÄ¸ÅÄ½«Ã¿¸ö×ÊÔ´ÀàÐÍ×é³ÉΪ
Ò»×éÊôÐԵļ¯ºÏ£¬Ã¿¸öÊôÐÔ¶¼ÓÐÏàÓ¦µÄÐÐΪ£¬²¢½«×ÊÔ´ÀàÐͺÍÊôÐÔ¹¹Ôì
³ÉÀ࣬×îÖÕʹÓÃÕâЩÊôÐÔÀ´Ê¹µÃ×ÊÔ´µ½´ïÆÚÍûµÄ״̬£¬¶ø²»ÊÇÓÃ×ÊÔ´±¾
ÉíÀ´Íê³ÉÕâЩ¹¤×÷¡£Í¬Ê±£¬½«ËùÓÐ×ÊÔ´µÄÒÀÀµ¹ØÏµ¹¹½¨³ÉÒ»ÕÅÓÐÏòͼ£¬Í¨¹ýÕâÖÖÒÀÀµÃèÊö£¬ÏµÍ³¹ÜÀíÔ±ÃÇ¿ÉÒÔʵÏÖ¸´ÔÓµÄÒµÎñÂß¼µÄ¹ÜÀí¡£
Ô½ÏëÔ½ÐË·Ü£¬ÓÚÊÇLuke¿ªÊ¼¶¯ÊÖcodingÁË¡£PuppetµÄµÚÒ»¸öÔÐÍдÓÚ04
ÄêÏÄÌ죬µ«Ëû²¢Ã»ÓаѴËÊ·ÅÔÚ×îÖØÒªµÄλÖÃÉÏ¡£ÓÚÊÇÔÚ9Ô·ݵÄʱ
ºò£¬Luke¾ÓÈ»ÅÜÈ¥ÁËBladeLogicµ£ÈβúÆ·Éè¼Æ£¬ÕâÊÇÒ»¼ÒרÃÅ×öÉÌÒµÅä
ÖùÜÀíÈí¼þµÄ¹«Ë¾£¬ËüµÄ²úÆ·ÔÚµ±Ê±ÒѾȡµÃÁ˳ɹ¦£¬È»¶øLuke·¢ÏÖ
BladeLogicµÄƷζ½ö½öÊÇÏëÂôÈí¼þ¸ø´ó¹«Ë¾¶ø²»ÊÇÁ¢Ö¾ÎªÏµÍ³¹ÜÀíÔ±Éè
¼ÆÎ°´óµÄ¹¤¾ß¡£ÔÚ05ÄêµÄ2Ô·ݣ¬LukeϾöÐļÌÐø¸ãPuppetµÄ¿ª·¢¹¤
×÷¡£ÓÚÊÇ£¬ÔÚBladeLogic´ô¹»ÁË7¸öÔºó£¬LukeÑ¡ÔñÁËÀ뿪¡£BladeLogic
Ò²ÖÕÓÚÈçÔ¸ÒÔ³¥£º±»BMCÊÕ¹ºÁË£¬µ±È»ÕâÊǺ󻰡£
¼èÄѾñÔñ:¿ª·¢ÓïÑÔºÍÉè¼ÆÕÜѧ
ËæºóLuke»Øµ½ÁËReductive Consulting£¬Ò²¾ÍÊÇPuppetLabs µÄǰÉí£¬¿ªÊ¼
ÁËPuppetµÄȫְ¿ª·¢¡£²»¹ýËûÓöµ½ÁËÒ»¸ö¼¬Êֵļ¼ÊõÎÊÌ⣺ÉíΪһ¸öPerl³ÌÐòÔ±£¬LukeÍ´¿àµØ
·¢ÏÖ£¬Perl¾ÓÈ»ÎÞ·¨´¦ÀíÄÇЩPuppetÀàÖ®¼äµÄ¹ØÏµ¡£ÄÇʱPython±»ÈÏΪ
ÊÇϵͳ¿ª·¢µÄ×î¼ÑÑ¡Ôñ£¬µ«ÊÇLukeͬѧ½ÓÊܲ»Á˵IJ»ÊÇPythonµÄËõ½øÎÊ
Ì⣬¶øÊÇprintÊÇÒ»¸öÓï¾ä¶ø²»ÊǺ¯Êý£¬lenÊÇÒ»¸öº¯Êý¶ø²»ÊÇ·½·¨µÄÊÂ
ʵ£¬ÈÃËû¸Ð¾õ¡°ÑÛ¾¦ÔÚÁ÷Ѫ¡±¡£Õâʱºò£¬ÓиöÅóÓѸæËßËûRubyºÜ¿á£¬ÓÚÊÇ
ËûÔÚ³¢ÊÔÁË4¸öСʱºó£¬¾Íд³öÁËÒ»¸ö¹¦ÄÜÔÐÍ£¬´Ó´Ë²»¿É×԰Ρ£²»¹ý
ËûÒ²Óе㵣ÐÄ£¬ÒòΪÔÚµ±Ê±Ruby»¹ÊôÓÚ·ÇÖ÷Á÷£¬ÒòΪROR(Rails on
Ruby)¶¼»¹Ã»ÓгöÉú£¬²»¹ý¼øÓÚËûµÄÌåÑ飬¾õµÃʹÓÃRubyµÄ¿ª·¢Ð§ÂÊ
·Ç³£¸ß£¬Òò´ËËû¾ö¶¨Ã°Ò»´ÎÏÕ¡£
ÔÚÕâ¸öÎÊÌâ½â¾öÖ®ºó£¬LukeÓÖÃæÁÙÁíÍâÒ»¸öÄÑÌ⣺ËäÈ»ÔÚ´Ë֮ǰËûÒѾ
дÁ˲»ÉÙµÄС¹¤¾ß£¬»ýÔÜÁ˷ḻµÄ¾Ñ飬²»¹ýÕâЩ¹¤¾ßûÓÐÒ»¸öµÄ´úÂë
Á¿Êdz¬¹ý1ÍòÐеġ£ÕâÒ²Òâζ×ÅÔÚÉè¼ÆPuppetµÄ¼Ü¹¹µÄ¹ý³ÌÖУ¬¿Ï¶¨µÃ
ˤ²»ÉٵĿӡ£Òò´Ë£¬LukeÔÚ¿ª·¢PuppetµÄ¹ý³ÌÖÐʼÖÕÒªÇó×Ô¼ººÍ¿ª·¢ÍÅ
¶Ó×ñÊØÁ½¸öÖ¸µ¼Ë¼Ï룺Ê×ÏÈÉè¼Æ¾¡¿ÉÄܵØ×öµ½¼ò½à£¬³ÌÐòµÄ¿ÉÓÃÐÔ×ÜÊÇ
¸ßÓÚÐÂÌØÐÔ£»´ËÍâPuppetÊ×ÏÈÊǸö¿ò¼ÜÆä´Î²ÅÊÇÒ»¸öÓ¦Óá£ÔÚ½â¾öÁËÓï
ÑÔÑ¡ÐͺÍÉè¼ÆÕÜѧµÄÎÊÌâºó£¬Luke¿ªÊ¼Ç±ÐÄÓÚPuppetµÄ¿ª·¢¡£
È»ºóÄØ
È»ºó¾ÍûÓÐÈ»ºóÁË£¬Ëæ×ÅPuppetµÄ·¢²¼ºÍ°æ±¾µÄ¿ìËÙµü´ú£¬ÒÔ¼°ÉçÇøµÄ
»ðÈÈ·¢Õ¹£¬Puppet×ÔÈ»¶øÈ»µØ¾Í·¢Õ¹³ÉÁ˽ñÌìµÄÄ£Ñù¡£±¾À´ÊÇÒª¿ªÊ¼ÉîÈë¼¼Êõϸ½ÚÕ¹¿ª½éÉÜ£¬µ«ÊÇÓ¦¹ã´óȺÖÚÒªÇó±£³Ö´¿°ËØÔ·ç¸ñµÄºôÉù£¬ÏÂ
°ë²¿·ÖÔÚÄÚ²¿ÉóÅúʱ±»²ÒÎÞÈ˵ÀµØ¿³µô¡£¶ÔÓÚPuppetºÍLukeµÄ½éÉܵ½´Ë
¸æÒ»¶ÎÂ䣬ÔÛÃÇÔÙÀ´°ËÒ»ÏÂȺÖÚÃÇϲÎÅÀÖ¼ûµÄÈȵãʼþ¡£
Ͷ×Ê·çÔÆ
ÊÂÇéÔ´ÓÚÁ½Äêǰ£¬VMWare×÷ΪPuppetLabsµÄ6¼ÒͶ×ʹ«Ë¾Ö®Ò»£¬Ïò
PuppetlabsͶÁË850ÍòÃÀµ¶¡£ÔÚ½ñÄêµÄ2Ô·ݣ¬VMWareÐû²¼Ìá¸ß¶Ô
PuppetLabsµÄͶ×Ê£º3000Íò¡£´ËÍ⣬VMware¸ºÔðÔÆ¼Ü¹¹ºÍ¹ÜÀíµÄÖ´ÐÐ
¸±×ܲÃRaghu Raghuram½«½øÈëPuppet Labs¶Ê»ᡣ
Õâ´Ó×ʱ¾Êг¡µÄ½Ç¶È˵Ã÷ÁËLukeºÍPuppetµÄ³É¹¦£¬½ÐºÃÓÖ½Ð×ù¡£µ«ÊÇÒ²
Òý·¢ÁËÈËÃǵĵ£ÓÇ£ºÒ»Ð©ÈËÈÏΪPuppetµÄ¶ÀÁ¢ÐÔÊǷdz£ÖØÒªµÄ£¬ÀíÓÉÊÇ
DevOpsµÄ³É¹¦·Ç³£ÒÀÀµÓÚÕâ¸ö×é֯ѡÔñʲôÑùµÄ¹¤¾ßÓÃÓÚÆóÒµ»ù´¡Éè
Ê©¹ÜÀí£¬PuppetLabs×÷ΪIT×Ô¶¯»¯¹ÜÀíÁìÓòÀïµÄÁìÍ·Ñò£¬È»¶øVMware
¶ÔPuppet´æÔÚÇ¿´óµÄ»°ÓïȨ£¬Ä¿Ç°PuppetLabs»¨Á˺ܴóµÄ¾«Á¦ÔÚPuppet
ÆóÒµ°æ±¾µÄ¿ª·¢ÉÏ(Puppet PE)£¬ÓÃÓÚºÍVMWare vCloud Automation
CenterµÈ²úÆ·µÄ¼¯³É¡£Õâ²¢²»ÊÇÒ»¼þºÃÊ£¬¿ÉÄÜ»áʹµÃÉçÇø°æ±¾ºÍÉÌÒµ
°æ±¾²úÉú¾Þ´óµÄ²î¾à£¬ÉõÖÁ¿ÉÄܻᷢÉúOracleºÍMySQLÄÇÑùµÄ¹ÊÊ¡£
ÔÙ¿´¿´VMWareµÄÀ϶ÔÊÖAmazonµÄ·´Ó¦£¬¼´Ê¹AmazonÔÚ¿ªÍ·Ìá¼°µÄÎÄ
µµÀï³ÐÈÏPuppetÊÇÊÂʵÉϵÄÐÐÒµ±ê×¼£¬µ«¿¼Âǵ½ËüµÄÀÏÅóÓÑVMWareÊÖ
ÎÕ¶ÔPuppetlabs 23µÄͶ×Ê£¬ÔÚÆäÐÂÍÆ³öµÄOpsWork·þÎñÖÐÇåһɫµØÊ¹ÓÃ
ÁËChefÓÃÓÚϵͳµÄÅäÖùÜÀí£¬ÕâÊǵ®ÉúÓÚPuppetÖ®ºóµÄÁíÍâÒ»¿î¿ªÔ´µÄ
ÅäÖùÜÀí¹¤¾ß¡£
ÔÙÀ´ÌýÌýÆäËûÈ˵ÄÉùÒô¡£Matt AsayÓëLukeÊǶàÄêµÄºÃÓÑ£¬ÔÚLukesÓë
Andrew Shafer´´Á¢Puppet Labsºó£¬Matt Ôø¾Ìá³öÁËÐí¶àÉÌÒµ»¯½¨Ò飬°ü
À¨½øÐÐÈÚ×Ê£¬µ«Luke¸üÏ£Íû¹«Ë¾±£³Ö¶ÀÁ¢¡£Mattµ¶¨µØ»Ø´ð¼ÇÕߣºÈç¹û
ÄãÁ˽âLuke KaniesÕâ¸ö¼Ò»ï£¬Äã¾ÍÖªµÀ±£³Ö¶ÀÁ¢¶ÔÓÚËû¶øÑÔÊÇÎÞ±ÈÖØÒª
µÄÊ¡£ËûÔÚÌïÄÉÎ÷Öݳ¤´ó£¬²»ÊÇÄÇÖÖ³öÂôÁé»êµÄÈË¡£LukeÔÚIMÉϺÍMatt±í´ïÁË×Ô¼ºµÄ¿´·¨£º¡°ÏòÔÆ¶Ëת»»µÄÇ÷ÊÆ½«¸øÏÂÒ»´ú
ϵͳƽ̨¹ÜÀí¹¤¾ß´øÀ´ÎÞÏ޵Ļú»á£¬¶ÔVMwareÈç´Ë£¬¶ÔPuppetLabsÒà
ÊÇÈç´Ë¡£¼´±ãPuppetLabs±»VMwareÕÆ¿Ø£¬µ«ÕâЩϵͳÈÔ¹¹½¨ÔÚ¿ªÔ´µÄ
»ù´¡ÉÏ£¬²¢¸³ÓèËüÃÇÒ»¶¨µÄ×ÔÖÎȨ¡£PuppetÓµÓлîÔ¾µÄ¿ªÔ´Éú̬Ȧ£¬¾Í
ÏñOpenStackÒ»Ñù£¬ÊǶÔͶ×ʺܺõIJ¹³ä¡£¡±
×îºó̸̸ÎҵĿ´·¨£¬Ê×ÏÈPuppetÌìÉú¾ÍÊÇ¿ªÔ´ÑªÍ³£¬ÆäÉçÇø·Ç³£»îÔ¾£¬¶øÇÒ´Ó2.7¿ªÊ¼±äΪ¸üΪÓѺõÄApacheÐí¿ÉÖ¤(֮ǰÊÇÑϸñµÄGPL)¡£Òò
´Ë£¬¼´Ê¹·¢ÉúÏñMySQLÄÇÑùµÄÊÂÇ飬ÕÕÑù»áÓÐÁíÒ»¼ÒMariaDB³öÏÖ£¬¸ü
ºÎ¿ö»¹ÓкóÆðÖ®ÐãChefÔÚÒ»ÅÔ»¢ÊÓíñíñ£¬VMWareÀíÓ¦²»»áÏÂÕâ²½»è
Æå¡£Í¬Ê±£¬¶ÔÓÚÖ¸ÔðPuppetÖ»¹Ø×¢ÓÚÓëVMware²úÆ·µÄ¼¯³ÉÊÇÓÐʧƫÆÄ
µÄ£¬ËäÈ»×î½üPEµÄ¶¯¾²ºÜ´ó£¬µ«ÊÇPuppetLabsÒ²»¨·ÑÁ˺ܴóµÄ¾«Á¦Í¶Èë
µ½Puppet-OpenstackÉçÇøÖУ¬ÔÚÖ®ºóµÄPuppetϵÁв©ÎÄÖлá¶Ô´Ë½øÐвû
Êö¡£ËùÒÔ£¬ÎÒ²¢²»µ£ÐÄPuppetÊÇ·ñ»á³ÉΪÏÂÒ»¸öMySQL¡£ÎÒÃÇѧµ½ÁËʲô£¿
ÔÚÇ°ÃæÑóÑóÈ÷È÷µÄÒ»¶Ñ°ËØÔÖУ¬ÎÒ¼òµ¥µØÌ¸ÁËһЩ¹ØÓÚLukeºÍPuppetµÄ
¹ÊÊ¡£Ã¿¸öÈË¿ÉÄܶ¼»á´ÓÖп´µ½²»Í¬µÄ¶«Î÷¡£¶ÔÎÒ¶øÑÔ£¬PuppetÖ®ËùÒÔ
ÄÜÈ¡µÃ³É¹¦£¬ÎÒÈÏΪÓУº
×ö×Ô¼º×îÉó¤µÄÊ£ºLukeÓµÓзḻµÄÔËά¾ÑéºÍÅäÖùÜÀí¹¤¾ßµÄ¿ª·¢¾
Ñ飬ÔÚ´Ë»ù´¡ÉÏÈ¥¿ª·¢PuppetÊÇ»ñµÃ³É¹¦µÄ»ù´¡Ö®Ò»£»
È¡Æä¾«»ª£ºÔÚµ÷ÑÐͬÀ๤¾ßºÍ²úƷʱ£¬Luke²»Ö»¿´µ½ÁËÆäÖеIJ»×㣬»¹
ÎüÊÕÁËËüÃǵÄÓŵ㣻
Ö¾´æ¸ßÔ¶£ºLuke¿ª·¢PuppetʱºòµÄ¶¯»úÊÇΪϵͳ¹ÜÀíÔ±Ìṩ×î°ôµÄCMS
¹¤¾ß£¬¶ø²»½öΪÁËÕõÇ®£¬±»ÊÕ¹º£¬ÉÏÊС£¶¯»úÔ½µ¥´¿£¬³É¹¦µÄ¸ÅÂÊÔ½
´ó£»¸ÒÏë¸Ò×ö£ºÏÖÔÚÈ¥ÌôÑ¡ÊÖ»ú£¬ÎÒÃǼ¸ºõ²»»áÈ¥¿¼ÂÇÊÖ»úÊDz»ÊÇ´¥Ãþ
ÆÁµÄ¶øÊÇÈ¥¿´ÆÁÄ»Óжà´ó£¬PPI¶à¸ß£¬ÒòΪÊÖ»úÊÇ´¥ÃþÆÁÕâÊÇÀíËùµ±È»
µÄ£¬È»¶øÔÚiPhone֮ǰ£¬´¥ÃþÆÁÊÖ»ú»¹ÊǺÜÏ¡ÓеĶ«Î÷£¬´ó¼Ò¶¼ÔÚÍù¹¦
Äܸü¶àµÄ·½ÏòÔ½×ßÔ½Ô¶£»Í¬Ñù£¬ÏÖÔÚÔÚʹÓÃPuppetʱ£¬»á¾õµÃʹÓÃÉùÃ÷
ʽÅäÖÃÓïÑÔÊÇÀíËùµ±È»µÄÊÂÇ飬Êâ²»ÖªÔÚPuppetµ®ÉúµÄͬʱ´úÖУ¬¶¼ÊÇ
ÇåһɫµÄÃüÁîʽ»òÕß¹ý³ÌʽµÄÅäÖÃÓïÑÔ¡£
ÃâÔðÉùÃ÷
±¾ÎĵÄËùÓÐÇé½ÚÀ´×Ô±¾ÈË»¨·ÑÒ»ÖܵÄÒ¹Éú»îʱ¼ä£¬ÔĶÁÁ˸÷ʽ¸÷ÑùµÄ²©
¿Í£¬ÐÂÎÅ£¬ÆÀÂÛ£¬´úÂ룬Ããǿƴ´Õ¶ø³É£¬ÈôÓÐÓëʵ¼Ê²»·ûÖ®´¦£¬ÇëһЦ
¶ø¹ý¡£³ö°æµÄδÀ´µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì
×÷Õß ¶ÃçÃç
ͼÁé²ß»®±à¼¡£¹Ø×¢ITÈËÎÄ¡¢Ç°¶Ë¼¼Êõ¡£¹Ø×¢Êý×Ö³ö°æºÍÐÂýÌ塣ϣ
Íû×Ô¼ºÄܹ»³ÖÐø»ýÀÛºÍÌá¸ß¡£
¹úÄÚ»·¾³Ïµĵç×ÓÊéºÍÖ½ÖÊÊé¹ØÏµµÄÕùÂÛºÍ̽ÌÖÒѾ³ÖÐøºÜ¾ÃÁË£¬×÷Ϊ
³ö°æÐÐÒµ¸ÕÈëÃÅËÄÄêµÄС×Ö±²£¬ÎÒ²»¸ÒÔì´Î£¬²»¹ý»¹ÊǺÜÏë̸̸×Ô¼ºµÄ
Ïë·¨¡£
ÎÒ°ÑÔĶÁÐÔͼÊé´óÖµض¨ÒåΪÇáÔĶÁºÍÖØÔĶÁÁ½ÀࡣС˵¡¢ÔÓÖ¾¡¢Âþ»
µÈÊÇÇáÔĶÁ£¬½Ì²Ä¡¢¿Æ¼¼Ê顢רҵÊéµÈÎªÖØÔĶÁ¡£ÓÉÓÚ´«Í³Ï°¹ß£¬ÖØÔÄ
¶Á¿ÉÄÜ»¹ÊÇ±È½ÏÆ«ÏòÖ½ÖÊÊ飬ÓÈÆäÊǺܶàÈËϲ»¶ÔÚÊéÉÏдд»»£¬µ«ÊÇ
ÓÉÓÚÒÆ¶¯ÖÇÄÜÖÕ¶ËµÄÆÕ¼°£¬ÇáÔĶÁµÄµç×ÓÊéµÄ·¢Õ¹²»¿ÉСêï¡£
ÎÒÉí±ßÓÐǰ±²Ëµ£¬Ö½ÖÊÊéÍêÁË£¬µç×ÓÊé»áÍêÈ«Ìæ´úÖ½ÖÊÊé!ÎÒÍêȫͬÒâÕâ¸ö¹Ûµã¡£²»¹ýÔÚÕâÖ®ºóµÄ¼¸ÄêÖУ¬ÔÚÖйú£¬¿ÖÅÂÊDz»»áʵÏֵġ£³ý·Ç
¡ª¡ª
µç×ÓÊéÏúÁ¿Ïë¹²Ó®£¿¸÷ÖÖÔĶÁÈí¼þÖ®¼äÄܹ»ÊµÏÖÔĶÁ¼æÈݲÅ
ºÃ
ÎÒÒÔǰÊǼᶨµÄÖ½ÖÊÊéÓµ»¤Õߣ¬2013Äê³õÎÒ×Ô¼ºÒ²×ªÍ¶µç×ÓÊéÕóÓª£¬Ô
ÒòºÜ¼òµ¥£¬Èû°à¡±ËÀ¡±ÁË£¬ÎÒ»»ÁËһ̨½«½ü5´çµÄ°²×¿ÖÇÄÜÊÖ»ú£¬´Ó´ËÎÒ
ÕæÇеظÐÊܵ½Á˵ç×ÓÊéµÄÓÅÊÆ£¬¿ªÊ¼×ßÉÏѰÃÙ¡°×î¼Ñ¡±ÔĶÁÌåÑéµÄµÀ·¡£
¿ÉÊÇÄÄÀïÓÐ×î¼Ñѽ£¬¸÷Óи÷µÄÓÅÊÆ£¬¿ÉÓû§(±ÈÈçÎÒ)ÊÇÄÇôµØÌôÌÞ£¬ÄÇôµØ½ÏÕæ£¬ÉõÖÁÊÇÄÇôµØ²»½²µÀÀí£¬¾ÍÏëÕÒ¸ö×îºÃµÄÔĶÁÈí¼þ£¬Ôõô
°ì£¿ÈòúÆ·¾ÀíȥץͷƤ°É!
ÏÖÔÚÓÐÄÇô¶àµçÉ̺ÍÊý²»ÇåµÄ¸÷ÖÖÔĶÁÓ¦Óã¬È´²»ÍêÈ«¼æÈÝ£¿!
(ÕâÀïÔÝÇÒ²»Ìá¡°Ãâ·Ñµç×ÓÊ顱)
Ã÷Ã÷ϲ»¶Õâ¼Òµç×ÓÊéÉ̵ÄÅŰæ·ç¸ñ£¬È´Ã»ÓÐ×Ô¼ºÏ²»¶µÄÊ飿
Ϊʲôͬһ±¾Êéÿ¼ÒµÄ¼Û¸ñ²îÄÇô¶à£¿
Ϊʲô¸ÕÂòÍê¾Í½µ¼ÛÁË£¬ÍæÄÅ£¿
ÔÚÒ»¼ÒÂòµÄµç×ÓÊ飬Ã÷Ã÷ÊÇÕý°æ£¬¿É±ðµÄÔĶÁÈí¼þ¾ÍÊÇÓò»ÁË£¬ÓÐ
µÄ¼Û¸ñ»¹¡°²»·Æ¡±£¬ÕæÕæ²»ÈçÖ±½Ó³Ã´òÕÛµÄʱºòÂòÖ½ÖÊÊéµÄºÃ!
¸÷¼Ò¶¼Ïë±£»¤×Ô¼ºÔĶÁÈí¼þµÄÓû§Ê¹ÓÃÕ¼ÓÐÁ¿£¬±£Ö¤×Ô¼ºµÄÊг¡ÓªÏúÕ¼
ÓÐÁ¿¡£¿ÉÓû§ÕæµÄ²»ÊÇÀ¹½ØµÃסµÄ£¬µç×ÓÊéÉ̲»ÊÇÒª±äÉíÍǽÌú±Ú£¬¶ø
ÇÒÒª±ä³ÉÒ»ÕÅð¤ºýºýµÄÍø£¬¾ßÓÐÓÅÖʵÄÓû§ÌåÑé²ÅÊǵõ½ÁËÕæÕýµÄÌú·¹
Íë¡£
ÒªÖªµÀ¡ª¡ª
Óû§¶¼ÊÇÍç¹ÌÅÉ£¬Ï²»¶Ò»¸ö£¬Ï°¹ßÒ»¸ö£¬¾Í²»Ïë»»ÔĶÁÈí¼þÁË¡£
Óû§¶¼ÊÇÀÁºº£¬¾ÍÏ£ÍûÂòÒ»´ÎÕý°æµç×ÓÊ飬»»Ë¼ÒµÄä¯ÀÀÆ÷¶¼ÄÜ
¿´£¬²»ÐèҪת»»À´×ª»»È¥¡£
Óû§¶¼ÊÇ̰ÐÄ¹í£¬¾¡¹ÜÒ»´ÎÒ²ÐíÖ»»áÂòÒ»±¾Ê飬µ«ÊÇÒªÇó¡°É̳ǡ±Àï
ÌṩµÄµç×ÓÊéÖÖÀà¿°±ÈͼÊé¹Ý¡£
Óû§¶¼ÊÇ̰С±ãÒ˵ÄÈË£¬Í¬ÑùµÄÊ飬²î²»¶àµÄÅŰ棬±ØÈ»Ñ¡Ôñ×î±ã
Ò˵ġ£°®ÊéµÄÈËÂòÊé²»»á¿ÙÃÅ£¬µ«ÊÇʡϵÄÇ®¶àÂò¼¸±¾£¬Õâ²ÅÊÇÕý
µÀ¡£
Óû§¶¼²»ÊÇɵÈË£¬Ã¿¼Ò¼Û¸ñ¶¨µÃÌì²îµØ±ð£¬ÓеϹ¶¯éü¼õ¼Û£¬ÄÇÎÒ˼ҵͼ²»Âò£¬¡°ÎÒµÈ×Å!¡±
Èç´Ë£¬ÎÒ¸ø×öÈí¼þ¿ª·¢µÄÅóÓѳö¸öÖ÷Ò⣺×öÒ»¸öͼÊé±È¼ÛÈí¼þ¡£¹¦Äܰü
À¨£º
1. ËÑË÷ÊéÃû£¬Á¢¼´³öÏÖ¼¸¼Òµç×ÓÊéÉ̵ļ۸ñ¶Ô±È(Ò²¿ÉÒÔ½øÐÐÖ½ÖÊÊé
¼Û¸ñ¶Ô±È£¬Ö½ÖÊÊé¡¢µç×ÓÊé¼Û¸ñ¶Ô±È)¡£
2. ÏÔʾºÍ¸ÃÊéÓйصÄÓªÏú»î¶¯¡£Óû§¿ÉÒÔÖ±½ÓÕÒµ½×î»®ËãµÄ;¾¶¹ºÂò
µç×ÓÊé¡£ÏàÐźܶàÓû§¾ÍÊÇÕâô×öµÄ£¬²»¹ýǰÎÄ˵¹ýÁËÓû§¶¼ÊÇÀÁ
ºº£¬×ÔÈ»ÓÐÈË´úÀÍ£¬»òÕßÒ»ÀÍÓÀÒݲźá£
3. ÊéÆÀ¡¢´ò·Ö¡¢»¥¶¯¡¢Ïà¹ØÐÅÏ¢µÈÆäËûÀ©Õ¹¹¦ÄÜ¡£
Èç´ËÒ»À´£¬¼Û¸ñÖ»»áÇ÷ͬ£¬´ó´ò¼Û¸ñÕ½£¬È«ÊÇÊä¼Òѽ!ÄÇ´ó¼ÒÆ´µÄÊÇʲ
ô£¿Èç¹ûÕâ¸öÎÊÌâ»Ø´ð²»³öÀ´£¬°×°×³ÆÎª¡°µçÉÌ¡±ÁË¡£Æ´µÄÊÇÓû§ÌåÑé
ѽ!Îݸ±à¼¡¢ÃÀ±àÅŰ桢ÏßÉÏÏßÏ»¡¢×÷Õß¶ÁÕߵĻ¥¶¯¡£
ÓеÄÈËÎÊÁË£¬³¤´ËÒÔÍù£¬ÄDz»¾ÍÊÇÓÖÇ÷ͬÁËÂð£¿ÎÒ¾ÍÊÇÏëÔÚµ±½ñÉç»á¶À
Ê÷Ò»ÖÄ!ÄúÔÚ¿ªÍæÐ¦Â𣿵ØÇòÉÏÄĸöÐÐÒµ¡¢ÄĸöÉÌҵģʽÊǶÀÊ÷Ò»ÖÄ
µÄ£¿ÏëÒª³£¿ª³£ÑÞ£¬Æ´µÄ¾ÍÊÇÓÅÖʵÄÓû§ÌåÑ飬³ÖÐøµÄ·þÎñ£¬Ä;õÄÐÐ
Òµ×·ÖðÁ¦£¬ÒÔ¼°¾ö¶¨ÐԵĴ´ÐÂÄÜÁ¦ÁË¡£´´ÐÂÊǼӷÖÌ⣬¶¼Ïë¼Ó·Ö£¬¿ÉÏÈ
²»Òª¶ª·Ö²ÅÐС£
(δÍê)ÏÂÎÄÌáʾ£º
µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì(¶þ)
µç×ÓÊé¼Û¸ñÕ½ËðÈ˲»Àû¼º£¬¼Û»¹µÃÊdzö°æ·½¶¨
µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì(Èý)
ÖØÔĶÁҲҪͶ¿¿µç×ÓÊ飿ÍêÃÀʵÏÖ¡°µç×ÓÊéͼÊé±Ê¼Ç¡±¹¦ÄܲÅÐÐÊé°ñ´ó¼Ò¶¼ÔÚ¶Áʲô£¿
ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü(µÚ2°æ)
×÷ÕߣºÇïÒ¶ÍØÔÕ ÑÒÌïÑôÒ» ±±´¨ÒËïþ
ÒëÕߣºÎ×Ôó¿¡ ×¯¿¡Ôª Àî½òÓð
ÊéºÅ£º978-7-115-32010-0
ͼÁéÉçÇøÍÆ¼ö£º
ÊÀ½ç¶¥¼¶³ÌÐòÉè¼Æ¸ßÊֵľÑé×ܽᣬACM-ICPCÈ«Çò×ܹھüÎ×Ôó¿¡Ö÷
Ò룬ÈÕ±¾ACM-ICPC²ÎÈüÕßÈËÊÖÒ»²á¡£
±¾Êé¶Ô³ÌÐòÉè¼Æ¾ºÈüÖеĻù´¡Ëã·¨ºÍ¾µäÎÊÌâ½øÐÐÁË»ã×Ü£¬·ÖΪ׼±¸
ƪ¡¢³õ¼¶Æª¡¢Öм¶ÆªÓë¸ß¼¶Æª4Õ¡£×÷Õß½áºÏ×Ô¼º·á¸»µÄ²ÎÈü¾Ñ飬¶Ô
ÑϸñɸѡµÄ110 ¶àµÀ¸÷ÀàÊÔÌâ½øÐÐÁËÓÉdzÈëÉî¡¢ÓÉÒ×¼°ÄѵÄϸÖ½²½â£¬²¢½éÉÜÁËÐí¶àʵÓü¼ÇÉ¡£Ã¿Õºó¸½ÓÐϰÌ⣬¹©¶ÁÕßÁ·Ï°£¬¹®¹ÌËùѧ¡£
»úÆ÷ѧϰʵս
×÷ÕߣºPeter Harrington
ÒëÕߣºÀîÈñ ÀîÅô ÇúÑǶ« Íõ±ó
ÊéºÅ£º978-7-115-31795-7
ͼÁéÉçÇøÍÆ¼ö£º
È«Êéͨ¹ý¾«ÐıàÅŵÄʵÀý£¬ÇÐÈëÈÕ³£¹¤×÷ÈÎÎñ£¬ÞðÆúѧÊõ»¯ÓïÑÔ£¬ÀûÓÃ
¸ßЧµÄ¿É¸´ÓÃPython´úÂëÀ´²ûÊÍÈçºÎ´¦Àíͳ¼ÆÊý¾Ý£¬½øÐÐÊý¾Ý·ÖÎö¼°¿É
ÊÓ»¯¡£Í¨¹ý¸÷ÖÖʵÀý£¬¶ÁÕ߿ɴÓÖÐѧ»á»úÆ÷ѧϰµÄºËÐÄËã·¨£¬²¢Äܽ«Æä
ÔËÓÃÓÚһЩ²ßÂÔÐÔÈÎÎñÖУ¬Èç·ÖÀà¡¢Ô¤²â¡¢ÍƼö¡£
ͼ½âTCPIP(µÚ5°æ)
×÷ÕߣºÖñÏ¡ʷ ´åɽ¹«±£ »Ä¾®Í¸ ÆiÌïÐÒÐÛ
ÒëÕߣºÎÚÄáÈÕÆäÆä¸ñ
ÊéºÅ£º978-7-115-31897-8
ͼÁéÉçÇøÍÆ¼ö£º
ÕâÊÇÒ»±¾Í¼ÎIJ¢Ã¯µÄÍøÂç¹ÜÀí¼¼ÊõÊé¼®£¬Ö¼ÔÚÈùã´ó¶ÁÕßÀí½âTCPIPµÄ
»ù±¾ÖªÊ¶¡¢ÕÆÎÕTCPIPµÄ»ù±¾¼¼ÄÜ¡£±¾ÊéÒýµ¼¶ÁÕßÁ˽âºÍÕÆÎÕTCPIP£¬ÓªÔìÒ»¸ö°²È«µÄ¡¢Ê¹Ó÷ÅÐĵÄÍøÂç»·¾³¡£
ÍÆ¼öϵͳ
×÷ÕߣºDietmar Jannach£¬ Markus Zanker£¬ Alexander Felfernig£¬ Gerhard
Friedrich
ÒëÕߣº½¯·²
ÊéºÅ£º978-7-115-31069-9
ͼÁéÉçÇøÍÆ¼ö£º
±¾ÊéÈ«Ãæ²ûÊöÁË¿ª·¢×îÐÂË®Æ½ÍÆ¼öϵͳµÄ·½·¨£¬ÆäÖгÊÏÖÁËÐí¶à¾µäËã
·¨£¬²¢ÌÖÂÛÁËÈçºÎºâÁ¿ÍƼöϵͳµÄÓÐЧÐÔ¡£ÊéÖÐÄÚÈݰüÀ¨»ù±¾¸ÅÄîºÍ×î
нøÕ¹Á½²¿·Ö¡£´ËÍ⣬±¾Ê黹°üº¬´óÁ¿µÄͼ¡¢±íºÍʾÀý£¬ÓÐÖúÓÚ¶ÁÕß¶Ô
ÓÚ֪ʶµÄÀí½âºÍ°ÑÎÕ¡£
Cocos2d-x¸ß¼¶¿ª·¢½Ì³Ì£ºÖÆ×÷×Ô¼ºµÄ
¡¶²¶Óã´ïÈË¡·
×÷Õߣº»ðÁÒÄñÍøÂç¿Æ¼¼
ÊéºÅ£º978-7-115-31796-4
ͼÁéÉçÇøÍÆ¼ö£º
´úÂëµÄδÀ´
×÷ÕߣºËɱ¾Ðкë
ÒëÕߣºÖÜ×Ôºã
ÊéºÅ£º978-7-115-31751-3
ͼÁéÉçÇøÍÆ¼ö£º
ÌùÐÄÉè¼Æ£º´òÔì¸ß¿ÉÓÃÐÔµÄÒÆ¶¯²úÆ·
×÷ÕߣºJakob Nielsen, Raluca Budiu
ÒëÕߣºÅ£»¯³É
ÊéºÅ£º978-7-115-31879-4
ͼÁéÉçÇøÍÆ¼ö£º
´óÊý¾ÝµÄ³å»÷
×÷Õߣº³ÇÌïÕæÇÙ
ÒëÕߣºÖÜ×Ôºã
ÊéºÅ£º978-7-115-31787-2
ͼÁéÉçÇøÍÆ¼ö£º
JavaScriptÒì²½±à³Ì£ºÉè¼Æ¿ìËÙÏìÓ¦µÄÍø
ÂçÓ¦ÓÃ
×÷ÕߣºTrevor Burnham
ÒëÕߣºÐíÇàËÉ
ÊéºÅ£º978-7-115-31657-8
ͼÁéÉçÇøÍÆ¼ö£º
Objective-C¸ß¼¶±à³Ì£ºiOSÓëOS X¶àÏß
³ÌºÍÄÚ´æ¹ÜÀí
×÷ÕߣºKazuki Sakamoto, Tomohiko
Furumoto
ÒëÕߣºÀ軪
ÊéºÅ£º978-7-115-31809-1
ͼÁéÉçÇøÍÆ¼ö£º³ÉÊéÊÖ¼ÇACM-ICPC¹Ú¾ü̸¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·¼°Ïà¹Ø
Ëã·¨Êé
×÷ÕßÎ×Ôó¿¡
Õã½´óѧ2010½ìÊýѧϵ±¾¿ÆÉú£¬2013½ì¼ÆËã»ú˶ʿÉú¡£Ôø´ú±íÕã½´ó
ѧ»ñµÃ2009ÄêACM-ICPC World FinalsµÚ6Ãû£¬2011ÄêACM-ICPC
World Finals¹Ú¾ü¡£ÔÚÏß±ÈÈüÖг£ÓÃwatashiºÍrejudgeµÈid¡£
ǰ¼¸Ì죬ÇïÒ¶ÍØÔÕ(iwi)¡¢ÑÒÌïÑôÒ»(wata)ºÍ±±´¨ÒËïþ
(kita_masa)ËùÖø£¬ÎÒ(watashi)¡¢×¯¿¡Ôª(navi)ºÍÀî½òÓð
(itsuhane)·ÒëµÄ¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·£¬ÖÕÓÚͨ¹ýÈËÃñÓʵç³ö°æÉç
Õýʽ³ö°æÁË¡£¿Éϲ¿ÉºØ£¬¿Éϲ¿ÉºØ¡£ÕâÀïÎÒÖ÷ÒªÏë˵һÏÂ×Ô¼ºÎªÊ²Ã´Òª
·ÒëºÍÍÆ¼ö±¾Ê飬»¹ÓжԳÌÐòÉè¼Æ¾ºÈüѧϰ×ÊÁϵÄһЩ¿´·¨¡£Ò²¸½´øÒ»
Щ¶ÔÒëÕßÐòºÍµÚ1ÕµIJ¹³ä˵Ã÷¡£
ÔÚÒëÕßÐòÖÐÎÒÒ²ÂÔ̸µ½ÁË×Ô¼º·Òë´ËÊéµÄ¶¯»ú¡£ºÍºÜ¶à¶ÁÕßÒ»Ñù£¬×
ʼµ±È»ÊDZ¼×Å×÷ÕßµÄÃûÍ·È¥µÄ£¬Èýλ×÷Õß²»µ«Êǹú¼ÊÖªÃûµÄÑ¡ÊÖ£¬¶øÇÒ
TopCoderµÄ×î¸ßrating¼ÓÆðÀ´¶¼ÆÆ9kÁË¡£¶¥¼âʵÁ¦µÄ×÷ÕßÍùÍù¿ÉÒÔÕ¾ÔÚ
¸ü¸ßµÄ¸ß¶ÈÖ¸µã½É½£¬Ò²¾Í¸ü¿ÉÄÜд³öÒ»±¾ºÃÊé¡£Ëæºó¾ÍÊǶÁµ½ÊéÖеÄ
ÄÚÈÝÁË£¬ÊéÖеľø´ó¶àÊý¶«Î÷£¬ÎÒ´ó¸Å¶¼ÔÚ¹ýÈ¥ËÄÎåÄêʱ¼äµÄÃþÅÀ¹ö´ò
ÖУ¬Öð²½Í¨¹ý¸÷ÖÖÊé¼®¡¢ÍøÂç¡¢µÀÌý;˵¡¢½âÌâ¾ÑéºÍ×ܽáÌå»áÕÆÎÕ
ÁË¡£²»¹ý»¹ÊÇÓÐһЩ¶úĿһеÄÄÚÈÝ£¬ÆäÖÐÓÐÒ»Á½¸öÎÊÌ⻹ÊÇͨ¹ýÓʼþ
µÃµ½ÁËÔ×÷ÕߵĽâ´ð£¬ÕÇÁË֪ʶ¡£µ«ÈÔÓÐÒ»ÖÖÏà¼ûºÞÍíµÄ¸Ð¾õ£¬¼ÙÈç×Ô
¼ºÔçÁ½Äê¶Áµ½´ËÊ飬Ïë±ØÄÜÉٷѲ»ÉÙ¾¢¡£´ÓÎÒ¸öÈ˵ľÀúºÍ¶ÔÖÜΧͬѧ
µÄÁ˽âÀ´¿´£¬ÕâÊÇÒ»±¾·Ç³£ÖµµÃÒý½øºÍÍÆ¼öµÄÊé¡£
µ±È»£¬ÔÚ´Ë֮ǰ¹úÄÚÒѾ³ö°æÓв»ÉÙËã·¨¾ºÈüÏà¹ØµÄÊé¼®ÁË£¬ºÜ¶àÈËÏë±ØÏ£ÍûÖªµÀÕâ±¾ÊéÓÐÊ²Ã´ÌØ±ðÖ®´¦¡£Ëã·¨¾ºÈüÏà¹ØµÄÊé¼®´óÖÂÓÐÁ½À࣬һÀàÊÇËã·¨ºÍÊýѧÀàµÄÊé¼®£¬±ÈÈç¸÷ÖÖÊý¾Ý½á¹¹½Ì²Ä¡¢ÀëÉ¢Êýѧ½Ì²Ä¡¢¡¶Ëã·¨µ¼ÂÛ¡·¡¢¡¶¾ßÌåÊýѧ¡·µÈ£¬Ò»ÀàÊÇרÃÅÕë¶ÔËã·¨¾ºÈüµÄÊé¼®£¬Æä
ÖеĴú±í¾ÍÊÇÁõÈê¼ÑËùÖøµÄ¼¸±¾Ê飬¶ø¡¶Ëã·¨ÒÕÊõÓëÐÅϢѧ¾ºÈü¡·(ºÚ
Êé)ÓÖÊÇÆäÖеĴú±í¡£×÷ÕßÖ®Ò»µÄiwiÔÚMSRAʵϰÆÚ¼äÒ²µÃÖªÁ˺ÚÊéµÄ
´óÃû¡£
Ê×ÏÈ£¬¸öÈ˾õµÃÕâЩÊé¼®´óÖ¿ÉÒÔ·ÖΪÁ½Àࣺ½Ì¿ÆÊéºÍ¹¤¾ßÊé¡£ÖîÈç
¡¶Êý¾Ý½á¹¹ÓëËã·¨·ÖÎö¡·(DSAA)Ö®ÀàµÄÊé¿ÉÒÔ×÷Ϊ½Ì¿ÆÊéµÄ´ú±í£¬¶øÖîÈç¡¶¼ÆËã»ú³ÌÐòÉè¼ÆÒÕÊõ¡·(´óÃû¶¦¶¦µÄTAOCP)ÔòºÁÎÞÒÉÎÊÊÇ
¹¤¾ßÊéµÄ´ú±í¡£´óÖµØËµ£¬Ç°Õß¼òµ¥Ò×¶®£¬ÊÊÓÚѧϰ£¬ºóÕ߸ßÉîÈ«Ãæ£¬ÊÊÓڲο¼¡£¶þÕß²¢Ã»ÓÐÃ÷ÏԵķֽçÏߣ¬ºÜ¶àʱºòȫƾÖ÷¹Û£¬ÒòÈ˶øÒì¡£
±ÈÈç˵£¬¿´¶®ÁË£¬Õâ¾ÍÊǽ̿ÆÊ飬¿´¶®Ä¿Â¼ÁË£¬Õâ¾ÍÊǹ¤¾ßÊé¡£µ±È»£¬ºÍÊýѧմ±ßÔ½¶àµÄÊ飬×ÜÊÇÔ½Äѿеģ¬ËùÒÔ¾ÍÄѶȶøÑÔ£¬ÕâÀàÊé¼®ºÍ±à
³ÌÓïÑÔÀàÊé¼®×ÔÈ»ÊÇûÓпɱÈÐÔ¡£
Ðí¶àÊé¶¼×÷Ϊ³ÌÐòÉè¼Æ¾ºÈüµÄѧϰ×ÊÁϱ»·´¸´ÍƼö£¬µ«ÊÂʵÉÏ£¬ÎÒÃÇ´ó
¸Å¿ÉÒÔ·ÂÕÕ¡¶×î³£±»³ÌÐòÔ±ÃǻѳƶÁ¹ýµÄ¼ÆËã»úÊé¼®¡·Ð´Ò»Æª¡¶×î³£±»
ACMerÃǻѳƶÁ¹ýµÄÊé¼®¡·µÄͲÛÎÄ¡£ÀïÍ·ÓÐÒ»¾ä»°ºÜÖØÒª£¬ËùÒÔÎÒÔÙ
³Ò»±é£º¡°Èç¹ûÄã×Ô¼ºÃ»ÓжÁ¹ýÕâЩ¼ÆËã»úÊé¼®£¬Çë²»ÒªÍÆ¼ö¸ø±ðÈË¡±¡£
µ±È»£¬Ïñ¡¶Ëã·¨µ¼ÂÛ¡·ÕâÑùµÄÊé¸öÈ˾õµÃ»¹ÊÇÖµµÃÒ»¶ÁµÄ£¬¶àÊýµÄÕ½Ú
²¢²»ÄÑ£¬¿ÉÒÔµ±×÷½Ì¿ÆÊ飬ºóÃæµÄһЩÄÚÈÝ¿ÉÒÔ×÷Ϊ¹¤¾ßÊéÐèҪʱÔÙ²Î
¿¼£¬ÀïÃæºÜ¶à¶«Î÷½²µÃºÜϸ£¬ÈÝÒ××öµ½ÕæÕýµÄÀí½âÎüÊÕ£¬±ÈÈç´Ó×Ô¶¯»ú
Òý³öKMP£¬µÈµÈ¡£¶øTAOCPÔòÎÞÒÉÊÇ×î³£ÌÉǹµÄ×°±ÆÉñÆ÷¡£ÓÐÒ»Ì죬ÎÒÔÚͬѧµÄ×ÀÉÏ¿´µ½Ò»±¾TAOCPµÚÒ»¾í£¬´ò¿ªÒ»¿´ºÜ»ÆºÜ±©Á¦£¬ÎÒ¸Ï
½ô¾Í°ÑËü¸ÇÉÏÁË¡£TAOCPºÜÀ÷º¦£¬¿´exponentiation by squaringÄÜÒýÓõ½
Ëü£¬¿´permanentÒ²ÄÜÒýÓõ½Ëü£¬Á¬¿´Êý¤¨ÉϤ²¤ªŠ—¤µ¤ó¶¼ÄÜÒýÓõ½
Ëü¡£¶ÁÍêTAOCPÄDZØÐëÄܱäµÃ³¬À÷º¦ÁË£¬¿ÉÄǵÃÊÇÄܶÁÍê°¡£¬¶Á²»Íê
˵ɶ¶¼°×´î¡£ËùÒÔÍÆ¼öѧϰ×ÊÁϲ»Äܹ⿴ÊéºÃ²»ºÃ£¬»¹µÃ¿´¶ÔÄ¿±êÈËȺ
ºÏ²»ºÏÊÊ¡£¶øÒ»±¾ºÃµÄ½Ì¿ÆÊ飬²»Ó¦¸ÃÊǾ¡¿ÉÄÜÌåÏÖ×÷ÕßÓжàÅ££¬¶øÊÇ
ÒªÄܹ»¾¡¿ÉÄܼòµ¥µØ°ïÖú¶ÁÕß±äµÃ¸üÅ£¡£Èç¹û¿´ÍêÁË£¬¶®µÄ»¹ÊǶ®£¬²»
¶®µÄ»¹ÊDz»¶®£¬ÄÇÊÇûÓÐÒâÒåµÄ¡£
°´ÕÕÕâ¸ö·ÖÀà±ê×¼£¬¸öÈ˾õµÃ¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·ÊÇÒ»±¾ºÜºÃµÄ½Ì¿Æ
Êé¡£Ëü·Ç³£ÊʺÏ×÷ΪÓÐÖ¾²Î¼Ó³Ì ......
×÷ÕߣºÍ¼ÁéÉçÇø³öÆ·
±¾ÊéÓɱ±¾©Í¼ÁéÎÄ»¯·¢Õ¹ÓÐÏÞ¹«Ë¾·¢ÐÐÊý×Ö°æ¡£°æÈ¨ËùÓУ¬ÇÖȨ±Ø
¾¿¡£
Äú¹ºÂòµÄͼÁéµç×ÓÊé½ö¹©Äú¸öÈËʹÓã¬Î´¾ÊÚȨ£¬²»µÃÒÔÈκη½Ê½¸´ÖÆ
ºÍ´«²¥±¾ÊéÄÚÈÝ¡£
ÎÒÃÇÔ¸ÒâÏàÐŶÁÕß¾ßÓÐÕâÑùµÄÁ¼ÖªºÍ¾õÎò£¬ÓëÎÒÃǹ²Í¬±£»¤ÖªÊ¶²úȨ¡£
Èç¹û¹ºÂòÕßÓÐÇÖȨÐÐΪ£¬ÎÒÃÇ¿ÉÄܶԸÃÓû§ÊµÊ©°üÀ¨µ«²»ÏÞÓڹرոÃÕÊ
ºÅµÈάȨ´ëÊ©£¬²¢¿ÉÄÜ×·¾¿·¨ÂÉÔðÈΡ£Ä¿Â¼
±àÕߵϰ
רÌ⣺´ÓPython¿ªÊ¼
PPPÊÇʲô£¿ºÃÍæµÄPython±à³Ì!
ΪʲôҪÓÃPythonʵÏÖ»úÆ÷ѧϰËã·¨£¿
µÚÒ»¸öº¢×ӵijöÉúʱ¼äÑо¿£º³ÌÐòÔ±µÄͳ¼ÆË¼Î¬Á·Ï°
ºÍº¢×ÓÒ»Æð×öÒ»Ö»µç×Ó³èÎï°É!
´ÓPython 3µÄbytesstrÖ®±ðѧ±àÂëUnicode
ÈçºÎ¹¹ÔìÍŶÓPython¿ª·¢»·¾³
ÈËÎï
ÂÞ³¿£ºÃÎÏëÕÕ½øÏÖʵ£¬Ò»¸ö¶ÀÁ¢¿ª·¢ÕßµÄÌïÔ°Ê«
¶Á¡¶ÂëÅ©¡· ÍÂÍÂ²Û »¹ÄÜ×¬Òø×Ó!
¼ùÐÐ
ÈçºÎ½Ì±à³Ì£¬µ±ÄãÃæ¶Ôһ˫¿ÊÍûµÄÑÛ¾¦
ÏÊÔÄ
δÀ´µÄ±à³ÌÓïÑÔ¾¿¾¹ÊÇʲôÑù£¿
°Ë++
Puppet¡ª¡ªLuke Kanies µÄ¸ÖÌúÏÀ
³ö°æµÄδÀ´
µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì
Êé°ñ
´ó¼Ò¶¼ÔÚ¶Áʲô£¿
³ÉÊéÊÖ¼Ç
ACM-ICPC¹Ú¾ü̸¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·¼°Ïà¹ØËã·¨Êé
ÉçÇø¶¯Ì¬
ÀÖÒ뿪·ÅÊ飺Python for Software Design
ͼÁé·Ã̸£º¶Ô»°Peter Harrington
ÌýÊ鼯»®£º¡¶³ÌÐòÔ±µÄ˼άÐÞÁ¶¡·
ÉçÇø½éÉÜ
·âµ×
±àÕߵϰ
´ÓPython¿ªÊ¼
±àÕß ÀîÅÎ
¶ÔÓÚÒ»ÖÖ±à³ÌÓïÑÔÀ´Ëµ£¬×îÖØÒªµÄ¾ÍÊÇÃû×ÖÁË¡£Ã»ÓкÃÃû×ÖµÄÓïÑÔÊÇ
ÎÞÂÛÈçºÎÒ²ÎÞ·¨³É¹¦µÄ¡£ÎÒ×î½ü·¢Ã÷ÁËÒ»¸ö·Ç³£°ôµÄÃû×Ö£¬ÏÖÔÚÕýÔÚ
ÕÒÄǸöºÏÊʵÄÓïÑÔ¡£
¡ª¡ªDonald Knuth(¸ßµÂÄÉ)
Python µ½µ×ΪʲôҪ½Ð×öPython(òþÉß)ÄØ£¿ PythonµÄ·¢Ã÷ÈË Guido
van Rossum˵£¬ÄÇÊÇÒòΪËûÐèÒªÒ»¸ö¼ò¶Ì¡¢¶ÀÌØ£¬»¹ÂÔ´øÓÐÉñÃØ¸ÐµÄÃû
×Ö¡£(¸ÕÇÉÄÇʱËûÕýÔÚ¿´Ò»¸ö70Äê´úµÄBBCϲ¾çÐ㣬½Ð×ö¡°¾Þòþ¾çÍŵÄ
·ÉÏèÂíÏ·ÍÅ¡±¡£)Python×÷ΪһÃűà³ÌÓïÑÔ£¬¿ÉÄÜ×îǷȱµÄ¾ÍÊÇ¡°ÉñÃØ
¸Ð¡±ÁË¡£Ëü¿ÉÒÔÊÇ¡°ºÃÍæµÄ(Playful Programming)¡±£¬Ò²¿ÉÒÔÊÇ¡°ºÃѧ
µÄ¡±(PythonÉõÖÁ¿ÉÒÔÓÃÀ´½ÌÊÚ¸øÐ¡Ñ§Éú)¡£ÍêÈ«²»¶®±à³ÌµÄÈË¿ÉÒÔ°Ñ
Python×÷Ϊ×Ô¼ºµÄµÚÒ»Ãűà³ÌÓïÑÔ£¬µ«ÊÇ£¬Õâ²¢²»Òâζ×ÅËü²»¹»Ç¿´ó¡£
¶ÔÓÚ¶®µÃPythonµÄÈËÀ´Ëµ£¬PythonicÊÇÒ»ÖÖ±à³Ì·ç¸ñ¡£Ëü³çÉÐÓÅÑÅ¡¢Ã÷
È·¡¢¼òµ¥£¬¡°Èç¹ûÄÜÓÃͬһÖÖ·½·¨À´×öÒ»¼þÊÂÇ飬ΪʲôҪ±äÀ´±äÈ¥
ÄØ£¿¡±ÕýÊÇÕâÖÖ×î´ó³Ì¶È¼ò»¯×ÔÉíµÄ˼ÏëÈÿÆÑ§½çÕÅ¿ªË«±Û»¶Ó
Python£¬ÉõÖÁ³ÆËüΪ¡°¿ÆÑ§µÄÓïÑÔ¡±¡£NumPy¡¢SciPy¡¢Matplotlib¿ÉÒÔÈÃ
Python³ÌÐòÔ±±àд¿ÆÑ§¼ÆËã³ÌÐò¡£ÖÚ¶àPythonistÒ²¿ÉÒÔ½è´Ë¿ªÆô¸ü¼ÓÓÐȤµÄѧϰÂọ́ºÊý¾Ýͳ¼Æ¡¢»úÆ÷ѧϰ¡¢¼ÆËã»ú¿ÆÑ§£¬ÉõÖÁ×ÔÈ»¿ÆÑ§¡£
¼òµ¥»á¼¤·¢³ö¸üÇ¿´óµÄ´´ÔìÁ¦Â𣿱¾ÆÚµÄÂëÅ©ÈËÎïÂÞ³¿£¬ËäÈ»²»ÊÇ
Python³ÌÐòÔ±£¬µ«ÊÇËûÉíÌåÁ¦ÐеØÊµ¼ùÁË¡°¼òµ¥¡±Õâ¼þÊ¡£ËûÒÔǰ¶Ë¹¤³Ì
ʦΪĿ±ê£¬³É¹¦µØ³ÉΪÁËÒ»ÃûÔÚÅ©³¡ÎñÅ©µÄ¶ÀÁ¢¿ª·¢ Õß¡£³çÉмòÔ¼µÄ
Markdown±à¼Æ÷Mou£¬¾ÍÊÇËûµÄ×÷Æ·Ö®Ò»¡£Ï£ÍûËûµÄÉú»î¾Àú£¬»á¸ø
ÄãÒ»¸öеĽǶȺÍһЩ²»Í¬µÄÆôʾ¡£
ÈÃÎÒÃÇ´ÓÒ»³É²»±äµÄÉú»îÖÐÕÒµ½Ò»Ð©ÐÂÏÊÔªËØ°É!ѧһÃÅеÄÓïÑÔ£¬½Ì
Ò»¸öÅóÓÑѧ»á±à³Ì£¬»òÕßΪÄãµÄ¼ÒÈ˱àдµãʲô¡£¿ÉÄÜ£¬¾Í´ÓPython¿ª
ʼ¡£×¨Ì⣺´ÓPython¿ªÊ¼PPPÊÇʲô£¿ºÃÍæµÄPython±à³Ì!
×÷Õß Magnus Lie Hetland
ŲÍþ¿Æ¼¼´óѧ¼ÆËã»ú¿ÆÑ§×¨Òµ¸±½ÌÊÚ¡£×î½üÔÚÑо¿ÏàËÆÐÔËÑË÷ºÍ¶ÈÁ¿
Ë÷Òý¡£ÖøÓС¶Python»ù´¡½Ì³Ì¡·¡¢¡¶PythonËã·¨¡·µÈ¡£ÒµÓàʱ¼ä×ö¼æ
Ö°ÑÝÔ±¡£¾³£ÊÕµ½ºÚ¿Í¹ØÓÚÇд輼ÊõµÄÓʼþ£¬´Ó²»»Ø¸´¡£
ÒëÕß˾ά
¸öÈËÈÏΪPythonµÄÇ¿´ó¹¦ÄÜÖ®Ò»£¬¾ÍÊÇËüÈñà³Ì±äµÃºÃÍæ¡ª¡ªÖÁÉÙ¶ÔÎÒ
À´ËµÊÇÕâÑù¡£Ö»Óие½±à³ÌÊÇÓÐȤµÄʱºò£¬²ÅÈÝÒ׸»ÓгÉЧ¡£Python×î
ÓÐÒâ˼µÄµØ·½Ö®Ò»¾ÍÊÇËüÄÜÈÃÄãµÄ¹¤×÷±äµÃ·Ç³£¸»ÓгÉЧ¡£ÕâÊǸöÁ¼ÐÔ
Ñ»·£¬ÔÚÉú»îÖУ¬ÕâÖÖÑ»·¿É²»¶à¡£
ºÃÍæµÄ±à³Ì(Playful Programming)ÊÇÎÒ·¢Ã÷µÄ´Ê£¬ÊǼ«ÏÞ±à³Ì
(Extreme Programming£¬Òà³ÆXP)µÄ·Ç¼«ÏÞ°æ±¾¡£XPµÄ´ó¶àÊýµã×ÓÎÒ
¶¼Ï²»¶£¬µ«ÊÇÎÒÌ«ÀÁÁË£¬²»ÄÜÍêÈ«×ñÊØËüµÄÔÔò¡£ËùÒÔÏÖÔÚÌôÁËһЩҪ
µã³öÀ´£¬½«ËüÃÇÓëPython³ÌÐò¿ª·¢µÄ×ÔÈ»·½Ê½×éºÏÆðÀ´¡£
³ÌÐòÉè¼ÆµÄÈáÊõ
¸÷λÌý˵¹ýÈáÊõÂð£¿ÕâÊÇÒ»ÖÖÈÕ±¾ÎäÊõ£¬ËüºÍËüÑÜÉú³öÀ´µÄÈáµÀÒÔ¼°ºÏ
ÆøµÀÒ»Ñù£¬¶¼×¢ÖØ·´Ó¦µÄÁéÃôÐÔ£¬»òÕß˵¡°Íä¶ø²»¶Ï¡±¡£±ÈÈüʱ£¬²»Ó¦¸Ã
ÊÔͼʹÓÃÔ¤ÏÈÉè¼ÆºÃµÄÒÆ¶¯ÃÉÆ¶ÔÊÖ£¬¶øÒªË³Æä×ÔÈ»£¬ÒÔ¶ÔÊֵ͝×÷»¹
ÖÎÆäÉí¡£ÕâÖÖ·½Ê½(ÔÚÀíÂÛÉϽ²)¿ÉÒÔ»÷°Ü±ÈÄã¸ß´ó¡¢Ç¿×³ºÍ¹îÚܵĶÔ
ÊÖ¡£ÄÇôÔõÑù½«ÈáÊõÓ¦Óõ½³ÌÐòÉè¼ÆÖÐÄØ£¿¹Ø¼üÔÚÓÚ¡°Èᡱ×Ö£¬Ò²¾ÍÊÇÁé»î
ÐÔ¡£ÔÚ±à³ÌÓöµ½Âé·³µÄʱºò(×Ü»áÓöµ½µÄ)£¬¾Í²»Ó¦¸Ã¹ÌÊØÓÚÔÀ´µÄÉè
¼ÆºÍÏë·¨£¬¶øÒªÁé»î±äͨ£¬ÒÔÈá¿Ë¸Õ¡£Òª×¼±¸ºÃÈ¥Ó¦¶ÔºÍÊÊÓ¦±ä»¯¡£²»
Òª½«Ã»ÓÐÔ¤Áϵ½µÄʼþ¿´×öÈÃÈ˾ÚÉ¥µÄÒâÍ⣬¶øÒª½«ËüÃÇ×÷Ϊ̽Ë÷еÄ
Ñ¡ÔñºÍ¿ÉÄÜÐÔµÄÆðµã¡£
Ҫ˵µÄÊÇ£¬µ±´ó¼Ò×øÏ²¢¼Æ»®Ó¦¸ÃÈçºÎ×éÖ¯³ÌÐòµÄʱºò£¬¶ÔÓÚÕâ¸ö¾ßÌå
µÄ³ÌÐò£¬Ä㻹ûÓÐÈκεľÑé¡£Ôõô¿ÉÄÜ»áÓоÑ飿±Ï¾¹Ëü»¹²»´æÔÚ
ÄØ¡£ÔÚʵÏÖ¹¦ÄܵÄʱºò£¬»áÖð½¥µØÑ§µ½¶ÔÔʼÉè¼ÆÓÐÓõÄÐÂ֪ʶ¡£²»Ó¦
¸ÃÎÞÊÓһ·×ßÀ´ËùÎüÈ¡µÄ½Ìѵ£¬¶øÓ¦¸Ã½«ËüÃÇÓÃÓÚÈí¼þµÄÖØÐÂÉè¼Æ(»ò
ÕßÖØ¹¹)ÖС£Õâ²»ÊÇ˵Ӧ¸ÃÏñÎÞÍ·²ÔÓ¬Ò»Ñù£¬ÂíÉϾͿªÊ¼×ÅÊÖ¹¤×÷¡ª¡ª
¶øÊÇ˵Ӧ¸ÃΪ¸Ä±ä¶ø×öºÃ×¼±¸£¬²¢ÇÒ½ÓÊÜ¡°×î³õµÄÉè¼Æ»áÐèÒª¸Ä½ø¡±ÕâÑù
Ò»¸ö¸ÅÄî¡£¾ÍÏñÒÔǰһλ×÷¼Ò˵µÄ¡°×«Ð´¼´ÖØÐ´¡±¡£
Áé»îÐÔµÄʵÏÖ°üÀ¨Ðí¶à·½Ã棬ÏÂÃæÊÇÆäÖеÄÁ½¸ö£º
ÔÐÍÉè¼Æ¡£Python×î°ôµÄ¹¦ÄÜÖ®Ò»¾ÍÊÇ¿ÉÒÔ¿ìËٵرàд³ÌÐò¡£±àд
ÔÐͳÌÐòÊǸü³ä·ÖµØÁ˽âÎÊÌâµÄÒ»Öֺܺõķ½·¨¡£
ÅäÖá£Áé»îÐÔÓкܶàÖÖ´æÔÚÐÎʽ¡£ÅäÖõÄÄ¿µÄ¾ÍÊÇÈóÌÐòij²¿·ÖµÄ
¸Ä±ä¸ü¼òµ¥£¬¶ÔÓÚÄãºÍÓû§À´Ëµ¶¼ÊÇÕâÑù¡£µÚÈýµãÊÇ×Ô¶¯»¯²âÊÔ¡£Èç¹ûÏ£ÍûÇáËɸıä³ÌÐòµÄ»°£¬ÄÇô×Ô¶¯»¯²âÊÔ¾ø
¶ÔÊDZز»¿ÉÉٵġ£Ê¹ÓÃԵزâÊÔ£¬¾ÍÄܱ£Ö¤ÄãµÄ³ÌÐòÔÚ½øÐÐÐ޸ĺó»¹ÄÜ
¹¤×÷¡£ÔÐÍÉè¼ÆºÍÅäÖö¼»áÔÚÏÂÃæµÄ¼¸½ÚÖÐÌÖÂÛ¡£
ÔÐÍÉè¼Æ
Ò»°ãÀ´Ëµ£¬Èç¹û¶ÔÓÚPythonµÄij¸öµØ·½²»Ã÷°×µÄ»°£¬ÄÇô³¢ÊÔһϾͺÃ
ÁË¡£Ê×ÏÈ£¬²»ÐèÒª½øÐÐ¶à·½ÃæµÄÔ¤´¦Àí¡ª¡ª±ÈÈç±àÒë»òÕßÁ´½Ó£¬¶øÕâÊÇ
ÆäËûºÜ¶àÓïÑÔËù±ØÐèµÄ¡£¿ÉÒÔÖ±½ÓÔËÐÐÄãµÄ´úÂë¡£²»Ö¹Èç´Ë¡ª¡ª»¹ÄÜÔÚ
½»»¥Ê½½âÊÍÆ÷ÀïÃæÖð¸öµØÔËÐУ¬É¨Çåÿ¸ö½ÇÂ䣬ֱµ½×Ô¼ºÍêÈ«Ã÷°×ÁËËü
µÄ¹¤×÷·½Ê½¡£
ÕâÀà̽Ë÷¹¤×÷²¢²»Ö»ÏÞÓÚÓïÑÔÌØÐÔºÍÄÚ½¨º¯Êý¡£µ±È»£¬Õâ¶ÔÓÚÁ˽âÀàËÆ
iterÕâÑùµÄº¯ÊýµÄ¹¤×÷·½Ê½ºÜÓÐÓ㬵«¸üÖØÒªµÄÊÇÇáËɵØÎªÄã×¼±¸±àд
µÄ³ÌÐò´´½¨ÔÐ͵ÄÄÜÁ¦£¬¿´¿´ËüÊÇÔõô¹¤×÷µÄ¡£
×¢Òâ ÔÚËù̸¼°ÎÊÌâµÄ±³¾°ÖУ¬ÔÐÍ(prototype)Õâ¸ö´ÊÒâζ×ÅʵÑé
ÐÔµÄʵÏÖ£¬¼´ÊµÏÖ×îÖÕ³ÌÐòÖ÷Òª¹¦ÄܵĴó¸ÅÄ£ÐÍ(mock-up)£¬µ«ÊÇ
ÔÚÒÔºóµÄ½×¶Î¿ÉÒÔÍêÈ«ÖØÐ´»ò²»ÖØÐ´ÔÓгÌÐò¡£Ò»°ãÀ´Ëµ¿ªÊ¼µÄÔÐÍ
×îºó¶¼»á±»¸Äд³ÉʵÓõijÌÐò¡£
ÔÚ½«Ò»Ð©Ë¼ÏëÈÚÈëµ½³ÌÐòµÄ½á¹¹Öкó(±ÈÈçÐèÒªÄÄЩÀàºÍº¯Êý)£¬½¨Òé
ʵÏÖÒ»¸ö¼òµ¥µÄ°æ±¾£¬Õâ¸ö°æ±¾µÄ¹¦ÄÜ¿ÉÄܷdz£ÓÐÏÞ¡£ÊµÏÖÁËÒ»¸ö¿ÉÔË
ÐеijÌÐòºó£¬¾ÍÄÜ·¢ÏÖÕâ¸ö¹ý³ÌÊǶàô¼òµ¥¡£È»ºó¿ÉÒÔÔö¼ÓÌØÐÔ¡¢¸Ä±ä
²»Ï²»¶µÄµØ·½£¬µÈµÈ¡£Ò²¿ÉÒÔ¿´¿´ËüÊÇÈçºÎ¹¤×÷µÄ£¬¶ø²»ÊÇÖ½ÉÏ̸±ø»
»Í¼±í¶øÒÑ¡£
»¹ÄÜÔÚÈκγÌÐòÉè¼ÆÓïÑÔÖÐʹÓÃÔÐÍÉè¼Æ£¬µ«ÊÇPythonµÄÇ¿´óÖ®´¦¾ÍÔÚ
ÓÚ±àдһ¸öÄ£ÐÍÖ»ÐèÒªºÜÉÙµÄͶÈ룬¶ø²»Óô󶯸ɸꡣÈç¹û·¢ÏÖµÄÉè¼Æ
²¢²»ÏñÔ¤ÆÚµÄÒ»ÑùºÃÓ㬾ͿÉÒÔÈÓµôÔÐÍ´ÓÍ·ÔÙÀ´¡£Õâ¸ö¹ý³Ì¿ÉÄÜÒª»¨
Éϼ¸¸öСʱ¡¢Ò»Ìì»òÕßÁ½Ìì¡£Èç¹ûÓÃC++±à³ÌµÄ»°£¬Òª°Ñij²¿·Ö×éÖ¯ºÃ
ÔËÐÐÆðÀ´µÄ»°¿ÉÄÜÐèÒª¸ü¶àµÄ¾«Á¦£¬¶ø·ñ¾öÔÐÍÒ²»á³ÉΪһ¸öÖØÒªµÄ¾ö
¶¨¡£¹ÌÊØÒ»¸ö°æ±¾£¬Ò²¾ÍʧȥÁËÁé»îÐÔ¡ª¡ª×¢¶¨±»ÔçÏȵľö¶¨½ûïÀס£¬¶øÔÚÕæÕýʵÏÖ³ÌÐòµÄʱºòËù»ñµÃµÄʵ¼Ê¾Ñ飬¿ÉÄÜ»áÖ¤ÊµÖØÐ´³ÌÐòµÄ¾ö
¶¨ÊÇ´íÎóµÄ¡£
ÿ¸öÏîÄ¿¶¼»á·ÖΪÁ½¸ö½×¶ÎµÄʵÏÖ¡£µÚÒ»¸öʵÏÖÖ»ÊǸöÃþË÷ÐÔÖʵÄÊÔ
Ñ飬ÔÚÕâ¸ö½×¶Î»áÆ´´Õ³öÒ»¸öÄܽâ¾öÎÊÌâ(»òÕßÊÇÎÊÌâµÄÒ»²¿·Ö)µÄ³ÌÐò£¬ÒÔ±ãÁ˽âËùÐèÒªµÄ×é¼þºÍÓÅÐã½â¾ö·½°¸µÄÐèÇó¡£ÄÜËæÊ±¿´µ½³ÌÐòµÄ
ËùÓÐç¢Â©£¬ÊÇѧϰ±à³ÌµÄ×îºÃÒ»¿Î¡£ÀûÓÃÐÂѧµ½µÄ֪ʶ£¬»á¶ÔµÚÒ»´Îʵ
ÏֵijÌÐòÒÔ¸ü¼ÓÕýʽµÄ·½Ê½½øÐÐÖØ½¨¡£µ±È»£¬´ó¼ÒÓ¦¸Ã°´×Ô¼ºµÄÏë·¨ÔÙ
¸Ä½ø´úÂ룬ÉõÖÁ¿ªÊ¼µÚÈý´ÎµÄʵÏÖ¡£Ò»°ãÀ´Ëµ£¬´ÓÍ·¿ªÊ¼Éè¼ÆËù»¨·ÑµÄ
ʱ¼ä²¢Ã»Óдó¼ÒÏëµÃÄÇô¶à¡£Èç¹ûÒѾ³¹µ×ÏëͨÁ˳ÌÐòµÄʵÓÃÐԵϰ£¬ÄÇôÇôúÂëµÄʱ¼äÓ¦¸Ã²»»áÌ«³¤¡£
¶Ô´úÂëÖØÐ´Ëµ²»
¾¡¹ÜÕâÀïÍÆ¼ö´ó¼ÒʹÓÃÔÐÍ£¬µ«ÔÚÈκÎʱºò¶ÔÓÚ´ÓÍ·¿ªÊ¼ÖØÐ´ÏîÄ¿¸ø
³öһЩ¾¯¸æÒ²ÊÇʳöÓÐÒò£¬ÓÈÆäÊǶÔÓÚÔÐÍÏÂÁ˺ܴ󹦷òµÄʱºò¡£¾Í
¶à·½ÃæÀ´½²£¬»¹ÊÇÍÆ¼ö´ó¼Ò¶ÔÔÐͽøÐÐÖØ¹¹ºÍÐ޸쬽«ÆäÍêÉÆÎª¹¦ÄÜ
ÐÔ¸üºÃµÄϵͳ¡£Ò»¸ö³£¼ûÎÊÌâ¾ÍÊÇ¡°µÚ¶þϵͳ×ÛºÏÖ¢¡±¡£ÄãÏ£ÍûµÚ¶þ¸ö
°æ±¾±äµÃ¸üºÃ£¬½á¹ûÈ´ÓÀÔ¶ÎÞ·¨Íê³É¡£
¶ø¡°³ÖÐøÖØÐ´×ÛºÏÕ÷¡±Ò²ÊÇÎÄѧ½çµÄÊõÓÖ÷Òª±íÏÖΪ¶Ô³ÌÐò½øÐÐһЩ
ÎÞÓõÄÐ޸쬳ÌÐòÔ±¿ÉÄÜ»áÒ»´ÎÓÖÒ»´ÎµØ´ÓÍ·¿ªÊ¼ÖØÐÂÉè¼Æ¡£´ÓijЩ
·½ÃæÀ´¿´£¬ÊʿɶøÖ¹¿ÉÄÜÊÇ×î¼Ñ²ßÂÔ¡ª¡ªÄܹ¤×÷×ãÒÓ¡£
È»ºó¡°´úÂëÆ£ÀÍ¡±ÏÖÏó¾Í³öÏÖÁË¡£³ÌÐòÔ±»áÑá·³´úÂ롣ʹÓÃÁ˺ܳ¤Ê±¼ä
Ö®ºó£¬¾Í»á¾õµÃ´úÂë³óªµÃ²»¿°ÈëÄ¿¡£ºÜÒź¶£¬ÓÉÓÚÐèҪǨ¾ÍºÜ¶àÌØ
ÊâÇé¿ö£¬´úÂë»á±äµÃ±¿ÖØ£¬ÆäÖл¹ÓдóÁ¿²»Í¬¸ñʽµÄ´íÎó´¦Àí´úÂë¡£
µ«ÕâЩ¶¼ÊÇа汾ÖбØÐëÒªÖØÐÂÒýÈëµÄ£¬¶øÇÒÒªºÄ·ÑÄãµÄ´óÁ¿¾«Á¦
(²»ÊÇÒÔµ÷ÊÔµÄÐÎʽ)À´Ê×ÏÈʵÏÖ¡£
»»¾ä»°Ëµ£¬Èç¹ûÈÏΪÔÐͳÌÐòÄÜÍêÉÆÎª¿ÉÒÔ¹¤×÷µÄϵͳ£¬ÄDz»¹ÜÔõô
˵¶¼Òª¼á³ÖÏÂÈ¥£¬¶ø²»ÊÇÍÆµ¹ÖØÀ´¡£ÏÂÃæµÄ¼¸ÕÂÀïÃæ£¬³ÌÐòµÄ¿ª·¢±»
Ã÷È··ÖΪÁ½¸ö°æ±¾£ºÔÐͺÍ×îÖÕ°æ±¾¡£Õâô×ö¼ÈÊÇΪÁËÇåÎú£¬Ò²ÊÇΪ
ÁËÇ¿µ÷±àдµÚÒ»°æÈí¼þµÄʱºòËù»ñµÃµÄ¾ÑéºÍ¶´²ìÁ¦¡£ÔÚÏÖʵÊÀ½ç
ÖУ¬ÒÔÔÐͺ͡°Öع¹×ÔÉí¡±×÷Ϊ×îÖÕϵͳµÄÖ¸µ¼Ë¼Ï뻹ÊǺܿ¿Æ×µÄ¡£
¶ÔÓÚ´ÓÍ·¿ªÊ¼µÄ¿ÉÅÂÖ®´¦£¬Çë²Î¼ûJoel SpolskyµÄÎÄÕ¡°Things You
Should Never Do£¬Part 1¡±(ÄãÓÀ²»¸Ã×öµÄÊ£¬µÚÒ»²¿·Ö)(¿ÉÒÔÔÚËû
µÄÍøÕ¾http:joelonsoftware.comÉÏÕÒµ½)¡£¸ù¾ÝSpolskyµÄ˵·¨£¬´ÓÍ·
д´úÂëÊÇÈκÎÈí¼þ¹«Ë¾¶¼»á·¸ÏµÄ×îÔã¸âµÄ¾ö²ßÐÔ´íÎó¡£
ÅäÖóéÏóµÄÖØÒªÔÔò£ºÒ»ÖÖ¸ü¼Ó¼òµ¥µÄÔÚ³ÌÐòÖÐÒýÈë³éÏóµÄ·½·¨£º´Ó´úÂëÖÐ
ÌáÈ¡·ûºÅ»¯³£Á¿(symbolic constant)¡£
ÌáÈ¡³£Á¿
Ç°ÃæËù˵µÄ³£Á¿(constant)Ö¸µÄÊÇÄÚ½¨µÄ×ÖÃæÁ¿£¬ÀýÈçÊý×Ö¡¢×Ö·û´®
ºÍÁÐ±í¡£ÔÚ³ÌÐòÖÐÕâЩ³£Á¿²»ÓÃÖØ¸´±àд£¬·ÅÖÃÔÚÈ«¾Ö±äÁ¿Öм´¿É¡£Ëä
Ȼ֮ǰµÄÕ½ÚÌÖÂÛ¹ýʹÓÃÈ«¾Ö±äÁ¿µÄ»µ´¦£¬µ«ÊÇÕâÖÖ»µ´¦Ò»°ãÖ»ÓÐÔÚÈ«
¾Ö±äÁ¿±»¸Ä±äµÄʱºò²Å»áÌåÏÖ³öÀ´£¬ÒòΪ³ÌÐòÔ±¿ÉÄÜÄÑÒÔ×·×ÙÄĶδúÂë
ÒýÆðÁËÄĸö¸Ä±ä¡£ÎÒ²»»á´¦ÀíÕâЩ±äÁ¿£¬ÔÚʹÓÃʱ°ÑËüÃǵ±×ö³£Á¿(Ò²
¾ÍÊÇÊõÓï·ûºÅ»¯³£Á¿)¾Í¿ÉÒÔÁË¡£ÎªÁ˱êʶ±äÁ¿ÊÇ×÷Ϊ·ûºÅ»¯³£Á¿¶Ô´ý
µÄ£¬¿ÉÒÔʹÓÃÌØÊâµÄÃüÃû¹æÔò¡ª¡ªÃû×ÖÖ»Óôóд×Öĸ£¬²¢ÇÒÓÃÏ»®Ïß·Ö
¸ôÿ¸öµ¥´Ê¡£
ÏÈÀ´¿´¸öÀý×Ó¡£ÔÚ¼ÆËãÔ²Ãæ»ýºÍÖܳ¤µÄ³ÌÐòÖУ¬Ã¿´ÎÐèÒª¦ÐÖµµÄʱºò¶¼
µÃдһ±é3.14¡£ÄÇôÈç¹ûºóÀ´ÐèÒª¸ü¾«È·µÄÖµ£¬±ÈÈç3.14159ʱ£¬ÓÖÔõô
°ìÄØ£¿¹À¼Æ¾ÍµÃËÑË÷Õû¸ö´úÂ룬ȻºóÓÃеÄÖµÌæ»»¾ÉµÄ¡£Õâô×ö²»ÄÑ£¬¶øÇҺܶàÓÅÐãµÄÎı¾±à¼Æ÷»¹ÄÜ×Ô¶¯Ìæ»»¡£µ«ÊÇÈç¹û¿ªÊ¼ÓõÄÖµÊÇ3Ôõ
ô°ì£¿×ܲ»ÄܰÑËùÓÐÓë3Æ¥ÅäµÄÊý×Ö¶¼Ìæ»»³É3.14159°É£¿µ±È»²»ÄÜ¡£´¦
ÀíÕâ¸öÎÊÌâ¸üºÃµÄ·½·¨ÊÇÓÃÏÂÃæÕâÐдúÂ뿪ʼ³ÌÐò£ºPI = 3.14£¬È»ºóʹ
ÓÃÃû×ÖPIÌæ´úÊý×Ö±¾Éí¡£ÕâÑùÒ»À´Èç¹ûÔÚÒÔºóÒª¸ü¾«È·µÄֵʱ£¬¸Ä¶¯Õâ
Ò»ÐоͿÉÒÔÁË¡£¼ÇסÕâÒ»µã£ºËùдµÄ³£Á¿(±ÈÈçÊý×Ö42»òÕß×Ö·û
´®¡°Hello, world!¡±)³öÏÖ´ÎÊý¶àÓÚÒ»´ÎµÄʱºò£¬¾ÍÓ¦¸Ã¿¼Âǽ«Ëü·ÅÈëÈ«
¾Ö±äÁ¿ÖС£
×¢Òâ ÊÂʵÉÏ£¬¦ÐµÄÖµ¿ÉÒÔÔÚmathÄ£¿éÖÐÕÒµ½£¬Ê¹ÓÃmath.pi¼´¿É£º
>> from math import pi
>> pi
3.1415926535897931
ÕâÒ»µã¿´ÆðÀ´ºÜÈÝÒ×Àí½â¡ª¡ªÃ»ÎÊÌâ¡£ÕæÕýµÄÄ¿µÄÔÚÏÂÃæ£ºÅäÖÃÎļþ¡£
ÅäÖÃÎļþ
Ϊ×Ô¼ºÊ¹Ó÷½±ãÌáÈ¡³£Á¿ÊÇÒ»ÂëÊ£¬»¹Òª¿¼ÂÇÓÐЩ³£Á¿ÊÇÒª¹«¿ª¸øÓû§
µÄ¡£±ÈÈçÓû§²»Ï²»¶GUI³ÌÐòµÄ±³¾°É«£¬Äã¾ÍÓ¦¸ÃÔÊÐíËûÃÇ»»ÁíÍâÒ»ÖÖ
ÑÕÉ«¡£»òÕß¿ÉÒÔÈÃÓû§ÔÚÆô¶¯ÄǺÃÍæµÄÓÎϷʱ£¬¿´µ½ËûÃÇ×Ô¼ºÉ趨µÄÎʺòÓÒÖ»òÊÇ¿ÉÒÔÔÚ¸Õ¸ÕʵÏÖµÄä¯ÀÀÆ÷Öиü¸ÄĬÈÏÆô¶¯Ò³¡£
ÕâÀï²»Êǽ«ÕâЩÅäÖñäÁ¿·ÅÔÚÄ£¿éµÄ¿ªÍ·£¬¶øÊǽ«ËüÃÇ·ÅÔÚµ¥¶ÀµÄÎļþ
ÖС£ÊµÏÖÕâ¸ö¹¦ÄܵÄ×î¼òµ¥·½·¨¾ÍÊÇΪÅäÖô´½¨µ¥¶ÀµÄÄ£¿é¡£ÀýÈ磬Èç
¹ûPIÔÚÄ£¿éÎļþconfig.pyÖÐÉ趨£¬Äã¿ÉÒÔ(ÔÚÖ÷³ÌÐòÄÚ)ÕâÑù×ö£º
from config import PI
Èç¹ûÓû§Ïë¸Ä±äPIµÄÖµ£¬ÄÇôËû¾ÍÖ»ÒªÐÞ¸Äconfig.py¾ÍÐУ¬¶ø²»Óÿ´Íê
ËùÓдúÂë¡£
¾¯¸æ ʹÓÃÅäÖÃÎļþ¾ßÓÐÁ½ÃæÐÔ¡£Ò»·½Ã棬ÅäÖù¦ÄܺÜÓÐÓ㬵«¶ÔÕû
¸öÏîĿʹÓü¯ÖС¢¹²ÏíµÄ±äÁ¿¿â»áÈÃÏîÄ¿µÄÄ£¿éÐÔϽµ¡¢ÕûÌåÐÔÉÏ
Éý¡£Ò»¶¨ÒªÈ·±£Ã»ÓÐÆÆ»µ³éÏó(±ÈÈç·â×°)¹æÔò¡£
ÁíÍâÒ»ÖÖ·½·¨ÊÇʹÓñê×¼¿âÄ£¿éConfigParser£¬ËüµÄ×÷ÓÃÊǶÔÅäÖÃÎļþ
ʹÓÃÊʵ±µÄ±ê×¼¸ñʽ¡£Ëü½ÓÊܱê×¼µÄPython¸³ÖµÓï·¨£¬±ÈÈçÈçÏÂÐÎʽ£º
greeting = 'Hello, world!'
(ÕâÑùÓï¾ä»áÔÚµÄ×Ö·û´®ÖмÓÉÏÁ½¸ö¶àÓàµÄË«ÒýºÅ)ÁíÍâÒ»ÖÖÔںܶà³Ì
ÐòÖÐʹÓõÄÅäÖøñʽÈçÏ£º
greeting: Hello, world!
ÐèҪʹÓÃ[files]»òÕß[colors]ÕâÑùµÄÊý¾ÝÍ·½«ÅäÖÃÎļþ»®·ÖΪ¼¸¸öÇø¶Î
(section)¡£Ãû³Æ¿ÉÒÔËæÒâÉ趨£¬µ«ÊÇÐèÒª½«ËüÃÇÓ÷½À¨ºÅÀ¨ÆðÀ´¡£´ú
ÂëÇåµ¥1ÊÇÒ»¸ö¼òµ¥µÄÅäÖÃÎļþʾÀý£¬Ê¹ÓÃËüµÄ³ÌÐòÈç´úÂëÇåµ¥2Ëùʾ¡£
ÓйØConfigParserÄ£¿éÌØÐԵĸü¶àÐÅÏ¢£¬¿ÉÒÔ²éÔÄ¿âÎĵµ¡£
´úÂëÇåµ¥1 ¼òµ¥µÄÅäÖÃÎļþ
[numbers]
pi: 3.1415926535897931
[messages]`
greeting: Welcome to the area calculation program!
question: Please enter the radius:
result_message: The area is´úÂëÇåµ¥2 ʹÓÃConfigParserµÄ³ÌÐò from ConfigParser import
ConfigParser
CONFIGFILE = python.txt
config = ConfigParser
¶ÁÈ¡ÅäÖÃÎļþ£º
config.read(CONFIGFILE)
´òÓ¡³õʼµÄÎʺòÓ
Òª²é¿´µÄÇø¶ÎÊÇ'messages'
print config.get('messages', 'greeting')
ʹÓÃÅäÖÃÎļþµÄÒ»¸öÎÊÌâ¶ÁÈ¡°ë¾¶£º
radius = input(config.get('messages', 'question') + ' ')
´òÓ¡ÅäÖÃÎļþÖеĽá¹ûÐÅÏ¢¡£
ÒÔ¶ººÅ½áÊø£¬ÒÔÔÚͬһÐÐÏÔʾ£º
print config.get('messages', 'result_message'), getfloat½«configֵת»»ÎªfloatÀàÐÍ£º
print config.getfloat('numbers', 'pi') radius2
¶ÔÓÚ½ÓÏÂÀ´¼¸¸öÏîÄ¿µÄÅäÖò»ÔÙ׸Êö£¬µ«Êǽ¨Òé¶ÁÕßÈÃ×Ô¼ºµÄ³ÌÐò¾ßÓÐ
¸ßÅäÖÃÐÔ¡£ÕâÑùÒ»À´£¬Óû§¾Í¿ÉÒÔ°´ÕÕ×Ô¼ºµÄϰ¹ßʹÓóÌÐò£¬Ê¹ÓÃʱҲ
»áÐÄÇéÓäÔᣱϾ¹Ê¹ÓÃÈí¼þ¹ý³ÌÖÐ×î´óµÄ´ìÕÛÖ®Ò»¾ÍÊDz»ÄÜÈÃÈí¼þ°´×Ô
¼ºÏëÒªµÄ·½Ê½¹¤×÷¡£
¡¶Python»ù´¡½Ì³Ì(µÚ2°æ)¡·Ç°¼¸Õ¶¼ÔÚ½éÉÜ×î»ù±¾µÄ³ÌÐòÉè¼ÆÀí
ÄÀýÈ缫ÏÞ±à³Ì¡¢ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ£¬¶ÔÓÚûÓжàÉÙ¿ª·¢¾Ñé»òÕß×¼±¸ÒÔPython½øÐбà³ÌÈëÃŵÄÐÂÊÖÀ´Ëµ£¬ÕâЩÕ½ÚÔòÊDz»ÈÝ´í¹ýµÄ¡£×÷Õß
¶ÔPythonÓïÑԵĸ÷¸ö·½ÃæµÄÆÊÎö׼ȷ¶øµ½Î»£¬¸÷²¿·Ö»á»¨Éϲ»Í¬Æª·ùÈ·
±£¶ÁÕßÀí½â¶øÓÖ²»»áÀË·Ñʱ¼ä¡£±¾Êé×îºóµÄ10¸öÏîÄ¿¶¼ÊÇÄѵõÄÁ·ÊÖ»ú
»á¡ª¡ªÕâÒ²ÊDZ¾Ê鲻ͬÓÚÆäËûPython½Ì³ÌµÄÌØÉ«Ö®Ò»¡£Õâ10¸öÏîÄ¿»ù±¾
¸²¸ÇÁËÇ°ÃæÕ½ÚËùÌáµ½µÄ¸÷ÖÖ֪ʶµã£¬Í¬Ê±ÓÖ²»·¦È¤Î¶ÐÔºÍʵÓÃÐÔ¡£±¾
ÎÄÕª×Ô¡¶Python»ù´¡½Ì³Ì(µÚ2°æ)¡·¡£ÎªÊ²Ã´ÒªÓÃPythonʵÏÖ»úÆ÷ѧϰËã·¨£¿
×÷Õß Peter Harrington
ÓµÓÐµçÆø¹¤³ÌѧʿºÍ˶ʿѧ룬ËûÔø¾ÔÚÃÀ¹ú¼ÓÖݺÍÖйúµÄÓ¢ÌØ¶û¹«
˾¹¤×÷7Äê¡£PeterÓµÓÐ5ÏîÃÀ¹úרÀû£¬ÔÚÈýÖÖѧÊõÆÚ¿¯ÉÏ·¢±í¹ýÎÄÕ¡£
ËûÏÖÔÚÊÇZillabyte¹«Ë¾µÄÊ×ϯ¿ÆÑ§¼Ò£¬ÔÚ¼ÓÈë¸Ã¹«Ë¾Ö®Ç°£¬ËûÔøµ£ÈÎ2
ÄêµÄ»úÆ÷ѧϰÈí¼þ¹ËÎÊ¡£PeterÔÚÒµÓàʱ¼ä»¹²Î¼Ó±à³Ì¾ºÈüºÍ½¨Ôì3D
´òÓ¡»ú¡£
ÒëÕßÇúÑǶ«
ÔÚд×÷¡¶»úÆ÷ѧϰʵս¡·Ê±£¬ÎÒΪʲôҪѡÔñPython×÷ΪʵÏÖ»úÆ÷ѧϰ
Ëã·¨µÄ±à³ÌÓïÑÔÄØ£¿ÆäÔÒòÖ÷Òª¿ÉÒÔ¹éÄÉΪÒÔÏÂÈýÌõ£º(1) PythonµÄÓï
·¨ÇåÎú£»(2) Ò×ÓÚ²Ù×÷´¿Îı¾Îļþ£»(3) ʹÓù㷺£¬´æÔÚ´óÁ¿µÄ¿ª·¢ÎÄ
µµ¡£
¿ÉÖ´ÐÐα´úÂë
Python¾ßÓÐÇåÎúµÄÓï·¨½á¹¹£¬´ó¼ÒÒ²°ÑËü³Æ×÷¿ÉÖ´ÐÐα´úÂë
(executable pseudo-code)¡£Ä¬Èϰ²×°µÄPython¿ª·¢»·¾³ÒѾ¸½´øÁ˺Ü
¶à¸ß¼¶Êý¾ÝÀàÐÍ£¬ÈçÁÐ±í¡¢Ôª×é¡¢×ֵ䡢¼¯ºÏ¡¢¶ÓÁеȣ¬ÎÞÐè½øÒ»²½±à
³Ì¾Í¿ÉÒÔʹÓÃÕâЩÊý¾ÝÀàÐ͵IJÙ×÷¡£Ê¹ÓÃÕâЩÊý¾ÝÀàÐÍʹµÃʵÏÖ³éÏóµÄ
Êýѧ¸ÅÄî·Ç³£¼òµ¥¡£´ËÍ⣬¶ÁÕß»¹¿ÉÒÔʹÓÃ×Ô¼ºÊìϤµÄ±à³Ì·ç¸ñ£¬ÈçÃæ
Ïò¶ÔÏó±à³Ì¡¢ÃæÏò¹ý³Ì±à³Ì¡¢»òÕߺ¯Êýʽ±à³Ì¡£²»ÊìϤPythonµÄ¶ÁÕß¿É
ÒÔ²ÎÔĸ½Â¼A£¬¸Ã¸½Â¼Ïêϸ½éÉÜÁËPythonÓïÑÔ¡¢PythonʹÓõÄÊý¾ÝÀàÐÍ
ÒÔ¼°°²×°Ö¸ÄÏ¡£PythonÓïÑÔ´¦ÀíºÍ²Ù×÷Îı¾Îļþ·Ç³£¼òµ¥£¬·Ç³£Ò×ÓÚ´¦Àí·ÇÊýÖµÐÍÊý
¾Ý¡£PythonÓïÑÔÌṩÁ˷ḻµÄÕýÔò±í´ïʽº¯ÊýÒÔ¼°ºÜ¶à·ÃÎÊWebÒ³ÃæµÄ
º¯Êý¿â£¬Ê¹µÃ´ÓHTMLÖÐÌáÈ¡Êý¾Ý±äµÃ·Ç³£¼òµ¥Ö±¹Û¡£
Python±È½ÏÁ÷ÐÐ
PythonÓïÑÔʹÓù㷺£¬´úÂë·¶ÀýÒ²ºÜ¶à£¬±ãÓÚ¶ÁÕß¿ìËÙѧϰºÍÕÆÎÕ¡£´Ë
Í⣬ÔÚ¿ª·¢Êµ¼ÊÓ¦ÓóÌÐòʱ£¬Ò²¿ÉÒÔÀûÓ÷ḻµÄÄ£¿é¿âËõ¶Ì¿ª·¢ÖÜÆÚ¡£
ÔÚ¿ÆÑ§ºÍ½ðÈÚÁìÓò£¬PythonÓïÑԵõ½Á˹㷺ӦÓá£SciPyºÍNumPyµÈÐí
¶à¿ÆÑ§º¯Êý¿â¶¼ÊµÏÖÁËÏòÁ¿ºÍ¾ØÕó²Ù×÷£¬ÕâЩº¯Êý¿âÔö¼ÓÁË´úÂëµÄ¿É¶Á
ÐÔ£¬Ñ§¹ýÏßÐÔ´úÊýµÄÈ˶¼¿ÉÒÔ¿´¶®´úÂëµÄʵ¼Ê¹¦ÄÜ¡£ÁíÍ⣬¿ÆÑ§º¯Êý¿â
SciPyºÍNumPyʹÓõײãÓïÑÔ(CºÍFortran)±àд£¬Ìá¸ßÁËÏà¹ØÓ¦ÓóÌÐò
µÄ¼ÆËãÐÔÄÜ¡£
PythonµÄ¿ÆÑ§¹¤¾ß¿ÉÒÔÓë»æÍ¼¹¤¾ßMatplotlibÐͬ¹¤×÷¡£Matplotlib¿ÉÒÔ
»æÖÆ2D¡¢3DͼÐΣ¬Ò²¿ÉÒÔ´¦Àí¿ÆÑ§Ñо¿Öо³£Ê¹Óõ½µÄͼÐΡ£
Python¿ª·¢»·¾³»¹ÌṩÁ˽»»¥Ê½shell»·¾³£¬ÔÊÐíÓû§¿ª·¢³ÌÐòʱ²é¿´ºÍ
¼ì²â³ÌÐòÄÚÈÝ¡£
Python¿ª·¢»·¾³½«À´»¹»á¼¯³ÉPylabÄ£¿é£¬Ëü½«NumPy¡¢SciPyºÍ
MatplotlibºÏ²¢ÎªÒ»¸ö¿ª·¢»·¾³¡£ÔÚ±¾ÎÄд×÷ʱ£¬Pylab»¹Ã»Óв¢Èë
Python»·¾³£¬µ«ÊDz»Ô¶µÄ½«À´ÎÒÃǿ϶¨¿ÉÒÔÔÚPython¿ª·¢»·¾³ÕÒµ½Ëü¡£
PythonÓïÑÔµÄÌØÉ«
ÖîÈçMATLABºÍMathematicaµÈ¸ß¼¶³ÌÐòÓïÑÔÒ²ÔÊÐíÓû§Ö´ÐоØÕó²Ù
×÷£¬MATLABÉõÖÁ»¹ÓÐÐí¶àÄÚǶµÄÌØÕ÷¿ÉÒÔÇáËɵع¹Ôì»úÆ÷ѧϰӦ
Ó㬶øÇÒMATLABµÄÔËËãËÙ¶ÈÒ²ºÜ¿ì¡£È»¶øMATLABµÄ²»×ãÖ®´¦ÊÇÈí
¼þ·ÑÓÃÌ«¸ß£¬µ¥¸öÈí¼þÊÚȨ¾ÍÒª»¨·ÑÊýǧÃÀÔª¡£ËäȻҲÓÐÊʺÏ
MATLABµÄµÚÈý·½²å¼þ£¬µ«ÊÇûÓÐÒ»¸öÓÐÓ°ÏìÁ¦µÄ´óÐÍ¿ªÔ´ÏîÄ¿¡£
JavaºÍCµÈÇ¿ÀàÐͳÌÐòÉè¼ÆÓïÑÔÒ²ÓоØÕóÊýѧ¿â£¬È»¶ø¶ÔÓÚÕâЩ³ÌÐòÉè
¼ÆÓïÑÔÀ´Ëµ£¬×î´óµÄÎÊÌâÊǼ´Ê¹Íê³É¼òµ¥µÄ²Ù×÷Ò²Òª±àд´óÁ¿µÄ´úÂë¡£
³ÌÐòÔ±Ê×ÏÈÐèÒª¶¨Òå±äÁ¿µÄÀàÐÍ£¬¶ÔÓÚJavaÀ´Ëµ£¬Ã¿´Î·â×°ÊôÐÔʱ»¹Ðè
ҪʵÏÖgetterºÍsetter·½·¨¡£ÁíÍ⻹Ҫ¼Ç×ÅʵÏÖ×ÓÀ࣬¼´Ê¹²¢²»ÏëʹÓÃ×ÓÀ࣬Ҳ±ØÐëʵÏÖ×ÓÀà·½·¨¡£ÎªÁËÍê³ÉÒ»¸ö¼òµ¥µÄ¹¤×÷£¬ÎÒÃDZØÐ뻨·Ñ´ó
Á¿Ê±¼ä±àдÁ˺ܶàÎÞÓÃÈß³¤µÄ´úÂë¡£PythonÓïÑÔÔòÓëJavaºÍCÍêÈ«²»
ͬ£¬ËüÇåÎú¼òÁ·£¬¶øÇÒÒ×ÓÚÀí½â£¬¼´Ê¹²»ÊDZà³ÌÈËÔ±Ò²Äܹ»Àí½â³ÌÐòµÄ
º¬Ò壬¶øJavaºÍC¶ÔÓڷDZà³ÌÈËÔ±ÔòÏñÌìÊéÒ»ÑùÄÑÓÚÀí½â¡£
ËùÓÐÈËÔÚСѧ¶þÄê¼¶ÒѾѧ»áÁËд×÷£¬È»¶ø´ó¶àÊýÈ˱ØÐë´ÓÊÂÆäËû¸ü
ÖØÒªµÄ¹¤×÷¡£
¡ª¡ª±«±È¡¤ÄÎÌØ
Ò²ÐíijһÌ죬ÎÒÃÇ¿ÉÒÔÔÚÕâ¾ä»°Öн«¡°Ð´×÷¡±Ìæ´úΪ¡°±àд´úÂ롱£¬ËäÈ»ÓÐ
ЩÈ˶ÔÓÚ±àд´úÂëºÜ¸ÐÐËȤ£¬µ«ÊǶÔÓÚ´ó¶àÊýÈËÀ´Ëµ£¬±à³Ì½öÊÇÍê³ÉÆä
ËûÈÎÎñµÄ¹¤¾ß¶øÒÑ¡£PythonÓïÑÔÊǸ߼¶±à³ÌÓïÑÔ£¬ÎÒÃÇ¿ÉÒÔ»¨·Ñ¸ü¶àµÄ
ʱ¼ä´¦ÀíÊý¾ÝµÄÄÚÔÚº¬Ò壬¶øÎÞÐ뻨·ÑÌ«¶à¾«Á¦½â¾ö¼ÆËã»úÈçºÎµÃµ½Êý
¾Ý½á¹û¡£PythonÓïÑÔʹµÃÎÒÃǺÜÈÝÒ×±í´ï×Ô¼ºµÄÄ¿µÄ¡£
PythonÓïÑÔµÄȱµã
PythonÓïÑÔΨһµÄ²»×ãÊÇÐÔÄÜÎÊÌâ¡£Python³ÌÐòÔËÐеÄЧÂʲ»ÈçJava»ò
ÕßC´úÂë¸ß£¬µ«ÊÇÎÒÃÇ¿ÉÒÔʹÓÃPythonµ÷ÓÃC±àÒëµÄ´úÂë¡£ÕâÑù£¬ÎÒÃǾÍ
¿ÉÒÔͬʱÀûÓÃCºÍPythonµÄÓŵ㣬Ö𲽵ؿª·¢»úÆ÷ѧϰӦÓóÌÐò¡£ÎÒÃÇ
¿ÉÒÔÊ×ÏÈʹÓÃPython±àдʵÑé³ÌÐò£¬Èç¹û½øÒ»²½ÏëÒªÔÚ²úÆ·ÖÐʵÏÖ»úÆ÷
ѧϰ£¬×ª»»³ÉC´úÂëÒ²²»À§ÄÑ¡£Èç¹û³ÌÐòÊǰ´ÕÕÄ£¿é»¯ÔÔò×éÖ¯µÄ£¬ÎÒ
ÃÇ¿ÉÒÔÏȹ¹Ôì¿ÉÔËÐеÄPython³ÌÐò£¬È»ºóÔÙÖð²½Ê¹ÓÃC´úÂëÌæ»»ºËÐÄ´ú
ÂëÒԸĽø³ÌÐòµÄÐÔÄÜ¡£C++ Boost¿â¾ÍÊʺÏÍê³ÉÕâ¸öÈÎÎñ£¬ÆäËûÀàËÆÓÚ
CythonºÍPyPyµÄ¹¤¾ßÒ²¿ÉÒÔ±àдǿÀàÐ͵ÄPython´úÂ룬¸Ä½øÒ»°ãPython
³ÌÐòµÄÐÔÄÜ¡£
Èç¹û³ÌÐòµÄËã·¨»òÕß˼ÏëÓÐȱÏÝ£¬ÔòÎÞÂÛ³ÌÐòµÄÐÔÄÜÈçºÎ£¬¶¼ÎÞ·¨µÃµ½
ÕýÈ·µÄ½á¹û¡£Èç¹û½â¾öÎÊÌâµÄ˼Ïë´æÔÚÎÊÌ⣬ÄÇôµ¥´¿Í¨¹ýÌá¸ß³ÌÐòµÄ
ÔËÐÐЧÂÊ£¬À©Õ¹Óû§¹æÄ£¶¼ÎÞ·¨½â¾öÕâ¸öºËÐÄÎÊÌâ¡£´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬Python¿ìËÙʵÏÖϵͳµÄÓÅÊÆ¾Í¸ü¼ÓÃ÷ÏÔÁË£¬ÎÒÃÇ¿ÉÒÔ¿ìËٵؼìÑéËã·¨»ò
Õß˼ÏëÊÇ·ñÕýÈ·£¬Èç¹ûÐèÒª£¬ÔÙ½øÒ»²½ÓÅ»¯´úÂë¡£
¡¶»úÆ÷ѧϰʵս¡·ÔÚamazon.comµÄ»úÆ÷ѧϰƷÀàÖÐÅÅÃû16£¬Êý¾ÝÍÚ¾òÆ·
ÀàÖÐÅÅÃû24¡£×÷ÕßPeter HarringtonÊÇÓ¢ÌØ¶ûǰÈ餳Ìʦ£¬ÓµÓÐ5ÏîÃÀ¹úר
ÀûȨ£¬ÔøÔÚѧÊõ¿¯ÎïÉÏ·¢±í¹ý¶àƪÎÄÕ¡£±¾Êé¹²ËIJ¿·Ö£¬½²Êö¼à¶½Ñ§Ï°
ºÍÎ޼ලѧϰ£¬Éæ¼°k½üÁÚËã·¨¡¢¾ö²ßÊ÷¡¢ÆÓËØ±´Ò¶Ë¹Ëã·¨¡¢Ö§³ÖÏòÁ¿
»ú¡¢AdaBoostËã·¨¡¢k¾ùÖµ¡¢·ÖÀà»Ø¹éÊ÷µÈÊ®¼¸ÖÖËã·¨£¬½²ÊöÿÖÖËã·¨
ʱ¶¼ÅäÓоßÌåʾÀý¡£±¾ÎÄÕª×Ô¡¶»úÆ÷ѧϰʵս¡·¡£µÚÒ»¸öº¢×ӵijöÉúʱ¼äÑо¿£º³ÌÐòÔ±µÄͳ¼ÆË¼Î¬
Á·Ï°
×÷Õß Allen Downey
Allen B. DowneyÊǸ»À¼¿ËÁÖÅ·ÁÖ¹¤³ÌѧԺµÄ¼ÆËã»ú¿ÆÑ§¸±½ÌÊÚ£¬ÔøÖ´
½ÌÓÚΤ¶û˹ÀûѧԺ¡¢¿Æ¶û±ÈѧԺºÍ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУ¡£ËûÏȺó»ñÂé
Ê¡Àí¹¤Ñ§Ôº¼ÆËã»ú¿ÆÑ§Ë¶Ê¿Ñ§Î»ºÍ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУ¼ÆËã»ú¿ÆÑ§²©
ʿѧλ¡£DowneyÒѳö°æÊ®Óà±¾¼¼ÊõÊ飬ÄÚÈÝÉæ¼°Java¡¢Python¡¢C++¡¢¸ÅÂÊͳ¼ÆµÈ¡£ËûÊÇ×ÔÓÉÊé¼®µÄ³«µ¼Õߣ¬Ò²ÊÇGoogle¹«Ë¾Ç°¿Í×ù
¿ÆÑ§¼Ò¡£ËûµÄ×îÐÂThinkϵÁÐÊ黹ÓÐThink Complexity, Think Python
µÈ¡£
ÒëÕß ÕŽ£·æ¡¢³Â¸Ö
Èç¹ûÔÚGoogleÉÏËÑË÷Õâ¸öÎÊÌ⣬Äã»á¿´µ½´óÁ¿µÄÏà¹ØÌÖÂÛ¡£ÓÐЩÈË˵ȷ
ʵÈç´Ë£¬Ò²ÓÐÈË˵Õâû¸ù¾Ý£¬»¹ÓÐÈ˳ÖÍêÈ«Ïà·´µÄ¹Ûµã£ºµÚÒ»¸öº¢×Ó»á
ÔÚÔ¤²úÆÚ֮ǰ³öÉú¡£
ÔÚÕâÀàÌÖÂÛÖУ¬ÈËÃÇ»áÓø÷ÖÖÊý¾ÝÀ´Ö¤Ã÷×Ô¼ºµÄ˵·¨£¬³£¼ûµÄÀý×ÓÈç
Ï¡£
¡°ÎÒÓÐÁ½¸öÅóÓÑ×î½ü¶¼¸ÕÉúÁ˵ÚÒ»¸öº¢×Ó£¬Á½¸ö±¦±¦µÄ³öÉúʱ¼ä¶¼±È
Ô¤²úÆÚÍíÁ˲¶àÁ½ÖÜ¡£¡±
¡°ÎҵĵÚÒ»¸öº¢×ÓÍíÁËÁ½ÖܲųöÉú£¬ÎÒÏëÎҵĵڶþ¸öº¢×Ó»áÌáǰÁ½
ÖÜ¡£¡±
¡°ÎÒ¾õµÃÕâûµÀÀí£¬ÒòΪÎÒ½ã½ãÊÇÎÒÂèÂèµÄµÚÒ»¸öº¢×Ó£¬Ëý¾ÍÌáǰ³öÉúÁË£¬Îҵö±í½ãÒ²Ò»Ñù¡£¡±
ÖîÈç´ËÀàµÄ´«ÎųÆÎª¾Ñé̸֮(anecdotal evidence)£¬ÒòΪËüÃÇ»ùÓÚ·Ç
¹«¿ª·¢±íµÄÊý¾Ý£¬¶øÇÒͨ³£ÊǸöÈ˸ÐÊÜ¡£ÔÚ·ÇÕýʽ³¡ºÏ£¬ÕâÀà˵´ÇûÎÊ
Ì⣬ËùÒÔÕâÀï²¢²»ÊÇ˵ÉÏÊö¹Ûµã²»¶Ô¡£ÎÊÌâÔÚÓÚ£¬ÎÒÃÇÐèÒª¸üÓÐ˵·þÁ¦
µÄÖ¤¾ÝºÍ¸ü¿É¿¿µÄ½áÂÛ¡£µ«ÕâЩ¾Ñé̸֮ÏÔÈ»×ö²»µ½ÕâÒ»µã£¬ÔÒòÈç
Ï¡£
¹Û²ìµÄÊýÁ¿Ì«ÉÙ
µÚһ̥±¦±¦µÄÈÑÉïÆÚ±È½Ï³¤£¬µ«ÕâÖÖ²îÒì¿ÉÄÜÔÚ×ÔÈ»²¨¶¯·¶Î§ÄÚ¡£
ÕâÖÖÇé¿öÏ£¬ÎÒÃÇÐèÒª±È½Ï´óÁ¿Ôи¾µÄÈÑÉïÆÚÊý¾Ý²ÅÄÜÅжÏÕâÖÖ²î
ÒìÊÇ·ñÕæµÄ´æÔÚ¡£
Ñ¡ÔñÆ«²î
µÚһ̥±¦±¦³öÉú±È½ÏÍíµÄ¸¸Ä¸»á¸üÓÐÐËȤ¼ÓÈëÕâÑùµÄÌÖÂÛ¡£ÕâÖÖ¶Ô
Êý¾Ý½øÐÐÑ¡ÔñµÄ¹ý³Ì¾Í»áµ¼Ö½á¹û²»×¼È·¡£
È·ÈÏÆ«²î
ÏàÐÅÕâÖÖ˵·¨µÄÈË»áÌṩ֧³ÖʾÀý£¬¶ø»³ÒÉÕâÖÖ˵·¨µÄÈËÔò»áÒýÓÃ
·´Àý¡£
²»×¼È·
´«ÎÅͨ³£¶¼ÊǸöÈ˵ľÀú£¬ÔÚ¼ÇÒä¡¢±íÊöºÍ¸´ÊöµÈ·½Ãæ¶¼»á²»×¼
È·¡£
ÄÇô£¬¸üºÃµÄ×ö·¨ÊÇÊ²Ã´ÄØ£¿
ͳ¼Æ·½·¨
ΪÁ˽â¾öÉÏÊö¾Ñé̸֮µÄÖÖÖÖ²»×㣬ÎÒÃÇ»áÔËÓÃÒÔÏÂͳ¼ÆÑ§ÊֶΡ£
ÊÕ¼¯Êý¾Ý
ʹÓôóÐÍÈ«¹úÐÔµ÷²éµÄÊý¾Ý£¬ÕâЩÊý¾ÝÊÇΪµÃ³öÃÀ¹úÈ˿ڷ½Ãæ¿É¿¿
µÄͳ¼ÆÍƶ϶ø×¨ÃÅÊÕ¼¯µÄ¡£ÃèÊöÐÔͳ¼Æ
¼ÆËãÄÜ×ܽáÊý¾ÝµÄͳ¼ÆÁ¿£¬²¢ÆÀ²â¸÷ÖÖÊý¾Ý¿ÉÊÓ»¯µÄ·½·¨¡£
̽Ë÷ÐÔÊý¾Ý·ÖÎö
ѰÕÒģʽ¡¢²îÒìºÍÆäËûÄܽâ´ðÎÒÃÇÎÊÌâµÄÌØÕ÷¡£Í¬Ê±£¬ÎÒÃÇ»á¼ì²é
²»Ò»ÖÂÐÔ£¬²¢È·ÈÏÆä¾ÖÏÞÐÔ¡£
¼ÙÉè¼ìÑé
ÔÚ·¢ÏÖÃ÷ÏÔµÄÓ°Ïìʱ(±ÈÈçÁ½¸ö×åȺ¼äµÄ²îÒì)£¬ÎÒÃÇÐèÒªÆÀÅÐÕâ
ÖÖÓ°ÏìÊÇ·ñÕæÊµ£¬Ò²¾ÍÊÇ˵ÊÇ·ñÊÇÒòÎªËæ»úÒòËØÔì³ÉµÄ¡£
¹À¼Æ
ÎÒÃÇ»áÓÃÑù±¾Êý¾ÝÍÆ¶ÏÈ«²¿È˿ڵÄÌØÕ÷¡£
ͨ¹ýÕâЩ²½Öè£¬ÈÆ¹ý¸÷ÖÖÏÝÚ壬ÎÒÃǾÍÄܵõ½¸ü¼ÓºÏÀíÒ²¸ü¿ÉÄÜÕýÈ·µÄ
½áÂÛ¡£
È«¹ú¼ÒÍ¥³É³¤µ÷²é
ÃÀ¹ú¼²²¡¿ØÖÆÓëÔ¤·ÀÖÐÐÄ(CDC)´Ó1973Äê¿ªÊ¼ÍÆÐÐÈ«¹ú¼ÒÍ¥³É³¤µ÷²é
(NSFG)£¬Ä¿µÄÊÇÊÕ¼¯(ÃÀ¹ú)¡°¼ÒÍ¥µÄÉú»î¡¢»éÒö×´¿ö¡¢ÉúÓý¡¢±ÜÔÐ
ºÍÄÐÅ®½¡¿µÐÅÏ¢¡£µ÷²éµÄ½á¹ûÓÃÓÚ¡¡Öƶ¨½¡¿µ·þÎñºÍ½¡¿µ½ÌÓý¼Æ»®£¬ÒÔ¼°¶Ô¼ÒÍ¥¡¢ÉúÓýºÍ½¡¿µµÄͳ¼ÆÑо¿¡±¡£1
1 ²Î¼û http:cdc.govnchsnsfg.htm¡£
ÎÒÃÇ»áÀûÓõ÷²éÊÕ¼¯µÄÊý¾ÝÀ´Ñо¿ÖîÈç¡°µÚÒ»¸öСº¢ÊÇ·ñ³öÉúµÃ½ÏÍí¡±Ö®
ÀàµÄÎÊÌ⡣ΪÁËÓÐЧʹÓÃÕâЩÊý¾Ý£¬ÎÒÃÇÐèÒªÀí½âÕâ¸öµ÷²éÊÇÔõôÉè¼Æ
µÄ¡£
NSFGÊÇÒ»¸öºá¶ÏÃæÑо¿(cross-sectional study)£¬Òâ˼¾ÍÊÇËüµÄÊý¾ÝÊÇ
һȺÈËÔÚij¸öʱ¼äµãµÄÇé¿ö¡£ÁíÒ»ÖÖ³£¼û·½·¨ÊÇ×ݹáÑо¿(longitudinal
study)£¬¾ÍÊÇÔÚÒ»¶Îʱ¼äÄÚ·´¸´¹Û²ìͬһȺÈË¡£
NSFGÒѾ½øÐÐÁË7´Î£¬Ã¿´Î³ÆÎªÒ»¸öÖÜÆÚ(cycle)¡£ÎÒÃÇ»áʹÓÃÀ´×ÔCycle 6µÄÊý¾Ý£¬ÕâЩÊý¾ÝÊÇÔÚ2002Äê1Ôµ½2003Äê3Ô¼äÊÕ¼¯µÄ¡£
NSFGµÄÄ¿µÄÊǵõ½¹ØÓÚÈË¿ÚÇé¿öµÄһЩ½áÂÛ£¬µ÷²é¶ÔÏóÊÇ15µ½44ËêµÄ
ÃÀ¹úÈË¡£
²ÎÓëµ÷²éµÄÈ˳ÆÎª±»µ÷²éÕß(respondent)£¬Ò»×é±»µ÷²éÕ߾ͳÆÎª¶ÓÁÐ
(cohort)¡£Í¨³££¬ºá¶ÏÃæÑо¿ÒâζמßÓдú±íÐÔ£¬¼´Ä¿±êÈËȺÖеÄÿ
Ò»¸öÈ˶¼ÓÐͬµÈµÄ¼¸ÂʲÎÓëµ÷²é¡£µ±È»£¬Êµ¼ÊºÜÄÑʵÏÖÕâÖÖÀíÏë×´¿ö£¬µ«Ö´Ðе÷²éµÄÈ˻ᾡ¿ÉÄܵØ×öµ½ÕâÒ»µã¡£
NSFG²»¾ßÓдú±íÐÔ£¬¶øÊÇÓÐÒâ½øÐÐÁ˹ý²ÉÑù(oversample)¡£Éè¼ÆÕß
Ëùµ÷²éµÄÎ÷°àÑÀÒá¡¢·ÇÒáÃÀ¹úÈ˺ÍÇàÉÙÄêµÄ±ÈÀý¶¼¸ßÓÚËûÃÇÔÚÃÀ¹úÈË¿Ú
ÖеıÈÀý¡£¹ý²ÉÑùÕâЩÈËȺÊÇΪÁËÈ·±£ÆäÖеı»µ÷²éÕßÊýÁ¿¹»´ó£¬´Ó¶ø
µÃµ½ÓÐЧµÄͳ¼ÆÍƶϡ£
µ±È»£¬¹ý²ÉÑùÔö´óÁ˸ù¾Ýµ÷²é½á¹ûÍÆ¶ÏÈ«ÌåÈ˿ڽáÂÛµÄÄѶȡ£ÉÔºòÎÒÃÇ
»á¼ÌÐøÌÖÂÛÕâÒ»µã¡£
ϰÌâ1
¾¡¹ÜNSFGÒѾ½øÐÐÁË7´Î£¬µ«Ëü²¢²»ÊÇ×ݹáÑо¿¡£ÔĶÁά»ù°Ù¿ÆÒ³Ãæ¹Ø
ÓÚºá¶ÏÃæÑо¿ºÍ×ÝÏòÑо¿¿ÉÒÔŪÇå³þÔÒò¡£
ϰÌâ2
Õâ¸öÁ·Ï°ÐèÒª´ÓNSFGÏÂÔØÊý¾Ý¡£
1. ´ò¿ªhttp:thinkstats.comnsfg.html£¬ÔĶÁÊý¾ÝµÄʹÓÃÐÒ飬Ȼºóµã
»÷¡°I accept these terms¡±(¼ÙÉèÄãȷʵͬÒâ)¡£
2. ÏÂÔØ2002FemResp.dat.gzºÍ2002FemPreg.dat.gzÁ½¸öÎļþ¡£Ç°ÕßÊDZ»
µ÷²éÕßÎļþ£¬Ã¿Ò»Ðдú±íÒ»¸ö±»µ÷²éÕߣ¬×ܹ²7643¸öÅ®ÐÔ±»µ÷²é
Õß¡£ºóÕßÊǸ÷¸ö±»µ÷²éÕߵϳÔÐÇé¿ö¡£
3. µ÷²éµÄÔÚÏß×ÊÁϵØÖ·£ºhttp:www.icpsr.umich.edunsfg6¡£ä¯ÀÀ×ó²à
µ¼º½À¸Öе÷²éµÄ¸÷²¿·Ö£¬´óÖÂÁ˽âÒ»ÏÂÆäÖеÄÄÚÈÝ¡£»¹¿ÉÒÔ
ÔÚhttp:www.cdc.govnchsdatansfgnsfg_2002_questionnaires.htmÉÏ
ÔĶÁµ÷²éÎʾíµÄÄÚÈÝ¡£4. ÅäÌ×ÍøÕ¾ÌṩÁË´¦ÀíNSFGÊý¾ÝÎļþµÄ´úÂë¡£´Ó
http:thinkstats.comsurvey.pyÏÂÔØ£¬È»ºóÔÚ·ÅÖÃÊý¾ÝÎļþµÄĿ¼ÖÐ
ÔËÐС£³ÌÐò»á¶ÁÈ¡Êý¾ÝÎļþ£¬È»ºó»áÏÔʾÿ¸öÎļþµÄÐÐÊý£º
Number of respondents 7643
Number of pregnancies 13593
5. ä¯ÀÀһϴúÂ룬´óÖÂÁ˽âÒ»ÏÂÆä¹¦ÄÜ¡£ÏÂÒ»½Ú»áÏêϸ½éÉÜ¡£
±íºÍ¼Ç¼
Ê«ÈË¡¢ÕÜѧ¼ÒSteve MartinÔøËµ£º
¡°Oeuf¡±¾ÍÊÇegg£¬¡°chapeau¡±¾ÍÊÇhat¡£ºÃÏñËùÓеĶ«Î÷ÔÚ·¨ÓïÖж¼¸úÔÚ
Ó¢ÓïÖеĽз¨²»Ò»Ñù¡£
¸ú·¨ÓïÒ»Ñù£¬Êý¾Ý¿â³ÌÐòÔ±µÄÓïÑÔÒ²¸úÎÒÃǵÄÈÕ³£ÓïÑÔÉÔÓв»Í¬¡£ÒòΪ
ÎÒÃÇҪ̸µ½Êý¾Ý¿â£¬ËùÒÔÓбØÒªÑ§Ï°Ò»Ð©×¨ÒµÊõÓï¡£
±»µ÷²éÕßÎļþÖеÄÿһÐж¼±íʾһ¸ö±»µ÷²éÕß¡£ÕâÐÐÐÅÏ¢³ÆÎªÒ»Ìõ¼Ç¼
(record)£¬×é³É¼Ç¼µÄ±äÁ¿³ÆÎª×Ö¶Î(field)£¬Èô¸É¼Ç¼µÄ¼¯ºÏ¾Í×é
³ÉÁËÒ»¸ö±í(table)¡£
¿´Ò»ÏÂsurvey.pyÖеĴúÂ룬¾Í»á¿´µ½RecordºÍTableÕâÁ½¸öÀàµÄ¶¨Ò壬ǰ
ÕßÊÇ´ú±í¼Ç¼µÄ¶ÔÏ󣬺óÕßÔòÊDZíʾ±íµÄ¶ÔÏó¡£
RecordÓÐÁ½¸ö×ÓÀ࣬·Ö±ðÊÇRespondentºÍPregnancy£¬Á½Õß·Ö±ðÊDZ»µ÷²é
Õߺͻ³ÔеļǼ¡£Ä¿Ç°ÕâЩÀàÔÝʱ»¹Êǿյ쬯äÖл¹Ã»ÓÐÓÃÓÚ³õʼ»¯Æä
ÊôÐÔµÄinit·½·¨¡£ÎÒÃÇ»áÓÃTable.MakeRecord·½·¨½«Ò»ÐÐÎı¾×ª»»³ÉÒ»¸ö
Record¶ÔÏó¡£
TableÒ²ÓÐÁ½¸ö×ÓÀàRespondentsºÍPregnancies¡£ÕâÁ½¸öÀàµÄinit·½·¨ÉèÖÃ
ÁËÊý¾ÝÎļþµÄĬÈÏÃû³ÆºÍÒª´´½¨µÄ¼Ç¼µÄÀàÐÍ¡£Ã¿¸öTable¶ÔÏó¶¼ÓÐÒ»
¸örecordsÊôÐÔ£¬ÊÇÒ»¸öRecord¶ÔÏóµÄÁÐ±í¡£
ÿ¸öTableµÄGetFields·½·¨·µ»ØÒ»¸öÖ¸¶¨¼Ç¼×ֶεÄÔª×é(tuple)ÁÐ±í£¬ÕâЩ×ֶξÍÊÇRecord¶ÔÏóµÄÊôÐÔ¡£
ÀýÈ磬ÏÂÃæÊÇPregnancies.GetFields£ºdef GetFields(self):
return [
('caseid', 1, 12, int),('prglength', 275, 276, int),('outcome', 277, 277, int),('birthord', 278, 279, int),('finalwgt', 423, 440, float),]
µÚÒ»¸öÔª×éµÄÒâ˼´ÓµÚ1Áе½µÚ12ÁÐÊÇcaseid×ֶΣ¬ÇÒÀàÐÍΪÕûÊý¡£Ã¿¸ö
Ôª×é°üº¬ÈçÏÂÐÅÏ¢¡£
field
±£´æ¸Ã×ֶεÄÊôÐÔµÄÃû³Æ¡£´ó²¿·ÖÇé¿öÏ£¬ÎÒʹÓÃNSFG±àÂëÊÖ²á
ÖеÄÃû³Æ£¬È«²¿ÓÃСд¡£
start
¸Ã×Ö¶ÎµÄÆðʼÁбàºÅ¡£ÀýÈ磬caseidµÄÆðʼ±àºÅÊÇ1¡£¿ÉÒÔÔÚNSFG
±àÂëÊÖ²áÖвéѯÕâЩ±àºÅ£ºhttp:www.icpsr.umich.edunsfg6¡£
end
¸Ã×ֶεĽáÊøÁбàºÅ¡£ÀýÈ磬caseidµÄ½áÊøÁбàºÅÊÇ12¡£¸úPython
Öв»Ò»Ñù£¬ÕâÀïµÄ½áÊøÁÐÒ²ÊǸÃ×ֶεÄÒ»²¿·Ö¡£
ת»»º¯Êý
½«×Ö·û´®×ª»»³ÉÆäËûÀàÐ͵ĺ¯Êý¡£¿ÉÒÔÓÃÄÚÖõĺ¯Êý£¬±ÈÈçintºÍ
float£¬Ò²¿ÉÒÔʹÓÃÓû§×Ô¶¨ÒåµÄº¯Êý¡£Èç¹ûת»»Ê§°Ü£¬ÊôÐÔµÄÖµ¾Í
»áÊÇ×Ö·û´®'NA'¡£Èç¹ûij¸ö×ֶβ»ÐèҪת»»£¬¿ÉÒÔʹÓÃidentityº¯Êý
»òÊÇstrº¯Êý¡£
´Ópregnancy¼Ç¼ÖпÉÒԵõ½ÒÔϱäÁ¿¡£
caseid
±»µ÷²éÕßµÄÕûÊýID¡£prglength
»³ÔÐÖÜÆÚ£¬µ¥Î»ÊÇÖÜ¡£
outcome
»³Ôнá¹ûµÄÕûÊý´úÂë¡£´úÂë1±íʾ»îÓ¤¡£
birthord
Õý³£³öÉúµÄÓ¤¶ùµÄ˳Ðò¡£ÀýÈ磬µÚһ̥Ӥ¶ùµÄ±àºÅÊÇ1¡£Èç¹ûûÓÐ
Õý³£³öÉú£¬¸Ã×Ö¶ÎΪ¿Õ¡£
finalwgt
±»µ÷²éÕßµÄͳ¼ÆÈ¨ÖØ¡£ÕâÊÇÒ»¸ö¸¡µãÖµ£¬±íʾÕâÃû±»µ÷²éÕßËù´ú±í
µÄÈËȺÔÚÃÀ¹ú×ÜÈË¿ÚÖеıÈÀý¡£¹ý²ÉÑùÈËȺµÄÈ¨ÖØÆ«µÍ¡£
Èç¹ûÄã×ÐϸÔĶÁ±àÂëÊֲᣬ¾Í»á·¢ÏÖÕâЩ±äÁ¿´ó²¿·Ö¶¼¾¹ýÁËÖØ±à
Âë(recode)£¬Ò²¾ÍÊÇ˵Õâ²¢²»Êǵ÷²éËù²É¼¯µÄÔʼÊý¾Ý£¬¶øÊǸù
¾ÝÔʼÊý¾Ý¼ÆËã³öÀ´µÄ¡£
ÀýÈ磬µÚһ̥»îÓ¤µÄprglengthÔÚÔʼÊý¾ÝÖÐÓбäÁ¿wksgest(ÈÑÉïÖÜÊý)
ʱ¾ÍµÈÓڸñäÁ¿µÄÖµ£¬·ñÔò¾Í»áÓÃmosgest 4.33(ÈÑÉïÔÂÊý³ËÒÔÿ¸öÔÂ
µÄƽ¾ùÖÜÊý)¹À¼Æ³öÀ´¡£
ÖØ±àÂëͨ³£×ñÑÊý¾ÝÒ»ÖÂÐÔºÍ׼ȷÐÔÔÔò¡£³ý·ÇÓÐÌØ±ðÔÒòÒ»¶¨ÒªÊ¹ÓÃ
ÔʼÊý¾Ý£¬·ñÔò¾ÍÓ¦¸ÃÖ±½ÓʹÓÃÖØ±àÂëºóµÄÊý¾Ý¡£
Äã¿ÉÄÜ»¹·¢ÏÖÁËPregnanciesÓÐRecode·½·¨£¬ÓÃÀ´×öһЩÆäËûµÄ¼ì²éºÍÖØ
±àÂ빤×÷¡£
ϰÌâ3
ÔÚÕâ¸öÁ·Ï°ÖУ¬ÎÒÃÇ»á±àдһ¸ö³ÌÐòÀ´¿´¿´Pregnancies±íÖеÄÊý¾Ý¡£
1. ÔÚsurvey.pyºÍÊý¾ÝÎļþµÄĿ¼Öд´½¨Ò»¸öfirst.pyÎļþ£¬È»ºó½«ÏÂÃæ
µÄ´úÂëÊäÈë»ò¸´ÖƵ½ÎļþÖУº
import surveytable = survey.Pregnancies
table.ReadRecords
print 'Number of pregnancies', len(table.records)
½á¹ûÓ¦¸ÃÊÇ13 593Ìõ»³ÔмǼ¡£
2. ±àдһ¸öÑ»·±éÀú±í(table)£¬¼ÆËãÆäÖлîÓ¤µÄÊýÁ¿¡£²éÔÄÁÙ´²½á
¹û(outcome)µÄÎĵµ£¬È·ÈÏÄãµÄ½á¹û¸úÎĵµÖеÄ×ܽáÒ»Ö¡£
3. ÐÞ¸ÄÕâ¸öÑ»·£¬½«»îÓ¤µÄ¼Ç¼·Ö³ÉÁ½×飺һ×éÊǵÚһ̥³öÉú£»ÁíÒ»
×éÊÇÆäËûÇé¿ö¡£ÔÙ¿´Ò»Ð©³öÉú˳Ðò(birthord)µÄÎĵµ£¬¿´¿´ÄãµÄ
½á¹û¸úÎĵµÖеĽá¹ûÊÇ·ñÒ»Ö¡£
ÔÚ´¦ÀíеÄÊý¾Ý¼¯Ê±£¬ÕâÖÖ¼ì²é¶ÔÓÚ·¢ÏÖÊý¾ÝÖеĴíÎóºÍ²»Ò»ÖÂ
ÐÔ¡¢¼ì²é³ÌÐòÖеĴíÎóÒÔ¼°¼ìÑé¶Ô×ֶαàÂ뷽ʽµÄÀí½âÊÇ·ñÕýÈ·µÈ
¶¼ÊǺÜÓÐÓõġ£
4. ·Ö±ð¼ÆËãµÚһ̥±¦±¦ºÍÆäËû±¦±¦µÄƽ¾ù»³ÔÐÖÜÆÚ(µ¥Î»ÊÇÖÜ)¡£Á½
×éÖ®¼äÓвîÒìÂ𣿲îÒìÓжà´ó£¿
´Óhttp:thinkstats.comfirst.py¿ÉÏÂÔØÕâ¸öÁ·Ï°µÄ´ð°¸¡£
ÏÔÖøÐÔ
ÔÚÇ°ÃæµÄÁ·Ï°ÖУ¬ÎÒÃDZȽÏÁ˵Úһ̥±¦±¦ºÍÆäËû±¦±¦µÄÈÑÉïÆÚ¡£Èç¹ûÒ»
ÇÐ˳Àû£¬¶ÁÕ߻ᷢÏÖµÚһ̥±¦±¦µÄ³öÉúʱ¼ä±ÈÆäËû±¦±¦µÄ³öÉúʱ¼äƽ¾ù
Íí13¸öСʱ¡£
ÀàËÆÕâÑùµÄ²îÒì³ÆÎªÖ±¹ÛЧӦ(apparent effect)£¬Òâ˼¾ÍÊÇËÆºõ·¢ÉúÁË
ÓÐÒâ˼µÄÊÂÇ飬µ«»¹²»È·¶¨¡£ÎÒÃÇ»¹ÐèÒª¿¼ÂÇÒÔÏÂÎÊÌâ¡£
Èç¹ûÁ½×éµÄ¾ùÖµ²»Ò»Ñù£¬ÆäËû»ã×Üͳ¼ÆÁ¿ÈçºÎ£¬±ÈÈçÖÐÖµºÍ·½²î£¿
ÎÒÃÇÄܸü¾«È·µØÃèÊöËüÃÇÖ®¼äµÄ²îÒìÂð£¿
ÓÐûÓпÉÄÜÕâÁ½×éʵ¼ÊÉÏÊÇÒ»ÑùµÄ£¬¶øÎÒÃÇËù¹Û²ìµ½µÄÕâÖÖ²îÒìÖ»
ÊÇËæ»ú²úÉúµÄ£¿Èç¹ûÊÇ£¬ÄÇÕâ¸ö½áÂ۾Ͳ»ÊÇͳ¼ÆÏÔÖøµÄ¡£
ÕâÖÖÖ±¹ÛЧӦÓÐûÓпÉÄÜÊÇÒòΪѡÔñÆ«²î»òÊÇʵÑéÉèÖÃÖеĴíÎóµ¼
Öµģ¿Èç¹ûÊÇ£¬ÄÇôÕâÖÖÖ±¹ÛЧӦ¾ÍÊÇÈËΪµÄ£¬Ò²¾ÍÊÇÎÒÃÇÒâÍâ´´
ÔìµÄ£¬¶ø²¢·Ç·¢ÏÖÁËÊÂʵ¡£Ï°Ìâ4
ѧϰͳ¼ÆÑ§µÄ×îºÃ·½·¨¾ÍÊÇ´ÓÒ»¸ö×Ô¼º¸ÐÐËȤµÄÏîÄ¿¿ªÊ¼¡£ÓÐûÓС°µÚ
һ̥±¦±¦³öÉú½ÏÍí¡±ÕâÀàÎüÒýÄãµÄÎÊÌâÀ´Ñо¿£¿
˼¿¼×Ô¼º¸ÐÐËȤµÄÎÊÌ⣬ÀýÈ紫ͳ¹ÛÄî¡¢ÓÐÕùÒéµÄ»°Ìâ»òÊÇÓÐÉç»áÓ°Ïì
µÄÎÊÌ⣬¿´¿´ÄãÄÜ·ñ½«ÕâЩÎÊÌâת»»³Éͳ¼ÆÑ§ÎÊÌâ¡£
ѰÕÒÄܽâ¾ö¸ÃÎÊÌâµÄÊý¾Ý¡£¹úÍâÕþ¸®ÊǺܺõÄÊý¾ÝÀ´Ô´£¬ÒòΪ¹«¹²Ñо¿
µÄÊý¾Ýͨ³£¶¼ÊÇÃâ·ÑµÄ2¡£ÁíÒ»¸ö²éÕÒÊý¾ÝµÄºÃÈ¥´¦ÊÇWolfram Alpha£¬ÆäÖÐÊÕ¼¯Á˺ܶྐྵýÑéÖ¤µÄ¸ßÖÊÁ¿µÄÊý¾Ý¼¯£¬ÍøÖ·
ÊÇhttp:wolframalpha.com¡£Wolfram AlphaµÄËÑË÷½á¹ûÊÇÓаæÈ¨ÏÞÖÆ
µÄ£¬ÔÚʹÓÃ֮ǰӦ¸ÃÔĶÁÒ»ÏÂÐÒé¡£
2 ÔÚ׫дÕâ¶ÎÄÚÈݵÄʱºò£¬Ó¢¹úij·¨Ôº¹æ¶¨¡°ÐÅÏ¢×ÔÓÉ·¨°¸¡±(Freedom of Information Act)Ò²ÊÊ
ÓÃÓÚ¿ÆÑ§Ñо¿Êý¾Ý¡£
GoogleºÍÆäËûµÄһЩËÑË÷ÒýÇæÒ²ÄܰïÄãѰÕÒÊý¾Ý£¬µ«ÍøÂçÉϸ÷ÖÖ×ÊÔ´µÄ
ÖÊÁ¿¸ßµÍ²»Ò»£¬ÅÐ¶ÏÆðÀ´²»ÈÝÒס£
Èç¹û·¢ÏÖÒѾÓÐÈ˻شðÁËÄãµÄÎÊÌ⣬Ҫ×Ðϸ¿´¿´»Ø´ðÊÇ·ñºÏÀí¡£Êý¾ÝºÍ
·ÖÎöÖеÄȱÏÝ¿ÉÄܻᵼÖ½áÂÛ²»¿É¿¿¡£Èç¹ûÊÇÕâÑù£¬ÄãÓ¦¸Ã²ÉÓò»Í¬µÄ
·½·¨À´·ÖÎöÊý¾Ý£¬»òÕßÊÇѰÕÒÆäËû¸üºÃµÄÊý¾ÝÀ´Ô´¡£
Èç¹ûÒÑ·¢±íµÄÂÛÎĻشðÁËÄãµÄÎÊÌ⣬ÄǾÍÓ¦¸ÃÄÜŪµ½ÔʼÊý¾Ý£¬ºÜ¶à×÷
Õß¶¼»áÔÚÍøÉÏÌṩ¡£µ«Èç¹ûÊý¾ÝÉæ¼°¸öÈËÒþ˽£¬×îºÃÁªÏµÒ»ÏÂ×÷Õߣ¬¸æ
ËßËûÄãÒªÈçºÎʹÓÃÊý¾Ý£¬»òÊǽÓÊÜÌØ¶¨µÄʹÓÃÐÒé¡£¼á³Öµ½µ×!
¡¶Í³¼ÆË¼Î¬£º³ÌÐòÔ±Êýѧ֮¸ÅÂÊͳ¼Æ¡·ÊÇÒ»±¾ÒÔÈ«ÐÂÊӽǽ²½â¸ÅÂÊͳ¼Æ
µÄÈëÃÅͼÊé¡£Å׿ª¾µäµÄÊýѧ·ÖÎö£¬DowneyÊÖ°ÑÊÖ½ÌÄãÓñà³ÌÀí½âͳ
¼ÆÑ§¡£¸ÅÂÊ¡¢·Ö²¼¡¢¼ÙÉè¼ìÑé¡¢±´Ò¶Ë¹¹À¼Æ¡¢Ïà¹ØÐԵȣ¬Ã¿¸öÖ÷Ìâ¶¼³ä
ÂúȤζÐÔ£¬¾±à³Ì½âÊͺó±äµÃ¸üΪÇåÎúÒ×¶®¡£
±¾ÊéÑо¿Êý¾ÝÖ÷ÒªÀ´Ô´ÓÚÃÀ¹úÈ«¹ú¼ÒÍ¥³É³¤µ÷²é(NSFG)ÓëÐÐΪ·çÏÕ
ÒòËØ¼à²âϵͳ(BRFSS)£¬Êý¾ÝÔ´¼°½â¾ö·½°¸µÄÏà¹Ø´úÂëÈ«²¿¿ª·Å£¬¾ß
ÌåÕ½ÚÁгöÁË´óÁ¿Ñ§Ï°ºÍ½ø½××ÊÁÏ£¬·½±ã¶ÁÕ߲ο¼¡£±¾ÎÄÑ¡×Ô¡¶Í³¼ÆË¼
ά£º³ÌÐòÔ±Êýѧ֮¸ÅÂÊͳ¼Æ¡·¡£ºÍº¢×ÓÒ»Æð×öÒ»Ö»µç×Ó³èÎï°É!
×÷Õß Warren Sande, Carter Sande
Warren(¸¸Ç×)±ÏÒµÓÚ¼ÓÄôóÀï¼ÖÄÇ´óѧµçÆø¹¤³Ìϵ¡£Ò»Ö±ÔÚÃæÏò¼Æ
Ëã»ú³õѧÕß½ÌÊÚÈí¼þ»ù´¡¿Î³Ì£¬±àд¹ý´óÁ¿¹ãÊÜ»¶ÓµÄ¼¼ÊõÎĵµ¡£
Carter¡ª¡ªWarrenÖ®×Ó£¬Ò»¸ö´ÏÃ÷¡¢ÈÈÇé¡¢ºÃÆæÐÄÇ¿¡¢Ï²»¶Ë¼¿¼ÎÊÌâ
µÄСÄк¢£¬ÈȰ®¼ÆËã»ú£¬Ï²»¶µ¯¸ÖÇÙºÍÍæ³¬¼¶ÂêÀö¡£ºÜСµÄʱºò¾Í¿ª
ʼ¸úן¸Ç×Íæ±à³Ì¡£
ÒëÕß ËÕ½ð¹úÎÒÃǽ«Òª½¨Á¢Ò»¸ö¼ò»¯Á˵ĵç×Ó³èÎï³ÌÐò£¬ÕýÈçÇ°ÃæËù˵µÄÒ»Ñù£¬ÕâÊÇ
Ò»ÖÖ·ÂÕæ¡£Äã¿ÉÒÔ¹ºÂòµç×Ó³èÎïÍæ¾ß(±ÈÈçÓÐÒ»¸öСÆÁÄ»µÄÔ¿³×Á´)£¬ÏÂÔØµç×Ó³èÎïÈí¼þ£¬»¹ÓÐÒ»Ð©ÍøÕ¾(Èç Neopets ºÍ Webkinz)£¬¾Í²ÉÓÃ
Á˵ç×Ó³èÎïµÄÐÎʽ¡£µ±È»£¬ËùÓÐÕâЩҲ¶¼ÊÇ·ÂÕæ¡£ËüÃÇ»áÄ£·ÂÒ»Ð©ÕæÊµ
¶¯ÎïµÄÐÐΪ£¬»á¶ö£¬»á¸Ðµ½¹Âµ¥£¬»á¾õµÃÀÛ¡£ÒªÈÃËüÃÇ¿ìÀÖ½¡¿µ£¬Äã±Ø
Ðë¸øËüÃÇιʳ£¬ºÍËüÃÇÍæ£¬»¹Òª´øËüÃÇ¿´²¡¡£
ÎÒÃǵĵç×Ó³èÎï»á¼òµ¥µÃ¶à£¬ÓëÄ㹺Âò»òÏÂÔØµÄµç×Ó³èÎïÏà±ÈûÓÐÄÇô
ÕæÊµ£¬ÒòΪÎÒÖ»ÊÇÏëÈÃÄãÓÐһЩ»ù±¾ÈÏʶ£¬¶øÇÒÎÒ²»Ï£Íû´úÂëÌ«¹ý¸´
ÔÓ¡£²»¹ýÄã¿ÉÒÔÔÚÕâ¸ö¼ò»¯°æ±¾µÄ»ù´¡ÉÏ£¬¸ù¾ÝÄãµÄÏë·¨½øÐÐÀ©Õ¹»ò¸Ä
½ø¡£
ÎÒÃǵijÌÐòÒª¾ß±¸ÒÔÏÂÌØÐÔ¡£
¶ÔÕâ¸ö³èÎï¿ÉÒÔÓÐ 4 Öֻ£º¸øËüιʳ¡¢´øËüÉ¢²½¡¢ºÍËüÍæ»òÕß´ø
Ëü¿´²¡¡£¿ÉÒÔ¼à²âÕâ¸ö³èÎïµÄ 3 ÖÖͳ¼ÆÐÅÏ¢£º¼¢¶ö¸Ð¡¢¿ìÀֶȺͽ¡¿µ¶È¡£
³èÎï¿ÉÒÔÐÑ×Å»òÕß˯¾õ¡£
¼¢¶ö¸Ð»áËæÊ±¼äÔö¼Ó¡£¿ÉÒÔͨ¹ýιʳ¼õÉÙ¼¢¶ö¸Ð¡£
³èÎï˯¾õʱ¼¢¶ö¸ÐµÄÔö¼Ó»á¼õÂý¡£
Èç¹û³èÎïÔÚ˯¾õ£¬Äã×öÈκλ¶¼»áÈÃËüÐѹýÀ´¡£
Èç¹û³èÎïÌ«¶öÁË£¬ËüµÄ¿ìÀÖ¶È»á¼õÉÙ¡£
Èç¹û³èÎïʵÔÚÌ«¶öÁË£¬ËüµÄ½¡¿µ¶È»á¼õÉÙ¡£
´ø³èÎïÉ¢²½»áͬʱÔö¼ÓËüµÄ¿ìÀֶȺͽ¡¿µ¶È¡£
Óë³èÎïÍæ»áÈÃËüµÄ¿ìÀÖ¶ÈÔö¼Ó¡£
´ø³èÎï¿´²¡»áÈÃËüµÄ½¡¿µ¶ÈÔö¼Ó¡£
³èÎïÓÐ 6 ¸ö²»Í¬µÄͼƬ£º
Ò»¸ö˯¾õµÄͼƬ£»
Ò»¸öÐÑ×ŵ«Ê²Ã´Ò²²»×öµÄͼƬ£»
Ò»¸öÉ¢²½µÄͼƬ£»
Ò»¸öÍæË£µÄͼƬ£»Ò»¸ö½øÊ³µÄͼƬ£»
Ò»¸ö¿´²¡µÄͼƬ¡£
ͼƬ¿ÉÒÔʹÓÃһЩ¼òµ¥µÄ¶¯»¡£ºóÃæ¼¸½ÚÎÒÃǽ«¿´µ½ÈçºÎ°ÑËùÓÐÕâЩÕû
ºÏÔÚÒ»Æð¹¹³ÉÒ»¸ö³ÌÐò¡£
GUI
Carter ºÍÎÒΪÎÒÃǵĵç×Ó³èÎï³ÌÐò´´½¨ÁËÒ»¸ö PythonCard GUI¡£ÆäÖÐÓÐ
һЩ°´Å¥ÓÃÀ´Íê³É»î¶¯£¬»¹ÓÐһЩ¼ÆÁ¿Æ÷ÏÔÊ¾ÖØÒªµÄͳ¼ÆÐÅÏ¢¡£ÁíÍ⻹
ÁôÓÐÒ»¸öλÖÃÏÔʾ³èÎïµÄͼƬ(³èÎïÕýÔÚ×öʲô)¡£¿´ÆðÀ´¾ÍÏñÓÒͼÕâ
Ñù£º
¶ÔÓ¦»î¶¯µÄ°´Å¥ÊÇÒ»ÖÖ ImageButton ÀàÐ굀 PythonCard ×é¼þ¡£ÀûÓÃÕâÖÖ
×é¼þ¿ÉÒÔ´´½¨´øÍ¼Æ¬µÄ°´Å¥£¬¶ø²»Ö»ÊÇÎı¾¡£¸÷¸ö¼ÆÁ¿Æ÷µÄ×é¼þÀàÐÍÊÇ
Gauge¡£Ö÷ͼƬÊÇÒ»¸ö Image ×é¼þ¡£±êÇ©ÊÇ StaticText ×é¼þ¡£
Äã¿ÉÒÔʹÓà PythonCard ×ÊÔ´±à¼Æ÷´´½¨ÕâÑùµÄ GUI¡£
Ë㷨ҪΪµç×Ó³èÎï³ÌÐòд´úÂ룬ÐèÒª¸üÃ÷È·µØÁ˽â³èÎïµÄÐÐΪ¡£ÒÔÏÂÊÇÎÒÃÇ
ҪʹÓõÄËã·¨¡£
ÎÒÃǰѳèÎïµÄÒ»¡°Ì족·ÖΪ 60 ¸ö²¿·Ö£¬Ã¿Ò»²¿·Ö³ÆÎªÒ»¸ö¡°µÎ´ð¡±¡£
ÿ¸öµÎ´ðµÄʵ¼Êʱ¼äÊÇ 5 ÃëÖÓ£¬ËùÒÔ³èÎïµÄ¡°Ò»Ì족¾ÍÊÇÎÒÃÇʵ¼Êʱ
¼äµÄ 5 ·ÖÖÓ¡£
³èÎïÔÚ 48 ¸öµÎ´ðÖж¼ÐÑ×Å£¬È»ºóËüÏë˯ 12 ¸öµÎ´ð¡£Äã¿ÉÒÔ°ÑËü½Ð
ÐÑ£¬²»¹ýÕâÑù»áÈÃËüºÜ²»¸ßÐË!
¼¢¶ö¸Ð¡¢¿ìÀֶȺͽ¡¿µ¶ÈµÄ·¶Î§¶¼ÊÇ 0 µ½ 8¡£
ÐÑ×Åʱ£¬¼¢¶ö¸Ðÿ¸öµÎ´ð»áÔö¼Ó 1 ¸öµ¥Î»£¬¿ìÀÖ¶Èÿ 2 ¸öµÎ´ð¼õÉÙ
1 ¸öµ¥Î»(³ý·ÇÔÚÉ¢²½»òÕßÍæ)¡£
˯¾õʱ£¬¼¢¶ö¸Ðÿ 3 ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
½øÊ³Ê±£¬¼¢¶ö¸Ðÿ¸öµÎ´ð¼õÉÙ 1 ¸öµ¥Î»¡£
ÍæÊ±£¬¿ìÀÖ¶Èÿ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
É¢²½Ê±£¬¿ìÀֶȺͽ¡¿µ¶Èÿ 2 ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
¿´²¡Ê±£¬½¡¿µ¶Èÿ¸öµÎ´ðÔö¼Ó 1 ¸öµ¥Î»¡£
Èç¹û¼¢¶ö¸Ð´ïµ½ 7£¬½¡¿µ¶Èÿ 2 ¸öµÎ´ð¼õÉÙ 1 ¸öµ¥Î»¡£
Èç¹û¼¢¶ö¸Ð´ïµ½ 8£¬½¡¿µ¶Èÿ¸öµÎ´ð¼õÉÙ 1 ¸öµ¥Î»¡£
Èç¹û˯¾õʱ±»½ÐÐÑ£¬¿ìÀֶȼõÉÙ 4 ¸öµ¥Î»¡£
Èç¹û³ÌÐò²»ÔÚÔËÐУ¬³èÎï¿ÉÄÜÐÑ×Å(ʲôҲ²»×ö)£¬Ò²¿ÉÄÜÔÚ˯
¾õ¡£
³ÌÐòÖØÆôʱ£¬ÎÒÃÇ»áͳ¼Æ¹ýÈ¥Á˶àÉٵδ𣬲¢¶ÔÓ¦¹ýÈ¥µÄÿ¸öµÎ´ð
¸üÐÂͳ¼ÆÐÅÏ¢¡£
¿´ÆðÀ´ºÃÏñ¹æÔòºÜ¶à£¬²»¹ý±àд´úÂëÆäʵºÜÈÝÒס£Êµ¼ÊÉÏ£¬Äã¿ÉÄÜ»¹Ïë
Ôö¼Ó¸ü¶àµÄÐÐΪ£¬ÈÃËü¸ü¼ÓÓÐȤ¡£ÉÔºó¾Í»á¸ø³ö´úÂë(»¹»á×öһЩ½âÊÍ)¡£
¼òµ¥¶¯»
²¢²»×ÜÊÇÐèÒª Pygame ²ÅÄÜÍê³É¶¯»¡£ÎÒÃÇ¿ÉÒÔÔÚ PythonCard ÖÐͨ¹ýʹ
Óö¨Ê±Æ÷Íê³É¼òµ¥µÄ¶¯»¡£¶¨Ê±Æ÷ÿ¸ôÒ»¶Îʱ¼ä»á´´½¨Ò»¸öʼþ¡£¿ÉÒÔ
±àдһ¸öʼþ´¦ÀíÆ÷£¬ÔÚ¶¨Ê±Æ÷µ½Ê±¼äʱÈÃij¸öÊÂÇé·¢Éú¡£Õâ¾ÍÀàËÆÓÚ
Ϊһ¸öÓû§¶¯×÷±àдʼþ´¦ÀíÆ÷£¬±ÈÈç˵µã»÷Ò»¸ö°´Å¥£¬Ö»²»¹ý¶¨Ê±Æ÷
ʼþÊÇÓɳÌÐò(¶ø²»ÊÇÓû§)Éú³ÉµÄ¡£
ÎÒÃǵĵç×Ó³èÎï GUI ½«Ê¹ÓÃÁ½¸ö¶¨Ê±Æ÷£ºÒ»¸öÓÃÓÚ¶¯»£¬ÁíÒ»¸öÓÃÓÚ
µÎ´ð¡£¶¯»Ã¿°ëÃë(0.5 Ãë)¸üÐÂÒ»´Î£¬µÎ´ðÿ 5 Ãë·¢ÉúÒ»´Î¡£
¶¯»¶¨Ê±Æ÷ʱ¼äµ½Ê±£¬ÎÒÃÇ»áËùÏÔʾ³èÎïµÄͼÏñ¡£Ã¿¸ö»î¶¯(½øÊ³¡¢Íæ
µÈ)¶¼ÓÐ×Ô¼ºµÄÒ»×éͼÏñÀ´ÊµÏÖ¶¯»£¬Ã¿×éͼÏñ½«´æ´¢ÔÚÒ»¸öÁбíÖС£
¶¯»»áÑ»·ÏÔʾÕâ¸öÁбíÖеÄËùÓÐͼÏñ¡£³ÌÐò½«¸ù¾ÝÕýÔÚ½øÐеĻÀ´
È·¶¨Ê¹ÓÃÄĸöÁÐ±í¡£
ÊÔÒ»ÊÔ£¬ÔÙÊÔÒ»ÊÔ
Õâ¸ö³ÌÐòÖл¹ÒªÊ¹ÓÃÒ»¸öÐÂÄÚÈÝ£¬Õâ³ÆÎª try-except ¿é¡£
Èç¹û³ÌÐòÒª×öÒ»¼þÊÂÇ飬¶øÇÒÕâ¸öÊÂÇéÓпÉÄܵ¼Ö´íÎó£¬ÄÇô×îºÃÌṩ
Ò»ÖÖ°ì·¨À´ÊÕ¼¯´íÎóÏûÏ¢²¢½øÐд¦Àí£¬¶ø²»ÊÇÈóÌÐòÖ±½ÓÍ£Ö¹¡£Õâ¿ÉÒÔ
ÀûÓà try-except ¿éÀ´×öµ½¡£
ÀýÈ磬Èç¹ûÏë´ò¿ªÒ»¸öÎļþ£¬µ«ÊÇÕâ¸öÎļþ²¢²»´æÔÚ£¬Äã¾Í»áµÃµ½Ò»Ìõ
´íÎóÏûÏ¢¡£Èç¹ûÄãûÓд¦ÀíÕâ¸ö´íÎ󣬳ÌÐò»áÔÚÕâÀïÍ£Ö¹¡£²»¹ý£¬Ò²Ðí
ÄãÏëÈÃÓû§ÖØÐÂÊäÈëÎļþÃû(û׼ËýÖ»ÊÇÇôíÁË)¡£ÀûÓà try-except
¿é£¬Äã¿ÉÒÔ»ñÈ¡µ½´íÎóÐÅÏ¢²¢¼ÌÐøÖ´ÐС£
¶ÔÓÚ´ò¿ªÎļþµÄÀý×Ó£¬try-except ¿éÈçÏÂËùʾ£º
try:
file = open(somefile.txt, r)
except:
print Couldn't open the file. Do you want to reenter the filename?
ÄãÏë³¢ÊԵIJ¿·Ö(¿ÉÄܵ¼ÖÂÒ»¸ö´íÎó)Òª·ÅÔÚ try ¿éÖС£ÔÚÕâ¸öÀý×ÓÖоÍÊdz¢ÊÔ´ò¿ªÒ»¸öÎļþ¡£Èç¹û¿ÉÒÔ´ò¿ªÎļþ¶ø²»»áµ¼Ö´íÎ󣬾ͻáÌø¹ý
except ²¿·Ö¡£
Èç¹û try ¿éÖеĴúÂëȷʵµ¼ÖÂÒ»¸ö´íÎ󣬾ͻáÔËÐÐ except ¿éÖеĴúÂë
except ¿éÖеĴúÂë¸æËß³ÌÐòÒ»µ©³öÏÖ´íÎó¸Ã×öЩʲô¡£Äã¿ÉÒÔÕâÑùÀ´
¿¼ÂÇ£º
try:
×öÕâ¼þÊ ( ²»×öÆäËûÊÂÇé...)
except:
Èç¹ûÓдíÎ󣬾Í×öÕâ¼þÊÂ
try-except Óï¾äÊÇ Python ´¦Àí´íÎóËù²ÉÓõķ½·¨£¬Õâͨ³£³ÆÎª´íÎó´¦
Àí(error handling)¡£´íÎó´¦ÀíÔÊÐíÄã±àд¿ÉÄܳö´íµÄ´úÂë(ÉõÖÁÊǺÜ
ÑÏÖØµÄ´íÎó£¬ÌÈÈôûÓдíÎó´¦Àí£¬ÕâЩ´íÎóÔÚÕý³£Çé¿öÏÂÉõÖÁ»áÈÃÄãµÄ
³ÌÐòÍ£Ö¹)£¬Ê¹³ÌÐòÈÔÄܼÌÐøÔËÐС£ÎÒÃDz»´òËãÔÚÕâ±¾ÎÄÀï¸üÏêϸµØÌÖ
ÂÛ´íÎó´¦Àí£¬²»¹ýÎÒÏ£ÍûÄãÄÜÁ˽âһЩ»ù´¡ÖªÊ¶£¬ÒòΪÔÚµç×Ó³èÎï´úÂë
Öоͻῴµ½´íÎó´¦Àí¡£
ÏÂÃæÀ´¿´Õâ¸ö´úÂ룬¼û´úÂëÇåµ¥¡£ÕâÀïµÄ˵Ã÷ÒѾ¶Ô´ó²¿·Ö¹¤×÷×öÁ˽â
ÊÍ¡£Õâ¸ö´úÂëÓе㳤£¬ËùÒÔÈç¹ûÄã²»Ïë×Ô¼º¼üÈ룬Ҳ¿ÉÒÔ´ÓÕâ¸öÍøÕ¾
(www.helloworldbook.com)ÏÂÔØ¡£PythonCard ×ÊÔ´ÎļþºÍËùÓÐͼƬҲ
¶¼ÒѾÌṩ¡£ÊÔ×ÅÔËÐÐÕâ¸ö³ÌÐò£¬È»ºóÔÙ¿´´úÂ룬ȷ±£ÄãÄÜÀí½âËüÊÇÈç
ºÎ¹¤×÷µÄ¡£
´úÂëÇåµ¥ VirtualPet.pysleeptest º¯ÊýʹÓÃÁËÒ»¸ö PythonCard ¶Ô»°¿ò£¬²»¹ýÉÔ×öÁ˵÷Õû¡£Äã¿É
Äܼǵã¬PythonCard Òª»ùÓÚÁíÒ»¸öÃûΪ wxPython µÄ Python Ä£¿é¡£ÕýÊÇ
ÒòΪÕâ¸öÔÒò£¬°²×° PythonCard ʱҪ°²×° wxPython¡£ÓÐʱ¿ÉÒÔʹÓÃÌØ
ÊâµÄ wxPython ²ÎÊýÀ´¸Ä±ä PythonCard µÄÐÐΪ¡£ÔÚÕâÀÎÒÃǸıäÁ˱ê
×¼ PythonCard ÏûÏ¢¿ò£¬ÈçÓÒͼËùʾ¡£
ÎÒÃǰÑËü±ä³ÉÒ»¸öÓиÐ̾ºÅµÄ¶Ô»°¿ò£¬»¹ÓÐ Yes ºÍ No °´Å¥£¬¾ÍÏñÓÒͼ
ÕâÑù¡£
¼´Ê¹Äã²»ÄÜÍêÈ«¶Á¶®Õâ¸ö´úÂëÒ²²»Óõ£ÐÄ¡£Èç¹ûÄãÏ£Íûѧϰ¸ü¶àÓйØ
PythonCard ºÍ wxPython µÄÄÚÈÝ£¬¿ÉÒÔÏÈ¿´¿´ PythonCard Íø
Õ¾£ºhttp:pythoncard.sourceforge.net¡£
ÔÚ±¾ÎÄÖУ¬ÎÒÃÇÖ»ÊÇÉÔÉÔÁ˽âÁ˼ÆËã»ú·ÂÕæµÄÒ»µãƤ룬֪µÀÁËÄ£ÄâÕæ
ʵÊÀ½çÖÐһЩ·½ÃæµÄ»ù±¾Ë¼Ï룬±ÈÈçÖØÁ¦ºÍʱ¼ä¡£Êµ¼ÊÉÏ£¬¼ÆËã»ú·ÂÕæ
ÔÚ¿ÆÑ§¡¢¹¤³Ì¡¢Ò½Ò©ºÍºÜ¶àÆäËûÁìÓò¶¼µÃµ½Á˹㷺ʹÓá£ÆäÖкܶà·ÂÕæ
·Ç³£¸´ÔÓ£¬¼´Ê¹ÓÃ×î¿ìµÄ³¬¼¶¼ÆËã»úÔËÐÐÒ²ÐèÒª»¨·Ñ¼¸ÌìÉõÖÁ¼¸¸öÐÇ
ÆÚ¡£²»¹ýÔ¿³×Á´ÉϵÄСµç×Ó³èÎïÒ²ÊÇÒ»ÖÖ·ÂÕæ£¬ÓÐʱ×î¼òµ¥µÄ·ÂÕæÒ²ÊÇ×îÓÐÒâ˼µÄ¡£
¶¯ÊÖÊÔÒ»ÊÔ
Ϊµç×Ó³èÎï GUI Ôö¼ÓÒ»¸ö Pause °´Å¥¡£Õâ»áÈóèÎïµÄʱ¼äÍ£Ö¹£¬²»ÂÛ³Ì
ÐòÊÇ·ñÔÚÔËÐС£(Ìáʾ£ºÕâ˵Ã÷¿ÉÄÜÐèÒªÔÚ pickle ÎļþÖб£´æ¡°ÔÝÍ£¡±×´
̬¡£)
¡¶Ó뺢×ÓÒ»Æðѧ±à³Ì¡·Ò»±¾ÀÏÉÙÏÌÒ˵ıà³ÌÈëÃÅÆæÊé!Ò»²áÔÚÊÖ£¬ÄãÍê
È«¿ÉÒÔ´ø×Å×Ô¼ºµÄº¢×Ó£¬¸úËæSande¸¸×Ó×éºÏÔÚÇáËɵķÕΧÖÐÊìϤÄÇЩ
±à³Ì¸ÅÄÈçÄڴ桢ѻ·¡¢ÊäÈëºÍÊä³ö¡¢Êý¾Ý½á¹¹ºÍͼÐÎÓû§½çÃæµÈ¡£
ÕâЩ֪ʶһµã¶ùÒ²²»¸ßÉÌýÆðÀ´±¸¸ÐÇ×ÇУ¬ÊéÖÐÑÔÓïÓÄĬ·çȤ¶ø²»Ê§
ÕæÒ壬ÈÃѧϰ¹ý³Ì³äÂúÀÖȤ¡£Ï¸ÐĵÄ×÷Õß»¹ÅäÉÏÁ˺¢×ÓÃǶ¼Ï²»¶µÄ¿É°®
Âþ»ºÍ¾¹ýÔËÐвâÊԵijÌÐòʾÀý£¬½ÌÄãÓÃ×îÒ×±àдºÍ×îÒ×Àí½âµÄPython
ÓïÑÔ£¬Ð´³öÄãÃÎÏëÖеÄÓÎÏ·³ÌÐò¡£±¾ÎÄÑ¡×Ô¡¶Ó뺢×ÓÒ»Æðѧ±à³Ì¡·¡£´ÓPython 3µÄbytesstrÖ®±ðѧ±àÂëUnicode
×÷Õß Eli Bendersky, Steve Ferg
Eli Bendersky¿ª·¢Èí¼þ³¤´ï15ÄêÖ®¾Ã¡£ÔÚ2008Ä꿪ʼʹÓÃPython,²¢ÇÒ
ÊÇÕâÃÅÓïÑÔµÄÖ÷Òª¹±Ï×ÕßÖ®Ò»¡£ËûʹÓùýºÜ¶àÓïÑÔ£¬µ«ÊÇ×î°®µÄ»¹ÊÇ
CºÍPython£¬ÒµÓàʱ¼ä°®ºÃ±à³Ì¡£ËûµÄ²©¿Íhttp:eli.thegreenplace.net
Steve FergÊÇһλ³ÌÐòÔ±ºÍϵͳ·ÖÎöʦ£¬Í¬Ê±Ëû»¹ÊÇ¿µÄζû´óѧÕÜѧ
ϵµÄ²©Ê¿¡£ËûµÄ²©¿Íhttps:pythonconquerstheuniverse.wordpress.com
ÒëÕß ÀîÁÕæç
ÒëÖøÓС¶±à³Ì´óʦ·Ã̸¼¡·¡¢¡¶±à³ÌÈËÉú¡·µÈ¡£ÏÖÕýÔÚ·ÒëCoding
Interview(³ÌÐòÔ±ÃæÊÔÌâ½âÃÜ)¡£
Òý×Ó£ºbytesstrÖ®±ð
Python 3×îÖØÒªµÄÐÂÌØÐÔ´ó¸ÅÒªËãÊǶÔÎı¾ºÍ¶þ½øÖÆÊý¾Ý×÷Á˸üΪÇåÎú
µÄÇø·Ö¡£Îı¾×ÜÊÇUnicode£¬ÓÉstrÀàÐͱíʾ£¬¶þ½øÖÆÊý¾ÝÔòÓÉbytesÀàÐÍ
±íʾ¡£Python 3²»»áÒÔÈÎÒâÒþʽµÄ·½Ê½»ìÓÃstrºÍbytes£¬ÕýÊÇÕâʹµÃÁ½Õß
µÄÇø·ÖÌØ±ðÇåÎú¡£Äã²»ÄÜÆ´½Ó×Ö·û´®ºÍ×Ö½Ú°ü£¬Ò²ÎÞ·¨ÔÚ×Ö½Ú°üÀïËÑË÷
×Ö·û´®(·´Ö®ÒàÈ»)£¬Ò²²»Äܽ«×Ö·û´®´«Èë²ÎÊýΪ×Ö½Ú°üµÄº¯Êý(·´Ö®
ÒàÈ»)¡£ÕâÊǼþºÃÊ¡£
²»¹ÜÔõÑù£¬×Ö·û´®ºÍ×Ö½Ú°üÖ®¼äµÄ½çÏßÊDZØÈ»µÄ£¬ÏÂÃæµÄͼ½â·Ç³£ÖØ
Òª£¬ÎñÇëÀμÇÓÚÐÄ£º×Ö·û´®¿ÉÒÔ±àÂë³É×Ö½Ú°ü£¬¶ø×Ö½Ú°ü¿ÉÒÔ½âÂë³É×Ö·û´®¡£
>>> '€20'.encode('utf-8')
b'\xe2\x82\xac20'
>>> b'\xe2\x82\xac20'.decode('utf-8')
'€20'
Õâ¸öÎÊÌâÒªÕâôÀ´¿´£º×Ö·û´®ÊÇÎı¾µÄ³éÏó±íʾ¡£×Ö·û´®ÓÉ×Ö·û×é³É£¬×Ö·ûÔòÊÇÓëÈκÎÌØ¶¨¶þ½øÖƱíʾÎ޹صijéÏóʵÌå¡£ÔÚ²Ù×÷×Ö·û´®Ê±£¬ÎÒ
ÃÇÉú»îÔÚÐÒ¸£µÄÎÞÖªÖ®ÖС£ÎÒÃÇ¿ÉÒÔ¶Ô×Ö·û´®½øÐзָîºÍ·ÖƬ£¬¿ÉÒÔÆ´
½ÓºÍËÑË÷×Ö·û´®¡£ÎÒÃDz¢²»¹ØÐÄËüÃÇÄÚ²¿ÊÇÔõô±íʾµÄ£¬×Ö·û´®ÀïµÄÿ
¸ö×Ö·ûÒªÓü¸¸ö×Ö½Ú±£´æ¡£Ö»ÓÐÔÚ½«×Ö·û´®±àÂë³É×Ö½Ú°ü(ÀýÈ磬ΪÁË
ÔÚÐŵÀÉÏ·¢ËÍËüÃÇ)»ò´Ó×Ö½Ú°ü½âÂë×Ö·û´®(·´Ïò²Ù×÷)ʱ£¬ÎÒÃDzŻá
¿ªÊ¼¹Ø×¢Õâµã¡£
´«ÈëencodeºÍdecodeµÄ²ÎÊýÊDZàÂë(»òcodec)¡£±àÂëÊÇÒ»ÖÖÓöþ½ø
ÖÆÊý¾Ý±íʾ³éÏó×Ö·ûµÄ·½Ê½¡£Ä¿Ç°ÓкܶàÖÖ±àÂë¡£ÉÏÃæ¸ø³öµÄUTF-8ÊÇ
ÆäÖÐÒ»ÖÖ£¬ÏÂÃæÊÇÁíÒ»ÖÖ£º
>>> '€20'.encode('iso-8859-15')
b'\xa420'
>>> b'\xa420'.decode('iso-8859-15')
'€20'
±àÂëÊÇÕâ¸öת»»¹ý³ÌÖÐÖÁ¹ØÖØÒªµÄÒ»²¿·Ö¡£ÀëÁ˱àÂ룬bytes¶Ô
Ïób'\xa420'Ö»ÊÇÒ»¶Ñ±ÈÌØÎ»¶øÒÑ¡£±àÂ븳ÓèÆäº¬Òå¡£²ÉÓò»Í¬µÄ±à
Â룬Õâ¶Ñ±ÈÌØÎ»µÄº¬Òå¾Í»á´ó²»Í¬£º
>>> b'\xa420'.decode('windows-1255')
'?20'
¾Ý˵°Ù·ÖÖ®°ËÊ®µÄ½ðÇ®Ëðʧ½ÔÒòʹÓôíÎóµÄ±àÂëµ¼Ö£¬Òò´ËÎñ±ØÐ¡ÐĽ÷É÷¡£
ʲôÊDZàÂ룿
»ù±¾¸ÅÄîºÜ¼òµ¥¡£Ê×ÏÈ£¬ÎÒÃÇ´ÓÒ»¶ÎÐÅÏ¢¼´ÏûϢ˵Æð£¬ÏûÏ¢ÒÔÈËÀà¿ÉÒÔ
Àí½â¡¢Ò×¶®µÄ±íʾ´æÔÚ¡£ÎÒ´òË㽫ÕâÖÖ±íʾ³ÆÎª¡°Ã÷ÎÄ¡±(plain text)¡£
¶ÔÓÚ˵ӢÓïµÄÈË£¬Ö½ÕÅÉÏ´òÓ¡µÄ»òÆÁÄ»ÉÏÏÔʾµÄÓ¢Îĵ¥´Ê¶¼Ëã×÷Ã÷ÎÄ¡£
Æä´Î£¬(ÔÒòÉÔºòÔÙÊö)ÎÒÃÇÐèÒªÄܽ«Ã÷ÎıíʾµÄÏûϢת³ÉÁíÍâijÖÖ±í
ʾ(²»·Á³ÆÖ®Îª¡°±àÂëÎı¾¡±£¬encoded text)£¬ÎÒÃÇ»¹ÐèÒªÄܽ«±àÂë
Îı¾×ª»Ø³ÉÃ÷ÎÄ¡£´ÓÃ÷Îĵ½±àÂëÎı¾µÄת»»³ÆÎª¡°±àÂ롱£¬´Ó±àÂëÎı¾ÓÖ
ת»Ø³ÉÃ÷ÎÄÔòΪ¡°½âÂ롱¡£
Õâ¸ö¹ý³ÌÓÐÈýµãºÜÖØÒª¡£
µÚÒ»µãÊÇÔÚ±àÂë»ò½âÂë¹ý³ÌÖв»µÃ¶ªÊ§ÈκÎÐÅÏ¢¡£ÎÒÃDZØÐëÄÜ×öµ½À´»Ø
´«µÝÏûÏ¢£¬´ÓÃ÷Îĵ½±àÂëÎı¾£¬È»ºóÓÖ´Ó±àÂëÎı¾»Øµ½Ã÷ÎÄ£¬È¡µÃµÄÃ÷
ÎĸúÎÒÃÇÒ»¿ªÊ¼ÓµÓеÄÍêȫһÑù¡£¾ÙÀýÀ´Ëµ£¬ÕâÕýÊÇΪʲôÎÒÃÇÎÞ·¨ÓÃ
Ò»ÖÖ×ÔÈ»ÓïÑÔ(¶íÓï¡¢ººÓï¡¢·¨Óï¡¢ÄÉÍß»ôÓïµÈ)À´±àÂëÁíÒ»ÖÖ×ÔÈ»Óï
ÑÔ(Ó¢Óï¡¢Ó¡µØÓ˹ÍßÎ÷ÀïÓïµÈ)¡£×ÔÈ»ÓïÑÔÖ®¼äµÄÓ³Éä¹ØÏµÌ«¹ýËÉ
É¢£¬ÎÞ·¨±£Ö¤Ò»ÌõÐÅÏ¢ÄÜÔÚÀ´»ØµÄת»»Öв»Ê§Õæ¡£
ÒªÇóÀ´»Ø×ª»»²»Ê§Õ棬Ҳ¾ÍÒâζ×ÅÃ÷ÎĺͱàÂëÎı¾Ö®¼äµÄÓ³É䱨ÐëÓÖ½ô
ÃÜÓÖ¾«È·¡£Õâ¾ÍÒý³öÁ˵ڶþµã¡£
Ϊȷ±£Ã÷ÎĺͱàÂëÎı¾Ö®¼äµÄÓ³Éä·Ç³£½ôÃÜ£¬Ò²¼´£¬ÎªÁËÄܷdz£¾«È·µØ
¹æ¶¨±àÂëºÍ½âÂë¹ý³ÌÊÇÔõô»ØÊ£¬ÎÒÃDZØÐë·Ç³£¾«È·µØ¹æ¶¨Ã÷Îĵıíʾ
ÊÇʲôÑùµÄ¡£
ÀýÈ磬¼Ù¶¨ÎÒÃǵÄÃ÷ÎÄÊÇÕâÑùµÄ£ºÓ¢ÃÀ×Öĸ±íµÄ26¸ö´óд×Öĸ£¬¼ÓÉÏ¿Õ
¸ñ£¬¼°3¸ö±êµã·ûºÅ£º¾äµã(¾äºÅ)¡¢ÎʺźͶ̻®Ïß(Á¬×Ö·û)¡£Õâ¾Í
ÐγÉÁË30¸ö×Ö·ûµÄÃ÷ÎÄ×Öĸ±í¡£ÐèÒªÊý×Öʱ£¬ÎÒÃÇ¿ÉÒÔÖ±½Óƴд³öÀ´£¬±ÈÈ磺six thousand seven hundred forty-three(ÁùǧÆß°ÙËÄÊ®Èý)¡£ÁíÒ»·½Ã棬ÎÒÃÇ¿ÉÄÜÏ£ÍûÃ÷ÎÄÊÇÕâÑùµÄ£º26¸ö´óд×Öĸ£¬26¸öСд×Ö
ĸ£¬10¸öÊý×Ö£¬¿Õ¸ñ·û£¬¼°Ê®¼¸ÖÖ±êµã·ûºÅ£¬°üÀ¨¾äµã¡¢¶ººÅ¡¢Ë«Òý
ºÅ¡¢×óÀ¨ºÅ¡¢ÓÒÀ¨ºÅµÈµÈ¡£ÓÚÊÇÎÒÃÇÓֵõ½Ò»ÕÅ75¸ö×Ö·ûµÄÃ÷ÎÄ×Öĸ
񡭜
Ò»µ©¾«È·µØ¹æ¶¨ÁËÏûÏ¢µÄÃ÷ÎıíʾÊÇʲôÑùµÄ£¬±ÈÈçÉÏÃæµÄ30¸ö×Ö·ûµÄ
×Öĸ±í£¬Ò²ÐíÊÇ75¸ö×Ö·ûµÄ×Öĸ±íÖÐÓÐÏÞµÄ×Ö·ûÐòÁУ¬ÎÒÃǾͿÉÒÔÉè¼Æ
Ò»Ì×ϵͳ(±àÂ룬code)£¬ÄܶÔÓÃÕâÕÅ×Öĸ±íд³ÉµÄÃ÷ÎÄÏûÏ¢½øÐпɿ¿
µÄ±àÂëºÍ½âÂë¡£ÕâÀàϵͳ×î¼òµ¥µÄÒ»ÖÖÊÇÃ÷ÎÄ×Öĸ±íÀïµÄÿ¸ö×Ö·ûÔÚ±à
ÂëÎı¾ÖÐÓÐÒ»¸öÇÒÖ»ÓÐÒ»¸ö¶ÔÓ¦µÄ±íʾ¡£¾Ù¸ö´ó¼Ò¶¼ÊìϤµÄĦ¶û˹µçÂë
µÄÀý×Ó£¬ÆäÖÐÃ÷ÎÄ¡°SOS¡±¶ÔÓ¦µÄ±àÂëÎı¾Îª... --- ...¡£
µ±È»£¬ÔÚÏÖʵÉú»îÖУ¬Ã÷ÎÄ×Öĸ±íÖÐ×Ö·ûµÄÑ¡ÔñÊܵ½±àÂëÎı¾Éϼ¼ÊõÏÞ
ÖÆµÄÓ°Ïì¡£¼Ù¶¨´æ´¢±àÂëÏûÏ¢ÓÐÈçϼ¸ÖÖ¼¼Êõ¿É¹©Ñ¡Ôñ£ºÒ»ÖÖ¼¼ÊõÖ§³Ö
256¸ö×Ö·ûµÄ±àÂë×Öĸ±í£¬ÁíÒ»ÖÖ¼¼ÊõÖ»Ö§³Ö128¸ö±àÂë×Ö·û£¬µÚÈýÖÖ¼¼
ÊõÖ»Ö§³Ö64¸ö±àÂë×Ö·û¡£Èç¹ûÎÒÃÇÇå³þ×Ô¼º¿ÉÒÔʹÓÃÖ§³Ö¸ü´ó±àÂëÎı¾
×Öĸ±íµÄ¼¼Êõ£¬ÎÒÃÇ×ÔÈ»¶øÈ»¾ÍÄܽ«Ã÷ÎÄ×Öĸ±íÀ©Õ¹µÃ±ÈÒÔÍù´óµÃ¶à¡£
·´Ö®ÒàÈ»¡£Èç¹ûÈ·¶¨Ã÷ÎÄ×Öĸ±íÒ»¶¨Òª·Ç³£´ó£¬ÎÒÃǾͻáÃ÷°×±ØÐëÕÒµ½
»òÉè¼ÆÒ»ÖÖÄÜ´æ´¢´óÁ¿±àÂë×Ö·ûµÄ¼¼Êõ¡£
Õâ¾ÍÒý³öÁËÏÂÃæµÄ»°Ì⣬Unicode¡£
Unicode
UnicodeµÄÉè¼Æ³õÖÔÊdzÉΪһÌ×ϵͳ£¬¿ÉÒÔ´æ´¢ÏÖ´æËùÓÐÈËÀàÓïÑÔµÄËù
ÓÐÃ÷ÎÄ×Ö·ûµÄ±àÂë±íʾ¡£Ó¢Óï¡¢·¨Óï¡¢Î÷°àÑÀÓϣÀ°Óï¡¢°¢À²®Óï¡¢Ó¡µØÓï¡¢ººÓïºÍÑÇÊöÓï(ШÐÎÎÄ×Ö)µÈ¡£
ÕâЩ×Ö·ûÊýÁ¿ÅÓ´ó¡£
Òò´Ë£¬Unicode¼Æ»®µÄÊ×ÒªÈÎÎñ¾ÍÊǰÑËùÓÐÕâЩ×Ö·ûÂÞÁгöÀ´£¬Êý¸ö
Êý¡£Õâ¾ÍÊÇUnicodeµÄǰ°ë²¿·Ö£¬Í¨ÓÃ×Ö·û¼¯(Universal Character
Set)¡£(ÕæÕý̸¼°Unicodeʱ£¬²»Òª°ÑÃ÷ÎÄ×Ö·û½Ð×ö¡°×Ö·û¡±£¬³ÆÖ®Îª¡°Âë
µã¡±(code points)¡£)
Íê³ÉÇ°ÃæµÄ¹¤×÷ºó£¬Ä㻹µÃÏë³öÒ»ÖÖ¼¼Êõ£¬ÒÔ´¢´æÈ«²¿¶ÔÓ¦µÄ±àÂëÎı¾
×Ö·û¡£(ÓÃUnicodeµÄ»°À´Ëµ£¬±àÂëÎı¾×Ö·û±»³Æ×÷¡°ÂëÖµ¡±(codevalues)¡£)
ʵ¼ÊÉÏ£¬Unicode¶¨ÒåÁ˲»Ö¹Ò»ÖÖ·½·¨£¬½«ÂëµãÓ³Éäµ½ÂëÖµ¡£ÕâЩ·½·¨
¶¼ÓÐ×Ô¼ºµÄÃû×Ö¡£ÆäÖв¿·ÖÃû×ÖÒÔ¡°UTF¡±¿ªÍ·£¬ÆäËûÒÔ¡°UCS¡±¿ªÍ·£º
UTF-8¡¢UTF-16¡¢UTF-32¡¢UCS-2¡¢UCS-4µÈµÈ¡£ÃüÃû¹æ·¶ÊÇ¡°UTF-<Âë
ÖµµÄ±ÈÌØÊý>¡±ºÍ¡°UCS-<ÂëÖµµÄ×Ö½ÚÊý>¡±¡£ÓÐЩ·½·¨(ÈçUCS-4ºÍUTF-
32)¹¦ÄÜÏàÈô¡£²Î¿´Î¬»ù°Ù¿ÆUnicodeÏà¹ØÒ³Ãæ¡£
¹ØÓÚÕâЩ·½·¨×îÖØÒªµÄÒ»µãÊÇ£¬ÓÐЩ·½·¨ÊǶ¨³¤±àÂ룬ÓÐЩÔòÊDZ䳤±à
Âë¡£»ù±¾Ë¼ÏëÊǶ¨³¤±àÂë¶¼ºÜ³¤£¬ÈçUCS-4ºÍUTF-32¶¼ÓÐ4×Ö½Ú(32±È
ÌØ)³¤£¬³¤µ½×ãÒÔholdסδÀ´¿ÉÆÚµÄ×î´óÂëÖµ¡£
Ïà±È¶øÑÔ£¬±ä³¤±àÂëÔòÉè¼Æ³É¼ò¶Ìµ«¿ÉÀ©Õ¹¡£ÀýÈ磬UTF-8¿ÉÒÔʹÓÃÉÙ
ÖÁ8±ÈÌØ(1×Ö½Ú)À´´¢´æLatinºÍASCIIÂëµã¡£²»¹ý£¬Ëü»¹ÓÐÒ»ÖÖ¡°½ÓÏÂÒ»
¸ö×Ö½Ú¡±»úÖÆ£¬ÒÔ±ãÔÚ±ØÒªÊ±(ÓпÉÄÜÓÃÀ´±íʾÖÐÎÄ×Ö·û)¿ÉÒÔʹÓÃ2¸ö
×Ö½ÚÉõ»ò4¸ö×Ö½Ú¡£¶ÔÓÚÎ÷·½¹ú¼ÒµÄ³ÌÐòÔ±£¬Õâ¾ÍÒâζ×ÅUTF-8¼È¸ßЧ
ÓÖÁé»î£¬UTF-8Ö®ËùÒÔ³ÉΪ½»»»UnicodeÎı¾ÊÂʵÉϵıê×¼±àÂ룬ÔÒòÕý
ÔÚÓÚ´Ë¡£
×ÜÖ®£¬²»´æÔÚËùνµ¥Ò»µÄUnicode±àÂëϵͳ»ò·½·¨£¬¶øÊÇÓкü¸ÖÖ±àÂë
·½·¨£»´òËã¸ú±ðÈ˽»»»Îı¾Ê±£¬ÄãÐèÒªÃ÷È·Ö¸¶¨×Ô¼º²ÉÓÃÁËÄÄÖÖ±àÂë·½
·¨¡£
±ÈÈ磬ÊDz»ÊÇÕâÑù£º
»òÕßÕâÑù£º
»òÕ߯äËû±àÂë·½·¨¡£
ÕâÓֻص½ÎÒÇ°ÃæÌá¹ýµÄ»°Ì⡣ΪʲôҪÓÃUnicodeÀ´±àÂ룿
ǰÎÄÌáµ½£º
Ê×ÏÈ£¬ÎÒÃÇ´ÓÒ»ÌõÐÅÏ¢¼´ÏûϢ˵Æð£¬ÏûÏ¢ÒÔÈËÀà¿ÉÒÔÀí½â¡¢Ò×¶®µÄ±í
ʾ´æÔÚ¡£
Æä´Î£¬(ÔÒòÉÔºòÔÙÊö)ÎÒÃÇÐèÒªÄܽ«Ã÷ÎıíʾµÄÏûϢת³ÉÁíÍâijÖÖ
±íʾ(²»·Á³ÆÖ®Îª¡°±àÂëÎı¾¡±)£¬ÎÒÃÇ»¹ÐèÒªÄܽ«±àÂëÎı¾×ª»Ø³ÉÃ÷
ÎÄ¡£´ÓÃ÷Îĵ½±àÂëÎı¾µÄת»»³ÆÎª¡°±àÂ롱£¬´Ó±àÂëÎı¾ÓÖת»Ø³ÉÃ÷ÎÄ
ÔòΪ¡°½âÂ롱¡£
ºÃµÄ¡£ÏÖÔÚÊÇʱºò̽ÌÖÕâЩÔÒòÁË¡£ÎªÊ²Ã´ÎÒÃÇ»áÏë׎«Ã÷ÎıíʾµÄÏû
Ϣת»»³ÉÁíÒ»ÖÖ±íÊ¾ÄØ£¿
Ò»¸öÔÒòµ±È»ÊÇÎÒÃÇÏëÒª±£ÃÜ¡£ÎÒÃÇÏëͨ¹ý¼ÓÃÜ(encrypting)ºÍ½âÃÜ
(decrypting)À´Òþ²ØÏûÏ¢µÄÃ÷ÎÄ£¬»ù±¾ÉϱàÂëºÍ½âÂëµÄËã·¨ÒªÇó±£ÃÜ
ºÍ²»À©É¢¡£
²»¹ý£¬ÕâÊǸö½ØÈ»²»Í¬µÄÖ÷Ìâ¡£ÑÛÏ£¬ÎÒÃǶԱ£Ãܲ»¸ÐÐËȤ£»ÉíΪ
Python³ÌÐòÔ±£¬ÎÒÃǸÐÐËȤµÄÊÇUnicode¡£Òò´Ë£º
ÉíΪPython³ÌÐòÔ±£¬ÎªÊ²Ã´ÎÒ»áÐèÒªÄܽ«Ã÷ÎÄÏûϢת»»³ÉijÖÖ±àÂë±í
ʾ¡¡±ÈÈçUTF-8Ö®ÀàµÄUnicode±íʾ£¿
¼Ù¶¨ÄãÕýÊæÊæ·þ·þµØ×øÔÚµçÄÔǰ£¬ÓÃÄã×îϲ»¶µÄÎı¾±à¼Æ÷£¬ÓÃ
Python(ÌØ±ðÊÇÓÃPython 3+)±àд±ê×¼µÄHello World³ÌÐò¡£ÄãµÄÕû¸ö³Ì
ÐòÖ»ÓÐÏÂÃæÕâÒ»ÐдúÂë¡£
print(Hello, world!)
ÕâÀïµÄ¡°Hello, world!¡±¾ÍÊÇÃ÷ÎÄ¡£ÄãÔÚÆÁÄ»ÉÏ¿´µÃ¼ûËü¡£Äã¿ÉÒÔÔĶÁ£¬Ã÷°×ËüµÄº¬Òå¡£Ëü¾ÍÊÇÒ»×Ö·û´®£¬Äã¿ÉÒÔ¶ÔËüÖ´ÐÐ×Ö·û´®ÀàÐ͵ıê×¼²Ù
×÷£¬±ÈÈç½ØÈ¡Ò»¸ö×Ó´®(ÇÐÆ¬)¡£
²»¹ýÏÖÔÚ¼Ù¶¨Äã×¼±¸½«Õâ¸ö×Ö·û´®¡°Hello, world!¡±·Åµ½Ò»¸öÎļþÖУ¬²¢
½«¸ÃÎļþ±£´æµ½Ó²ÅÌÉÏ¡£Ò²ÐíÄã´òË㽫Õâ¸öÎļþ·¢Ë͸øÅóÓÑ¡£
ÕâÒâζ×ÅÄã±ØÐ뽫ÄÇ¿ÉÁ¯ÊÝСµÄ×Ö·û´®Öð³öPython³ÌÐòÖÐÎÂů¡¢ºÍÄÀ¡¢°²È«µÄ¼Ò£¬ÄÇÀïËü¾ÍÒÔÃ÷ÎÄ×Ö·ûµÄÐÎʽ´æÔÚ¡£Äã±ØÐë°ÑËüÍÆÈëÎļþϵͳ
ÄÇÒõÀ䡢ûÓÐÈËÇéζµÄÍⲿÊÀ½ç¡£ÄÇÀïËü²»»áÒÔ×Ö·ûµÄÐÎʽ´æÔÚ£¬Ö»ÓÐ
1ºÍ0£¬Ò»¶ÑÔÓÂҵĵãµãµÎµÎ£¬³äµçºÍδ³äµçµÄ΢Á£¡£¶øÕâÒâζ×ÅÔ±¾ÐÒ
¸£ÊÝСµÄÃ÷ÎÄ×Ö·û´®±ØÐëÒÔ1ºÍ0µÄijÖÖÌØ¶¨ÅäÖÃÀ´±íʾ£¬ÕâÑùÒ»À´£¬ÓÐ
ÈËÏëÒª»ñÈ¡ÄÇ×é1ºÍ0£¬½«Ëüת»»»Ø¿É¶ÁµÄÃ÷ÎÄ£¬ÍêÈ«¿ÉÒÔ°ìµ½¡£
½«Ã÷ÎÄת»»³É1ºÍ0µÄÌØ¶¨ÅäÖõĹý³Ì¾ÍÊDZàÂëµÄ¹ý³Ì¡£ÎªÁ˽«×Ö·û´®Ð´
ÈëÎļþÖУ¬Äã±ØÐë²ÉÓÃijÖÖ±àÂëϵͳ(±ÈÈçUTF-8)¶Ô×Ö·û´®½øÐбà
Âë¡£Òª´ÓÎļþÖÐÈ¡»Ø×Ö·û´®£¬ÄãÓÖ±ØÐë¶ÁÈëÎļþ£¬¶ÔÕâ×é1ºÍ0½øÐнâ
Â룬ת»Ø³ÉÃ÷ÎÄ¡£
´ÓÎļþ¶Áд×Ö·û´®Ê±ÐèÒª¶ÔËü½øÐбàÂëºÍ½âÂë²¢²»ÊÇÐÂÏÊÊ£¬Õâ²»ÊÇ
Python 3¶ÔUnicodeµÄÐÂÖ§³ÖÒýÈëµÄ¶îÍ⸺µ£¡£ÆäʵÄãÒ»Ö±ÔÚ×öÕâ¼þÊ¡£
²»¹ý¾ÍÊDz»ÔõôÃ÷ÏÔ¶øÒÑ¡£½ÏÔç°æ±¾µÄPython²ÉÓÃASCII±àÂë·½°¸¡£Òò
ΪÔÚÄÇЩ¾ÃÔ¶µÄÄê´ú£¬Ò²Ö»ÓÐASCIIÕâÖÖ±àÂë·½°¸£¬Äã²»ÐèÒªÖ¸¶¨×Ô¼º
ÏëÒª¶ÁдASCII±àÂëµÄÎļþ¡£PythonÖ±½Ó¼Ù¶¨ÎļþĬÈϾͲÉÓÃASCII£¬×Ô
¶¯½øÐбàÂëºÍ½çÃæ¡£µ«ÊÇ£¬ÎÞÂÛÄãÊÇ·ñÒâʶµ½Õâµã£¬ÎÞÂÛºÎʱ£¬Ö»ÒªÄã
µÄ³ÌÐò´ÓÎļþ¶Áд×Ö·û´®£¬Python¶¼»áÔÚÄ»ºóæµ£¬ÎªÄãÍê³É±àÂëºÍ½â
Â빤×÷¡£
×ÛÉÏ£¬Õâ¾ÍÊÇΪʲôÉíΪPython³ÌÐòÔ±µÄÄãÐèÒªÄܽ«Îı¾±àÂë³ÉUTF-
8(»òÆäËûijÖÖ±àÂ룺UTF-16¡¢ASCIIµÈ)£¬»ò½«UTF-8ת»Øµ½Îı¾¡£Äã
ÐèÒª½«×Ö·û´®±àÂë³ÉÒ»×é1ºÍ0£¬ÕâÑù²ÅÄܽ«ÕâЩ1ºÍ0·Å½øÎļþ£¬È»ºó½«
Îļþ·¢Ë͸øÆäËûÈË¡£
ʲôÊÇÃ÷ÎÄ£¿
Ç°ÃæÌáµ½±àÂë½âÂë¹ý³ÌÓÐÈýµãÐèҪעÒ⣬ÎÒ̽ÌÖÁËÇ°ÃæÁ½µã¡£ÏÂÃæÊÇ
µÚÈýµã¡£
Ã÷ÎĺͱàÂëÎı¾Ö®¼äµÄ²î±ðÊÇÏà¶ÔµÄ£¬ÇÒÒÀÀµÓï¾³¡£
×÷Ϊ³ÌÐòÔ±£¬ÎÒÃÇ»á°ÑÊéÃæÎı¾µ±×÷Ã÷ÎÄ¡£µ«Ò²Òª´ÓÆäËû½Ç¶È·ÖÎöÊÂ
Îï¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔ°Ñ¿ÚÍ·Îı¾¿´×÷Ã÷ÎÄ£¬¶øÊéÃæÎı¾¿´×÷±àÂëÎı¾¡£
´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬ÊéÃæÓïÊDZàÂë¹ýµÄ¿ÚÓï¡£ÊÀ½çÉÏÓкܶàÖÖ²»Í¬µÄ±à
Â룬½«¿ÚÓï±àÂë³ÉÊéÃæÓï¡£¾ÙÀýÀ´Ëµ£¬ÓйŰ£¼°ÏóÐÎÎÄ×Ö¡¢ÂêÑÅÏóÐÎÎÄ
×Ö¡¢À¶¡×Öĸ¡¢Ï£À°×Öĸ¡¢°¢À²®ÎÄ¡¢ÖйúµÄ±íÒâÎÄ×Ö£¬»¹Óзdz£Æ½»¬
µÄÌì³ÇÎÄ(Devanagari)£¬¼´Ê¹ÊǼòдÌåÒ²³Ê·æÀû¼âÈñµÄШÐΡ£ÕâЩ¶¼ÊÇ¿ÚÓï´ÊµÄÊéд±àÂë¡£ÕýÈçÓ¢¹úÕþÖÎÕÜѧ¼ÒÍÐÂí˹¡¤»ô²¼Ë¹(Thomas
Hobbes)ËùÑÔ£¬ËüÃǶ¼ÊÇ¡°ÎÒÃÇÒ²ÐíÀµÒÔ¼ÇסÎÒÃÇ˼ÏëµÄ¼ÇºÅ¡±¡£
ÕâÓÖÌáÐÑÎÒÃÇ£¬ÔÚ²»Í¬µÄÓï¾³ÖУ¬¼´Ê¹ÑÔÓï±¾Éí¡ª¡ªÓïÑÔ¡ª¡ªÒ²¿ÉÄܱ»
¿´×÷ÊÇÒ»ÖÖ±àÂëÐÎʽ¡£Ôڴ󲿷ÖÔçÆÚÏÖ´úÕÜѧÖÐ(ÏëÏë»ô²¼Ë¹ºÍÂå
¿Ë)£¬ÑÔÓï(»òÓïÑÔ)»ù±¾Éϱ»ÈÏΪÊÇ˼ÏëºÍÀíÄîµÄ±àÂë¡£µ±ÎÒ½«ÎÒµÄ
Ïë·¨±àÂë³ÉÓïÑÔ˵³ö¿Ú²¢¶ÔÄã˵µÄʱºò£¬¹µÍ¨¾Í·¢ÉúÁË¡£ÄãÌýµ½ÎÒÑÔÓï
µÄÉùÒô£¬½«Æä½âÂë³ÉÏë·¨¡£µ±ÎÒ¾ÓÉÓïÑԳɹ¦µØ½«×Ô¼ºÐÄÀïµÄÏë·¨´«µÝ
µ½ÄãÐÄÀïµÄʱºò£¬ÎÒÃǵĹµÍ¨Ò²¾Í³É¹¦ÁË¡£ÓÉÓÚÎÒµÄÑÔÓÄãÐÄÀïµÄÏë
·¨¸úÎÒÐÄÀïµÄ´ï³ÉÒ»ÖÂʱ£¬Äã±ãÀí½âÁËÎÒ¡£(²Î¿´Ian HackingµÄWhy
Does Language Matter to Philosophy?)
×îºó£¬×¢ÒâÔÚÆäËûÓï¾³ÖУ¬¡°Ã÷ÎÄ¡±ÉõÖÁ²»ÊÇÎı¾¡£Ã÷ÎÄÊÇÉù²¨µÄ(±ÈÈç
ÒôÀÖ)£¬¿ÉÒÔ±àÂë³Émp3Îļþ¡£Ã÷ÎÄÊÇͼÏñµÄ£¬¿ÉÒÔ±àÂëΪgif¡¢png»ò
jpgÎļþ¡£Ã÷ÎÄÊǵçÓ°µÄ£¬¿ÉÒÔ±àÂë³ÉwmvÎļþ¡£²»Ò»¶ø×ã¡£
±àÂëºÍ½âÂëÎÞËù²»ÔÚ¡£
Ó¢ÎÄÔÎÄ£ºThe bytesstr dichotomy in Python 3
Unicode for dummies ¡ª EncodingÈçºÎ¹¹ÔìÍŶÓPython¿ª·¢»·¾³
×÷Õß BePROUD¹«Ë¾×ÊÉ³Ìʦ
BePROUDÊÇÒ»¼ÒרעÓÚPython¿ª·¢µÄ¹«Ë¾£¬ÒòÔÆ¼¯ÁËÖÚ¶àÐÐÒµ¾«Ó¢
¶øÎÅÃûÓÚÈÕ±¾¹úÄÚ¡£
ÒëÕß Ê¢ÈÙ
Ôø¾ÍÖ°ÓÚ°®Á¢ÐÅÖйú£¬³¤ÆÚ´ÓÊÂͨÐÅ¡¢ITÉ豸µÄÑз¢¡¢²âÊÔµÈÏà¹Ø¹¤
×÷¡£Ï²°®½Å±¾ÓïÑÔ£¬ÌرðÊÇPython¡£Ï£Íû½«PythonµÈ½Å±¾ÓïÑÔ¸üºÃµØ
Ó¦ÓÃÓÚ×Ô¶¯»¯²âÊÔµÈÁìÓòÖ®ÖС£
ÔÚ¸öÈË¿ª·¢»·¾³ÖУ¬¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄϲºÃ½øÐÐÔ´´úÂë¹ÜÀí£¬Ò»Ð©Ïë·¨ÒÔ
¼°ÐÅÏ¢Ò²¿ÉÒÔ×ÔÐмǼ¡£
ÄÇôÓɶàÈ˹²Í¬¿ª·¢Ò»¸öÏîÄ¿ÓÖÊÇÔõÑùµÄÇéÐÎÄØ£¿Ê×ÏÈ£¬¿ª·¢µÄ³É¹ûÐè
ÒªÔÚÍŶӳÉÔ±Öй²Ïí¡£Æä´Î£¬²âÊÔ¿ª·¢³É¹ûµÄ²âÊÔ»·¾³Ò²ÐèҪͳһ½¨
Á¢¡£½Ó×Å£¬¿ª·¢µÄ·½·¨ÓëÐÅÏ¢Ò²ÒªÔÚÍŶӳÉÔ±Öй²Ïí¡£¿É¼ûÍŶӳÉÔ±Ö®
¼äµÄ¹µÍ¨±Ø²»¿ÉÉÙ¡£ÄÇô£¬ÈçºÎʹÍŶӿª·¢¸ßЧ½øÐУ¿ÈçºÎ¹¹½¨ÍŶӿª·¢»·¾³£¿±¾ÎľÍÕâЩ
ÎÊÌâµÄÏà¹Ø·½·¨ºÍÓÐÓõŤ¾ß½øÐнéÉÜ¡£
ÔÚ¹«¹²·þÎñÆ÷ÉϽ¨Á¢Óû§¡¤ÉèÖÃȨÏÞ
Ê×ÏÈ£¬ÎÒÃǽéÉÜÒ»ÏÂÔÚÍŶӹ«¹²·þÎñÆ÷ÉϽ¨Á¢Óû§²¢ÉèÖÃȨÏ޵IJÙ×÷²½
Öè¡£
Óû§ÓëÓû§×éµÄ½¨Á¢
½¨Á¢¿ª·¢ÍŶӵÄÓû§ºÍÓû§×é¡£ÔÚ¿ª·¢Ê±Ê¹ÓõķþÎñÆ÷ÉÏÔËÐÐן÷ÖÖ¸÷
ÑùµÄÓ¦ÓóÌÐò£¬Èç¹û¶¼Ê¹ÓÃrootÓû§µÄ»°£¬ÔÚ°²È«ÐÔÉÏ»á´æÔںܴóÒþ
»¼£¬ÎÒÃÇÒ²²»ÆÚÍûÄÇÑù¡£ÔÚ¹«¹²·þÎñÆ÷ÉÏ£¬½¨ÒéʹÓÃÆÕͨÓû§È¨ÏÞÔËÐÐ
¿ª·¢³ÌÐò¡£
Ê×ÏȽ¨Á¢Ò»¸ö¿ª·¢Óû§×顣ȻºóÈçÏÂËùʾ£¬²ÉÓÃrootȨÏÞºÍgroupaddÃü
Á½¨Á¢ÃûΪdevµÄÓû§×é¡£
sudo groupadd dev
½Ó׎¨Á¢Óû§¡£Ê¹ÓÃadduserÃüÁ´´½¨bpbookÓû§×飬²¢ÔÚÃüÁîÐÐÖÐ
ʹÓÃ--ingroupÑ¡ÏÆäÌí¼Óµ½Ö®Ç°½¨Á¢µÄdevÓû§×éÖС£
sudo adduser bpbook --ingroup dev
ÕâÑùÒ»À´¾ÍÔÚϵͳÖн¨Á¢ÁËÒ»¸öÃûΪbpbookµÄÓû§¡£Èç¹ûҪɾ³ýÓÃ
»§£¬¿ÉÒÔÖ±½ÓʹÓÃuserdelÃüÁî½øÐÐɾ³ý¡£
sudo userdel ¨Cr bpbook
Sudoers
ÆÕͨÓû§ÓÐʱ»áÐèҪʹÓ󬼶Óû§(root)µÄȨÏÞÈ¥Ö´ÐÐһЩÃüÁî¡£Õâ
ʱ¿ÉÒÔͨ¹ýetcsudoersÎļþÖеÄÉ趨¸øÓèÆÕͨÓû§Ö´ÐÐÌØ¶¨rootÃüÁîµÄ
ȨÏÞ¡£½ÓÏÂÀ´£¬ÎÒÃÇͨ¹ý±à¼¸ÃÎļþ£¬¸³Óè֮ǰ½¨Á¢µÄbpbookÓû§Ò»¶¨
µÄȨÏÞ¡£±à¼sudoerÎļþÐèÒªÖ´ÐÐvisudoÃüÁî¡£
sudo visudoÉÏÃæÃüÁîÖ´Ðк󣬽«»á´ò¿ªetcsudoersÎļþ¡£ÏÂÃæÊÇͨ¹ýetcsudoersÎÄ
¼þ¸³ÓèbpbookÓû§È¨ÏÞµÄÒ»¶ÎÑùÀý£º
%dev ALL=(ALL) ALL
bpbook ALL=(ALL) ALL
ÉÏÃæµÄÉ趨º¬Òå¾ÍÊǸ³ÓèdevÓû§×éÒÔ¼°ÏÂÃæµÄÓû§bpbookʹÓÃsudoÃü
ÁîµÄȨÏÞ¡£µÚÒ»ÐÐÊǸ³ÓèÓû§×飬µÚ¶þÐÐÊǸ³ÓèÓû§È¨ÏÞ£¬Á¬ÔÚÒ»Æð±í
ʾ¸³Óè¶þÕß¿ÉÒÔÖ´ÐÐrootȨÏÞµÄËùÓÐÃüÁî¡£
sudoersÎļþµÄȨÏÞÅäÖøñʽÈçÏÂËùʾ£º
%Óû§×éÃû Ö÷»úÃû=(ȨÏÞ)ÃüÁî
Óû§Ãû Ö÷»úÃû=(ȨÏÞ)ÃüÁî
virtualenv
µ±¶àÊýÈ˹²Í¬¿ª·¢ÏîĿʱ£¬²»ÄÜÒòΪij¸ö×éÔ±Ìí¼ÓÁËij¸ö¿â»òÕß±ä¸üij
¸ö°æ±¾£¬¶øÓ°ÏìÕû¸öÍŶӵĿª·¢»·¾³¡£ÔÚʹÓÃPython¿ª·¢Ê±£¬ÍƼöʹÓÃ
virtualenv¡£ÒòΪʹÓÃÁËvirtualenv£¬ÄÜʹ¿ª·¢»·¾³µÄ±ä¸ü(È簲װеĿâ
»òÕß°æ±¾Éý¼¶)½ö½ö¶ÔÐÐΪÕß±¾ÉíµÄ¿ª·¢»·¾³ÓÐЧ¡£Òò´Ë£¬ÎÒÃDZØÐëÓÐ
ЧʹÓÃvirtualenv¹¹½¨¶àÈË¿ª·¢»·¾³¡£
ÈÎÎñ¹ÜÀíϵͳ
ÎªÍÆ½øÍŶӿª·¢µÄ˳Àû½øÐУ¬Ê×ÒªÈÎÎñ¾ÍÊÇÄܹ»×¼È·°ÑÎÕÿ¸ö¿ª·¢ÈÎÎñ
µÄ¸ºÔðÈ˼°Æä¿ª·¢½ø¶ÈµÄ×´¿öÐÅÏ¢£¬²¢¼ÓÒÔÊáÀí¡£ÔÚÕâÀ¹ÜÀíÈÎÎñ¾Í
ÐèÒªÓõ½ÈÎÎñ¹ÜÀíϵͳ(Issue Tracking System :ITS)¡£
ITSÊÇÔÚ¿ª·¢¹ý³ÌÖд´½¨ÈÎÎñ¡¢×·×Ù״̬¡¢¹ÜÀíÈÎÎñµÄϵͳ¡£TracºÍ
RedmineÊÇÒÔticketΪµ¥Î»½øÐÐÈÎÎñ¹ÜÀíµÄϵͳ¡£Ê¹ÓÃITSʱ£¬²»½ö¿ÉÒÔ
¹ÜÀíÈÎÎñ£¬»¹¾³£×÷Ϊ´´½¨ticketÐÅÏ¢²¢Â¼È빤×÷ÈÎÎñµÄÈë¿Ú¡£
ITSÖлá¸ù¾Ý²»Í¬Çé¿ö¸ø´´½¨µÄticket·ÖÅ䲻ͬµÄ״̬(Èçн¨¡¢½øÐÐ
ÖС¢½â¾ö¡¢ÒÑÑéÖ¤¡¢¹Ø±Õ¡¢±£ÁôµÈ)¡¢¸øÓ費ͬµÄÓÅÏȼ¶ÊôÐÔ(½ô¼±¡¢¸ß¡¢ÆÕͨ¡¢µÍ)¡¢Î¬»¤ÔðÈÎÈËÐÅÏ¢¡¢ÁгöÍê³ÉÆÚÏÞ£¬»¹¿ÉÒÔ²éѯÉÏÊöËù
ÓÐÐÅÏ¢¡£Òò´Ë£¬¶ÔÓÚÕû¸öÏîĿ״¿öµÄ°ÑÎÕÊǷdz£ÓÐÀûµÄ¡£Í¬Ê±£¬½«¿ª·¢½øÐÐÈÎÎñ·Ö¸î£¬Í¨¹ýticketµÄÐÎʽ·ÖÅ䏸ÏîÄ¿×é³ÉÔ±£¬Õâ
Ò²ÊÇÒ»ÖÖÏîÄ¿¿ª·¢µÄÊֶΣ¬³Æ×÷ticketÇý¶¯¿ª·¢¡£ÓÉÓÚͬAgile¿ª·¢ÓÐ×Å
ºÜºÃµÄÆ¥Åä¹ØÏµ£¬Òò´ËÎÒÃÇÒ²½«ÆäͶÈëµ½×î½üµÄ¿ª·¢ÖнøÐÐʹÓá£
°æ±¾¹ÜÀíϵͳ
ÔÚÍŶӿª·¢µÄ¹ý³ÌÖУ¬ÐèÒªÓÐÒ»¸öµØ·½¼¯ÖйÜÀíÿλ³ÉÔ±¿ª·¢µÄ´úÂë³É
¹û¡£ÁíÍâ£¬Ëæ×Å¿ª·¢µÄ²»¶ÏÍÆ½ø£¬Ò²»á²úÉú¸÷ÖÖ¸÷ÑùµÄBUG£¬ÔÚÕâ¸öʱ
ºò£¬ÎªÁËÁ˽âBUGÊÇÔÚʲôʱºò»ì½øÀ´µÄ£¬ÐèÒªÄܶԿª·¢µÄ´úÂë½øÐÐÀú
Ê·×·×Ù¡£
ÓÚ´Ë£¬°æ±¾¿ØÖƹÜÀíϵͳ(Version Control System£ºVCS)¾ÍÄÜ·¢»Ó×÷
ÓÃÁË¡£°æ±¾¹ÜÀíϵͳ£¬ÈçÆäÃû×ÖËùʾ£¬ÊǹÜÀíÔ´´úÂë¼°Æä±ä¸üÀúÊ·µÄϵ
ͳ¡£VCSÖ÷Òª´ú±íSubversionÕâÑù¼¯ÖÐÐ͵ĹÜÀí¹¤¾ß£¬ºÍMercurial¡¢Git
ÕâÑùµÄ·Ö²¼Ê½°æ±¾¹ÜÀí¹¤¾ß¡£±¾ÎÄʹÓõÄÊÇMercurial¡£
MercurialÓëTracÁª¶¯°ó¶¨
½«ITSÓëVCS½øÐÐϵͳ°ó¶¨£¬¾Í¿ÉÒÔʹµÃÏîÄ¿ÖÐticketºÍÔ´´úÂë±ä¸ü¹ý³Ì
¸ü¼ÓÇåÎú¡£±¾½Ú¶ÔMercurialºÍTracµÄϵͳ°ó¶¨·½·¨½øÐÐ˵Ã÷¡£TracÓë
Mercurial½øÐÐϵͳ°ó¶¨ÐèÒª°²×°TracµÄmercurial-plugin²å¼þ¡£¶ø
mercurial-plugin²å¼þÓÉSubversion½øÐйÜÀí£¬ËùÒÔÊ×ÏÈÐèÒª°²×°
Subversion¡£
sudo aptitude install subversion
Subversion°²×°Íê±ÏÖ®ºó£¬¾Í¿ÉÒÔÏÂÔØTracµÄmercurial-plugin²å¼þÁË1 ¡£
1 ÆäʵÕâÊÇsvn checkoutµÄÃüÁ¶ø²»Êǵ¥´¿ÒâÒåµÄÏÂÔØ¡£¡ª¡ªÒëÕß×¢
svn co http:svn.edgewall.comrepostracplugins0.12mercurial-plugin
ÏÂÔØÍê³Éºó¾Í¿ÉÒÔ°²×°¸Ã²å¼þÁË¡£
cd mercurial-plugin
python setup.py install
mercurial-plugin²å¼þ°²×°Íê³ÉÖ®ºó£¬ÐèҪͨ¹ý±à¼trac.iniÎļþ2°ó¶¨MercurialºÍTrac¡£Ê×ÏÈ£¬Ìí¼Óʹmercurial-plugin²å¼þÉúЧµÄcomponentes
¶Î£¬ÈçÏÂËùʾ£º
[components]
tracext.hg. = enabled
2 ¸ÃÎļþÊÇÔÚtrac½¨Á¢µÄ¹¤³ÌconfĿ¼Ï£¬Èçhomeeronshebpbookconf¡£¡ª¡ªÒëÕß×¢
½Ó×ÅÖ¸¶¨´úÂë¿âµÄÀàÐͺʹúÂë¿âµÄĿ¼¡£ÔÚtrac¶ÎÖеÄrepository_typeÖ¸
¶¨±íʾMercurialµÄhg£¬ÔÚrepository_dirÖÐÖ¸¶¨´úÂë¿âµÄ·¾¶(±¾ÀýÖÐ
ÊÇvarhgbpbook)
[trac]
repository_type = hg
repository_dir = varhgbpbook
¾¹ýÒÔÉÏÉ趨£¬¾Í¿ÉÒÔʹTracÓëMercurial°ó¶¨£¬MercurialÖеĸüÐÂÈÕÖ¾
Ò²»á·´Ó¦ÔÚTracÖС£
С½á
±¾ÎĽéÉÜÁËÍŶӿª·¢µÄ»·¾³¹¹½¨£¬¸ø³öÁ˹«¹²·þÎñÆ÷ÉϵÄÓû§ÓëÓû§×é
½¨Á¢²¢ÉèÖÃȨÏ޵IJÙ×÷Á÷³Ì£¬ÒÔ¼°ITS¡¢VCSµÈÔÚÍŶӿª·¢ÖÐÊÊÓõĸ÷
ÖÖ¹¤¾ß¡£
Áé»îÔËÓÃMercurial¡¢TracÕâÀ๤¾ß£¬Ê¹¿ª·¢³É¹û¿ÉÒÔÔÚÍŶӳÉÔ±Öй²
Ïí£¬Õ⽫»á´ó´óÍÆ½øÍŶӿª·¢µÄЧÂÊ¡£ÁíÒ»·½Ã棬Skype¡¢DropBox¡¢Google DocsµÈ¹¤¾ßµÄʹÓã¬ÓÖ¿ÉÒÔ½¨Á¢Í¨¹ýÍøÂç½øÐйµÍ¨²¢¹²Ïí¿ª·¢
ÐÅÏ¢ÓëÊý¾ÝµÄÇÅÁº£¬Ê¹µÃ¿ª·¢¿ÉÒÔËæÊ±ËæµØ½øÐУ¬´ó·ù½µµÍÁ˲îÂúÍͨ
Ðŵijɱ¾¡£
ÍŶӿª·¢Öи´ÔÓµÄÇéÐÎÓкܶࡣֻÓÐÁé»îÔËÓø÷ÖÖ¹¤¾ß£¬Ìá¸ßЧÂÊ£¬²Å
ÄÜÈ¡µÃÒ»¶¨³É¹û¡£Ê¹Óø÷À๤¾ßÌá¸ß¿ª·¢Ð§ÂÊÎÞÒÉÊÇÒ»ÖÖÀÖȤ£¬´ó¼ÒÒ²
¿ÉÒÔ³¢ÊÔ½«±¾ÎĽéÉܵŤ¾ßͶÈëµ½¸÷×ÔµÄÍŶӿª·¢ÏîÄ¿ÖÐʹÓÃÒ»ÏÂŶ¡£
¡¶Python¿ª·¢ÊµÕ½¡·À´×ÔÓÚÕæÕýµÄ¿ª·¢ÏÖ³¡£¬ÓÉBePROUD¹«Ë¾µÄ×ÊÉî
Ô±¹¤Ö´±Ê£¬Äý½áÁËÀÏÅÆ³ÌÐòÔ±ÔÚÈÕ³£¹¤×÷ÖлýÀ۵Ŀª·¢¾Ñ飬ÊÇÒ»±¾ÄÑ
µÃµÄºÃÊé¡£±¾ÎÄÑ¡×Ô¡¶Python¿ª·¢ÊµÕ½¡·ÈËÎïÂÞ³¿£ºÃÎÏëÕÕ½øÏÖʵ£¬Ò»¸ö¶ÀÁ¢¿ª·¢ÕßµÄÌïÔ°Ê«ËûÖÖÓлúÊ߲ˡ¢Ëû¸ãÈ«¾°ÉãÓ°¡¢Ëû×Ô¼ºÉè¼ÆÖÆ×÷Ó²¼þ²úÆ·£¬Ëû»¹ÊǸö
³ÌÐòÔ±£¬²¢ÒÔ´ËΪÉú¡£ÂÞ³¿£¬ËûÊÇMarkdown±à¼Æ÷MouµÄ×÷Õߣ¬Ëû
¾ÍÊÇһλÉú»îÔÚÅ©³¡ÉϵĶÀÁ¢¿ª·¢Õß¡£ÌáÆðÎÒÃÇÕâ¸öʱ´úµÄÂëÅ©ÃÇ£¬ÈËÃÇÁªÏëµ½×î¶àµÄÊÇ¡°¼Ó°à¡±¡¢¡±¸Ï½ø¶È¡°¡¢¡°²»½¡¿µµÄÉú»î·½Ê½¡±¡¡ºÃ
ÏñÕâЩÊǺͱà³ÌÃܲ»¿É·ÖµÄÑÜÉúÆ·¡£È»¶ø£¬ÔÚÂÞ³¿ÉíÉÏÎÒÃÇ¿´µ½ÁíÍâ
Ò»ÖÖ¿ÉÄÜÐÔ£¬ÎÒÃÇ¿ÉÒÔ£¬»î³ö×Ô¼ºÏëÒªµÄÏÖʵ
MouStand¡ª¡ªÈÃÃÎÏë±ä³ÉÏÖʵ
ÎÒÊ®·Öϲ»¶ Mou µÄ logo£¬Õâ¸öÐÎ×´ÊÇÏëÏó³öÀ´µÄ£¬Ö®Ç°ËüÔÚÏÖʵÖÐ
²¢²»´æÔÚ¡£µ«ÊÇÎÒ°ÑËü±ä³ÉÁËÏÖʵ¡£
ΪʲôҪ×Ô¼º×öÒ»¸ö Markdown ±à¼Æ÷?
ÎÒ¸Õ¿ªÊ¼ÖªµÀ Markdown Õâ¸öÓïÑÔ£¬¾Í¾õµÃͦÓÐÒâ˼£¬ÏëÕÒÒ»¸ö
Markdown µÄ±à¼Æ÷¡£µ±Ê±ÓÐÁ½¸öÊÕ·ÑµÄ±à¼Æ÷¡£ÆäÖÐÒ»¸öÖÐÎÄÖ§³Ö²»
Ì«ºÃ£¬ÀÏÌø£¬Ò»´òÖÐÎĵÄʱºòÄǸö¼üÉÏÏÂÌø¡£ÁíÍâÒ»¸öÔ¤ÀÀ½çÃæºÍ±à¼½çÃæÊÇ·Ö¿ªµÄ¡£ÒªÏëÔ¤ÀÀ¾ÍµÃµãÒ»ÏÂÔ¤ÀÀµÄÃüÁ²»ÄÜͬʱÏÔʾ¡£ÎÒÏë
Òª×ó±ß±à¼ÓÒ±ßÔ¤ÀÀ£¬ÕâÑù¾Í¿ÉÒÔʵʱԤÀÀ£¬Ò»±ß±à¼£¬Ò»±ßÏÔʾµÄ£¬¿ÉÊÇûÓС£ÄÇû°ì·¨£¬ÊÐÃæÉÏûÓÐÖ»ÄÜ×Ô¼º×ö¡£È»ºóÎÒ¾Í×öÁË¡£
Mou µÄͬ²½¹ö¶¯»¹²»¾«È·¡£ÒòΪÎÒÕâ¸öÊǰ´ÕÕ×óÓÒÁ½¸ö´°¿ÚµÄ³¤¶È£¬°Ù
·Ö±ÈÀ´Ë㡣ͬ²½±È½ÏÄÑ×ö¡£Èç¹ûÒª¾«È·Æ¥ÅäÖ»Äܰ´ÔªËØ¡£±ÈÈç×ó±ßÊǶþ
¼¶±êÌ⣬µÚÒ»¸ö¶þ¼¶±êÌâ¶ÔÓұߵĶþ¼¶±êÌ⣬ÕâÑùÀ´Ë㶨λ²Å×¼¡£µ«ÊÇ
ÎÒÏÖÔÚ»¹²»ÖªµÀÔõô×ö¡£
ÄãºÜϲ»¶Õâ¸ö Mou µÄÕâ¸ö logo?
Êǵģ¬Mou ÏÖÔÚµÄ logo ÊÇ·½³ÙÉè¼ÆµÄ£¬Îҷdz£Ï²»¶¡£µÚÒ»¸ö°æ±¾µÄ
logo ÊÇÎÒ»µÄ£¬µ«»µÄ²»ºÃ¡£ºóÀ´ÔÚ¶¡Ò»µÄ½éÉÜÏÂÄܹ»ÓÐÐÒÇëµ½·½³ÙΪ
Mou ÖØÐÂÉè¼Æ logo¡£ÎÒµ±Ê±µÄÒªÇó¾ÍÊǼò½à£¬Í»³ö M¡£ÎÒ¾õµÃËûÉè¼Æ
µÄ·Ç³£°ô£¬ÕâÖÖÔìÐÍÊÇ·½³ÙÏëÏó³öÀ´µÄ£¬Ö®Ç°ÏÖʵÖв¢Ã»ÓÐÕâÖÖÐÎ×´µÄ
ÎïÌå¡£Îҷdz£Ï²»¶Õâ¸öÔìÐÍ£¬ÒÔÖÁÓÚÎÒÏë°ÑËü±ä³ÉʵÎï¡£µ«Éè¼Æ logo
ºÍ°ÑËü±ä³ÉʵÎïÊÇÁ½ÂëÊ¡£µ±³õÉè¼Æ logo µÄʱºò²¢Ã»Óп¼Âǵ½Òª×ö³É
ʵÎï¡£
Mou ×î³õ(µÚÒ»¸ö¹«¿ª²âÊÔ°æ Mou 0.6.0)µÄ logo£¬2011 Äê 9 Ô£¬ÂÞ³¿
Éè¼Æ£º
Mou 0.6.4 µÄ logo£¬2011 Äê 10 Ô£¬·½³ÙÉè¼Æ£ºMou 0.7.2 µÄ logo£¬2012 Äê 8 Ô£¬·½³ÙÉè¼Æ¸Ä½ø£¬ÑØÓÃÖÁ½ñ£º
¼ÈÈ»¹ØÓÚ MouStand Õâ¸öʵÎïËùÓеÄÒ»Çж¼ÊÇÄã×Ô¼ºÉè¼ÆµÄ£¬ÄǾʹӰü
×°½²Æð°É¡£
°ü×°ÎÒ¿¼ÂǹýÖ½ºÐ£¬µ«ÊDz»Ì«½áʵ¡£ÍßÀãÖ½ÊÇÈáÐԵģ¬ÈáÐÔµÄһѹ¾Íѹ
»µÁË£¬Ôõô°ì£¿ÏÖÔÚ¿ìµÝ¶¼±È½Ï±©Á¦£¬ËùÒÔÎÒÃÇÐèÒª¸ÕÐԵİü×°¡£Õâ¸ö
ľ֯°ü×°ºÐÊÇÖ¸½Ó½á¹¹¡£ËüÓÐÒ»¸öÓŵã¾ÍÊÇÎȹ̡¢Ìرð½áʵ£¬¿ÉÒÔ±£Ö¤
³¤Í¾µÄÔËÊäµ±ÖÐÀïÃæµÄ¶«Î÷²»ÊÜË𺦡£²ÄÁϵ±È»ÊÇÔ½ÇáÔ½ºÃ£¬Çáµã¿ÉÒÔ
Ê¡ÓÊ·Ñ£¬µ«ÊDz»ÄÜÌ«ÇᣬÒòΪ»¹Òª¿¼Âǵ½Ç¿¶È¡£µ±Ê±ÎҾͿ¼ÂÇÁ½ÖÖ²Ä
ÁÏ£¬Ò»ÖÖÊÇͩľ£¬·Ç³£Çá¡£µÚ¶þÖÖÊÇËÉľ¡£µ«ÊÇͩľҪÊÇÕâ¸öºñ¶È²»½á
ʵ¡£Ò»²ÈÉÏÈ¥¾ÍËéÁË¡£ËÉľµÄ²ÈÉÏȥûʲôÎÊÌâ¡£
·¢»õµÄʱºòľºÐµÄÍâÃæ»¹ÒªÌ×Ò»¸öÍßÀãÖ½ÏäµÄ£¬¸ÕÈá²¢¼Ã£¬¶àÒ»²ã±£
»¤¡£Äã¿´ÉϸÇÖ»²ÉÓÃÕâÁ½¸ùľÌõ£¬¶øÕâ±ßûÓС£ÕâÊÇÎªÊ²Ã´ÄØ£¿Õâ¸ö¸ÕºÃ¿É
ÒÔ¿Ûס£¬Èç¹ûÕâ±ßÔÙ¼ÓÁ½¸ùľÌõ£¬¾Í¿Û²»×¡ÁË£¬»á¶¥×¡ MouStand Éϱß
ÕâÁ½¸öÍÈ£¬¾ÍÐèÒª°ÑÕâ¸öºÐ×ÓÔÙ¸ßÒ»µã£¬ÄÇÑù¾ÍÀ˷ѲÄÁÏÁË¡£¿¼Âǵ½Ç¿
¶È¡¢Ò²¿¼Âǵ½½ÚÊ¡²ÄÁÏ¡£³ß´ç¶¼ÊÇÆ¥ÅäµÄ£¬ÎªµÄÊÇ×î´óÏ޶ȵĽÚÊ¡²Ä
ÁÏ¡£
°ü×°ÉϵıêǩҲÊÇÎÒ×Ô¼ºÉè¼Æ¡£Îҵķç¸ñÊÇÊôÓÚ¼ò½àËØÑŵķç¸ñ¡£´óÃæ
»ýÁô°×£¬ÉÏÃæÒ»ÌõÊǺڵװ××Ö£¬ÆäÓàÊǰ׵׺Ú×Ö¡£¸Ç×ÓÀïÃæµÄ±êǩעÃ÷
ËüµÄÏêϸ¹æ¸ñ¡£Ã¿¸ö MouStand ÖØ 36 ¿Ë(Ò»¸ö Color Packs Ì××°°üº¬ 4¸ö MouStand£¬Ä¾ºÐÖØ 200 ¿Ë¡£µ«ÊÇÓÐÎó²î£¬Îó²îÎÒ¹ÊÒâдµÄ´óһЩ¡£
±ÈÈçľͷÀïÃæÓÐË®·Ö£¬Ë®¸ÉÁËÖ®ºó»á±äÇᣬʪ¶È´ó»¹ÓпÉÄܱäÖØ¡£
ÕâЩ¶«Î÷¼ÓÆðÀ´£¬ÔÙ¼ÓÍâÃæÌ×Ò»¸öÖ½Ï䳬²»¹ý 500 ¿Ë¡£ÎªÊ²Ã´ 500 ¿Ë£¿
ÒòΪ·¢»õÎÒ²ÉÓÃÓÊÕþ£¬EMS Êǰ´ 500 ¿ËÀ´Ë㣬500 ¿ËÒÔÄÚÊÇÒ»¸ö¼Û¸ñ£¬501 ¿ËÓÖ¼ÓÇ®¾Í²»»®ËãÁË£¬ËùÒÔ±£Ö¤ 500 ¿ËÒÔÄÚ¡£
ÔÙ˵˵²úÆ·±¾Éí¡£
ÎÒÈ¥ÄêÓÃÒø×Ó£¬´¸×ÓÔä³öÀ´Ò»¸ö±ÈÕâ¸öСµÄÐÎ×´¡£ÓÃÒø×ÓÇóÉÒøË¿¡£ÔÙ
ÕÛһϡ£Ò²ÊÇÓô¸×ÓÇÃһϣ¬ÕÛÈý´Î³ÉÕâÑù£¬±ÈÕâ¸öС¡£
È¥Äê(2012 Äê 7 ÔÂ)ÓÃÒø×ÓÔä³öÀ´µÄ Mou µÄ logo£º
Ôٻص½ MouStand£¬¿ªÊ¼Ê±£¬ÎÒÏë×ö logo ÄÇÖÖÑÕÉ«£¬µ«Êǵ÷²»³öÀ´¡£Õâ
¸ö¼Ó¹¤²½ÖèÊÇÕâÑùµÄ£¬ÏȰÑÒ»¿éÆ½ÃæµÄÂÁ°åÇиî³ÉÆ½ÃæÐÎ×´£¬ÇиîºÃÒÔ
ºó£¬Ôٰѱ߽ǽøÐÐÊÖ¹¤´òÄ¥£¬ÒòΪ»úÆ÷´òÄ¥ºÃÖ®ºóÓÐë´Ì¡£´òÄ¥ºÃÖ®
ºó£¬µÚ¶þ²½½øÐÐÕÛÍ䣬°ÑÆ½ÃæµÄͼÐÎÕÛÈý´Î£¬È»ºó¾Í³ÉÐÎÁË¡£±ä³ÉÒ»¸ö
»ù±¾µÄÐÎ×´Ö®ºó£¬ÔÚ½øÐÐÅçɰ´¦Àí£¬Ê¹±íÃæÐγÉÒ»ÖÖÅçɰµÄЧ¹û¡£Ëµ°×
ÁËÕâ¸öÅçɰ¾ÍÊÇÓÃÅçǹÅçϸɰ¡£ÓÃϸɰÁ£×²»÷ËüµÄ±íÃæ£¬×²³öÎÞÊýµÄС
¿Ó£¬¾ÍÐγÉÁËÅçɰЧ¹û¡£ÅçɰµÄ¹¦Ð§Ò»¸öÊÇÃÀ¹Û¡£ÁíÍ⣬ÕÛÍäÁËÖ®»áÓÐѹºÛ(ÕÛÍäºÛ)£¬Åçɰ¿ÉÒ԰Ѻۼ£¼õÈõ¡£Õ⻹ÓеÚËIJ½£¬Ñô¼«Ñõ»¯´¦
Àí¡£ÅçÍêɰ֮ºó±íÃæ¶¼ÊÇÂÁ£¬½øÐÐÑô¼«Ñõ»¯£¬Ê¹±íÃæÉú³ÉÒ»²ãÈýÑõ»¯¶þ
ÂÁ¡£ÈýÑõ»¯¶þÂÁºÜÓ²£¬ÄªÊÏÓ²¶È´ïµ½8¡£ÏñÀ¶±¦Ê¯¡¢ºì±¦Ê¯¡¢Ä¥µ¶Ê¯Ö÷
Òª³É·Ö¶¼ÊÇÈýÑõ»¯¶þÂÁ¡£Ñõ»¯³ÉÈýÑõ»¯¶þÂÁÊǶÔËü±íÃæ½øÐÐÒ»ÖÖ±£»¤¡£
ÏÖÔÚµÄЧ¹û¾ÍºÜÓ²£¬²»ÈÝÒ×»®ÉË¡£Ò²±È½Ï¹â»¬¡£
È»ºóÔÙ½øÐÐȾɫ¡£Äã¿´µ½µÄÕâ¸öÑÕɫʵ¼ÊÉϲ»ÊÇÓÍÆá£¬¶øÊÇīˮ¡£Ñõ»¯
ºó£¬ÈýÑõ»¯¶þÂÁµÄ½á¹¹ÊÇ͸Ã÷µÄ¿××´½á¹¹£¬ÓÃīˮһȾµÄ»°¾ÍÉøÍ¸½ø
È¥¡£×îºóÒ»²½½øÐзâ¿×£¬ÓÿªË®Ö󣬰ÑÑÕÁÏ·âÔÚÀïÃæ¡£(ÑÕÁÏ)ÒÑ¾Éø
͸½øÈ¥ÁË£¬±ÈÓÍÆáÒªºÃÓá£MacBook ±íÃæÒ²ÊÇÕâÖÖ¹¤ÒÕ£¬Ö»²»¹ýÄÇÖÖÅç
ɰÅçµÃ±È½Ïϸ¡£ÎÒÃÇÕâ¸öÅçɰ¿ÅÁ£´óһЩ¡£¿ÅÁ£´óÊÇÒòΪÊܵ½¼Ó¹¤¹¤ÒÕ
µÄÏÞÖÆ£¬¹¤ÒÕ´ï²»µ½ÄÇô¸ß¡£ÁíÍ⣬ÕÛÍäµÄʱºò£¬ºÛ¼£ºÜÃ÷ÏÔ£¬Èç¹ûÓÃ
ϸɰÅçºÛ¼£·Ç³£Ã÷ÏÔ£¬ÑڸDz»µô£¬ËùÒÔÖ»ÄÜÓÃÖеȿÅÁ£µÄ£¬¸ÕºÃ°ÑÕÛºÛ
Ñڸǵô¡£ÕÛµÄʱºò»úÆ÷ÓÐÁ½¸ö¼âһѹ£¬Ã¿¸öÕÛÍä´¦¶¼ÓÐÒ»ÌõµÀ£¬ÏÖÔÚ²»
ÈÝÒ׿´³öÀ´£¬ÊÇÓÃÅçɰ¸ø´¦ÀíµôÁË¡£ÕâÒ»¿é»¹Óнŵæ(ÈÞ²¼Ìù)£¬¶ÔÏÂ
Ãæ½øÐб£»¤¡£
¸Õ²ÅÎʵ½ºóÃæµÄ¿×ÊǸÉʲôµÄ£¿×îºóµÄÑô¼«Ñõ»¯Òª°Ñ¹¤¼þ×÷Ϊµç¼«½þµ½
ÈÜÒºÀï¡£Õâ¸öÊǵ¼µçµÄ£¬±ØÐëÓиö´¥µã£¬ËùÒÔÔÚÕ⿪Á˸ö¿×£¬ÈÃÕâ¸öµØ
·½Ò»Ö±µ¼µç¡£½øµ½ÈÜÒºÀïÑõ»¯£¬Ò»Í¨µç£¬±íÃæÉú³ÉÑõ»¯Ä¤¡£¸Õ¿ªÊ¼×öÑùÆ·µÄʱºòûÓпªÕâ¸ö¿×£¬ÊÇÔÚÕâÁ½¸öλÖÃ(MÉÏÃæµÄÁ½¸ö
¼â)¼Ð×ŵġ£¼Ð×ŵÄʱºò±íÃæ³öÏּкۣ¬¼ÐºÛ·Ç³£ÄÑ¿´¡£ËùÒÔÕýʽÉú²ú
µÄʱºò¾ÍÔÚºóÃæ¿ªÁ˸ö¿×£¬ÈÃËü°Ñ¼ÐºÛÒþ²Øµ½ÀïÃæ£¬¸üÃÀ¹ÛÒ»µã¡£
MouStand ³ß´çΪʲôÕâô¶¨£¿
³ß´ç»¹ÓнǶȣ¬Òª¼æ¹Ë(iPhone ºÍ iPad)ˮƽģʽºÍ´¹Ö±Ä£Ê½£¬¶¼ÄÜ
·Å¡£Õâ¸öˮƽ·ÅÖÃûÎÊÌ⣬Êú×Å·ÅҲûÎÊÌâ¡£Á½ÖÖģʽ¶¼Ö§³ÖµÄÇé¿ö
Ï£¬±£Ö¤ËüÌå»ý×îС£¬¾ÍÕÒµ½Õâôһ¸öƽºâ£¬ÔÙ´óÁËÀË·Ñ¡£Õâ¸öÔìÐÍ¿É
ÒÔÁ½±ß·Å¡£Õâ±ß·ÅÒ»¸ö£¬±ÈÈçÁ½¸öÈË£¬ÄãÔÚÕâ±ßÍæÊÖ»ú£¬ÎÒÔÚÕâ±ßÍæÕâ
¸ö¡£Á½¸öÍÈÖ®¼äµÄ¼ä¾àÒ²ÊÇ¿¼ÂǹýµÄ£¬Èç¹û¼ä¾àÔÙ´óµã¶ùÊÖ»úÊú×ŷžÍ
Íϲ»×¡ÁË£¬Â©ÏÂÈ¥ÁË¡£ÔÐÍÉè¼ÆµÄʱºò£¬ÎÒÊÇÓÃÖ½×öµÄ£¬ÓõÄÊÇÒ»°ÙÎåÊ®¿Ë¿¨Ö½¡£³ÐÖØÃ»·¨
²â£¬Ö»ÊDzâ½Ç¶È£¬Óà iPad ±È»®Õâ°Ñ½Ç¶È¹À¼Æ³öÀ´£¬¿´Ê²Ã´½Ç¶Èµ¹²»
ÁË¡£Ç°Ãæ½ÅµÄ³¤¶È£¬²Î¿¼Ò»Ï iPhone¡¢iPad µÄºñ¶È£¬³¤Ò»µã£¬ÕâÑù¾Í·
²»¹ýÈ¥¡£
MouStand µÄÔÐÍÊÇÓÃÖ½×öµÄ£º
¾ßÌå¼Ó¹¤ÊÇÔõôÍê³ÉµÄ?ÎÒÊǰÑÉè¼ÆÍ¼Ö½×öºÃ£¬È»ºó¼Ó¹¤¹¤ÒÕÈ·¶¨£¬ÔÙÁªÏµ´ú¹¤³§¡£Õâ¸öľºÐÊÇ
ɽ¶«²ÜÏØ´ú¹¤¡£×öÁËÁ½°Ù¸ö£¬»¹ÊǺÃ˵´õ˵È˼ҲŸø×ö¡£Õâ¸öÊôÓÚÏÞÁ¿
Éú²ú£¬²»ÏñÈ˼Ҵ󹤳§ÅúÁ¿Éú²ú£¬ÄÇÑù³É±¾·Ç³£µÍ¡£ÂÁºÏ½ð¼Ó¹¤ÊÇÔÚ¹ã
ÖÝ¡£±êÇ©»¹ÓÐÄ¾Í·Íæ¾ßµÄÖ½ºÐÊÇÎÒ×Ô¼ºÂòµÄ´òÓ¡Ö½£¬´òÓ¡»ú¡¢ÇÐÖ½»ú£¬ÍêÈ«ÊÇ×Ô¼º×ö¡£Ä¾Í·Íæ¾ßÖ½ºÐÉϵÄͼÐκÍͼ½âÊÇÎÒÓà Silo ½¨Ä£Èí¼þ½¨³öÄ£ÐÍ£¬½ØÍ¼ºóÔÙ
µ¼Èë Illustrator ÀïÃè³öÀ´Ïß¿òͼ£¬°ü×°Ò²ÊÇÎÒ×Ô¼º×öµÄ¡£Õâ¸öÊÇÈý¸ùľ
Ìõ¡£ÕâÊǸ½ÔùµÄÍæ¾ß¡£Õâ¸öÍæ¾ßÊÇÏÖÓеģ¬ÎÒÖ»²»¹ýŪÁËÒ»¸ö°ü×°¡£Õâ
¸öÍæ¾ß½Ð¿×Ã÷Ëø£¬¾Ý˵ÔÚ¿×Ã÷µÄʱºò¾ÍÓÐÁË¡£
Ä¾Í·Íæ¾ß°ü×°ºÐÉϵÄͼÐÎÊÇÏÈÓà Silo ½¨Ä££¬ÔÙÓà Illustrator Ãè³öÀ´µÄ£ºÕâ¸öÌùÖ½Ò²ÊÇÎÒ×Ô¼º×öµÄ¡£ÏëÌùÄľÍÌùÔÚÄÄ¡£Äã°ÑºóÃæµÄÄDzãֽ˺ÏÂ
À´¡£Õâ¸öÏñ GitHub ѧϰ£¬GitHub ²»ÊÇÒ²ÊÇÓÐÒ»¸ö shop£¬Ò²ÂôÌùÖ½µÄ¡¢Âô±×Ó£¬ËüÒ²ÊÇÒÔËüµÄ logo ·¢Õ¹µÄÖܱ߲úÆ·£¬ÎÒÕâÒ²ÊÇÒÔ logo ·¢Õ¹µÄ
Öܱ߲úÆ·¡£ÄãµÄÍøÕ¾×öµÄͦºÃ¿´µÄ£¬¼ò½àƯÁÁ¡£
¾ÍÊǼ¸ÕŽØÍ¼ÍùÉÏÒ»¶Ñ¡£¸Õ¿ªÊ¼Ñ§ÉãÓ°µÄʱºòѧ¹ý Photoshop£¬Õâ¶¼ÊÇ
֮ǰ»ýÀ۵Ļù´¡£¬ÕâЩ֪ʶȫÓÃÉÏ¡£×ö MouStand Íøµê£¬ÒªÉãÓ°£¬°Ñ²ú
Æ·ÅÄÏÂÀ´£¬ÔõôÅĺÿ´£¬Åª¸öÉãӰСÅï×Ó£¬²¼ºÃµÆ¹â¡¢½Ç¶È¡¢Ö§¼ÜŪ
ºÃ£¬Åĺã¬ÔÙµ÷µ÷ÁÁ¶È¡£°ÑÕÕÆ¬ÅªµÄºÃÒ»µã¡£ÅÄÕÕÆ¬´ó¸ÅŪÁËÁ½Ìì¡£
Ä㶨¼ÛÊÇÔõô¶¨µÄ£¿ÂôÁ˶àÉÙÁË£¿
¼Û¸ñ¾ÍÊdzɱ¾¼ÓÉÏÅÜÍȵÄ··Ñ£¬´ÓÎÒסµÄÅ©³¡µ½ÓʾÖÀ´»ØÆï×ÔÐгµÒª
20 ¹«Àï¡£Õâ¸öÎÒ¶¨µÄÊÇÿһ¸ö¶þÊ®¾Åµ¶¡£°´Õâ¸ö¼Û¸ñÀ´Ëã¡£²Î¿¼ÁËÒ»
ϹúÍâÊг¡ iPad Ö§¼ÜµÄ¼Û¸ñ¡£Ò»°ãÈýÊ®µ¶£¬ÎÒµÄÊǶþÊ®¾Åµ¶¡£Ö»²»¹ý
ÎÒÃÇÊÇËĸöÒ»ÆðÂô£¬Á½¸öÒ»ÆðÂô£¬¾ÍÏÔµÃ±È½Ï¹ó¡£Æäʵһ¸öÄóöÀ´£¬¶þ
Ê®¾Åµ¶£¬ÔÚ¹úÍâÀ´ËµÊǺÜÕý³£µÄÒ»¸ö¼Û¸ñ¡£µ«ÊÇľºÐÖ»ÓÐÁ½°Ù¸ö£¬Ì«¶à
ÁËľºÐ̫ռµØ·½£¬¼ÒÀïÒ²·Å²»Ï¡£
²Êɫһ°ÙÌ×£¬ºÚ°×µÄÒ»°ÙÌ×£¬Ò»¹²Á½°ÙÌס£ÏÖÔÚÂôÁ˶þÈýÊ®Ìס£¶¼ÂôÁË
Ò²Õõ²»Á˶àÉÙÇ®¡£Ö÷ÒªÊÇ×Ô¼º×ö×ÅÍæ£¬ÓÐÕâ¸öÀÖȤ¡£ÎÒÃæÏòµÄ¿Í»§Ö÷Òª
ÊǹúÍâµÄ£¬¹úÄÚµÄÉÙ¡£ÒªÊÇŪ¸öÌÔ±¦µêÆÌ£¬ÎҸоõÓеãÂé·³¡£¹úÄÚĿǰ
ÂôÁ˰ËÌס£
ÒÔºó»¹Ïë¼ÌÐø×öʵÎïÓ²¼þÂð£¿
²»ÏëÔÙ×öʵÎïµÄ¶«Î÷£¬Âé·³¡£ÒòΪ×öÒ»Ì×¶«Î÷¿¼ÂǵĶ«Î÷Ì«¶àÁË£¬·½·½
̾̾¶¼Òª¿¼ÂÇ¡£»¹Òª´æ»õ»¹Òª·¢»õ¡£×öÈí¼þ¶àʡʡ£Íæ¹ýÈ¥¾Í¹ýÁË¡£Íæ
¹ý¾Í²»ºÃÍæÁË¡£
ÎóÈëÆç;²ÅÄÜ·¢ÏÖÌÒ»¨Ô´
ÎÒÏë×öµã¹¤¾ß£¬ÎªÎÒÒÔºóǰ¶Ë¹¤³ÌʦµÄÖ°Òµ×öºÃÆÌµæ£¬µ«ÊÇдµ½×îºó
·¢ÏÖдÈí¼þÒѾÓÐÊÕÈëÁË£¬¿ÉÒÔ²»ÕÒ¹¤×÷ÁË¡£
ÄãÔÚÄÄÉϵĴóѧ£¿
ÎÒ´óѧÉϵÄ̫ԿƼ¼´óѧ¡£ÎÒÊÇ 2005 ¿ªÊ¼£¬ 2009 Äê±ÏÒµµÄ¡£µ±Ê±Ñ§µÄ
ÊÇͨÐŹ¤³Ì£¬ÎÒÒÔΪ×Ô¼º»á¸ÐÐËȤ£¬ÆäʵûÓС£ÏÖÔÚÕâ¸öרҵ±ÏÒµµÄÓÐÒ»°ë¶¼²»ÊÇ×ö±¾×¨Òµ¹¤×÷µÄ¡£ÓеÄÈË×öͨПãÐźŻùÕ¾£¬Òª²»¾ÍÊÇÂ¥µÀ
ÀïÃæ°²¸öÎÞÏßÍø¡£ÎÒ¾õµÃ²»ºÃÍæ£¬ËùÒÔºóÀ´¾ÍÍæÆðÁËÈ«¾°ÉãÓ°¡£
ÎÒÔÚÄãµÄÍøÕ¾ÉÏÄÜ¿´¼ûÒ»¸ö½Ð 86vt µÄÍøÒ³£¬ÀïÃæÓÐÄãÃÇ´óѧµÄµØÍ¼ºÍ
ºÜ¶àµØµãµÄÈ«¾°ÕÕÆ¬£¬¸Ð¾õ¾ÍÏñ×Ô¼ºÔÚУ԰ÀïÃæÐÐ×ßÒ»Ñù¡£
86vt ÊÇÎÒ×öµÄÎÒÃÇѧУµÄ(È«¾°ÉãÓ°)ÐéÄâÐ£Ô°ÍøÕ¾¡£ÎÒ¿¼´óѧ֮ǰ£¬¿´Õâ¸öÑ§Ð£ÍøÕ¾Í¦Àõģ¬Ö»ÓÐÁ½ÈýÕÅͼƬ£¬¾õµÃºÜÆÆ¡£ÈëÁËѧÒÔºó¾õµÃ
»¹Í¦Æ¯ÁÁµÄ£¬ÊÇÑ§Ð£ÍøÕ¾Ã»ÓÐÌåÏÖ³öÀ´£¬ºóÀ´ÎÒ¾ÍÏëÓÃÒ»ÖÖ·½·¨°ÑѧУ
·ç¸ñÌåÏÖ³öÀ´¡£ÎÒÃÇѧУÐéÄâУ԰ 86vt ÊÇÉÏѧµÄʱºòÍê³ÉµÄÒ»¸öÏî
Ä¿¡£
Õâ¸öÏîĿʵ¼ÊÉÏÒ»¸öÔ¾Í×öÍêÁË¡£µ«ÊÇǰÆÚ×¼±¸Ñ§ÖªÊ¶Ñ§µÄʱ¼ä±È½Ï
³¤¡£ÎÒ 2007 Ä꿪ʼѧȫ¾°ÉãÓ°·½ÃæµÄ֪ʶ£¬Ñ§ÍêÖ®ºó 2008 Äê 4 Ô·ݲÅ
¿ªÊ¼×öÕâ¸öÏîÄ¿¡£ÕâÀïÃæÓÐÈýÊ®¶à¸ö³¡¾°¡£ÅĵÄʱºò¶¼ÒªÑ¡ÈËÉÙµÄʱ
ºò£¬È˶àÁËͼƬƴ½ÓµÄ±È½ÏÄÑ´¦Àí£¬È«¾°²»ÊÇÅÄÒ»ÕžÍÍêÁË£¬ÊÇÅĺܶà
ÕÅÆ´ÆðÀ´²ÅÄÜÐγÉÒ»ÕÅ¡£Èç¹ûÄãÊÇ×ß¶¯µÄ£¬ÔÚÕâÅÄÁËÒ»ÕÅ£¬ÓÖÅܵ½ÄÇÁË£¬ÄÇÕÅÅÄÉÏÄãÁË£¬ÄÇ¾Í°ë½Ø°ë½ØµÄ¡£
Õâ¸öÈ«¾°ÉãÓ°¾ßÌåÔõôÅÄ£¿
ÎÒÓÃµÄ 8 ºÁÃ×ÓãÑÛ¾µÍ·£¬ÔÆÌ¨¡¢Èý½Å¼Ü¡£ÔÆÌ¨¾ÍÊDZ£Ö¤ÐýתµÄ½Úµã¾«
È·£¬Ã»ÓÐÊӲ²ÅºÃÆ´½Ó¡£ÔÆÌ¨ÉÏÃæÓп̶ȡ£ÏÖÔÚºÃÒ»µã¶ùµÄÔÆÌ¨¶¼ÊÇ
´øËøµÄ¡£±ÈÈç 90 ¶ÈÒ»¸öËø£¬ÕâôһתÏìһϣ¬¾ÅÊ®¶Èµ½ÁË£¬·Ç³£·½
±ã¡£ÏÖÔÚÎÒÒªÅÄÄÇÑùÒ»·ùÕÕÆ¬µÄ»°Ö»Òª°ë·ÖÖÓ×óÓÒ¡£ÐèÒªÅÄËÄÕÅ£¬¾ÅÊ®
¶ÈÅÄÒ»ÕžÍÐС£ÅÄÍêÖ®ºó»ØÈ¥Æ´½Ó¡£±È½ÏϸµÄ´¦ÀíÒ»¸öÆ´½ÓÕÕÆ¬ÒªÒ»¸ö
Сʱ¡£ÒªÊÇ×ö¸ö´ó¸Å£¬¼¸·ÖÖӾͺÃÁË¡£
Äã´Óʲôʱºò¿ªÊ¼Ð´´úÂëµÄ£¿
ÔÚѧУµÄʱºò¸ãÉãÓ°£¬Òª°ÑÕÕÆ¬·ÅÔÚÍøÉÏ£¬È»ºó¿ªÊ¼Ñо¿ÍøÂçÏà¹ØµÄÖª
ʶ¡£ÍøÒ³¡¢¿Õ¼ä¡¢ÓòÃû¡£ÒòΪ¸Õ¿ªÊ¼Ïë°ÑÕÕÆ¬·Åµ½ÍøÉÏ£¬²Å½Ó´¥µ½»¥Áª
ÍøÖªÊ¶(¼¼Êõ·½Ãæ)¡£Èç¹ûÎÒ²»ÉãÓ°£¬¿ÉÄÜÎҾͽӴ¥²»µ½»¥ÁªÍø(¼¼Êõ
·½Ãæ)¡£
Óиöѧ³¤(ÊæÎÄÁÁ)£¬±ÈÎÒ´óÒ»¼¶£¬»¹Ã»±ÏÒµ¾ÍÔÚÑÅ»¢ÉϰàÁË¡£ÎÒÃǾõ
µÃËûºÜÀ÷º¦¡£ÎÒ×öÕâ¸ö 86vt ÍøÕ¾µÄʱºò£¬Ò²ÏòËûÇë½ÌÁ˲»ÉÙÎÊÌ⣬ÄÇ
¸öʱºòËû¾ÍÊÇÎÒµÄżÏñ¡£Ëûµ±Ê±ÒѾÊÇǰ¶Ë¹¤³ÌʦÁË£¬Ò²ÊÇתÁ˺ü¸
Ȧ£¬È»ºóÓֻص½Ç°¶Ë£¬ËûÏÖÔÚÔÚ°¢Àï°Í°Í´øÍŶӡ£ÎÒµ±Ê±¾ÍÏ룬ÎÒÒ²Ïë
ÏñËûÄÇÑùÀ÷º¦£¬ÎÒҲҪѧÕâ¸ö£¬ÎÒÒ²Òªµ±Ç°¶Ë¹¤³Ìʦ!ʵ¼ÊÉÏÔÚ´óѧÎÒ
¶Ô»¥ÁªÍø»¹²»ÔõôÁ˽⣬±ÏÒµÒÔºóÏëÕÒÕâôһ¸ö¹¤×÷Ôõô°ì£¿ÄǾÍѧ
ß¡£Ñ§Ö»ÄÜÔÚ¼Òѧ£¬µÈʲôʱºò°Ñǰ¶Ë¹¤³ÌʦÏà¹ØµÄ֪ʶѧÍêÖ®ºó£¬ÔÙ
ÕÒ¸öǰ¶ËµÄ¹¤×÷×ö¡£ËùÒÔ±ÏÁËÒµÖ®ºóҪѡÔñÕÒ¹¤×÷»¹ÊǻؼҴý×Å£¬ÎÒ¾Í
Ïë»Ø¼Ò´ý×Å£¬¼ÒÀïÒ²Ö§³Ö£¬ÔÚ¼Ò¾ÍÔÚ¼Ò°É£¬Ò²²»Ö¸×ÅÎÒ¹¤×÷¡£
È»ºóÄã¾ÍÔÚ¼Òѧϰǰ¶Ë֪ʶ£¿
±ÏÒµºó»Øµ½¼ÒÏÈ¿ªÊ¼Ñ§µÄ HTML£¬CSS ºÍ JavaScript¡£Ñ§Á˼¸¸öÔºó×ö
³öÁË resizeMyBrowser£¬½Ó×ÅÓÖÔÚ resizeMyBrowser µÄ»ù´¡ÉÏ×öÁ˸ö
Safari ä¯ÀÀÆ÷²å¼þ Resize¡£
Ö®ºóÓÖÁ˽⵽ǰ¶ËÓÅ»¯·½ÃæµÄ֪ʶ£¬Í¨¹ýѹËõ CSS£¬JavaScript µÈÎļþ
Äܹ»Ìá¸ßÒ³Ãæ³õ´ÎÏÂÔØËÙ¶È£¬ÎÒ¾ÍÏëÕÒ¸öºÃÓõÄѹËõ¹¤¾ß£¬µ±Ê±¶¼ÊÇÃüÁîÐе쬾ÍÊÇÔÚ Mac ƽ̨¶¼ÊÇÃüÁîÐеŤ¾ß¡£ÎÒ¾õµÃÌ«Âé·³£¬ÏëÒªÒ»
¸öͼÐνçÃæ£¬µ«ÊÇÊÐÃæÉÏûÓС£Ã»°ì·¨Ö»ÄÜÑ¡Ôñ×Ô¼º×ö¡£´ÓÄǸöʱºò¿ª
ʼѧ Objective-C£¬Ïë×Å×öÒ»¸ö YUI Compressor µÄͼÐνçÃæ£¬·½±ãÅúѹ
Ëõ CSS¡¢JS Îļþ¡£ÓÚÊÇ×öÁËÎҵĵÚÒ»¸ö Mac Ó¦Óà Smaller¡£
ÔÙºóÀ´Á˽⵽ Markdown£¬ÓÖдÁË Mou¡£
ÆäʵÎÒ×öµÄÕâЩ¸ö¹¤¾ß»ù±¾É϶¼ÊǸúǰ¶Ë¹¤³ÌʦÕâ¸öÖ°ÒµÏà¹ØµÄ¡£Êµ¼Ê
ÉÏ×÷Ϊһ¸öǰ¶Ë¹¤³ÌʦÐèÒª×öÕâЩ¹¤×÷£¬ÓÃÕâЩ¹¤¾ß¿ÉÒÔÌá¸ßÎҵŤ×÷
ЧÂÊ£¬ÎÒÏë×öµãÕâЩ¹¤¾ß£¬ÎªÎÒÒÔºóǰ¶Ë¹¤³ÌʦµÄÖ°Òµ×öºÃÆÌµæ¡£¹¤×÷
µÄʱºòЧÂÊ»á¸ßÒ»µã¡£
¿ÉÊÇдµ½×îºó·¢ÏÖдÈí¼þÒѾÓÐÊÕÈëÁË£¬ÕÒǰ¶Ë¹¤³ÌʦµÄ¹¤×÷²»ÊDZØÒª
µÄÁË¡£ÎÒÊÇ´ÓÉãӰתµ½Ñ§ Web µÄ֪ʶ£¬Ïë³ÉΪ Web ǰ¶Ë¹¤³Ìʦ£¬È´ÔÚ
ѧϰ Web ǰ¶Ë·½ÃæÖªÊ¶µÄ¹ý³ÌÖв»Öª²»¾õµÄת³ÉÁË¿ª·¢Èí¼þ¡£ÉÏ´ÎÔÚ
QCon ÈÏʶ¸öÒ»ÌÔµÄÅóÓÑ(¸ð²Ó»Ô)£¬Ëû˵ÎÒ¸üÏñÒ»¸ö²úÆ·¾Àí£¬²»Ïñ
³ÌÐòÔ±¡£
ÄãÏÖÔÚÓ¦¸Ã¿ÉÒÔÕÒµ½Ç°¶ËµÄ¹¤×÷Á˰ɡ£
ÆäʵÒѾÓкܶ๫˾ÕÒ¹ýÎÒÁË£¬Mac Èí¼þ¿ª·¢·½ÃæµÄ¾Ó¶à£¬Web ǰ¶ËÒ²
ÓС£ÓÐÒ»¸öµÂ¹úµÄ¹«Ë¾ Wunderlist£¬ÑûÎÒÈ¥×ö Objective-C ¿ª·¢¡£µ«ÊÇÎÒ
¼ÒÈ˶¼ÔÚÕ⣬³ö¹úÌ«Âé·³ÁË¡£°¢ÀïµÄ Mac ¿ª·¢ÍŶÓÑûÇë¹ýÎÒÁ½´Î£¬Ö»ÊǵÚÒ»´ÎµÄʱºò»¹Ã»ÓÐÈ¥¹¤×÷µÄ´òË㣬µÚ¶þ´ÎµÄʱºòÎÒÕý´òËã×öÓ²¼þ£¬×öÕâ¸öÖ§¼Ü£¬Ò²³é²»¿ªÉí¡£ÏÖÔÚÒ²ÔÝʱ»¹Ã»ÓÐÈ¥¹«Ë¾¹¤×÷µÄ´òË㣬ÔÚ¼Ò
×ÔÓɹßÁË£¬È¥¹«Ë¾»á²»Ì«Ï°¹ß°É¡£»¹ÓÐÌÚѶҲÑûÇë¹ý£¬×öǰ¶Ë¹¤³Ìʦ¡£
ËûÃÇ˵ÎÒÍøÕ¾Éè¼ÆµÄºÃ£¬ÆäʵÎÒ¾õµÃ×öµÄºÜ¼òµ¥£¬¾ÍÊǼ¸ÕŽØÍ¼¶øÒÑ¡£
ÄãÄÜÓÐÕâÑùµÄ˼·£¬×ö³öÏÖÔÚÕâЩ²úÆ·ºÍÄãÓгä×ãµÄÏÐϾʱ¼äÓйØÏµ
°É£¿
¿Ï¶¨ÓйØÏµ¡£ÎÒÔÚÈí¼þ¿ª·¢Ç°ÆÚµÄʱºò·Ç³£¿àÄÕ¡£ÓÐʱºòÒ»¸öÎÊÌâÁ¬×Å
Ò»Á½¸öÐÇÆÚûÓÐ˼·£¬¾ÍÕûÌìÔÚÄÇÏ룬˯¾õµÄʱºò»¹Ï룬һÌìµ½Íí²»Í£
µØÏ룬ÄDzÅÄÜÏë³öÀ´¡£¿ÉÄÜÔÚ¹«Ë¾Ã»ÓÐÄÇô¶àµÄʱ¼äÏëÁË¡£
ÎÒ×öµÄºÜ¶à¶«Î÷¶¼ÊÇÒÔÍæÎªÖ÷¡£¿ÉÄܸúСʱºò¾³£²ð¶«Î÷Óйء£ÎÒ¸¸Ä¸
¸øÎұȽϴóµÄ×ÔÓÉ¡£ÉÏѧѧϰ·½Ãæ²»»á±Æ×ÅÎÒ¡£µ«ÊÇÎÒ×Ô¼ºÖªµÀѧ¡£¿¼
¸ßÖС¢´óѧ£¬±¨Ö¾Ô¸µÄʱºòËûÃÇÒ²²»»á¸ÉÉæ£¬¶¼ÊÇÎÒ×Ô¼º¾ö¶¨¡£ËûÃÇÏà
ÐÅÎÒ¡£
ÄãÏÖÔÚÉú»îÔÚÅ©³¡ÉÏÂð£¿ÔÚ¼Ò¶¼¸ÉЩʲô£¿
ÔڼұȽÏÏУ¬ÏÐ×ÅûÊ¡£Èí¼þ¿ª·¢Ç°ÆÚ±È½Ï棬ºóÆÚ¾ÍÊÇά»¤ÁË¡£Î¬»¤
ÿÌì»Ø»ØÓʼþ£¬¿Í»§Ö§³Ö¡£ÊµÔÚÏÐ×ÅûÊÂÁË×ö×öй¦ÄÜ£¬²»ÏñǰÆÚÄÇô
½ô¡£
ÎÒ¼ÒÔÚÌì½òºº¹ÁÇø¸½½üµÄºº¹ÁÅ©³¡£¬ÄǸöµØ·½ÊôÓÚºÓ±±£¬ÊǺӱ±Ê¡ÔÚÌì
½òµÄ·ÉµØ¡£ËµÊÇÅ©³¡£¬Êµ¼ÊÉϾÍÊǺܶàÅ©´åÁ¬ÔÚÒ»¿é¡£Õâ¿éµØÊÇÔÚÌì½ò
Êо³ÄÚ£¬µ«ÊÇÊôÓÚºÓ±±Ê¡¹Ü¡£
ÎÒÏÖÔÚÿÌìÔçÉϾÍÔÚÔ°×ÓºóÃæ½½½½µØ£¬ÖÖÖֲˡ£¾ÍÔÚÎÒ¼Ò·¿ºóÃæÄÇôһ
¿é¡£ÎÒÖÖÁËÊ®¿ÅÈ˲ξͻîÁËÎå¿Å¡£»¹ÖÖÁËÒ»¿ÅÀ¶Ý®Ê÷£¬À¶Ý®ÊôÓÚ¹àľ£¬ºÜ°«£¬¾ÍÏñÖÜΧÂí·±ßµÄ¹àľ£¬ÉÏÃæ½áССµÄÀ¶Ý®¹û¡£ÎÒ¶¼ÊÇÔÚÌÔ±¦ÉÏ
ÂòµÄÖÖ×Ó¡£ÎÒ¾³£»á¸ø´ÐÃÇ£¬»¹ÓÐÀ¶Ý®Åçµã¶ùË®£¬²»´òÒ©£¬´¿ÌìÈ»ÂÌÉ«
ʳƷ¡£ÏеÄûʶùÎÒ»á´ò´òɳ´ü£¬¶ÍÁ¶ÉíÌå¡£ÓʾÖÀëÎÒ¼Ò10¹«Àÿ´ÎÆï³µÈ¥
Óʾַ¢»õ(Moustand)Íù·µ¾ÍÒªÁ½¸öСʱ¡£Í¾ÖУ¬»á¾¹ýÏç¼äС·£¬Ìì
ÆøºÃµÄʱºò£¬¾°É«»¹ÊDz»´íµÄ¡£ÄãÒÔºóÓÐʲô´òË㣿
ÔÚ¼Ò´ý×ÅÄåÁË£¬ÔÙÈ¥¹¤×÷£¬Õҷݹ¤×÷£¬ÌåÑéÒ»ÏÂÉϰàµÄ¸Ð¾õ£¬ÎÒ»¹Ã»ÉÏ
¹ý°àÄØ£¬²»ÖªµÀÉϰàʲô¸Ð¾õ¡£¶Á¡¶ÂëÅ©¡· ÍÂÍÂ²Û »¹ÄÜ×¬Òø×Ó!»î¶¯¹æÔò£ºÔÚͲÛÌùÖÐÁôÑÔ£¬Ñ¡³öÈκÎÒ»ÆÚÖÐÄã×îϲ»¶µÄÎÄÕºÍ×ϲ
»¶µÄÎÄÕ£¬¼´¿É»ñµÃͼÁéÉçÇøÒø×Ó 2 Á½!·²Í²Û͵ÃÖÀµØÓÐÉùÕߣ¬¼ÓÔù
Òø×Ó 3 Á½(¹² 5 Á½)!(ÔõÑùʹÓÃÒø×Ó¶Ò»»Í¼Êé)
»î¶¯Ê±¼ä£º±¾»î¶¯³¤ÆÚÓÐЧ¡£¼ùÐÐÈçºÎ½Ì±à³Ì£¬µ±ÄãÃæ¶Ôһ˫¿ÊÍûµÄÑÛ¾¦
×÷Õß Philip Guo
˹̹¸£´óѧ¼ÆËã»ú¿ÆÑ§²©Ê¿¡£Ñо¿ÁìÓòÖ÷񻃾¼°ÈË»ú½»»¥¡¢ÔÚÏß½Ì
Óý¡¢Èí¼þ¹¤³ÌµÈ¡£ËûÔÚ2010Äê×Ô¼º¹¹½¨ÁËÒ»¸ö»ùÓÚ×ÔÓÉÍøÂçµÄ±à³Ìѧ
ϰ¹¤¾ß½Ð×öOnline Python Tutor(pythontutor.com)£¬Ä¿Ç°ÒÑÓг¬¹ý20Íò
ÈËʹÓÃÁËÕâ¸ö¹¤¾ß¡£
¹ýÈ¥µÄÒ»ÄêÖУ¬Ðí¶à¼ÆËã»úרҵµÄ½ÌÊںͽÌÓýר¼Ò¶¼Ð´Á˹ØÓÚ MOOCÈçºÎÀ©´ó¼ÆËã»ú½ÌÓý·þÎñµÄ¹æÄ££¬Ê¹µÃ³ÉǧÉÏÍòµÄѧÉú¶¼ÄÜÏíÊܵ½¡£¶ø
ÎÒÏë´ÓÁíÍâÒ»¸ö½Ç¶È£¬ËµÒ»ËµÎÒÊÇÈçºÎÔÚ9¸öÔµÄʱ¼äÀïÏò1λѧÉú½ÌÊÚ
¼ÆËã»ú±à³ÌµÄ¡£
2011Äê7Ôµ½2012Äê3ÔÂÖ®¼ä£¬ÎÒ¸øBrian Goler½ÌÊÚ»ù±¾µÄ±à³Ì֪ʶ£»Ëû
ÊǾɽðɽÍåÇøÒ»Î»ÓоÑéµÄÆóÒµ¼Ò£¬ÔÚÊг¡¡¢ÏúÊۺͲúÆ·¿ª·¢µÈ·½Ãæ¶¼
Óй㷺µÄ¾Ñé¡£Brian֮ǰûÓбà³Ì¾Ñ飬µ«ÔÚ¼¸¸öÔµÄʱ¼äÀËû¾Í
×ö³öÁËSwearBuy£¬Ò»¸öÈÃÈËÃǶÔϲ°®µÄ²úÆ··¢±íÆÀÂÛµÄÃâ·Ñ webÓ¦ÓóÌ
Ðò¡£¸üÖØÒªµÄÊÇ£¬Brian»ñµÃÁË×ÔѧµÄÄÜÁ¦£¬Äܹ»½ÓÏÂÀ´×Ô¼ºËÑѰ¡¢Ñ§
ϰ¸ü¸ß½×µÄ¼¼ÊõÄÚÈÝ¡£ÎÒµÄÖ÷Òª¹±Ï×£¬ÊÇÖ¸µ¼Ëû¿Ë·þһЩͨ³£»á´ò»÷³õ
ѧÕßµÄÕϰ¡£
±³¾°
Brianͨ¹ýÎҵĸöÈËÍøÕ¾ÉÏÖªµÀÁËÎÒ£¬ÒòΪÀï±ßÓм¸Æª¼ÆËã»ú¿ÆÑ§½ÌÓý
µÄÎÄÕ¡£ÏÂÃæÕªÂ¼ËûÔÚ 2011Äê7Ô¸øÎÒ·¢µÄµÚÒ»·âÓʼþÀïµÄÒ»¶ÎÄÚÈÝ£º
ÎÒÃÇû¼û¹ýÃæ£¬µ«ÎÒÏëÊÔÊÔ¿´ÄÜ·ñ´ÓÄúÕâ¶ùµÃµ½Ð©½¨Òé¡£
ÎÒÔÚÍøÉÏËÑѰÄܰïÎÒѧϰ±à³ÌµÄµ¼Ê¦µÄʱºò·¢ÏÖÁËÄãµÄÍøÕ¾¡£¸ü׼ȷ
µØËµ£¬ÎÒÔÚÉÏÒ»ÃżÆËã»ú¿Î³Ì£¬ÎÒÏ£ÍûÕÒÒ»¸öµ¼Ê¦£¬Ã¿ÖÜÄܵ±Ã渨µ¼
ÎÒ1-2 ´Î£¬Ã¿´Î1Сʱ×óÓÒ¡£
ÎÒÕýÔÚÉÏMITµÄOCW6.00¿Î³Ì¡£¾¡¹ÜOCWºÍÆäËûµÄÔÚÏ߿γ̶¼ºÜ
°ô£¬µ«ÎÒ¾õµÃÈç¹ûÓиöÈË¿ÉÒÔÇë½Ì¡¢»¹Äܼì²éÎÒµÄ×÷Òµ£¬²¢¸øÓë·´
À¡£¬ÄÇÎҵĽø¶ÈÓ¦¸Ã»á¸ü¿ìЩ£¬¶Ô¸ÅÄîµÄÀí½âÒ²»á¸üÉîÈë¡£
ÄúÔÚMITºÍStanford¶¼´ý¹ý£¬Ó¦¸ÃÈÏʶһЩºÏÊʵÄÈ˰ɣ¿»òÕߣ¬¿ÉÒÔ
¸øÎÒÍÆ¼öÏÂÈ¥ÄĶùÕÒºÏÊʵÄÈË£¿µ±È»£¬ÎÒ»áÏò¸¨µ¼µÄÈ˸¶Ç®µÄ¡£
ÒòΪÄÇ»á¶ùÎҸպò»Ã¦£¬ÓÚÊÇÎÒ¾ÍÇ××Ô¸¨µ¼Brian¡£ÎÒÃǵÚÒ»´ÎµÄһС
ʱ»áÃæÊÇÔÚËû¼Ò£¬µÚ¶þ´ÎÊÇÔÚ¸½½üµÄÒ»¼Ò¿§·È¹Ý¡£Ö®ºóÎÒÈ¥²Î¼Óij¸öѧ
Êõ»áÒ飬ÓÚÊǵÚÈý´ÎµÄ¸¨µ¼ÎÒÃǾÍͨ¹ýSkypeÔÚÏßÊÓÆµµç»°½øÐС£ÎÒÃÇ
ÓÃÁËSkypeµÄÆÁÄ»¹²Ïí¹¦ÄÜ£¬ÕâÑùÔÚÁÄÌìµÄʱºòÎÒ¾ÍÄÜͬʱ¿´µ½ËûµÄµç
ÄÔÆÁÄ»¡£ÕâÖÖÐÎʽ·Ç³£Êʺϸ¨µ¼£¬ÓÚÊÇÎÒÃǾö¶¨½ÓÏÂÀ´µÄËùÓи¨µ¼¶¼Í¨
¹ýSkype½øÐС£ÎÒÖ»µ±Ã渨µ¼¹ýBrianÁ½´Î£¬¶øÎÒÃǵÄSkypeÊÓÆµÍ¨»°Ê±
³¤¸ß´ï 50 Сʱ(´óÔ¼ 40 ´Î)¡£ÔÚSkypeÉϵÄÔÚÏ߸¨µ¼½øÐеÄÈç´Ë˳³©£¬ÎÒÃǶ¼¸Ðµ½ºÜ¾ªÏ²¡£ÕâÉõÖÁ±È
ÎÒÃǵ±ÃæÁÄÌì¸üÓÐЧ£¬ÄÇÑù»¹»áÊÜÀ§ÓÚàÐÔӵĿ§·ÈÌüºÍÏÁСµÄ±Ê¼Ç±¾µç
ÄÔÆÁÄ»¡£½èÖúSkypeµÄÆÁÄ»¹²Ïí¹¦ÄÜ£¬ÎÒÄÜÔÚÎÒ×Ô¼ºµÄ¹«Ô¢Àï±ßÊæ·þµØ
¿´µ½BrianµÄµçÄÔÆÁÄ»£¬²¢ÇÒÓëËûʵʱ»¥¶¯¡£Èç¹ûÎÒÐèÒª»Ð©²ÝͼÀ´Ëµ
Ã÷£¬ÄÇÎÒÖ»ÐèÒª¹²ÏíÆÁÄ»£¬È»ºóÓûæÍ¼°åÀ´»¾ÍÐÐÁË¡£(Salman Khan
¾ÍÊÇÓÃÀàËÆµÄ°ì·¨½ÌËûµÄ±íµÜ£¬ÓÚÊǾÍÓÐÁËÏÖÔÚÖªÃûµÄ¿Éº¹Ñ§Ôº½ÌÓýÊÓ
Ƶ¡£)
»ùÓÚÏîÄ¿µÄѧϰ
BrianµÄÄ¿±êÊÇѧϰ»ù±¾µÄ±à³Ì¼¼ÇÉ£¬Ìá¸ß×Ô¼º£»¶ø²»ÊÇÒª»ñµÃÒ»·Ý³Ì
ÐòÔ±µÄ¹¤×÷£¬»òÊdzÉΪһÃûÑо¿ÈËÔ±¡£ÔÚ¼ûÎÒ֮ǰ£¬BrianÒѾͨ¹ýÉÏ
MIT¿ª·Å¿Î³ÌÖеġ°¼ÆËã»ú¿ÆÑ§Óë±à³Ì»ù´¡¡±£¬×ÔѧÁ˼¸ÖÜ Python ±à³Ì¡£
¿ªÊ¼µÄ¼¸´Î¸¨µ¼ÖУ¬ÎÒÃÇͨ¹ý¿Î³Ì½²ÒåºÍ×÷Òµ£¬¸´Ï°ÁË»ù±¾µÄ±à³Ì¸Å
Äî¡£
È»¶ø£¬ÎҺܿì¾ÍÒâʶµ½£¬½ö½öͨ¹ýѧԺʽµÄ¿Î³Ì×ÊÁÏÀ´Ñ§Ï°£¬ÎÞ·¨ÈÃ
Brian ×㹻ͶÈ룬ÓÈÆä¿¼Âǵ½ËûÒѾ´óѧ±ÏÒµ20ÄêÕâ¸öÏÖʵ¡£Ëû¿´ÆðÀ´
²¢²»Âú×ãÓÚֻѧϰһЩ¼ÆËã»úѧ¿ÆµÄÊõÓï¡¢×öһЩÕë¶Ô´óѧÉúµÄÊýѧÏà
¹ØµÄСÁ·Ï°¡£
Òò´Ë£¬ÎÒ¾ö¶¨½ÌBrian³ÉΪһ¸öʵÓÃÖ÷ÒåµÄÒµÓà³ÌÐòÔ±£¬¶ø²»ÊÇÒ»¸ö±¥
ѧµÄ¼ÆËã»ú¿ÆÑ§×¨¼Ò¡£ÎÒ¹ÄÀøËûÏë³öÒ»¸ö¸ø×Ô¼º»òÅóÓÑÓá¢×Ô¼ºÒ²Ô¸Òâ
×öµÄÈí¼þ¡£ÏàÓ¦µØ£¬ÎÒ½«Ö¸µ¼ËûÍê³ÉÕâ¸öÈí¼þÏîÄ¿¡£Õâ¸öÏë·¨Èç´Ë¼ò
µ¥£¬µ«Ð§¹ûÈ´Òì³£ºÃ¡£
BrianÌá³öÁËһЩidea£¬²¢×îÖÕ¾ö¶¨ÊµÏÖÆäÖеÄÒ»¸ö£¬Ò²¾ÍÊǺóÀ´µÄ
SwearBuy¡£ÔÚ½ÓÏÂÀ´µÄ9¸öÔÂÀËûÿÖܶ¼Í¶ÈëÊ®¼¸¸öСʱµÄʱ¼ä±àд
SwearBuy£¬³£³£¸Éµ½ÉîÒ¹¡£ÎÒÃÇÿÖܶ¼ÓÐÒ»µ½Á½´ÎµÄSkype¸¨µ¼£¬Ã¿´Î
³ÖÐøÒ»µ½Á½¸öСʱ¡£¸¨µ¼ÖеĴ󲿷Öʱ¼ä£¬ÎÒ¶¼ÓÃÀ´»Ø´ðBrianµÄÎÊ
Ì⣬°ïËûµ÷ÊÔbug£¬ÓÐʱ»¹¸úËû½á¶Ô±à³Ì£¬Ò»Æðдµã¶ù´úÂë¡£ÎÒÿ´Î½²
µÄʱ¼ä¶¼Ö»Óм¸·ÖÖÓ¡£³ýÁËÄÜÈÃËûµÄ×¢ÒâÁ¦¸ß¶È¼¯ÖÐÍ⣬ÕâÖÖ»ùÓÚÎÊ´ð
µÄÐÎʽ¶ÔÎÒÀ´ËµÒ²ºÜ²»´í£¬ÒòΪÎÒ¼¸ºõ²»±Ø»¨Ê±¼äÌáǰ×öʲô׼±¸¡£
»ùÓÚÏîÄ¿µÄѧϰʮ·Ö¸ßЧ£¬ÒòΪBrianÊ®·ÖÖØÊÓËû×Ô¼ºµÄµÚÒ»¸öÏîÄ¿¡£
ËûµÄѧϰ±»ÐèÇóÇ£×Å×ߣ¬¶ø²»ÊÇһЩԤÏÈÉèÖúõĵÄѧÊõ¿Î³Ì¡£ÒòΪËû
¶ÔSwearbuyµÄÈÈÇé·Ç³£¸ß£¬ËùÒÔ³£³£»áÏë³öºÜ¶àй¦Äܵĵã×Ó¡£ÎªÁËʵÏÖÕâЩ¹¦ÄÜ£¬Ëû±ØÈ»ÒªÑ§Ï°Ò»Ð©Ðµıà³Ì¼¼Êõ¡£Òò´Ë£¬ÎҵĽÇÉ«¾Í±ä³É
ÁË£º
ÆÀ¹ÀËûÏëʵÏֵŦÄܵĿÉÐÐÐÔ£¬Èç¹ûÐèÒªµÄ»°£¬Ö¸µ¼ËûÍê³ÉÒ»¸ö¼ò
µ¥°æ±¾£»
ÌôÑ¡×îÊʺÏËûÐèÒªµÄ±à³Ì¹¤¾ß¡¢·ç¸ñÒÔ¼°¼¼ÇÉ£»
¸øËûÕÒµ½ºÏÊʵÄ×Ôѧ×ÊÁÏ(±ÈÈç´úÂëʾÀý¡¢²©¿Í¡¢ÔÚÏ̡߽̳¢Êé
µÈ)£»
ÔÚËûŬÁ¦Àí½âºÍÓ¦ÓÃ×ÔѧµÄÄÚÈÝʱ£¬»Ø´ðËûµÄÒÉÎÊ¡£
±à³ÌʵÏÖÒ»¸öÈÎÎñ£¬³£³£Óм¸Ê®ÖÖÉõÖÁÉϰÙÖÖ·½Ê½£»ÕâÖÖÑ¡ÔñµÄ¶àÑù
ÐÔ³£³£ÈóõѧÕßÊÖ×ãÎÞ´ë¡£ÒòΪѡÔñÌ«¶à£¬ËûÃÇ·´¶ø²»Öª´ÓºÎÈëÊÖ¡£
ÎÒÒª×öµÄ£¬Ö÷Òª¾ÍÊǰïËû½«Ñ¡Ôñ·¶Î§ËõСµ½Ò»¸ö¿É¿ØµÄ·¶³ë£¬ÊʺÏËû¸÷
¸ö½×¶ÎµÄѧϰ£»È»ºóÈÃËûÈ¥×Ôѧ£¬Óöµ½ÎÊÌâʱÎÒÔÙ½â´ðËûµÄÒÉÎÊ¡£
ÎÒÊ®¶àÄêµÄ±à³ÌºÍ½ÌÊÚ±à³ÌµÄ¾Ñ飬ʹµÃÎÒÔÚÿ¸öÐèҪѡÔñµÄµãÉÏ£¬¶¼
Äܽ«Ñ¡Ôñ·¶Î§ËõСµ½ÎÒÈÏΪ×îÊʺÏBrianѧϰµÄ³Ì¶È¡£±ÈÈ磬ÎÒÑ¡ÔñÈÃ
ËûÓÃ×î»ù±¾µÄ±à³ÌÓïÑÔ(±ÈÈç Python£¬JavaScript£¬SQL)¹¦ÄÜÀ´¡°´Ó
Í·¡±´î½¨ SwearBuy£¬¶ø²»ÊÇÔÚÒÑÓеÄһЩ¸´Ô web Ó¦Óÿª·¢¿ò¼ÜÉÏ¿ª
ʼ¡£¾¡¹ÜΪ´Ë Brian ²»µÃ²»Ð´¸ü¶àµÄ´úÂëÀ´¡°´ÓÍ·¡±(Õâ¸ö´Ê¶ù¿ÉÄÜÓÐЩ
²»×¼È·£¬ÒòΪ²»¿ÉÄÜÍêÈ«´ÓÁ㿪ʼ)¿ªÊ¼ÊµÏÖÆÚÍûµÄ¹¦ÄÜ£¬µ«Ëûͨ¹ýÕâ
¸ö¹ý³Ì£¬Äܹ»ÉîÈëµ½ÄÚ²¿ÔÀí£¬ÉîÈëÀí½â¸÷¸ö²¿·ÖÊÇÈçºÎ×éºÏµ½Ò»Æð
µÄ¡£
BrianµÄÏîÄ¿ÊÇÎÒÃÇSkype»á»°µÄ¾øºÃµÄ»ù´¡£¬ÒòΪÎÒÄܽ«×Ô¼ºÒª½ÌÊÚµÄ
иÅÄîÈÚÈëµ½ËûÏëʵÏÖµÄй¦ÄÜÖÐÈ¥¡£ÄÄŸü¶àµÄ¿ÎºóÁ·Ï°Ëù·¢»ÓµÄ×÷
Óã¬Ò²±È²»ÉÏÒ»¸öÊôÓÚѧÉú×Ô¼ºµÄµÄÓ¦ÓóÌÐò¡£
ÔÚÕõÔúÖÐѧϰ
ÔÚÎÒÃÇÿ´Î1-2СʱµÄSkype¸¨µ¼¿ªÊ¼Ç°£¬Brianͨ³£»á±à³Ì10-15¸öС
ʱ£¬ËùÒÔËû×ÜÊÇÓôóÁ¿¼±ÇеÄÎÊÌâÒªÎÊ£¬ÓкܶàÐÂдµÄ´úÂëÐèÒªÎÒ°ïËû
À´µ÷ÊÔºÍÓÅ»¯¡£Èç¹ûÎÒÖ»ÊǸøËû½²¿Î£¬¶ø²»»ùÓÚÈκα³¾°£¬ÄÇËû²»¿ÉÄÜ
Ïû»¯µÄÕâô³¹µ×£¬ºÜ¿ÉÄÜÖ»ÊǵãµãÍ·£¬È»ºó˵¡°àÅ£¬ºÃ°É£¬ºÃÏñÊÇÕâô
»ØÊ¶ù¡¡²»´í£¬È»ºóÄØ£¿¡±Ïà·´£¬ÒòΪËûÔÚÿ´Î¸¨µ¼Ö®Ç°£¬¶¼Ò»Ö±ÔÚ
ºÍ¾ßÌåµÄ´úÂëÏà¹ØµÄÎÊÌâ¾À²ø¡ª¡ªÉõÖÁ¾³£Òò´Ë¶øÊÜ´ìºÍ¾ÚÉ¥¡ª¡ªËùÒÔ
ÿµ±ÎÒ¸øËû½âÊÍÇå³þÁËʲô֮ǰ¿´ÆðÀ´ºÃÏñ²»¿ÉÓâÔ½µÄÎÊÌâʱ£¬ËûµÄ·´Ó¦ÍùÍùÊÇ¡°ÍÛŶ!ÏÖÔÚÎÒËãÊdz¹µ×Ã÷°×ÁË!¡±¡£ËûµÄϲÔúÍÊÍȻÿ´Î¶¼ÄÇ
ôÃ÷ÏÔ¡£ÎÒ¾õµÃ¶ÔÏû»¯ÖªÊ¶À´Ëµ£¬Ã»ÓбÈÕâ¸üºÃµÄ·½Ê½ÁË£ºÏÈ»¨Éϼ¸
¸öСʱŬÁ¦½â¾öÎÊÌ⣬²»¶Ï»ýÀÛÐÄÖз³ÔêµÄÇéÐ÷£¬È»ºóÔÙ½ÓÊܵ¼Ê¦µÄ
Ö¸µ¼¡£
ΪÁ˼õÉÙBrianµÄÍ´¿à£¬ÎÒ°ïËû´î½¨ÁË¿ª·¢»·¾³£¬×öÁËһЩ·¦Î¶µÄ¹¤
×÷£¬ÒòΪÕâЩ¶«Î÷²»»áÖ±½Ó´Ù½øËûµÄѧϰ¡£ÎÒÏ£ÍûËû°Ñ¾«Á¦»¨·ÑÔÚ±à³Ì
ºÍ´îSwearBuyÉÏ£¬¶ø²»ÒªÀË·Ñʱ¼ä×öЩ²»Ïà¹ØµÄÊÂÇ飬±ÈÈç´î½¨·þÎñÆ÷
»òÊǰ汾¿ØÖÆÏµÍ³¡£(µ±È»ÁË£¬Èç¹ûËûµÄÄ¿±êÊdzÉΪһ¸öϵͳ¹ÜÀíÔ±£¬ÄÇÎÒ¾¡¿ÉÒÔÈÃËûÈ¥¾À½áÄÇЩϸ½Ú¡£)
Óкܶàʱ÷ÖµÄÊé¡¢ÔÚÏ߽̳ÌÒÔ¼°Ö±²¥½ÚÄ¿£¬¶¼Ðû³ÆÄÜÈÃÄãÔÚ7Ìì»òÊÇ3ÖÜ
ʱ¼äÀïѧ»á±à³Ì(»òÕß±ðµÄʲô¼¼ÄÜ)¡£ºÜÃ÷ÏÔ£¬Äã²»¿ÉÄÜÔÚ¼¸ÖÜÀï¾Í
ÕÆÎÕÒ»ÃÅм¼ÄÜ£¬¶øÇÒÎÒ¾õµÃҲû¼¸¸öÈËÕæµÄÏàÐÅ¡£ÕâЩ¡°¿ìËÙ»ñÈ¡¼¼
ÄÜ¡±¼Æ»®µÄÕæÕýÎÊÌâÔÚÓÚ£¬ËûÃǺöÊÓÁ˿ɳÖÐøÐÔ¡£ÕâЩ¿Î³Ì¾ÍºÃÏñ¼õ·Ê
ʳÆ×Ò»Ñù£¬¿ÉÄÜ»áÈÃÄãÂíÉϼõµô 10 °õÌåÖØ£¬µ«È´ÎÞ·¨ÈÃÄã±£³Öס£¬³ý
·ÇÄãÕæÕýµØÑø³ÉÁ˺õÄϰ¹ß¡£ÀàËÆµÄ£¬³ý·ÇÄã²»¶ÏŬÁ¦ºÜ¶àÄ꣬·ñÔòÒ²
ÎÞ·¨¾«Í¨±à³Ì£»ÎªÁ˼¤Àø×Ô¼º²»¶ÏŬÁ¦£¬Äã±ØÐëÊÇÔÚ×ö×Ô¼ºÓÐÈÈÇéµÄÊÂ
Ç顣ŬÁ¦ÕõÔú¿É²»ÊÇʲôÓÐȤµÄʶù£¬Èç¹ûûÓÐÊʵ±µÄ¼¤Àø£¬Ì«ÈÝÒ×Ôç
ÔçµØ·ÅÆúÁË¡£
µ±BrianÒâʶµ½Ëû²»ÔÙÐèÒªÎҵĸ¨µ¼Ê±£¬ÎÒÖªµÀÎҳɹ¦ÁË¡£¾¡¹ÜËûÒ²³Ð
ÈÏÒª³ÉΪһÃû¼¼ÒÕ¾«Õ¿µÄ³ÌÐòÔ±£¬×Ô¼º»¹ÐèҪŬÁ¦ºÃ¼¸Ä꣬µ«ËûÒѾ֪
µÀÔÚÏÖÓеÄˮƽÏ£¬ÈçºÎŬÁ¦²ÅÄܵ½´ïÄǸö¸ß¶È¡£ÔÚ¹ýÈ¥µÄ¾Å¸öÔÂÀËûѧµ½ÁË×ã¹»¶àµÄ¶«Î÷£¬Äܹ»Ö§³ÖËû¼ÌÐø×ÔѧÏÂÈ¥¡£ÎÒ¸øÁËËû×ã¹»µÄ·½
·¨ºÍÖÇ»ÛÀ´¼ÌÐø×Ôѧ£¬¶ø²»ÊÇÌîѼʽµØÓ¦¸¶Ò»¸öѧÉú£¬ÎҸе½ºÜ×ÔºÀ¡£
×îºóµÄ˼¿¼
ÔÚÎÒÃǵĸ¨µ¼½áÊøÖ®ºó£¬Brian·´Ó³Ëµ£¬¾¡¹ÜËûÊÜÒæÓÚÕâÖÖ¡°Í¨¹ý×öÀ´Ñ§
ϰ¡±µÄ·½·¨£¬µ«ËûÈÔÈ»ÈÏΪ£¬½«»ùÓÚÏîÄ¿µÄѧϰºÍ´«Í³µÄ¼ÆËã»ú¿Î³Ìѧ
ϰ½áºÏÆðÀ´£¬ÓкܴóµÄ¼ÛÖµ¡£ÔÚ¹¹½¨SwearBuyµÄ¹ý³ÌÖУ¬Ëû¾³£Í¨¹ý
Google¡¢ÔĶÁ¼¼Êõ²©¿Í¡¢´ÓStackOverflowÉÏ¿½±´´úÂëµÈ·½Ê½£¬À´ÁÙʱ½â
¾ö×Ô¼ºµÄÎÊÌâ¡£½á¹û£¬Ëû·¢ÏÖ×Ô¼º¾³£µÃ³ö²¢·Ç×îÓŵķ½°¸£¬¶øÇÒÓõÄ
¶«Î÷×Ô¼º¶¼ÎÞ·¨ÍêÈ«Àí½â¡£BrianµÄһЩ¾Þ´óµÄ½ø²½£¬À´×ÔÓÚËû´ÓÏîÄ¿
ÖгéÉí³öÀ´£¬×ª¶øÈ¥¿´Êé»òÌý¿Îʱѧµ½µÄеĸÅÄȻºóÏë×ÅÈçºÎ½«Æä
Óõ½SwearBuyÖС£×Ô´ÓÎÒÃÇ2012Äê3Ô½áÊø×îºóÒ»´ÎµÄ¸¨µ¼ÒÔÀ´£¬ÎÒ6¸öÔÂûÓÐÊÕµ½Brian
µÄÏûÏ¢ÁË¡£×î½üËû¸øÎÒ·¢µÄµç×ÓÓʼþÖÐÌáµ½£¬Ëû¸Õ¸ÕдÁ˸öPython½Å
±¾£¬°ï×Ô¼º¸ø¸öÈË¹ÉÆ±Í¶×ʽ¨Á¢Ä£ÐÍ£º¡°¶ÔÕâ¸ö½Å±¾ÎҸе½ºÜ×ÔºÀ£¬Òò
ΪÕâÊÇÎÒ×öµÄµÚÒ»¸öʵÓõÄ×ÔÓù¤¾ß¡£ÎÒ¹ýÈ¥Ò»Ö±¶¼ÔÚÆÀ¹À¹ÉƱͶ×ÊÏî
Ä¿£¬Ò»Ö±ÏëÄ£Äâ¸÷ÖÖ³¡¾°£»Ò»¿ªÊ¼ÎÒÓõÄÊÇExcel£¬µ«ºóÀ´ÖÕÓÚ·¢ÏÖ
Python²ÅÊÇ×öÕâ¼þʶùµÄ²»¶þ֮ѡ¡£¡±
ÎÒºÜϲ»¶Õâ·âÓʼþ£¬ÒòΪËüչʾÁ˱à³Ì¼¼ÄܵÄ×÷Óã¬ÈÃÔ±¾ÎÞÁÄÇÒÀ§ÄÑ
µÄÈÎÎñÄܹ»ÇáËÉÍê³É¡£ÎÒÏ£Íûÿ¸öѧϰ±à³ÌµÄÈ˶¼ÄÜÓÐÂõ¹ýÄǵÀ¿²¶ùµÄ
ʱ¿Ì£¬´ÓÄÇÒÔºó¾Í²»½öÊÇΪѧУ»ò¹«Ë¾µÄ»î¶ù¶ø±à³Ì£¬¶ø¸ü¶àµÄÊÇΪ×Ô
¼º¶ø±à³Ì¡£
ÎÒ»¹Ïë˵һ±éÄǾäÀÏ»°£¬»ý¼«ÐÔÒâζ×ÅÒ»ÇС£BrianµÄ»ý¼«ÐÔÀ´×Ô×Ô¼º
µÄÏîÄ¿£¬ËùÒÔʵ¼ÊÉÏËûÊÇ×ÔѧµÄ¡£ÎÒÒª×öµÄ½ö½öÊǶ¨ÆÚÖ¸µ¼Ò»ÏÂËû£¬°ï
Ëû×îÓÐЧµØ½ø²½£¬ÈÃËûµÄŬÁ¦±äΪÓÐЧµÄѧϰ¡£
ÎÒµÄÕâЩ¾ÑéÈçºÎ²ÅÄÜÍÆ¹ãµ½½ÌÊÚ´óÅúµÄ×ÔÎÒ¼¤ÀøµÄ³Ì¶ÈÔ¶²»¼°Brian
µÄѧÉúµÄ½Ìѧʵ¼ùÖÐÈ¥£¿ÎÒÃþË÷³öµÄÕâЩ¼¼ÇÉÈçºÎÄܲ»ÔÙ¾ÖÏÞÓÚÒ»¶ÔÒ»
µÄ¸¨µ¼ÕâÖÖÐÎʽ£¿ÎÒÒ²²»ÖªµÀ¡£ÎÒÖ»ÖªµÀ£¬Èç¹ûÄãÄÜÈÃѧÉú²úÉúÕæÕýµÄ
»ý¼«ÐÔ£¬°ïËûÃÇÒÆ³ýѧϰÖÐһЩ²»±ØÒªµÄÕϰ£¬¶øÇÒÔÚÊʵ±µÄʱºòÀËû
ÃÇÒ»°Ñ£¬ÄÇôʵ¼ÊÉÏËûÃǾÍÍêÈ«¿ÉÒÔ×Ôѧ¡£
Ó¢ÎÄÔÎÄ£ºTeaching Programming To A Highly Motivated Beginner
ÒëÕß ÕÅÖØæë
±±ÓÊÈË¡£Ñ§¹ýÉè¼Æ£¬¼¼ÊõÔÚѧ£»Ç°²úÆ·Éè¼ÆÊ¦£¬ÏÖÈοª·¢¹¤³Ìʦ¡£ÈÈ
°®ÃÀºÃ£¬Å¬Á¦³ÉΪ´´ÔìÃÀºÃµÄÈË¡£Í¼ÁéÉçÇøID: zhongqiÏÊÔÄδÀ´µÄ±à³ÌÓïÑÔ¾¿¾¹ÊÇʲôÑù£¿
×÷Õß Ëɱ¾Ðкë
RubyÓïÑÔ·¢Ã÷Õߣ¬ÒàÊÇÑÇÖÞÊ×ÇüÒ»Ö¸µÄ±à³ÌÓïÑÔ·¢Ã÷Õß¡£ÏÖ¼æÈÎÍøÂç
Ó¦ÓÃͨÐÅÑо¿Ëù(NaCl)Ñо¿Ô±¡¢ÀÖÌì¼¼ÊõÑо¿ËùÑо¿Ô±¡¢HerokuÊ×
ϯ¼Ü¹¹Ê¦µÈ¡£êdzơ°Matz¡±¡£ÌÖÑá¶«¾©£¬Ï²»¶ÎÂȪ¡£
ÒëÕß ÖÜ×Óºã
IT¡¢±à³Ì°®ºÃÕߣ¬¼¼ÊõÕ¬£¬³õÖÐÊ±ÔøÔÚNOI(¹ú¼ÒÐÅϢѧ°ÂÈü)Ìì½ò
ÈüÇø»ñÒ»µÈ½±£¬´óѧ±ÏÒµºóÔøÈÎIT×Éѯ¹ËÎÊ£¬¾«Í¨Ó¢ÓïºÍÈÕÓÒëÖø
ÓС¶30Ìì×ÔÖÆ²Ù×÷ϵͳ¡·¡¢¡¶´óÊý¾ÝµÄ³å»÷¡·¡¢¡¶AndroidÓ¦Óÿª·¢
ÈëÃÅ¡·¡£
´Ó¹ýÈ¥±à³ÌÓïÑÔµÄÀúÊ·ÖУ¬ÎÒÃÇ¿ÉÒÔ¿´³ö±à³ÌÓïÑÔÊÇÔÚ²»¶ÏÊÔ´íµÄ¹ý³Ì
Öз¢Õ¹ÆðÀ´µÄ¡£Óкܶà±à³ÌÓïÑÔÒѾÏûÍö£¬½ö½öÔÚÀúÊ·ÖÐÁôÏÂÁËËüÃǵÄ
Ãû×Ö£¬µ«ÆäÖÐËù°üº¬µÄ˼Ï룬ȴ±»ºóÀ´µÄ ÓïÑÔÒÔ²»Í¬µÄÐÎʽÎüÈ¡ºÍ½è
¼ø¡£
ÀýÈ磬SNOBOL µÄ×Ö·û´®´¦Àí¹¦ÄÜ£¬¿ÉÒÔ˵ÊÇÏÖ´ú½Å±¾ÓïÑÔ»ù±¾¹¦ÄÜ
µÄ׿ÏÈ¡£´ËÍ⣬20ÊÀ ¼Í70Äê´úÓÉÃÀ¹úÂéÊ¡Àí¹¤Ñ§Ôº(MIT)¿ª·¢µÄÒ»ÖÖ
ÃûΪCLU
1µÄÓïÑÔÖеü´úÆ÷(Iterator)µÄ¸ÅÄҲ±»RubyÒÔ´úÂë¿é
(Block)µÄÐÎʽ¼Ì³ÐÁËÏÂÀ´¡£
1 CLU ÊÇÓÉMITµÄ°Å°ÅÀ? Àû˹¿Æ·ò(Barbara Liskov£¬1939¡ª )Ëù¿ª·¢µÄÓïÑÔ£¬Àû˹¿Æ·òÓÚ
2008 Äê»ñµÃͼÁé½±¡£(ÔÊé×¢)
´Ó±à³ÌÓïÑԵĽø»¯¹ý³ÌÀ´¿´£¬Ò»¸öÏÔÖøµÄ¹Ø¼ü´Ê¾ÍÊÇ¡°³éÏ󻯡±¡£³éÏ󻯾ÍÊÇÌṩһ¸ö³éÏóµÄ¸ÅÄʹÓÃÕß¼´±ã²»¾ß±¸¹ØÓÚÆäÄÚ²¿ÏêϸÇé¿öµÄÖª
ʶ£¬Ò²Äܹ»¶ÔÆä½øÐÐÔËÓá£ÓÉÓÚ²»±ØÁ˽âÆäÄÚ²¿µÄÇé¿ö£¬Òò´ËÒ²±»³Æ
Ϊ¡°ºÚÏ仯¡±¡£
һЩ¹ÅÀϵıà³ÌÓïÑÔ£¬ÀýÈçBASIC ¾ÍûÓÐʵÏÖ³ä·ÖµÄ³éÏ󻯡£ËäÈ»ËüÌá
¹©ÁËÓÃÓÚ¹ý³Ì¹²ÏíµÄ×Ó³ÌÐòÕâ¸ö¸ÅÄµ«ÊÇ×Ó³ÌÐòÖ»ÄÜͨ¹ý±àºÅÀ´µ÷
Ó㬶øÇÒ²»ÄÜ´«µÝ²ÎÊý¡£ÓÉÓÚ¡°¸³ÓèÃû³Æ¡±ÊdzéÏ󻯵ÄÖØÒª²¿·Ö£¬ËùÒÔ˵
ËüµÄ³éÏó»¯ÊDz»³ä·ÖµÄ¡£½ü´úµÄ±à³ÌÓïÑÔÖУ¬¶¼¿ÉÒÔΪһϵÁйý³Ì(³Ì
Ðò)¸³ÓèÏàÓ¦µÄÃû³Æ¡£
È»¶ø£¬½ö½ö½«¹ý³Ì½øÐгéÏ󻯻¹Ô¶Ô¶²»¹»¡£¼¸ºõËùÓеĹý³Ì¶¼ÐèÒª½øÐÐ
Ò»¶¨µÄÊäÈëÊä³ö²Ù×÷£¬¶ø²¢²»ÊÇÓëÊý¾ÝÎ޹صġ£Òò´Ë£¬ÔÚÏÂÒ»¸ö½×¶Î
ÖУ¬¶ÔÊý¾Ý½øÐкÚÏ仯¾ÍÏԵ÷dz£ÖØÒª¡£¸Õ²ÅÎÒÃÇÌáµ½µÄCLU£¬¾ÍÊÇÊý
¾Ý³éÏ󻯳öÏÖÔçÆÚµÄÒ»ÖÖÓïÑÔ¡£
ÔÚÊý¾Ý³éÏ󻯵ÄÑÓ³¤ÏßÉÏ£¬¾Í×ÔÈ»¶øÈ»²úÉúÁËÃæÏò¶ÔÏó±à³ÌµÄ¸ÅÄî¡£Ëù
ν¶ÔÏ󣬾ÍÊdzéÏ󻯵ÄÊý¾Ý±¾Éí£¬Òò´ËÃæÏò¶ÔÏóºÍÊý¾Ý³éÏó»¯Ö®¼ä½ö½ö
¸ôÁ˱¡±¡µÄÒ»ÕÅÖ½¡£ÔÚÏÖÔÚµÄ21 ÊÀ¼Í±à³ÌÓïÑÔÖУ¬ÃæÏò¶ÔÏóÒѾÊdz£
ʶÁË£¬×î½ü¼¸ºõËùÓеÄÓïÑÔ¶¼»ò¶à»òÉÙµØÌṩÁËÃæÏò¶ÔÏóµÄÄÜÁ¦¡£ µ±
È»£¬ÆäÖÐÒ²ÓÐһЩÓïÑÔ¹ÊÒâ²»Ìṩ¶ÔÃæÏò¶ÔÏóµÄÖ§³Ö2¡£
2 ÀýÈ磬ÏÂÒ»½ÚÖн«Òª½éÉܵÄÓɱ£ÂÞ ? ¸ñÀ×¶òÄ·ËùÉè¼ÆµÄArc ÓïÑÔ£¬¾Í(ÖÁÉÙÔÚÆäÄÚÖù¦ÄÜÖÐ)
²»Ö§³ÖÃæÏò¶ÔÏ󣬾ݱ£ÂÞ˵£¬ÊÇÓÐÒâÕâÑùÉè¼ÆµÄ¡£(ÔÊé×¢)
Ëæ×ųéÏ󻯵IJ»¶ÏÉîÈ룬³ÌÐòÔ±¼´±ã²»È¥¹ØÐÄÄÚ²¿µÄÏêϸÇé¿ö£¬Ò²¿ÉÒÔ
±àд³ö³ÌÐò¡£ÈËÀàÒ»´ÎËùÄÜÕÆÎյĸÅÄîÊýÁ¿ÊÇÓÐÏ޵ģ¬ÓÐ˵·¨³Æ£¬´ó²¿
·ÖÈËÒ»´ÎÖ»ÄܼÝÔ¦7¡À2¸ö×óÓҵĸÅÄî¡£ÕâÑùÒ»À´£¬Èç¹ûÄܹ»ÈÃÎÊÌâµÄ´¦
Àí·½Ê½¸ü¼Ó³éÏó£¬Ò²¾Í¿ÉÒÔ½â¾ö¸ü¸´ÔÓµÄÎÊÌâ¡£
ÊÜĦ¶û¶¨ÂɵÄÓ°Ï죬Éç»á¶ÔÓÚÈí¼þÒ²Ìá³öÁËÔ½À´Ô½¸ßµÄÒªÇó¡£ÈËÀàÉç»á
Ô½À´Ô½ÒÀÀµ¼ÆËã»ú£¬Òò´Ë¾ÍÐèÒª¿ª·¢³ö¸ü¶à¸ü¿É¿¿¡¢¸ü±ãÒ˵ÄÈí¼þ¡£
ÔÚ½²ÊöÈí¼þ¿ª·¢µÄÒ»±¾ÃûÖø¡¶ÈËÔÂÉñ»°¡·ÖУ¬×÷Õ߸¥À×µÂÀï¿Ë¡¤²¼Â³¿Ë
˹дµÀ£º3 ÎÞÂÛʹÓÃʲô±à³ÌÓïÑÔ£¬Éú²úÒ»Ìõ»ù±¾Óï¾äËùÐèÒªµÄ¹¤Êý¼¸
ºõÊÇÒ»¶¨µÄ¡£
3 ¡¶ÈËÔÂÉñ»°¡ª¡ªÈí¼þÏîÄ¿¹ÜÀíÖ®µÀ¡·(The Mythical Man-Month: Essays on Software
Engineering)Ê״γö°æÓÚ1975Ä꣬²¢ÓÚ1995 Äê½øÐÐÁËÀ©³äºÍÔÙ°æ¡£¸¥À×µÂÀï¿Ë¡£²¼Â³¿Ë˹
(Frederick P. Brooks, Jr.£¬1931¡ª )ÊÇÃÀ¹úµÄÈí¼þ¹¤³Ìʦ£¬ÔøÖ÷³Ö¿ª·¢ÁËIBMµÄOS360²Ù×÷ϵͳ£¬ÓÚ1999Äê»ñµÃͼÁé½±¡£
Ò²¾ÍÊÇ˵£¬Èç¹ûÒªÃèÊöͬÑùµÄËã·¨£¬AÓïÑÔÐèÒª1000ÐУ¬BÓïÑÔÖ»ÐèÒª
10Ðеϰ£¬Ö»Òª²ÉÓÃBÓïÑÔÉú²úЧÂʾͿÉÒÔÌá¸ß100±¶¡£
¿ÉÄÜÓÐÈË»á¾õµÃ¡°ÕâÌ«³¶Á˰ɡ±¡£´ò¸ö±È·½£¬ÓÃJavaºÍRubyÃèÊöͬÑùµÄËã
·¨£¬Óï¾äÐÐÊýÏà²î2±¶¶àÒ²²»Ï¡Ææ£¬Èç¹ûÊÇ»ã±àÓïÑÔºÍRubyÏà±ÈµÄ»°£¬Ò²ÐíÄܲúÉú100±¶ÉõÖÁ1000±¶µÄ²î¾à¡£
ÄܲúÉúÕâÑùµÄÉú²úЧÂʲîÒ죬ÕýÊdzéÏ󻯵ÄÁ¦Á¿¡£³éÏó¶È¸ßµÄ±à³ÌÓïÑÔ
²»±ØÃèÊöÏêϸ¹ý³Ì£¬´Ó¶ø¿ÉÒÔÓüò¶ÌµÄ´úÂë´ïµ½Ä¿µÄ¡£ºÍ³éÏ󻯳̶ȵÄ
²îÒìÏà±È£¬±äÁ¿Ãû³Æ¡¢ÓÐûÓÐÖ¸¶¨Êý¾ÝÀàÐÍÖ®ÀàµÄ¶¼Ö»ÄÜËãÊÇÎó²î¼¶±ð
µÄ²îÒì¶øÒÑ¡£
100ÄêºóµÄ±à³ÌÓïÑÔ
´Ó±à³ÌÓïÑԵĽø»¯Õâ¸öÊÓ½ÇÀ´¿´£¬Æäʵ×î½ü²¢Ã»ÓÐʲô´óµÄ¶¯×÷¡£ÏÖÔÚ
ʹÓÃ×î¹ã·ºµÄ±à³ÌÓïÑÔ¼¸ºõ¶¼ÊÇ10 ¶àÄêǰ³öÏֵ쬼´±ãÊDZȽÏеÄJava
ºÍRuby Ò²Êǵ®ÉúÓÚ20 ÊÀ¼Í90 Äê´úºó°ë£¬¾àÀëÏÖÔÚÒ²ÒѾÊÇ15Äê֮ǰµÄ
ÊÂÁË¡£Ò²Ðí¿ÉÒÔ˵£¬ÏÖÔÚÕýÊDZà³ÌÓïÑÔ½ø»¯µÄºÃʱ»ú°É¡£
×î½ü£¬Êܵ½CPU¶àºË»¯µÈÒòËØµÄÓ°Ï죬Erlang4ÕâÖÖ²¢Ðд¦ÀíÓïÑÔÊܵ½ÁË
²»ÉÙ¹Ø×¢¡£²»¹ýErlangÔçÔÚ1987Äê¾Íµ®ÉúÁË£¬Ò²²¢²»ÊÇʲôж«Î÷£¬ÓÐ
µãʧÍûѽ¡£
4 ErlangÊÇÓÉÈðµäµçÐŹ«Ë¾°®Á¢ÐÅ(Ericsson)ÆìϼÆËã»ú¿ÆÑ§Ñо¿ÊÒËù¿ª·¢µÄÒ»ÖÖ±à³ÌÓïÑÔ£¬·¢²¼ÓÚ1987Ä꣬²¢ÓÚ1998 ÄêʵÏÖ¿ªÔ´¡£
ÄÇô£¬Î´À´µÄ±à³ÌÓïÑÔ¾¿¾¹»á±ä³ÉʲôÑùÄØ£¿
ÃÀ¹ú·çÏÕͶ×ʼҡ¢Lisp ÆôÃɼҡ¢×÷¼Ò±£ÂÞ¡¤¸ñÀ×¶òÄ·ÔÚÆä¡¶Ò»°ÙÄêºóµÄ
±à³ÌÓïÑÔ¡·5Ò»ÎÄÖÐÏëÏóÁË100 Äêºó¿ÉÄÜ»á³öÏֵıà³ÌÓïÑÔ£¬²¢ÌáÒ齫Ëû
µÄ¹ÛµãÓ¦Óõ½ÏÖÔڵıà³ÌÓïÑÔÖС£
5 ±£ÂÞ ? ¸ñÀ×¶òÄ·(Paul Graham£¬1964¡ª )ÊÇÃÀ¹ú·çÏÕͶ×ʼҡ¢¼ÆËã»ú¿ÆÑ§×÷¼Ò¡£¡¶Ò»°ÙÄê
ºóµÄ±à³ÌÓïÑÔ¡·(The Hundred-Year Language)Ò»ÎÄÊÕ¼ÓÚ±£ÂÞ ? ¸ñÀ×¶òÄ·µÄÎ¶ºÚ¿ÍÓë»
¼Ò¡·Ò»ÊéÖУ¬ÈËÃñÓʵç³ö°æÉç2011Äê4Ô³ö°æ£¬ÈîÒ»·åÒë¡£
ËûÖ÷ÕÅ£¬100ÄêºóµÄ±à³ÌÓïÑÔ½ø»¯µÄÖ÷Ïߣ¬Ó¦¸ÃÒÔÉÙÁ¿¹«ÀíΪ»ù´¡µÄ¡°Óµ
ÓÐ×îС×î¼ò½àºËÐĵÄÓïÑÔ¡±¡£ÔÚÏÖÓбà³ÌÓïÑÔÖУ¬×î¾ßÓÐÕâÒ»ÌØÕ÷µÄĪ
¹ýÓÚËû×îϲ»¶µÄLispÁË¡£ËùÒÔ˵£¬ËûµÄÖ÷ÕÅʵ¼ÊÉϾÍÊÇ˵£¬Lisp²ÅÊÇ100
Äêºó±à³ÌÓïÑԵĽø»¯·½Ïò¡£
ßí£¬ÏñÎÒÕâÑùµÄСÈËÎïÒª¸úËû½Ð°åºÃÏñҲͦ²»×ÔÁ¿Á¦µÄ£¬²»¹ýÎÒ»¹ÊÇÈÏ
Ϊ£¬¶ÔÓÚδÀ´£¬Ó¦¸Ã»ùÓÚ´Ó¹ýÈ¥µ½ÏÖÔڵı仯·½Ïò£¬²¢ÔÚÆäÑÓ³¤ÏßÉÏ×ö
³öÔ¤²â¡£µ±È»£¬½«À´Ò²Ðí»á·¢ÉúһЩÎÞ·¨Ô¤ÁϵÄ×´¿ö£¬´Ó¶ø´ó·ùŤת֮
ǰµÄǰ½ø·½Ïò£¬²»¹ýÕâÑùµÄÊÂÇé´Ó¶¨ÒåÀ´Ëµ±¾À´¾ÍÊÇÎÞ·¨Ô¤²âµÄ£¬Äã·Ç
ÒªÔ¤²âËü£¬±¾ÖÊÉÏÒ²ÊǺÁÎÞÒâÒåµÄ¡£
×÷Ϊһ¸ö±à³ÌÓïÑÔÓùÕ¬×壬ͨ¹ý·´¹Û¹ýÈ¥°ë¸öÊÀ¼ÍÒÔÀ´±à³ÌÓïÑԵĽø»¯
·½Ïò£¬ÎÒÈÏΪ±à³ÌÓïÑÔ¾ø¶Ô²»»á°´ÕÕ±£ÂÞ¡¤¸ñÀ×¶òÄ·Ëù˵£¬Ïò×Å¡°Ð¡¶ø¸É
¾»¡±µÄ·½ÏòÀ´½ø»¯¡£ÏÖÔڵıà³ÌÓïÑÔ£¬ÎÞÂÛÊǹ¦ÄÜÉÏ»¹ÊÇÓï·¨É϶¼ÒѾ
²»ÊÇÄÇÑùµ¥´¿ÁË£¬ËäÈ»Ò²Ôø¾ÓÐÈËŬÁ¦³¢ÊÔ½«ÕâЩÓïÑÔ±äµÃ¸üС¸ü¼ò
µ¥£¬µ«°üÀ¨±£ÂÞ¡¤¸ñÀ×¶òÄ·×Ô¼ºËùÉè¼ÆµÄArc
6ÔÚÄÚ£¬¶¼¾ö²»ÄÜËãÊdzɹ¦
µÄ³¢ÊÔ¡£
6 Arc ÓïÑÔÊÇLisp µÄ·½ÑÔÖ®Ò»£¬Óɱ£ÂÞ ? ¸ñÀ×¶òÄ·ÓëÂÞ²®ÌØ ? Ì©ÅË? ĪÀï˹(Robert Tappan
Morris£¬1965¡ª )¹²Í¬Éè¼Æ£¬ÓÚ2008 ÄêÊ״η¢²¼¡£
ÔÚÎÒ¿´À´£¬±à³ÌÓïÑԵĽø»¯¶¯»ú£¬²»Êǹ¤¾ßºÍÓïÑÔ±¾ÉíµÄ¼ò»¯£¬¶øÊǽ«
ͨ¹ýÕâЩ¹¤¾ßºÍÓïÑÔËùµÃµ½µÄ½á¹û(½â¾ö·½°¸)¸ü¼ò½àµØ±í´ï³öÀ´¡£½ü
°ë¸öÊÀ¼ÍÒÔÀ´£¬±à³ÌÓïÑÔ²»¶ÏÌṩÓú·¢¸ß¶ÈµÄ³éÏó»¯ÌØÐÔ£¬Ò²ÕýÊÇΪÁË
´ïµ½Õâ¸öÄ¿µÄ¡£Òò´ËÎÒÃÇ¿ÉÒÔºÜ×ÔÈ»µØÈÏΪ£¬ÕâÖÖÇ÷ÊÆÔÚ½«À´Ò²Ó¦¸Ã»á
¼ÌÐø±£³Ö¡£»ùÓÚÉÏÊö¹Ûµã£¬Èç¹ûÒªÎÒÀ´Ô¤²â100 Äêºó±à³ÌÓïÑÔµÄÑù×Ó£¬ÎÒÈÏΪӦ¸Ã
»áÊÇÏÂÃæÈýÖÖÇé¿öµÄÆäÖÐÖ®Ò»£º
1. ±ä»¯²»´ó¡£±à³ÌÓïÑÔµÄд·¨´Ó20 ÊÀ¼Í80 Äê´ú¿ªÊ¼¾Í¼¸ºõûÓÐʲô
½ø»¯£¬½ñºó¼´±ã³öÏÖеÄд·¨£¬Ò²Ö»ÊÇÏÖÓÐд·¨µÄ±äÐζøÒÑ¡£(´Ó
·¢Õ¹ÉÏÀ´¿´£¬ÊDZȽϱ¯¹ÛµÄδÀ´)
2. ʹÓñà³ÌÓïÑÔÀ´±à³ÌÕâ¸öÐÐΪ±¾Éí²»´æÔÚÁË¡£ÈËÀà¿ÉÒÔͨ¹ýºÍ¼ÆËã
»ú¶Ô»°(´ó¸ÅÊÇÓÃ×ÔÈ»ÓïÑÔ)À´²éѯºÍ´¦ÀíÐÅÏ¢¡£(ÀàËÆ¡¶ÐǼÊÃÔ
º½¡·ÖеÄÊÀ½ç£¬¶ÔÓÚ±à³ÌÓïÑÔ¼ÒÀ´ËµÊDZȽÏʧÂäµÄδÀ´)
3. ·¢Ã÷Á˲ÉÓøü¸ß³éÏó¶Èд·¨µÄ±à³ÌÓïÑÔ¡£ÕâÖÖÓïÑÔÔÚÏÖÔÚºÜÄÑÏë
Ï󣬲»¹ýÓ¦¸ÃÊDZÈÏÖÔÚ¸ü¼ÓÇ¿µ÷What£¬¶ø¶ÔÓÚÈçºÎ½â¾öÎÊÌâµÄHow
²¿·ÖµÄϸ½Ú£¬Ôò²»ÔÙÐèÒªÈËÀàÈ¥¹ýÎÊ¡£(ÄÑÒÔÔ¤²âµÄδÀ´)
µ±È»£¬ÉÏÃæµÄÔ¤²âÒ²Ö»²»¹ý½ö½öÊÇÔ¤²â¶øÒÑ£¬ÓпÉÄÜÓëδÀ´µÄʵ¼ÊÇé¿ö
´óÏྶͥ£¬»òÕß˵£¬Óëʵ¼Ê´óÏྶͥµÄ¿ÉÄÜÐԱȽϴó°É¡£²»¹ý»°Ëµ»Ø
À´£¬100 ÄêºóÎÒÒ²ÒѾ²»ÔÚÕâ¸öÊÀÉÏÁË£¬Õâ²»ÊǰײÙÐÄÂï¡£
20ÄêºóµÄ±à³ÌÓïÑÔ
ͨ¹ý¶Ô100ÄêºóµÄÔ¤²â£¬ÎÒÃÇÃ÷°×ÁË¡°Ô¤²â100 ÄêºóµÄÊÂÇéÊǷdz£À§ÄÑ
µÄ¡±¡£ÏëÏë¿´£¬100ÄêǰÁ¬·É»ú»¹Ã»ÓÐÃñÓû¯ÄØ£¬100ÄêºóÎÒÒѾ¿ÉÒÔ×ø
ÔÚ·É»úÉÏÊæÊæ·þ·þµØÐ´ÕâÆª¸å×ÓÁË£¬Õâ×ãÒÔ˵Ã÷£¬ÒªÏëÏóÉç»áµÄ±ä»¯ÊÇ
Ï൱À§Äѵġ£
ÄÇô£¬¸ü½üÒ»µãµÄδÀ´ÓÖÔõôÑùÄØ£¿±ÈÈç˵20 Äêºó¡£20 Äêǰ£¬ÈÕ±¾¸Õ
¸Õ¸ÄÄêºÅΪƽ³É7£¬ÏÖÔÚºÍÄǸöʱºòÏà±È£¬Ó¡ÏóÖÐÉç»áÓ¦¸ÃûÓз¢Éú·Ç
³£¼«¶ËµÄ±ä»¯¡£¼ÆËã»úµÄÐÔÄܵȷ½ÃæÈ·ÊµÓÐÁ˳¤×ãµÄ½ø²½£¬²»¹ý·¢Õ¹Ç÷
ÊÆ»¹ÊÇÁ¬ÐøµÄ£¬²¢·ÇÎÞ·¨Ô¤²â¡£¶ÔÓÚ20 ÄêºóµÄδÀ´£¬ÎÒÏëÓ¦¸Ã¿ÉÒÔ¸ù
¾ÝÏÖÔڵķ¢Õ¹Ç÷ÊÆÀ´×ö³öÅжϡ£
7 ³ýÁ˹«Ôª¼ÍÄêÍ⣬ÈÕ±¾ÈË»¹ÆÕ±éϰ¹ßʹÓÃÄêºÅ¼ÍÄê¡£ºÍÖйú·â½¨Íõ³¯Ê±ÆÚÒ»Ñù£¬ÄêºÅÒ»°ãÊÇ
ËæÌì»ÊµÄ¸ü»»¶ø½øÐиüµü¡£1989 Ä꣬Ã÷ÈÊÌì»Ê¼´Î»£¬¸ÄÄêºÅΪƽ³É£¬Òò´Ë 2012 ÄêÊÇÆ½³É 24
Äê¡£ÔÚÆ½³É֮ǰµÄÉÏÒ»¸öÄêºÅÊÇÕѺ͡£
¸öÈËÈÏΪ£¬Õâô¶ÌµÄʱ¼äÄÚ£¬±à³ÌÓïÑÔ±¾ÉíÓ¦¸Ã²»»á·¢Éú¶à´óµÄ±ä»¯¡£
ʵ¼ÊÉÏ£¬ÏÖÔÚʹÓõĺܶàÓïÑÔ£¬ÔÚ20 Äêǰ¾ÍÒѾ´æÔڵġ£Òò´ËÎÒÔ¤
¼Æ£¬20 ÄêºóµÄÓïÑÔ£¬Ó¦¸ÃÊÇÔÚ·Ö²¼´¦Àí(¶ą̀¼ÆËã»úÐ×÷´¦Àí)ºÍ²¢
Ðд¦Àí(¶à¸öCPU Ð×÷´¦Àí)¹¦ÄÜÉϽøÐÐÇ¿»¯£¬Ê¹µÃ¿ª·¢Õß²»ÐèÒªÌØ±ð»¨ÐÄ˼¾ÍÄܹ»Ê¹ÓÃÕâЩ¹¦ÄÜ¡£
Ö®ËùÒÔÒª¹Ø×¢·Ö²¼´¦ÀíºÍ²¢Ðд¦Àí£¬ÊÇÒòΪ½ñºó¸öÈËÒ²¿ÉÒÔͨ¹ýÔÆ¼ÆËã
µÄÐÎʽʹÓõ½±ÈÏÖÔÚ¸ü¶àµÄ¼ÆËã»ú£¬¶øËæ×Åÿ̨¼ÆËã»úµÄCPU ¶àºË»¯£¬¾ÍÏ൱ÓÚ°²×°Á˸ü¶àµÄCPU£¬ÕâЩÇéÐζ¼ÊǺÜÈÝÒ×ÏëÏóµÄ¡£
²»¹ý£¬ÎÒÈÏΪÏÖÔÚµÄÏ̡߳¢RPC(Remote Procedure Call£¬Ô¶³Ì¹ý³Ìµ÷
ÓÃ)µÈÏÔʽµØÊ¹Ó÷ֲ¼´¦ÀíºÍ²¢Ðд¦ÀíµÄÐÎʽ£¬ÔçÍí»áÓöµ½Æ¿¾±¡£µ±ºË
ÐÄÊýÁ¿³¬¹ýÊýǧ¸öµÄʱºò£¬ÏÔʽָ¶¨¾Í±äµÃºÁÎÞÒâÒåÁË£¬µ÷ÊÔÆðÀ´Ò²»á
±äµÃ·Ç³£Í´¿à¡£ÎÒÆÚ´ýÔÚ20 Äêºó£¬Äܹ»³öÏÖÍ»ÆÆÕâÖÖ¾ÖÏ޵ļ¼Êõ£¬¼´
ÎÞÐèÏÔʽ²Ù×÷¾Í¿ÉÒÔʵÏÖ·Ö²¼´¦ÀíºÍ²¢Ðд¦Àí¡£
ѧÉúÃǵÄÏëÏó
¼¸Äêǰ£¬ÎÒÔø¾ÔÚĸУÖþ²¨´óѧ¿ªÕ¹¹ýÒ»´Î¹ØÓÚ±à³ÌÓïÑԵļ¯Öн²×ù¡£
ÔÚ½²×ùÖÐÎÒ¸øÑ§ÉúÃdzöÁË¡°ÏëÏóÒ»ÏÂ20ÄêºóµÄ±à³ÌÓïÑÔ¡±ÕâÑùÒ»¸öÌâÄ¿£¬²¢ÔÚ½²×ù×îºóÒ»ÌìÌá½»±¨¸æ¡£ºÜÓÐÒâ˼µÄÊÇ£¬´ó¶àÊýѧÉú²¢Ã»ÓÐ×ö³öÎÒ
ÉÏÃæËù˵µÄ¹ØÓÚ·Ö²¼´¦ÀíºÍ²¢Ðд¦ÀíÖ®ÀàµÄ¼¼ÊõÐÔÔ¤²â£¬¶øÊÇÌá³öÁËÖî
Èç¡°Èñà³Ì±äµÃ¸ü¼òµ¥µÄÓïÑÔ¡±¡¢¡°Ï£ÍûÓÃ×ÔÈ»ÓïÑÔÀ´¿ØÖƼÆËã»ú¡±Ö®ÀàµÄ
ÏëÏó¡£Í¨¹ýÕâЩ´ð°¸£¬Ëƺõ¿ÉÒÔ¿´³öËûÃÇÆ½³£ÎªÁËÍê³É±à³Ì×÷Òµ¶ø±»ÕÛ
Ä¥µÃºÎµÈÍ´¿à¡£
²»¹ý£¬ÕâÑùµÄ´ð°¸ÖУ¬Ò²ÐíÒ²Ô̺¬×ÅÕæÀí¡£½üÄêÀ´£¬±à³ÌÓïÑÔËÆºõÔ½À´
Ô½ÄÑÒÔÍÑÀëIDE(Integrated Development Environment£¬¼¯³É¿ª·¢»·¾³)
¶øµ¥¶ÀÄóöÀ´ËµÁË¡£¶ÔÓÚRubyÒ²×ÜÓÐÈËÎÊ¡°Ã»ÓÐIDEÂ𣿡±Ö®ÀàµÄÎÊÌ⣬µ±È»£¬ºÃÏûÏ¢ÊÇ×î½üEclipse ºÍNetBeans ÒѾ֧³ÖRubyÁË¡£
ÓеãÅÜÌâÁË¡£×ÜÖ®£¬Î´À´µÄ±à³ÌÓïÑÔ¿ÉÄܲ»»áÏñ¹ýÈ¥µÄ±à³ÌÓïÑÔÄÇÑù£¬ÈÃÓïÑÔ±¾Éíµ¥¶À´æÔÚ£¬¶øÊÇºÍ±à¼Æ÷¡¢µ÷ÊÔÆ÷¡¢ÐÔÄÜ·ÖÎöÆ÷µÈ¿ª·¢¹¤¾ß
Ï໥ÅäºÏ£¬ÒÔ´ïµ½Ìá¸ßÕûÌåÉú²úЧÂʵÄÄ¿µÄ¡£»°Ëµ£¬ÄDz»¾ÍÊÇ Smalltalk
Âð8£¿
8 Smalltalk ÕýÊÇÒ»ÖÖ¿¼ÂÇÁË¡°Óë±à¼Æ÷¡¢µ÷ÊÔÆ÷¡¢ÐÔÄÜ·ÖÎöÆ÷µÈ¿ª·¢¹¤¾ßÏ໥ÅäºÏ¡±¶øÉè¼ÆµÄÓï
ÑÔ¡£¹ýÈ¥Ëü²¢²»ÄÜËãÊdzɹ¦µÄ£¬µ«Ëæ×ż¼ÊõµÄ½ø²½£¬ÆäÀíÄî»ñµÃÁËÔ½À´Ô½¶àµÄÓÃÎäÖ®µØ£¬»òÐí
ÕæÄܾíÍÁÖØÀ´Ò²Î´¿ÉÖª¡£
ßí£¬ÀúÊ·ÊÇ·ñ»áÖØÑÝÄØ£¿
¡¶´úÂëµÄδÀ´¡·ÊÇ Ruby Ö®¸¸Ëɱ¾ÐкëµÄÓÖÒ»Á¦×÷¡£×÷Õß¶ÔÔÆ¼ÆËã¡¢´ó
Êý¾Ýʱ´úϵĸ÷ÖÖ±à³ÌÓïÑÔÒÔ¼°Ïà¹Ø¼¼Êõ½øÐÐÁËÆÊÎö£¬²¢¶Ô±à³ÌÓïÑÔµÄ
δÀ´·¢Õ¹Ç÷ÊÆ×ö³öÔ¤²â£¬ÄÚÈÝÉæ¼°Go¡¢VoltDB¡¢node.js¡¢CoffeeScript¡¢Dart¡¢MongoDB¡¢Ä¦¶û¶¨ÂÉ¡¢¶àºË¡¢NoSQL µÈµ±½ñ±¸ÊÜ
¹Ø×¢µÄ»°Ìâ¡£°Ë++Puppet¡ª¡ªLuke Kanies µÄ¸ÖÌúÏÀ
×÷Õß ÓàÐ˳¬
ǰÐÂÀËÔÆ¼ÆËãϵͳ¿ª·¢¹¤³Ìʦ£¬ÏÖÔÚUnitedStack¸ºÔðDevopsÏà¹ØÊÂ
Îñ¡£ÈÈÖÔÓÚ¿ªÔ´ÉçÇø£¬³£ÓÃID Newptone£¬ÖÐÎÄÒë×÷ţƤÌÇ¡£ËûºÍËû
µÄС»ï°éÃÇ(һֻèºÍÒ»Ö»ÍÃ×Ó)ÏÖ¾ÓסÔÚ±±¾©³Çijһ°²¾²µÄ½ÇÂ䡣ͼ
ÁéÉçÇøID:ţƤÌÇ
Puppet¶ÔÓÚ×öDevOpsµÄͬѧÀ´Ëµ£¬ÊǸö·Ç³£ÊìϤµÄÃû×Ö£¬µ«ÈÔÓÐÈË»¹²»
Á˽âËü¡£ÄÇôÎÒÏÈÀ´¼òµ¥½éÉÜһϣºPuppetÊÇÓÉPuppetlabs¹«Ë¾¿ª·¢µÄϵ
ͳ¹ÜÀí¿ò¼ÜºÍ¹¤¾ß¼¯£¬±»ÓÃÓÚIT·þÎñµÄ×Ô¶¯»¯¹ÜÀí¡£ÓÉÓÚÁ¼ºÃµÄÉùÃ÷ʽÓïÑÔºÍÒ×ÓÚÀ©Õ¹µÄ¿ò¼ÜÉè¼ÆÒÔ¼°¿ÉÖØÓÿɹ²ÏíµÄÄ£¿é£¬Ê¹µÃGoogle¡¢Cisco¡¢Twitter¡¢RedHat¡¢New York Stock ExchangeµÈÖڶ๫˾ºÍ»ú¹¹ÔÚ
ÆäÊý¾ÝÖÐÐĵÄ×Ô¶¯»¯¹ÜÀíÖÐÓõ½ÁËPuppet¡£°ëÄêÒ»¶ÈµÄPuppetConf´ó»á
Ò²õÒÉíÓÚÖØÒª¼¼Êõ»áÒéÖ®ÁС£AWSµÄCloudFormationÎĵµÖÐÓÐÒ»¶Î¹ØÓÚ
PuppetµÄ½éÉÜ£¬Æä¿ªÍ·ÊÇÕâô˵µÄ: Puppet has become the de facto
industry standard for IT automation¡£
ͬʱ£¬PuppetÔÚOpenStackÖÐÒ²·¢»Ó×ÅÖØÒªµÄ×÷ÓãºOpenStack-ciÉçÇø½«
ÆäÓÃÓÚOpenStack wikiϵͳ,³ÖÐø¼¯³ÉϵͳµÈµÈµÄÔËά¹ÜÀí£»´ËÍâÉçÇøµÄ
puppet-openstackÏîÄ¿ÓÃÓÚÍê³ÉOpenStack·þÎñµÄ×Ô¶¯»¯²¿ÊðºÍ¹ÜÀí£¬Ä¿
ǰÒѾÔÚstackforgeÖÐÍйܲ¢Í¨¹ýOpenStackµÄGerritϵͳÀ´¹ÜÀí´úÂëÌá
½»£»´ËÍ⣬Cisco,RedHat,MiriantisµÈ¶à¼Ò¹«Ë¾µÄOpenStack·¢Ðаæ»ò²¿Êð
¹¤¾ßÖоùʹÓõ½ÁËpuppet-openstack¡£Ä¿Ç°£¬PuppetÔÚUnitedStackµÄÈÕ³£
ÔËά¹ÜÀíºÍ²úÆ·µÄ×Ô¶¯»¯²¿ÊðÖÐÒ²Æðµ½ÁËÖØÒª×÷Óá£
ºÃÁË£¬¸Õ¸Õ»¹²»Á˽âPuppetµÄ¶ÁÕßÃÇÏÖÔÚÒѾ֪µÀPuppetÊÇÒ»¸öÅ£±Æºå
ºåµÄ×Ô¶¯»¯ÔËά¹ÜÀí¹¤¾ß¡£¿ÉÄÜÓÐÈËÒѾÏÂÍêÁËÈí¼þ°üÔ¾Ô¾ÓûÊÔÁË£¬ÏÈ
±ð¼±£¬ÓйØPuppetµÄʹÓÃ×ÊÁÏÔÚÍøÉÏ¿ÉÒÔËѵ½Ò»´ó¶Ñ£¬¹Ù·½µÄÎĵµÒ²Ïê
ϸµ½ÁË¡°ÁîÈË·¢Ö¸¡±¡£¹ØÓÚPuppetµÄʹÓþÑé·ÖÏíºÍ¸÷ÖÖÌØÐÔµÄÉîÈë̽ÌÖ
ÒÔ¼°ÈçºÎʹÓÃPuppet¹ÜÀíOpenStack²¿ÊðµÄ·½°¸·ÖÎö£¬Å¶£¬¶¼²»ÔÚ±¾ÎĵÄ
ÌÖÂÛ·¶Î§Ö®ÄÚ¡£
±¾ÎĵÄÖØµãÊÇ°ËØÔÒ»ÏÂPuppetΪʲô¿ÉÒÔÕâô³É¹¦¡£Í¬Ê±£¬Îª±ÜÃâÒýÆð
·ÇPuppet³ÌÐòÔ±¸Ð¹ÙÉϵIJ»ÊÊ£¬ÎÒÆÁ±ÎÁ˸÷ÖÖ´úÂë¼¶±ðµÄչʾºÍ¶Ôϸ½Ú
µÄ̽ÌÖ¡£
Luke KaniesµÄ¼¼Êõ֮·
¹ÊÊÂÒª´ÓLuke Kanies£¬ÕâλtwitterêdzÆÓëPuppetµÄ·þÎñÆ÷¶Ë½ø³ÌÃûͬÃû
µÄ¸çÃÇ˵Æð£¬ÔںܾúܾÃÒÔǰ...³É³¤£º¿à±ÆµÄѧÉúʱ´ú
ÔÚ1992ÄêµÄʱºò£¬Luke½øÈëŵ˼À¼Ñ§Ôº³ÉΪÁËÒ»Ãû»¯Ñ§×¨ÒµµÄѧÉú£¬Õâ
ÊÇÒ»ËùλÓÚÍþ˹¿µÐÁÖݵÄСѧУ£¬È«ÃÀÅÅÃûÔÚ178×óÓÒÅÇ»²¡£
С»ï×ÓºÜÕùÆøÖ»´ôÁËÒ»Äê¾ÍÅܵ½ÁË´óÃû¶¦¶¦µÄÀïµÂѧԺ£¬³ÉΪÁËÇDz¼Ë¹
µÄУÓÑ¡£²»¹ýµ¹Ã¹µÄÊÇÀïµÂѧԺ±»ÆÀΪȫÃÀÊ®´ó¿à±ÆÑ§Ð£Ö®Ò»£¬6Äê±Ï
ÒµÂʽöΪ75%£¬Ò²¾ÍÊÇÓÐ14µÄͬѧÄò»µ½±ÏÒµÖ¤¡£ÓбðÓںܶàÎÄÀíѧԺ
×ÔÓÉÑ¡¿ÎµÄģʽ£¬ÀïµÂµÄ´óһѧÉú±ØÐëÍê³É¹æ¶¨µÄÈËÎıØÐ޿γ̣¬Ñ§Ï°
Ï£À°¼°ÂÞÂíµÄ¹ÅµäÎÄ»¯¡£ÕâÃſγÌÒѾÓг¬¹ý50ÄêµÄÀúÊ·£¬ÀïµÂ¶¯ÓÃÁË
ѧУ×îΪǿ´óµÄʦ×ÊÁ¦Á¿À´ÎªÑ§Éúµì¶¨ÎÄ»¯»ù´¡¡£Õ⻹ûÍêÄØ£¬Ö®ºóѧ
Éú»¹±ØÐëÔÚËĸöÍØÕ¹ÁìÓòÑ¡¿Î£ºÎÄѧ¡¢ÕÜѧ¡¢×ڽ̡¢ÒÕÊõ·½Ãæ;ÀúÊ·¡¢Éç¿Æ¡¢ÐÄÀíѧ·½Ãæ;×ÔÈ»¿ÆÑ§·½Ãæ;»¹ÓÐÊýѧ¡¢Âß¼¡¢ÓïÑÔѧ»òÍâÓï¡£´ó
ÈýѧÉú±ØÐëͨ¹ýרҵ²âÊÔ£¬´óËÄѧÉúÔò±ØÐëÍê³ÉרÌâ±ÏÒµÂÛÎIJÅÄܱÏ
Òµ¡£±ÏÒµÂÛÎIJ¢²»¿ÉÅ£¬¿ÉŵÄÊÇÀïµÂѧԺµÄ±ÏÒµÂÛÎĵÄѧʱÊÇÒ»Ä꣬ËùÒÔÓÐÏë³ö¹úÁôѧµÄͬѧ£¬ÇëÃÜÇйØ×¢ÁíÍâ¾ÅËù´óѧµÄÃû×Ö¡
¸ÃÀ´µÄ»¹ÊÇ»áÀ´µÄ£¬1996Ä꣬Luke´óËÄÁË¡£ÒªÏë˳Àû±ÏÒµµÄ»°£¬Ëû±ØÐë
µÃÐÞÍêÕⳤ´ïÒ»ÄêµÄÂÛÎÄÏîÄ¿£¬ÕâÒâζ×ÅÔÚÕâÒ»ÄêÄÚËû±ØÐëÒª¶¯ÊÖÉè¼Æ
ºÍʵÏÖ£¬²¢ÓÃʵÑéÊý¾ÝÖ¤Ã÷£¬×îÖÕ×éÖ¯³ÉÂÛÎÄÀ´Íê³É¿ÎÌâ¡£LukeµÄÂÛÎÄ
ÌâÄ¿ÊÇSite-directed Mutagenesis in Soy Cytosolic Ascorbate Peroxidase£¬ÎÒÍÆÇÃÁ˰ëÌ죬ÖÐÎÄ·Òë´óÖÂÊÇ£º´ó¶¹¿¹»µÑªËáÑιýÑõ»¯Îïø°ûÖʵ͍
µãÓձ䡣
´ò¹¤£ºÆ¯²´ºÍ»ýÀÛÍòÐÒµÄÊÇ£¬ÎÒÃDz»ÓÃÈ¥Ñо¿Ò»¿ÚÆø¶¼Äî²»ÍêÃû×ÖµÄÂÛÎÄ¡£³¶Ô¶ÁË£¬Luke
±ÏÒµºóûȥÕÒÒ»·ÝºÍ»¯Ñ§Ïà¹ØµÄ¹¤×÷¶øÊÇÈ¥ÁËCypersiteµ±ÆðÁËMacϵͳ
¹ÜÀíÔ±¡£ÔÚCypersiteµÄÈÕ×ÓÀLukeʹÓÃAppleScript¸É×ÅÐÐMacOSµÄ¹Ü
Àí¹¤×÷£¬²»¹ý¸ÉÁ˲»µ½Ò»Ä껹ûתÕýµÄʱºò£¬Ëû±ãÅÜ·ÁË¡£
ÒòΪÔÚ97ÄêµÄ12Ô·ݣ¬ËûÔÚMetro One TelecommunicationsÕÒµ½ÁËÒ»·Ýϵ
ͳ¹ÜÀíÔ±µÄ»î¶ù¡£Metro One Telecommunicationsµ±Äê¿ÉÊÇÄÉ˹´ï¿ËÉÏÊÐ
¹«Ë¾£¬Ö÷ÒªÒµÎñÊÇÌṩµç»°ºÅÂë²éѯ·þÎñ¡£ÔÚÆäáÛ·åʱ£¬¹«Ë¾ÔÚÈ«ÃÀÓµ
ÓÐ7000Ãû¹ÍÔ±£¬È»¶øÔÚ2009Äê³õ£¬ÔÚÊÛÍê×îºóÒ»²¿·ÖµÄ¾ÓªÒµÎñºó£¬¸Ã
¹«Ë¾»¹Ê£Óà3ÈË¡£ÃéÁËÒ»ÑÛMetro One½ñÌìµÄ¹É¼Û£º0.01ÃÀÔª¡£Í¨ÐÅÐÐÒµ
ÔçÒÑÊÇ×òÈջƻ¨ÁË£¬Îâ¾ü²©Ê¿ÒѾÔÚ¡¶À˳±Ö®áÛ¡·Öн«ÕâЩÀúÊ·ÃèÊöµÃ
¾¡ÖÂÁÜÀì¡£
ÓÖ³¶Ô¶ÁË£¬ÔÚMetro OneµÄ1ÄêÁã9¸öÔÂÀLukeµÄÖ÷Òª¹¤×÷ÊǹÜÀí·ÖÉ¢
ÔÚÈ«ÃÀµÄ30¸öºô½ÐÖÐÐÄ£¬°üÀ¨Á˺ô½ÐÖÐÐļÆËãÉ豸µÄ²¿ÊðºÍÉèÖã¬Íâ¼Ó
´Ó×ܲ¿¶ÔÆä½øÐв»¼ä¶ÏµÄά»¤¡£¿´µ½ÕâÀÎÒͻȻÏ뵽ij¼ÒstartupµÄ´´
ʼÈË֮ǰÔÚµçÐŲ¿ÃÅ×ö¹ýÏàͬµÄ¹¤×÷£¬ºóÀ´ËûÈ¥×öÁËÒ»¸öºÜìŵĿÉÊÓ»¯
²¿Ê𹤾ߣ¬ÎҲ²âͨÐÅÐÐÒµµÄ²¿Êð¹¤×÷³äÂúÁËÖØ¸´µÄ»úеÀͶ¯£¬ÓÐÒ»ÖÖ
×Ô¶¯»¯µÄÇ¿ÁÒÐèÇó¡£ÕâÀïÌáһϣ¬provisionÔøÊǵçÐÅÐÐÒµÖеÄÒ»¸öÊõ
Óרָ°²×°Í¨ÐÅÉ豸ǰµÄ×¼±¸¹¤×÷£¬¶øÔÚdevopsÖг£ËµÌáÆðµÄbare-
metal provisionÊÇÖ¸ÔÚ¼ÆËã»úÉϰ²×°²Ù×÷ϵͳ»òÕßhypervisorµÄ¹ý³Ì¡£
ÔÚ1999Ä꣬LukeÀ뿪ÁËÕâ¼Òµç»°¹«Ë¾£¬ÔÚBlueStarµ£ÈÎϵͳ¹¤³Ìʦ£¬BlueStarÊÇÒ»¼ÒÂô½â¾ö·½°¸µÄ¾ÏúÉÌ£¬Ö÷ÓªÒµÎñÓУºRFID, Auto ID, POS,Mobility products¡£LukeÖ÷Òª¸ºÔðÒ»¼ÒDSL ISP·þÎñÆ÷¶Ë»ù´¡¼Ü¹¹µÄÉè¼Æ
ºÍʵÏÖ¡£Ëû¹¹½¨ÁËÒ»Ì××Ô¶¯»¯Çҿɼ¯ÖйÜÀíµÄϵͳ£¬²¢¸ºÔð»ù´¡¼Ü¹¹Ïî
Ä¿µÄ³ÖÐø¿ª·¢ÒÔ¼°ÊµÊ©ºÍά»¤¡£
LukeÔÚ¡°À¶Ï衱¸ÉÁË»¹Ã»µ½Á½Ä꣬ÓÖÅÜÈ¥ÁË¿¨ÌرËÀÕÈÚ×Ê·þÎñ¹«Ë¾µ£ÈιË
ÎÊ£¬Ìṩϵͳ×Ô¶¯»¯¹ÜÀíÏà¹ØµÄ×Éѯ¡£ÎÒ²éÁËÏ£¬¿¨ÌرËÀÕ¹«Ë¾Î»ÁÐÊÀ
½ç500Ç¿£¬³ÉÁ¢ÓÚ1925Ä꣬ÊÇÊÀ½çÉÏ×î´óµÄ¹¤³Ì»úеºÍ¿óɽÉ豸Éú²ú³§
¼Ò¡¢È¼Æø·¢¶¯»úºÍ¹¤ÒµÓÃÈ¼ÆøÂÖ»úÉú²ú³§¼ÒÖ®Ò»£¬Ò²ÊÇÊÀ½çÉÏ×î´óµÄ²ñ
ÓÍ»ú³§¼ÒÖ®Ò»¡£ÎÒÔÚÍøÉÏûÓв鵽LukeÔÚÕâ¶Îʱ¼ä¾ßÌå¸ÉÁËЩʲô£¬Ö»
ÄܸÐ̾Luke×÷Ϊһ¸öϵͳ¹ÜÀíÔ±ÊÇÔõô»ì½øÒ»¸ö¸ß˧¸»µÄÈÚ×ʹ«Ë¾µ£ÈÎ
¹ËÎʵġ£
´´ÒµÒÁʼ£º¶ÔÂÖ×ÓµÄÐÞÐÞ²¹²¹ÔÚ¿¨ÌرËÀÕ´ýÁËÁ½Äêºó£¬Luke¿ªÊ¼µ¥·É£¬ÕÒÈ˺ϻﴴ½¨ÁËReductive
Consulting(2010Äê¸ÄÃûΪPuppetlabs)£¬Í·ÏÎÊǶÀÁ¢¹ËÎÊ£¬×¨ÃÅ´ÓÊÂ
Unix»ù´¡ÉèÊ©×Ô¶¯»¯Ïà¹ØµÄ×Éѯ¡£Ëû×ÅÊÖÑо¿µ±Ç°¿ªÔ´µÄϵͳ¹ÜÀíºÍ¼à
¿Ø¹¤¾ßÈçCFEngine,ISconf,NagiosµÈµÈ£¬²¢ÇÒͨ¹ý¶þ´Î¿ª·¢°ÑÕâЩ¹¤¾ßÁª
½á³ÉÒ»Ì×Âú×ã¿Í»§ÐèÇóµÄ½â¾ö·½°¸¡£ÕâÊÇÒ»¸öÖØÒªµÄ½×¶Î£¬Luke¿ªÊ¼½«
»ýÀÛ¶àÄêµÄ¾ÑéºÍ˼¿¼×ª±äΪ¶Ô¹¤¾ßµÄ¸Äд£¬ÕâÆÚ¼äËûµÄÖ÷Òª¹¤×÷°üÀ¨
ÖØÐ´ÁËCFEngineµÄ½âÎöÆ÷ºÍ¿ª·¢ÁËISConf3£¬Õâ¶ÔºóÀ´µÄPuppet¿ª·¢¹¤
×÷²úÉúÁËÖØÒªÓ°Ïì¡£
CFEngine¼ò½é
Ê×ÏÈ£¬À´ËµÒ»Ï´óÃû¶¦¶¦µÄCFEngine£¬ÕâÊÇÒ»¿î³öÉúÓÚ1993ÄêµÄÀÏÅÆ
ϵͳÅäÖùÜÀí¹¤¾ß£¬CFEngineµÄ×÷ÕßMark BurgessÏ£Íû¿ÉÒÔʹ¼òµ¥µÄ
¹ÜÀíÈÎÎñ×Ô¶¯»¯£¬Ê¹À§ÄѵÄÈÎÎñ±äµÃ½ÏÈÝÒס£ËüµÄºËÐÄÀíÄîÊÇʹϵͳ
´ÓÈκÎ״̬¶¼ÄÜÊÕÁ²µ½Ò»ÖÖÀíÏë״̬¡£
ÕâÑùµÄ¹¤¾ß¶Ôµ±Ê±»¹ÔÚʹÓÃÁãÁãɢɢµÄ½Å±¾À´¹ÜÀí»úÆ÷µÄϵͳ¹ÜÀíÔ±
À´Ëµ¼òÖ±¾ÍÊǶ¬ÌìµÄÃÞ°À£¬ÏÄÌìµÄÑ©¸â£¬ºÚ°µÖеĵÆÅÝ£¬¼¢¶öÖеÄÃæ
°ü¡£Ö®ºó£¬CFEngine×ÔÈ»¶øÈ»µØ³ÉΪÁËϵͳÅäÖùÜÀí¹¤¾ßÖеıê¸Ë¡£
CFEngineÓÐÁ½ÖÖ¹¤×÷ģʽ£º¼È¿ÉÒÔʹÓÃstandaloneģʽ¼´Í¨¹ýcfagent
À´Íê³Éµ¥Ì¨·þÎñÆ÷µÄÅäÖùÜÀí¹¤×÷£¬Ò²¿ÉÒÔͨ¹ýCS¼Ü¹¹(cfservdºÍ
cfagent)À´¹ÜÀíÕû¸ö¼¯ÈºµÄÅäÖùÜÀíµÄ·Ö·¢¹¤×÷¡£
CFEngineµÄ¹¤×÷·½Ê½ÊÇ»ùÓڽű¾·Ö·¢£ºÔÚÅäÖÃÎļþÖÐÓÐÒ»¸ö²ÎÊý³ÆÎª
shellcommands£¬ÓÃÓÚÅäÖÃÒªÖ´ÐеÄÃüÁî»ò½Å±¾£¬actionsequenceÔòÓÃ
ÓÚÉèÖÃshellcommandsµÄÖ´ÐÐ˳Ðò¡£
ÔÙÀ´¿´¿´CFEngineµÄ°æ±¾¸üУº1993Ä꣬CFEngine1·¢²¼£»1998Ä꣬CFEngine2·¢²¼£¬¶øÊ®Äêºó£¬Ö±µ½2008Ä꣬CFEngine3æ©æ©À´³Ù£¬µÚÈý
°æ·¢ÉúÁ˾޴ó¸Ä±ä£¬¿ÉÒÔͨ¹ýʹÓÃDSLÀ´¶¨Òåϵͳ״̬£¬ÒÔÖÁÓÚÆä²»
ÄÜÔÙ¼æÈݾɰ汾CFEngine2µÄÅäÖÃÓïÑÔ¡£±¾ÎÄ̸µ½CFEnigneʱ£¬ÊÇÖ¸
CFEngine2¡£
ISconf¼ò½éISconfÔòÊÇÁíÍâÒ»¿îÅäÖùÜÀí¹¤¾ß£¬ËüµÄºËÐÄÀíÄîÊÇϵͳµÄ×îÖÕ״̬
ÊÇÒ»Öµģ¬¼´Ê¹±»¹ÜÀíµÄ»úÆ÷Êǹػú״̬£¬µ±ËüÃÇÍê³ÉÆô¶¯Ö®ºó£¬Ïà
¹ØÃüÁî¾Í»á±»Ö´ÐУ¬µ½´ïÒ»ÖµÄ״̬¡£Í¬Ê±Õû¸öϵͳÎÞÐèÖÐÐĽڵ㣬ÃüÁî¿ÉÒÔÔÚÈκÎһ̨½ÚµãÉÏÖ´Ðв¢¸´ÖƵ½ËùÓнڵãÉÏ¡£ISconf×ܹ²¾
ÀúÁË4´úµÄÑÝ»¯¡£ISconf1ºÍ2ÊÇÓÉshell½Å±¾±àд£¬LukeÔÚ2002ÄêµÄʱºò
¿ª·¢ºÍÉè¼ÆÁËISconf3£¬²¢Ê¹ÓÃPerlÔÚ2µÄ»ù´¡ÉϽøÐÐÁËÖØÐ´¡£ISconf3
ÓÐÈý¸öºËÐÄÌØÐÔ£º
È·¶¨ÐÔµÄÖ´ÐÐ˳Ðò
Ö´ÐÐÖÐÓÐʧ°ÜʱÁ¢¼´Í˳ö
״̬ά»¤
´ÓÉÏÃæµÄÌØÐÔÀ´¿´£¬ÊÇÒ»¸öͦ¿áµÄ²úÆ·¡£LukeÔÚ02ÄêµÄʱºòÍê³ÉÁË¿ª
·¢£¬²¢ÔÚ03ÄêµÄLISA(Large Installation Systems Administration)»áÒé
ÉÏ·¢±íһƪÃûΪ'ISconf: Theory, Practice, and Beyond'µÄpaper£¬Ì¸µ½ÁË
ISconfµÄÌØÐÔ£¬¿ª·¢ISconfÖлñµÃµÄ¾ÑéºÍ½Ìѵ£¬ÒÔ¼°ºÍCFengineµÄ
¼¯³É£¬·ÖÎöISconf 3µÄÊÊÓó¡¾°µÈµÈ¡£²»¹ýISconfÉçÇøÔÚ½éÉÜISconf3
µÄÀúʷʱ¶ÔLukeµÄÂÛÎÄÆÄÓÐ΢´Ê£¬Äã¿ÉÒÔÔÚISconfµÄ¹ÙÍø¶Áµ½ÕâÆªÎÄ
Õ¡£²»¹ý£¬ISconfÖ¹²½ÓÚµÚËİ棬×îºóµÄ°æ±¾·¢²¼Ê±¼äÍ£ÁôÔÚ06Äê8ÔÂ
13ÈÕ£¬ÔÒòδ֪¡£
×ÔÔìÂÖ×Ó
Ëæ×ÅLukeµÄÃÎÏëÔ½À´Ô½´ó£¬ÕâЩ¹¤¾ß¼¯Ò²±äµÃÔ½À´Ô½ÅÓ´ó¡£¶ø´Ëʱ¶ÔÕâ
ЩÏÖÓеĿªÔ´¹¤¾ßµÄÐÞÐÞ²¹²¹ÒѾ²»ÄÜÂú×ãËûµÄÐèÇóÁË¡£×îÖÕ£¬ËûÒâʶ
µ½Ö»ÓÐËû×Ô¼º£¬²ÅÄÜÈ¥´´Ôì×Ô¼ºÏëÒªµÄ¹¤¾ß¡£×÷Ϊһ¸ö¶àÄêµÄÔËάÈË
Ô±£¬ËûÉîÉî¸ÐÊܵ½ÁË¿à±ÆµÄϵͳ¹ÜÀíÔ±ÃÇÐèÒªÓÐÒ»¸öÕ¸ÐµĹ¤¾ßÀ´Ê¹µÃ
ËûÃǵŤ×÷¸ü¸ßЧ£¬¸ü±ã½Ý¡£Òò´Ë£¬Ëû¿ªÊ¼¿¼ÂÇÈ¥¿ª·¢Ò»¸öй¤¾ß£¬Ê×
ÏÈÕâ¸ö¹¤¾ßÊÇΪϵͳ¹ÜÀíÔ±¶øÉè¼ÆµÄ¡£ÄÇôÔõô²ÅÄܳÆÎªµÃÉÏÊÇΪϵͳ
¹ÜÀíÔ±Éè¼ÆµÄÄØ£¿
ÏÈÀ´¼òµ¥Ë¼¿¼Ò»ÏÂϵͳ¹ÜÀíÔ±¶ÔÓÚÅäÖùÜÀí¹¤¾ßµÄÖ÷ÒªÐèÇó£ºÑ§Ï°³É±¾
µÍ£¬¿ª·¢¸ßЧ£¬¿çƽ̨£¬´úÂë¿É¸´Ó㬰²È«£¬¿ÉÀ©Õ¹ÐԸߵȵȡ£
×îºÃµÄÇé¿ö¾ÍÊÇϵͳ¹ÜÀíÔ±Ö»Ðè¹ØÐÄij¸ö·þÎñ»òÕßÈí¼þ°üµÄ״̬£¬ÀýÈç
ÎÒÏ£Íû²¿ÊðÒ»¸öApache Web·þÎñÆ÷£¬ÎÒÖ»¹ØÐÄApacheµÄ°üÊÇÒѰ²×°µÄ
״̬£¬·þÎñÊÇÔËÐеÄ״̬£¬¶ø²»ÒªÈÃÎÒÈ¥²ÙÐÄÕâ¸öApache°üÊÇ×°ÔÚUbuntuÏµĻ¹ÊÇRedhatÏ£¬È»ºóµ½µ×ÊÇÒªÖ´ÐÐyum install»¹ÊÇapt-get
install£¬È»ºó»¹Òª²ÙÐÄÕâ¸öapache½ø³Ìµ½µ×ÊÇÓÃinit»¹ÊÇupstart¹ÜÀíµÄ¡£
´ËÍ⣬»¹ÓÐÈçºÎ¶ÔÒÀÀµ¹ØÏµ½øÐд¦Àí¡£ÏÈǰµÄÅäÖùÜÀí¹¤¾ß¶¼ÊǹØ×¢ÔÚ
ÈçºÎÈ¥Íê³ÉÿһÏÏà¶ÀÁ¢µÄ¹¤×÷£¬ÀýÈçÅäÖÃApache·þÎñ¾ÍÊÇÒ»¶Îshell
½Å±¾¶øÒÑ£¬¶øÃ»ÓÐÈ¥¿¼ÂÇËüÃÇÖ®¼äÊÇ´æÔÚ¹ØÁªµÄ£¬ÀýÈçµ±ApacheµÄÅäÖÃ
Îļþ·¢Éú±ä¸üʱ£¬ÊÇÓ¦¸ÃÖØÆôApache·þÎñÀ´Ê¹Ö®ÉúЧ£¬¶øÖØÆôApache·þ
ÎñµÄǰÌáÊÇϵͳÒѾ°²×°ÁËApache¡£
Õâ¶ÔÓÚµ±Ê±Õ¼¾ÝÖ÷Á÷µÄÒÔ·Ö·¢shellperl½Å±¾µÄÅäÖùÜÀíÈí¼þÀ´Ëµ£¬¼òÖ±
ÊÇÌ췽ҹ̷¡£²»¹ýLuke¾ÍÊÇÕâôÉèÏëµÄ£¬ËûÔÚ¹¹Ë¼PuppetµÄÉè¼ÆÊ±£¬¾Í
Ï£Íû½«ÏµÍ³³éÏó³É×ÊÔ´£º²ÉÓÃÃæÏò¶ÔÏóµÄ¸ÅÄ½«Ã¿¸ö×ÊÔ´ÀàÐÍ×é³ÉΪ
Ò»×éÊôÐԵļ¯ºÏ£¬Ã¿¸öÊôÐÔ¶¼ÓÐÏàÓ¦µÄÐÐΪ£¬²¢½«×ÊÔ´ÀàÐͺÍÊôÐÔ¹¹Ôì
³ÉÀ࣬×îÖÕʹÓÃÕâЩÊôÐÔÀ´Ê¹µÃ×ÊÔ´µ½´ïÆÚÍûµÄ״̬£¬¶ø²»ÊÇÓÃ×ÊÔ´±¾
ÉíÀ´Íê³ÉÕâЩ¹¤×÷¡£Í¬Ê±£¬½«ËùÓÐ×ÊÔ´µÄÒÀÀµ¹ØÏµ¹¹½¨³ÉÒ»ÕÅÓÐÏòͼ£¬Í¨¹ýÕâÖÖÒÀÀµÃèÊö£¬ÏµÍ³¹ÜÀíÔ±ÃÇ¿ÉÒÔʵÏÖ¸´ÔÓµÄÒµÎñÂß¼µÄ¹ÜÀí¡£
Ô½ÏëÔ½ÐË·Ü£¬ÓÚÊÇLuke¿ªÊ¼¶¯ÊÖcodingÁË¡£PuppetµÄµÚÒ»¸öÔÐÍдÓÚ04
ÄêÏÄÌ죬µ«Ëû²¢Ã»ÓаѴËÊ·ÅÔÚ×îÖØÒªµÄλÖÃÉÏ¡£ÓÚÊÇÔÚ9Ô·ݵÄʱ
ºò£¬Luke¾ÓÈ»ÅÜÈ¥ÁËBladeLogicµ£ÈβúÆ·Éè¼Æ£¬ÕâÊÇÒ»¼ÒרÃÅ×öÉÌÒµÅä
ÖùÜÀíÈí¼þµÄ¹«Ë¾£¬ËüµÄ²úÆ·ÔÚµ±Ê±ÒѾȡµÃÁ˳ɹ¦£¬È»¶øLuke·¢ÏÖ
BladeLogicµÄƷζ½ö½öÊÇÏëÂôÈí¼þ¸ø´ó¹«Ë¾¶ø²»ÊÇÁ¢Ö¾ÎªÏµÍ³¹ÜÀíÔ±Éè
¼ÆÎ°´óµÄ¹¤¾ß¡£ÔÚ05ÄêµÄ2Ô·ݣ¬LukeϾöÐļÌÐø¸ãPuppetµÄ¿ª·¢¹¤
×÷¡£ÓÚÊÇ£¬ÔÚBladeLogic´ô¹»ÁË7¸öÔºó£¬LukeÑ¡ÔñÁËÀ뿪¡£BladeLogic
Ò²ÖÕÓÚÈçÔ¸ÒÔ³¥£º±»BMCÊÕ¹ºÁË£¬µ±È»ÕâÊǺ󻰡£
¼èÄѾñÔñ:¿ª·¢ÓïÑÔºÍÉè¼ÆÕÜѧ
ËæºóLuke»Øµ½ÁËReductive Consulting£¬Ò²¾ÍÊÇPuppetLabs µÄǰÉí£¬¿ªÊ¼
ÁËPuppetµÄȫְ¿ª·¢¡£²»¹ýËûÓöµ½ÁËÒ»¸ö¼¬Êֵļ¼ÊõÎÊÌ⣺ÉíΪһ¸öPerl³ÌÐòÔ±£¬LukeÍ´¿àµØ
·¢ÏÖ£¬Perl¾ÓÈ»ÎÞ·¨´¦ÀíÄÇЩPuppetÀàÖ®¼äµÄ¹ØÏµ¡£ÄÇʱPython±»ÈÏΪ
ÊÇϵͳ¿ª·¢µÄ×î¼ÑÑ¡Ôñ£¬µ«ÊÇLukeͬѧ½ÓÊܲ»Á˵IJ»ÊÇPythonµÄËõ½øÎÊ
Ì⣬¶øÊÇprintÊÇÒ»¸öÓï¾ä¶ø²»ÊǺ¯Êý£¬lenÊÇÒ»¸öº¯Êý¶ø²»ÊÇ·½·¨µÄÊÂ
ʵ£¬ÈÃËû¸Ð¾õ¡°ÑÛ¾¦ÔÚÁ÷Ѫ¡±¡£Õâʱºò£¬ÓиöÅóÓѸæËßËûRubyºÜ¿á£¬ÓÚÊÇ
ËûÔÚ³¢ÊÔÁË4¸öСʱºó£¬¾Íд³öÁËÒ»¸ö¹¦ÄÜÔÐÍ£¬´Ó´Ë²»¿É×԰Ρ£²»¹ý
ËûÒ²Óе㵣ÐÄ£¬ÒòΪÔÚµ±Ê±Ruby»¹ÊôÓÚ·ÇÖ÷Á÷£¬ÒòΪROR(Rails on
Ruby)¶¼»¹Ã»ÓгöÉú£¬²»¹ý¼øÓÚËûµÄÌåÑ飬¾õµÃʹÓÃRubyµÄ¿ª·¢Ð§ÂÊ
·Ç³£¸ß£¬Òò´ËËû¾ö¶¨Ã°Ò»´ÎÏÕ¡£
ÔÚÕâ¸öÎÊÌâ½â¾öÖ®ºó£¬LukeÓÖÃæÁÙÁíÍâÒ»¸öÄÑÌ⣺ËäÈ»ÔÚ´Ë֮ǰËûÒѾ
дÁ˲»ÉÙµÄС¹¤¾ß£¬»ýÔÜÁ˷ḻµÄ¾Ñ飬²»¹ýÕâЩ¹¤¾ßûÓÐÒ»¸öµÄ´úÂë
Á¿Êdz¬¹ý1ÍòÐеġ£ÕâÒ²Òâζ×ÅÔÚÉè¼ÆPuppetµÄ¼Ü¹¹µÄ¹ý³ÌÖУ¬¿Ï¶¨µÃ
ˤ²»ÉٵĿӡ£Òò´Ë£¬LukeÔÚ¿ª·¢PuppetµÄ¹ý³ÌÖÐʼÖÕÒªÇó×Ô¼ººÍ¿ª·¢ÍÅ
¶Ó×ñÊØÁ½¸öÖ¸µ¼Ë¼Ï룺Ê×ÏÈÉè¼Æ¾¡¿ÉÄܵØ×öµ½¼ò½à£¬³ÌÐòµÄ¿ÉÓÃÐÔ×ÜÊÇ
¸ßÓÚÐÂÌØÐÔ£»´ËÍâPuppetÊ×ÏÈÊǸö¿ò¼ÜÆä´Î²ÅÊÇÒ»¸öÓ¦Óá£ÔÚ½â¾öÁËÓï
ÑÔÑ¡ÐͺÍÉè¼ÆÕÜѧµÄÎÊÌâºó£¬Luke¿ªÊ¼Ç±ÐÄÓÚPuppetµÄ¿ª·¢¡£
È»ºóÄØ
È»ºó¾ÍûÓÐÈ»ºóÁË£¬Ëæ×ÅPuppetµÄ·¢²¼ºÍ°æ±¾µÄ¿ìËÙµü´ú£¬ÒÔ¼°ÉçÇøµÄ
»ðÈÈ·¢Õ¹£¬Puppet×ÔÈ»¶øÈ»µØ¾Í·¢Õ¹³ÉÁ˽ñÌìµÄÄ£Ñù¡£±¾À´ÊÇÒª¿ªÊ¼ÉîÈë¼¼Êõϸ½ÚÕ¹¿ª½éÉÜ£¬µ«ÊÇÓ¦¹ã´óȺÖÚÒªÇó±£³Ö´¿°ËØÔ·ç¸ñµÄºôÉù£¬ÏÂ
°ë²¿·ÖÔÚÄÚ²¿ÉóÅúʱ±»²ÒÎÞÈ˵ÀµØ¿³µô¡£¶ÔÓÚPuppetºÍLukeµÄ½éÉܵ½´Ë
¸æÒ»¶ÎÂ䣬ÔÛÃÇÔÙÀ´°ËÒ»ÏÂȺÖÚÃÇϲÎÅÀÖ¼ûµÄÈȵãʼþ¡£
Ͷ×Ê·çÔÆ
ÊÂÇéÔ´ÓÚÁ½Äêǰ£¬VMWare×÷ΪPuppetLabsµÄ6¼ÒͶ×ʹ«Ë¾Ö®Ò»£¬Ïò
PuppetlabsͶÁË850ÍòÃÀµ¶¡£ÔÚ½ñÄêµÄ2Ô·ݣ¬VMWareÐû²¼Ìá¸ß¶Ô
PuppetLabsµÄͶ×Ê£º3000Íò¡£´ËÍ⣬VMware¸ºÔðÔÆ¼Ü¹¹ºÍ¹ÜÀíµÄÖ´ÐÐ
¸±×ܲÃRaghu Raghuram½«½øÈëPuppet Labs¶Ê»ᡣ
Õâ´Ó×ʱ¾Êг¡µÄ½Ç¶È˵Ã÷ÁËLukeºÍPuppetµÄ³É¹¦£¬½ÐºÃÓÖ½Ð×ù¡£µ«ÊÇÒ²
Òý·¢ÁËÈËÃǵĵ£ÓÇ£ºÒ»Ð©ÈËÈÏΪPuppetµÄ¶ÀÁ¢ÐÔÊǷdz£ÖØÒªµÄ£¬ÀíÓÉÊÇ
DevOpsµÄ³É¹¦·Ç³£ÒÀÀµÓÚÕâ¸ö×é֯ѡÔñʲôÑùµÄ¹¤¾ßÓÃÓÚÆóÒµ»ù´¡Éè
Ê©¹ÜÀí£¬PuppetLabs×÷ΪIT×Ô¶¯»¯¹ÜÀíÁìÓòÀïµÄÁìÍ·Ñò£¬È»¶øVMware
¶ÔPuppet´æÔÚÇ¿´óµÄ»°ÓïȨ£¬Ä¿Ç°PuppetLabs»¨Á˺ܴóµÄ¾«Á¦ÔÚPuppet
ÆóÒµ°æ±¾µÄ¿ª·¢ÉÏ(Puppet PE)£¬ÓÃÓÚºÍVMWare vCloud Automation
CenterµÈ²úÆ·µÄ¼¯³É¡£Õâ²¢²»ÊÇÒ»¼þºÃÊ£¬¿ÉÄÜ»áʹµÃÉçÇø°æ±¾ºÍÉÌÒµ
°æ±¾²úÉú¾Þ´óµÄ²î¾à£¬ÉõÖÁ¿ÉÄܻᷢÉúOracleºÍMySQLÄÇÑùµÄ¹ÊÊ¡£
ÔÙ¿´¿´VMWareµÄÀ϶ÔÊÖAmazonµÄ·´Ó¦£¬¼´Ê¹AmazonÔÚ¿ªÍ·Ìá¼°µÄÎÄ
µµÀï³ÐÈÏPuppetÊÇÊÂʵÉϵÄÐÐÒµ±ê×¼£¬µ«¿¼Âǵ½ËüµÄÀÏÅóÓÑVMWareÊÖ
ÎÕ¶ÔPuppetlabs 23µÄͶ×Ê£¬ÔÚÆäÐÂÍÆ³öµÄOpsWork·þÎñÖÐÇåһɫµØÊ¹ÓÃ
ÁËChefÓÃÓÚϵͳµÄÅäÖùÜÀí£¬ÕâÊǵ®ÉúÓÚPuppetÖ®ºóµÄÁíÍâÒ»¿î¿ªÔ´µÄ
ÅäÖùÜÀí¹¤¾ß¡£
ÔÙÀ´ÌýÌýÆäËûÈ˵ÄÉùÒô¡£Matt AsayÓëLukeÊǶàÄêµÄºÃÓÑ£¬ÔÚLukesÓë
Andrew Shafer´´Á¢Puppet Labsºó£¬Matt Ôø¾Ìá³öÁËÐí¶àÉÌÒµ»¯½¨Ò飬°ü
À¨½øÐÐÈÚ×Ê£¬µ«Luke¸üÏ£Íû¹«Ë¾±£³Ö¶ÀÁ¢¡£Mattµ¶¨µØ»Ø´ð¼ÇÕߣºÈç¹û
ÄãÁ˽âLuke KaniesÕâ¸ö¼Ò»ï£¬Äã¾ÍÖªµÀ±£³Ö¶ÀÁ¢¶ÔÓÚËû¶øÑÔÊÇÎÞ±ÈÖØÒª
µÄÊ¡£ËûÔÚÌïÄÉÎ÷Öݳ¤´ó£¬²»ÊÇÄÇÖÖ³öÂôÁé»êµÄÈË¡£LukeÔÚIMÉϺÍMatt±í´ïÁË×Ô¼ºµÄ¿´·¨£º¡°ÏòÔÆ¶Ëת»»µÄÇ÷ÊÆ½«¸øÏÂÒ»´ú
ϵͳƽ̨¹ÜÀí¹¤¾ß´øÀ´ÎÞÏ޵Ļú»á£¬¶ÔVMwareÈç´Ë£¬¶ÔPuppetLabsÒà
ÊÇÈç´Ë¡£¼´±ãPuppetLabs±»VMwareÕÆ¿Ø£¬µ«ÕâЩϵͳÈÔ¹¹½¨ÔÚ¿ªÔ´µÄ
»ù´¡ÉÏ£¬²¢¸³ÓèËüÃÇÒ»¶¨µÄ×ÔÖÎȨ¡£PuppetÓµÓлîÔ¾µÄ¿ªÔ´Éú̬Ȧ£¬¾Í
ÏñOpenStackÒ»Ñù£¬ÊǶÔͶ×ʺܺõIJ¹³ä¡£¡±
×îºó̸̸ÎҵĿ´·¨£¬Ê×ÏÈPuppetÌìÉú¾ÍÊÇ¿ªÔ´ÑªÍ³£¬ÆäÉçÇø·Ç³£»îÔ¾£¬¶øÇÒ´Ó2.7¿ªÊ¼±äΪ¸üΪÓѺõÄApacheÐí¿ÉÖ¤(֮ǰÊÇÑϸñµÄGPL)¡£Òò
´Ë£¬¼´Ê¹·¢ÉúÏñMySQLÄÇÑùµÄÊÂÇ飬ÕÕÑù»áÓÐÁíÒ»¼ÒMariaDB³öÏÖ£¬¸ü
ºÎ¿ö»¹ÓкóÆðÖ®ÐãChefÔÚÒ»ÅÔ»¢ÊÓíñíñ£¬VMWareÀíÓ¦²»»áÏÂÕâ²½»è
Æå¡£Í¬Ê±£¬¶ÔÓÚÖ¸ÔðPuppetÖ»¹Ø×¢ÓÚÓëVMware²úÆ·µÄ¼¯³ÉÊÇÓÐʧƫÆÄ
µÄ£¬ËäÈ»×î½üPEµÄ¶¯¾²ºÜ´ó£¬µ«ÊÇPuppetLabsÒ²»¨·ÑÁ˺ܴóµÄ¾«Á¦Í¶Èë
µ½Puppet-OpenstackÉçÇøÖУ¬ÔÚÖ®ºóµÄPuppetϵÁв©ÎÄÖлá¶Ô´Ë½øÐвû
Êö¡£ËùÒÔ£¬ÎÒ²¢²»µ£ÐÄPuppetÊÇ·ñ»á³ÉΪÏÂÒ»¸öMySQL¡£ÎÒÃÇѧµ½ÁËʲô£¿
ÔÚÇ°ÃæÑóÑóÈ÷È÷µÄÒ»¶Ñ°ËØÔÖУ¬ÎÒ¼òµ¥µØÌ¸ÁËһЩ¹ØÓÚLukeºÍPuppetµÄ
¹ÊÊ¡£Ã¿¸öÈË¿ÉÄܶ¼»á´ÓÖп´µ½²»Í¬µÄ¶«Î÷¡£¶ÔÎÒ¶øÑÔ£¬PuppetÖ®ËùÒÔ
ÄÜÈ¡µÃ³É¹¦£¬ÎÒÈÏΪÓУº
×ö×Ô¼º×îÉó¤µÄÊ£ºLukeÓµÓзḻµÄÔËά¾ÑéºÍÅäÖùÜÀí¹¤¾ßµÄ¿ª·¢¾
Ñ飬ÔÚ´Ë»ù´¡ÉÏÈ¥¿ª·¢PuppetÊÇ»ñµÃ³É¹¦µÄ»ù´¡Ö®Ò»£»
È¡Æä¾«»ª£ºÔÚµ÷ÑÐͬÀ๤¾ßºÍ²úƷʱ£¬Luke²»Ö»¿´µ½ÁËÆäÖеIJ»×㣬»¹
ÎüÊÕÁËËüÃǵÄÓŵ㣻
Ö¾´æ¸ßÔ¶£ºLuke¿ª·¢PuppetʱºòµÄ¶¯»úÊÇΪϵͳ¹ÜÀíÔ±Ìṩ×î°ôµÄCMS
¹¤¾ß£¬¶ø²»½öΪÁËÕõÇ®£¬±»ÊÕ¹º£¬ÉÏÊС£¶¯»úÔ½µ¥´¿£¬³É¹¦µÄ¸ÅÂÊÔ½
´ó£»¸ÒÏë¸Ò×ö£ºÏÖÔÚÈ¥ÌôÑ¡ÊÖ»ú£¬ÎÒÃǼ¸ºõ²»»áÈ¥¿¼ÂÇÊÖ»úÊDz»ÊÇ´¥Ãþ
ÆÁµÄ¶øÊÇÈ¥¿´ÆÁÄ»Óжà´ó£¬PPI¶à¸ß£¬ÒòΪÊÖ»úÊÇ´¥ÃþÆÁÕâÊÇÀíËùµ±È»
µÄ£¬È»¶øÔÚiPhone֮ǰ£¬´¥ÃþÆÁÊÖ»ú»¹ÊǺÜÏ¡ÓеĶ«Î÷£¬´ó¼Ò¶¼ÔÚÍù¹¦
Äܸü¶àµÄ·½ÏòÔ½×ßÔ½Ô¶£»Í¬Ñù£¬ÏÖÔÚÔÚʹÓÃPuppetʱ£¬»á¾õµÃʹÓÃÉùÃ÷
ʽÅäÖÃÓïÑÔÊÇÀíËùµ±È»µÄÊÂÇ飬Êâ²»ÖªÔÚPuppetµ®ÉúµÄͬʱ´úÖУ¬¶¼ÊÇ
ÇåһɫµÄÃüÁîʽ»òÕß¹ý³ÌʽµÄÅäÖÃÓïÑÔ¡£
ÃâÔðÉùÃ÷
±¾ÎĵÄËùÓÐÇé½ÚÀ´×Ô±¾ÈË»¨·ÑÒ»ÖܵÄÒ¹Éú»îʱ¼ä£¬ÔĶÁÁ˸÷ʽ¸÷ÑùµÄ²©
¿Í£¬ÐÂÎÅ£¬ÆÀÂÛ£¬´úÂ룬Ããǿƴ´Õ¶ø³É£¬ÈôÓÐÓëʵ¼Ê²»·ûÖ®´¦£¬ÇëһЦ
¶ø¹ý¡£³ö°æµÄδÀ´µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì
×÷Õß ¶ÃçÃç
ͼÁé²ß»®±à¼¡£¹Ø×¢ITÈËÎÄ¡¢Ç°¶Ë¼¼Êõ¡£¹Ø×¢Êý×Ö³ö°æºÍÐÂýÌ塣ϣ
Íû×Ô¼ºÄܹ»³ÖÐø»ýÀÛºÍÌá¸ß¡£
¹úÄÚ»·¾³Ïµĵç×ÓÊéºÍÖ½ÖÊÊé¹ØÏµµÄÕùÂÛºÍ̽ÌÖÒѾ³ÖÐøºÜ¾ÃÁË£¬×÷Ϊ
³ö°æÐÐÒµ¸ÕÈëÃÅËÄÄêµÄС×Ö±²£¬ÎÒ²»¸ÒÔì´Î£¬²»¹ý»¹ÊǺÜÏë̸̸×Ô¼ºµÄ
Ïë·¨¡£
ÎÒ°ÑÔĶÁÐÔͼÊé´óÖµض¨ÒåΪÇáÔĶÁºÍÖØÔĶÁÁ½ÀࡣС˵¡¢ÔÓÖ¾¡¢Âþ»
µÈÊÇÇáÔĶÁ£¬½Ì²Ä¡¢¿Æ¼¼Ê顢רҵÊéµÈÎªÖØÔĶÁ¡£ÓÉÓÚ´«Í³Ï°¹ß£¬ÖØÔÄ
¶Á¿ÉÄÜ»¹ÊÇ±È½ÏÆ«ÏòÖ½ÖÊÊ飬ÓÈÆäÊǺܶàÈËϲ»¶ÔÚÊéÉÏдд»»£¬µ«ÊÇ
ÓÉÓÚÒÆ¶¯ÖÇÄÜÖÕ¶ËµÄÆÕ¼°£¬ÇáÔĶÁµÄµç×ÓÊéµÄ·¢Õ¹²»¿ÉСêï¡£
ÎÒÉí±ßÓÐǰ±²Ëµ£¬Ö½ÖÊÊéÍêÁË£¬µç×ÓÊé»áÍêÈ«Ìæ´úÖ½ÖÊÊé!ÎÒÍêȫͬÒâÕâ¸ö¹Ûµã¡£²»¹ýÔÚÕâÖ®ºóµÄ¼¸ÄêÖУ¬ÔÚÖйú£¬¿ÖÅÂÊDz»»áʵÏֵġ£³ý·Ç
¡ª¡ª
µç×ÓÊéÏúÁ¿Ïë¹²Ó®£¿¸÷ÖÖÔĶÁÈí¼þÖ®¼äÄܹ»ÊµÏÖÔĶÁ¼æÈݲÅ
ºÃ
ÎÒÒÔǰÊǼᶨµÄÖ½ÖÊÊéÓµ»¤Õߣ¬2013Äê³õÎÒ×Ô¼ºÒ²×ªÍ¶µç×ÓÊéÕóÓª£¬Ô
ÒòºÜ¼òµ¥£¬Èû°à¡±ËÀ¡±ÁË£¬ÎÒ»»ÁËһ̨½«½ü5´çµÄ°²×¿ÖÇÄÜÊÖ»ú£¬´Ó´ËÎÒ
ÕæÇеظÐÊܵ½Á˵ç×ÓÊéµÄÓÅÊÆ£¬¿ªÊ¼×ßÉÏѰÃÙ¡°×î¼Ñ¡±ÔĶÁÌåÑéµÄµÀ·¡£
¿ÉÊÇÄÄÀïÓÐ×î¼Ñѽ£¬¸÷Óи÷µÄÓÅÊÆ£¬¿ÉÓû§(±ÈÈçÎÒ)ÊÇÄÇôµØÌôÌÞ£¬ÄÇôµØ½ÏÕæ£¬ÉõÖÁÊÇÄÇôµØ²»½²µÀÀí£¬¾ÍÏëÕÒ¸ö×îºÃµÄÔĶÁÈí¼þ£¬Ôõô
°ì£¿ÈòúÆ·¾ÀíȥץͷƤ°É!
ÏÖÔÚÓÐÄÇô¶àµçÉ̺ÍÊý²»ÇåµÄ¸÷ÖÖÔĶÁÓ¦Óã¬È´²»ÍêÈ«¼æÈÝ£¿!
(ÕâÀïÔÝÇÒ²»Ìá¡°Ãâ·Ñµç×ÓÊ顱)
Ã÷Ã÷ϲ»¶Õâ¼Òµç×ÓÊéÉ̵ÄÅŰæ·ç¸ñ£¬È´Ã»ÓÐ×Ô¼ºÏ²»¶µÄÊ飿
Ϊʲôͬһ±¾Êéÿ¼ÒµÄ¼Û¸ñ²îÄÇô¶à£¿
Ϊʲô¸ÕÂòÍê¾Í½µ¼ÛÁË£¬ÍæÄÅ£¿
ÔÚÒ»¼ÒÂòµÄµç×ÓÊ飬Ã÷Ã÷ÊÇÕý°æ£¬¿É±ðµÄÔĶÁÈí¼þ¾ÍÊÇÓò»ÁË£¬ÓÐ
µÄ¼Û¸ñ»¹¡°²»·Æ¡±£¬ÕæÕæ²»ÈçÖ±½Ó³Ã´òÕÛµÄʱºòÂòÖ½ÖÊÊéµÄºÃ!
¸÷¼Ò¶¼Ïë±£»¤×Ô¼ºÔĶÁÈí¼þµÄÓû§Ê¹ÓÃÕ¼ÓÐÁ¿£¬±£Ö¤×Ô¼ºµÄÊг¡ÓªÏúÕ¼
ÓÐÁ¿¡£¿ÉÓû§ÕæµÄ²»ÊÇÀ¹½ØµÃסµÄ£¬µç×ÓÊéÉ̲»ÊÇÒª±äÉíÍǽÌú±Ú£¬¶ø
ÇÒÒª±ä³ÉÒ»ÕÅð¤ºýºýµÄÍø£¬¾ßÓÐÓÅÖʵÄÓû§ÌåÑé²ÅÊǵõ½ÁËÕæÕýµÄÌú·¹
Íë¡£
ÒªÖªµÀ¡ª¡ª
Óû§¶¼ÊÇÍç¹ÌÅÉ£¬Ï²»¶Ò»¸ö£¬Ï°¹ßÒ»¸ö£¬¾Í²»Ïë»»ÔĶÁÈí¼þÁË¡£
Óû§¶¼ÊÇÀÁºº£¬¾ÍÏ£ÍûÂòÒ»´ÎÕý°æµç×ÓÊ飬»»Ë¼ÒµÄä¯ÀÀÆ÷¶¼ÄÜ
¿´£¬²»ÐèҪת»»À´×ª»»È¥¡£
Óû§¶¼ÊÇ̰ÐÄ¹í£¬¾¡¹ÜÒ»´ÎÒ²ÐíÖ»»áÂòÒ»±¾Ê飬µ«ÊÇÒªÇó¡°É̳ǡ±Àï
ÌṩµÄµç×ÓÊéÖÖÀà¿°±ÈͼÊé¹Ý¡£
Óû§¶¼ÊÇ̰С±ãÒ˵ÄÈË£¬Í¬ÑùµÄÊ飬²î²»¶àµÄÅŰ棬±ØÈ»Ñ¡Ôñ×î±ã
Ò˵ġ£°®ÊéµÄÈËÂòÊé²»»á¿ÙÃÅ£¬µ«ÊÇʡϵÄÇ®¶àÂò¼¸±¾£¬Õâ²ÅÊÇÕý
µÀ¡£
Óû§¶¼²»ÊÇɵÈË£¬Ã¿¼Ò¼Û¸ñ¶¨µÃÌì²îµØ±ð£¬ÓеϹ¶¯éü¼õ¼Û£¬ÄÇÎÒ˼ҵͼ²»Âò£¬¡°ÎÒµÈ×Å!¡±
Èç´Ë£¬ÎÒ¸ø×öÈí¼þ¿ª·¢µÄÅóÓѳö¸öÖ÷Ò⣺×öÒ»¸öͼÊé±È¼ÛÈí¼þ¡£¹¦Äܰü
À¨£º
1. ËÑË÷ÊéÃû£¬Á¢¼´³öÏÖ¼¸¼Òµç×ÓÊéÉ̵ļ۸ñ¶Ô±È(Ò²¿ÉÒÔ½øÐÐÖ½ÖÊÊé
¼Û¸ñ¶Ô±È£¬Ö½ÖÊÊé¡¢µç×ÓÊé¼Û¸ñ¶Ô±È)¡£
2. ÏÔʾºÍ¸ÃÊéÓйصÄÓªÏú»î¶¯¡£Óû§¿ÉÒÔÖ±½ÓÕÒµ½×î»®ËãµÄ;¾¶¹ºÂò
µç×ÓÊé¡£ÏàÐźܶàÓû§¾ÍÊÇÕâô×öµÄ£¬²»¹ýǰÎÄ˵¹ýÁËÓû§¶¼ÊÇÀÁ
ºº£¬×ÔÈ»ÓÐÈË´úÀÍ£¬»òÕßÒ»ÀÍÓÀÒݲźá£
3. ÊéÆÀ¡¢´ò·Ö¡¢»¥¶¯¡¢Ïà¹ØÐÅÏ¢µÈÆäËûÀ©Õ¹¹¦ÄÜ¡£
Èç´ËÒ»À´£¬¼Û¸ñÖ»»áÇ÷ͬ£¬´ó´ò¼Û¸ñÕ½£¬È«ÊÇÊä¼Òѽ!ÄÇ´ó¼ÒÆ´µÄÊÇʲ
ô£¿Èç¹ûÕâ¸öÎÊÌâ»Ø´ð²»³öÀ´£¬°×°×³ÆÎª¡°µçÉÌ¡±ÁË¡£Æ´µÄÊÇÓû§ÌåÑé
ѽ!Îݸ±à¼¡¢ÃÀ±àÅŰ桢ÏßÉÏÏßÏ»¡¢×÷Õß¶ÁÕߵĻ¥¶¯¡£
ÓеÄÈËÎÊÁË£¬³¤´ËÒÔÍù£¬ÄDz»¾ÍÊÇÓÖÇ÷ͬÁËÂð£¿ÎÒ¾ÍÊÇÏëÔÚµ±½ñÉç»á¶À
Ê÷Ò»ÖÄ!ÄúÔÚ¿ªÍæÐ¦Â𣿵ØÇòÉÏÄĸöÐÐÒµ¡¢ÄĸöÉÌҵģʽÊǶÀÊ÷Ò»ÖÄ
µÄ£¿ÏëÒª³£¿ª³£ÑÞ£¬Æ´µÄ¾ÍÊÇÓÅÖʵÄÓû§ÌåÑ飬³ÖÐøµÄ·þÎñ£¬Ä;õÄÐÐ
Òµ×·ÖðÁ¦£¬ÒÔ¼°¾ö¶¨ÐԵĴ´ÐÂÄÜÁ¦ÁË¡£´´ÐÂÊǼӷÖÌ⣬¶¼Ïë¼Ó·Ö£¬¿ÉÏÈ
²»Òª¶ª·Ö²ÅÐС£
(δÍê)ÏÂÎÄÌáʾ£º
µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì(¶þ)
µç×ÓÊé¼Û¸ñÕ½ËðÈ˲»Àû¼º£¬¼Û»¹µÃÊdzö°æ·½¶¨
µç×ÓÊéʱ´ú¿ÉÒÔÀ´µÃ¸ü¿ì(Èý)
ÖØÔĶÁҲҪͶ¿¿µç×ÓÊ飿ÍêÃÀʵÏÖ¡°µç×ÓÊéͼÊé±Ê¼Ç¡±¹¦ÄܲÅÐÐÊé°ñ´ó¼Ò¶¼ÔÚ¶Áʲô£¿
ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü(µÚ2°æ)
×÷ÕߣºÇïÒ¶ÍØÔÕ ÑÒÌïÑôÒ» ±±´¨ÒËïþ
ÒëÕߣºÎ×Ôó¿¡ ×¯¿¡Ôª Àî½òÓð
ÊéºÅ£º978-7-115-32010-0
ͼÁéÉçÇøÍÆ¼ö£º
ÊÀ½ç¶¥¼¶³ÌÐòÉè¼Æ¸ßÊֵľÑé×ܽᣬACM-ICPCÈ«Çò×ܹھüÎ×Ôó¿¡Ö÷
Ò룬ÈÕ±¾ACM-ICPC²ÎÈüÕßÈËÊÖÒ»²á¡£
±¾Êé¶Ô³ÌÐòÉè¼Æ¾ºÈüÖеĻù´¡Ëã·¨ºÍ¾µäÎÊÌâ½øÐÐÁË»ã×Ü£¬·ÖΪ׼±¸
ƪ¡¢³õ¼¶Æª¡¢Öм¶ÆªÓë¸ß¼¶Æª4Õ¡£×÷Õß½áºÏ×Ô¼º·á¸»µÄ²ÎÈü¾Ñ飬¶Ô
ÑϸñɸѡµÄ110 ¶àµÀ¸÷ÀàÊÔÌâ½øÐÐÁËÓÉdzÈëÉî¡¢ÓÉÒ×¼°ÄѵÄϸÖ½²½â£¬²¢½éÉÜÁËÐí¶àʵÓü¼ÇÉ¡£Ã¿Õºó¸½ÓÐϰÌ⣬¹©¶ÁÕßÁ·Ï°£¬¹®¹ÌËùѧ¡£
»úÆ÷ѧϰʵս
×÷ÕߣºPeter Harrington
ÒëÕߣºÀîÈñ ÀîÅô ÇúÑǶ« Íõ±ó
ÊéºÅ£º978-7-115-31795-7
ͼÁéÉçÇøÍÆ¼ö£º
È«Êéͨ¹ý¾«ÐıàÅŵÄʵÀý£¬ÇÐÈëÈÕ³£¹¤×÷ÈÎÎñ£¬ÞðÆúѧÊõ»¯ÓïÑÔ£¬ÀûÓÃ
¸ßЧµÄ¿É¸´ÓÃPython´úÂëÀ´²ûÊÍÈçºÎ´¦Àíͳ¼ÆÊý¾Ý£¬½øÐÐÊý¾Ý·ÖÎö¼°¿É
ÊÓ»¯¡£Í¨¹ý¸÷ÖÖʵÀý£¬¶ÁÕ߿ɴÓÖÐѧ»á»úÆ÷ѧϰµÄºËÐÄËã·¨£¬²¢Äܽ«Æä
ÔËÓÃÓÚһЩ²ßÂÔÐÔÈÎÎñÖУ¬Èç·ÖÀà¡¢Ô¤²â¡¢ÍƼö¡£
ͼ½âTCPIP(µÚ5°æ)
×÷ÕߣºÖñÏ¡ʷ ´åɽ¹«±£ »Ä¾®Í¸ ÆiÌïÐÒÐÛ
ÒëÕߣºÎÚÄáÈÕÆäÆä¸ñ
ÊéºÅ£º978-7-115-31897-8
ͼÁéÉçÇøÍÆ¼ö£º
ÕâÊÇÒ»±¾Í¼ÎIJ¢Ã¯µÄÍøÂç¹ÜÀí¼¼ÊõÊé¼®£¬Ö¼ÔÚÈùã´ó¶ÁÕßÀí½âTCPIPµÄ
»ù±¾ÖªÊ¶¡¢ÕÆÎÕTCPIPµÄ»ù±¾¼¼ÄÜ¡£±¾ÊéÒýµ¼¶ÁÕßÁ˽âºÍÕÆÎÕTCPIP£¬ÓªÔìÒ»¸ö°²È«µÄ¡¢Ê¹Ó÷ÅÐĵÄÍøÂç»·¾³¡£
ÍÆ¼öϵͳ
×÷ÕߣºDietmar Jannach£¬ Markus Zanker£¬ Alexander Felfernig£¬ Gerhard
Friedrich
ÒëÕߣº½¯·²
ÊéºÅ£º978-7-115-31069-9
ͼÁéÉçÇøÍÆ¼ö£º
±¾ÊéÈ«Ãæ²ûÊöÁË¿ª·¢×îÐÂË®Æ½ÍÆ¼öϵͳµÄ·½·¨£¬ÆäÖгÊÏÖÁËÐí¶à¾µäËã
·¨£¬²¢ÌÖÂÛÁËÈçºÎºâÁ¿ÍƼöϵͳµÄÓÐЧÐÔ¡£ÊéÖÐÄÚÈݰüÀ¨»ù±¾¸ÅÄîºÍ×î
нøÕ¹Á½²¿·Ö¡£´ËÍ⣬±¾Ê黹°üº¬´óÁ¿µÄͼ¡¢±íºÍʾÀý£¬ÓÐÖúÓÚ¶ÁÕß¶Ô
ÓÚ֪ʶµÄÀí½âºÍ°ÑÎÕ¡£
Cocos2d-x¸ß¼¶¿ª·¢½Ì³Ì£ºÖÆ×÷×Ô¼ºµÄ
¡¶²¶Óã´ïÈË¡·
×÷Õߣº»ðÁÒÄñÍøÂç¿Æ¼¼
ÊéºÅ£º978-7-115-31796-4
ͼÁéÉçÇøÍÆ¼ö£º
´úÂëµÄδÀ´
×÷ÕߣºËɱ¾Ðкë
ÒëÕߣºÖÜ×Ôºã
ÊéºÅ£º978-7-115-31751-3
ͼÁéÉçÇøÍÆ¼ö£º
ÌùÐÄÉè¼Æ£º´òÔì¸ß¿ÉÓÃÐÔµÄÒÆ¶¯²úÆ·
×÷ÕߣºJakob Nielsen, Raluca Budiu
ÒëÕߣºÅ£»¯³É
ÊéºÅ£º978-7-115-31879-4
ͼÁéÉçÇøÍÆ¼ö£º
´óÊý¾ÝµÄ³å»÷
×÷Õߣº³ÇÌïÕæÇÙ
ÒëÕߣºÖÜ×Ôºã
ÊéºÅ£º978-7-115-31787-2
ͼÁéÉçÇøÍÆ¼ö£º
JavaScriptÒì²½±à³Ì£ºÉè¼Æ¿ìËÙÏìÓ¦µÄÍø
ÂçÓ¦ÓÃ
×÷ÕߣºTrevor Burnham
ÒëÕߣºÐíÇàËÉ
ÊéºÅ£º978-7-115-31657-8
ͼÁéÉçÇøÍÆ¼ö£º
Objective-C¸ß¼¶±à³Ì£ºiOSÓëOS X¶àÏß
³ÌºÍÄÚ´æ¹ÜÀí
×÷ÕߣºKazuki Sakamoto, Tomohiko
Furumoto
ÒëÕߣºÀ軪
ÊéºÅ£º978-7-115-31809-1
ͼÁéÉçÇøÍÆ¼ö£º³ÉÊéÊÖ¼ÇACM-ICPC¹Ú¾ü̸¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·¼°Ïà¹Ø
Ëã·¨Êé
×÷ÕßÎ×Ôó¿¡
Õã½´óѧ2010½ìÊýѧϵ±¾¿ÆÉú£¬2013½ì¼ÆËã»ú˶ʿÉú¡£Ôø´ú±íÕã½´ó
ѧ»ñµÃ2009ÄêACM-ICPC World FinalsµÚ6Ãû£¬2011ÄêACM-ICPC
World Finals¹Ú¾ü¡£ÔÚÏß±ÈÈüÖг£ÓÃwatashiºÍrejudgeµÈid¡£
ǰ¼¸Ì죬ÇïÒ¶ÍØÔÕ(iwi)¡¢ÑÒÌïÑôÒ»(wata)ºÍ±±´¨ÒËïþ
(kita_masa)ËùÖø£¬ÎÒ(watashi)¡¢×¯¿¡Ôª(navi)ºÍÀî½òÓð
(itsuhane)·ÒëµÄ¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·£¬ÖÕÓÚͨ¹ýÈËÃñÓʵç³ö°æÉç
Õýʽ³ö°æÁË¡£¿Éϲ¿ÉºØ£¬¿Éϲ¿ÉºØ¡£ÕâÀïÎÒÖ÷ÒªÏë˵һÏÂ×Ô¼ºÎªÊ²Ã´Òª
·ÒëºÍÍÆ¼ö±¾Ê飬»¹ÓжԳÌÐòÉè¼Æ¾ºÈüѧϰ×ÊÁϵÄһЩ¿´·¨¡£Ò²¸½´øÒ»
Щ¶ÔÒëÕßÐòºÍµÚ1ÕµIJ¹³ä˵Ã÷¡£
ÔÚÒëÕßÐòÖÐÎÒÒ²ÂÔ̸µ½ÁË×Ô¼º·Òë´ËÊéµÄ¶¯»ú¡£ºÍºÜ¶à¶ÁÕßÒ»Ñù£¬×
ʼµ±È»ÊDZ¼×Å×÷ÕßµÄÃûÍ·È¥µÄ£¬Èýλ×÷Õß²»µ«Êǹú¼ÊÖªÃûµÄÑ¡ÊÖ£¬¶øÇÒ
TopCoderµÄ×î¸ßrating¼ÓÆðÀ´¶¼ÆÆ9kÁË¡£¶¥¼âʵÁ¦µÄ×÷ÕßÍùÍù¿ÉÒÔÕ¾ÔÚ
¸ü¸ßµÄ¸ß¶ÈÖ¸µã½É½£¬Ò²¾Í¸ü¿ÉÄÜд³öÒ»±¾ºÃÊé¡£Ëæºó¾ÍÊǶÁµ½ÊéÖеÄ
ÄÚÈÝÁË£¬ÊéÖеľø´ó¶àÊý¶«Î÷£¬ÎÒ´ó¸Å¶¼ÔÚ¹ýÈ¥ËÄÎåÄêʱ¼äµÄÃþÅÀ¹ö´ò
ÖУ¬Öð²½Í¨¹ý¸÷ÖÖÊé¼®¡¢ÍøÂç¡¢µÀÌý;˵¡¢½âÌâ¾ÑéºÍ×ܽáÌå»áÕÆÎÕ
ÁË¡£²»¹ý»¹ÊÇÓÐһЩ¶úĿһеÄÄÚÈÝ£¬ÆäÖÐÓÐÒ»Á½¸öÎÊÌ⻹ÊÇͨ¹ýÓʼþ
µÃµ½ÁËÔ×÷ÕߵĽâ´ð£¬ÕÇÁË֪ʶ¡£µ«ÈÔÓÐÒ»ÖÖÏà¼ûºÞÍíµÄ¸Ð¾õ£¬¼ÙÈç×Ô
¼ºÔçÁ½Äê¶Áµ½´ËÊ飬Ïë±ØÄÜÉٷѲ»ÉÙ¾¢¡£´ÓÎÒ¸öÈ˵ľÀúºÍ¶ÔÖÜΧͬѧ
µÄÁ˽âÀ´¿´£¬ÕâÊÇÒ»±¾·Ç³£ÖµµÃÒý½øºÍÍÆ¼öµÄÊé¡£
µ±È»£¬ÔÚ´Ë֮ǰ¹úÄÚÒѾ³ö°æÓв»ÉÙËã·¨¾ºÈüÏà¹ØµÄÊé¼®ÁË£¬ºÜ¶àÈËÏë±ØÏ£ÍûÖªµÀÕâ±¾ÊéÓÐÊ²Ã´ÌØ±ðÖ®´¦¡£Ëã·¨¾ºÈüÏà¹ØµÄÊé¼®´óÖÂÓÐÁ½À࣬һÀàÊÇËã·¨ºÍÊýѧÀàµÄÊé¼®£¬±ÈÈç¸÷ÖÖÊý¾Ý½á¹¹½Ì²Ä¡¢ÀëÉ¢Êýѧ½Ì²Ä¡¢¡¶Ëã·¨µ¼ÂÛ¡·¡¢¡¶¾ßÌåÊýѧ¡·µÈ£¬Ò»ÀàÊÇרÃÅÕë¶ÔËã·¨¾ºÈüµÄÊé¼®£¬Æä
ÖеĴú±í¾ÍÊÇÁõÈê¼ÑËùÖøµÄ¼¸±¾Ê飬¶ø¡¶Ëã·¨ÒÕÊõÓëÐÅϢѧ¾ºÈü¡·(ºÚ
Êé)ÓÖÊÇÆäÖеĴú±í¡£×÷ÕßÖ®Ò»µÄiwiÔÚMSRAʵϰÆÚ¼äÒ²µÃÖªÁ˺ÚÊéµÄ
´óÃû¡£
Ê×ÏÈ£¬¸öÈ˾õµÃÕâЩÊé¼®´óÖ¿ÉÒÔ·ÖΪÁ½Àࣺ½Ì¿ÆÊéºÍ¹¤¾ßÊé¡£ÖîÈç
¡¶Êý¾Ý½á¹¹ÓëËã·¨·ÖÎö¡·(DSAA)Ö®ÀàµÄÊé¿ÉÒÔ×÷Ϊ½Ì¿ÆÊéµÄ´ú±í£¬¶øÖîÈç¡¶¼ÆËã»ú³ÌÐòÉè¼ÆÒÕÊõ¡·(´óÃû¶¦¶¦µÄTAOCP)ÔòºÁÎÞÒÉÎÊÊÇ
¹¤¾ßÊéµÄ´ú±í¡£´óÖµØËµ£¬Ç°Õß¼òµ¥Ò×¶®£¬ÊÊÓÚѧϰ£¬ºóÕ߸ßÉîÈ«Ãæ£¬ÊÊÓڲο¼¡£¶þÕß²¢Ã»ÓÐÃ÷ÏԵķֽçÏߣ¬ºÜ¶àʱºòȫƾÖ÷¹Û£¬ÒòÈ˶øÒì¡£
±ÈÈç˵£¬¿´¶®ÁË£¬Õâ¾ÍÊǽ̿ÆÊ飬¿´¶®Ä¿Â¼ÁË£¬Õâ¾ÍÊǹ¤¾ßÊé¡£µ±È»£¬ºÍÊýѧմ±ßÔ½¶àµÄÊ飬×ÜÊÇÔ½Äѿеģ¬ËùÒÔ¾ÍÄѶȶøÑÔ£¬ÕâÀàÊé¼®ºÍ±à
³ÌÓïÑÔÀàÊé¼®×ÔÈ»ÊÇûÓпɱÈÐÔ¡£
Ðí¶àÊé¶¼×÷Ϊ³ÌÐòÉè¼Æ¾ºÈüµÄѧϰ×ÊÁϱ»·´¸´ÍƼö£¬µ«ÊÂʵÉÏ£¬ÎÒÃÇ´ó
¸Å¿ÉÒÔ·ÂÕÕ¡¶×î³£±»³ÌÐòÔ±ÃǻѳƶÁ¹ýµÄ¼ÆËã»úÊé¼®¡·Ð´Ò»Æª¡¶×î³£±»
ACMerÃǻѳƶÁ¹ýµÄÊé¼®¡·µÄͲÛÎÄ¡£ÀïÍ·ÓÐÒ»¾ä»°ºÜÖØÒª£¬ËùÒÔÎÒÔÙ
³Ò»±é£º¡°Èç¹ûÄã×Ô¼ºÃ»ÓжÁ¹ýÕâЩ¼ÆËã»úÊé¼®£¬Çë²»ÒªÍÆ¼ö¸ø±ðÈË¡±¡£
µ±È»£¬Ïñ¡¶Ëã·¨µ¼ÂÛ¡·ÕâÑùµÄÊé¸öÈ˾õµÃ»¹ÊÇÖµµÃÒ»¶ÁµÄ£¬¶àÊýµÄÕ½Ú
²¢²»ÄÑ£¬¿ÉÒÔµ±×÷½Ì¿ÆÊ飬ºóÃæµÄһЩÄÚÈÝ¿ÉÒÔ×÷Ϊ¹¤¾ßÊéÐèҪʱÔÙ²Î
¿¼£¬ÀïÃæºÜ¶à¶«Î÷½²µÃºÜϸ£¬ÈÝÒ××öµ½ÕæÕýµÄÀí½âÎüÊÕ£¬±ÈÈç´Ó×Ô¶¯»ú
Òý³öKMP£¬µÈµÈ¡£¶øTAOCPÔòÎÞÒÉÊÇ×î³£ÌÉǹµÄ×°±ÆÉñÆ÷¡£ÓÐÒ»Ì죬ÎÒÔÚͬѧµÄ×ÀÉÏ¿´µ½Ò»±¾TAOCPµÚÒ»¾í£¬´ò¿ªÒ»¿´ºÜ»ÆºÜ±©Á¦£¬ÎÒ¸Ï
½ô¾Í°ÑËü¸ÇÉÏÁË¡£TAOCPºÜÀ÷º¦£¬¿´exponentiation by squaringÄÜÒýÓõ½
Ëü£¬¿´permanentÒ²ÄÜÒýÓõ½Ëü£¬Á¬¿´Êý¤¨ÉϤ²¤ªŠ—¤µ¤ó¶¼ÄÜÒýÓõ½
Ëü¡£¶ÁÍêTAOCPÄDZØÐëÄܱäµÃ³¬À÷º¦ÁË£¬¿ÉÄǵÃÊÇÄܶÁÍê°¡£¬¶Á²»Íê
˵ɶ¶¼°×´î¡£ËùÒÔÍÆ¼öѧϰ×ÊÁϲ»Äܹ⿴ÊéºÃ²»ºÃ£¬»¹µÃ¿´¶ÔÄ¿±êÈËȺ
ºÏ²»ºÏÊÊ¡£¶øÒ»±¾ºÃµÄ½Ì¿ÆÊ飬²»Ó¦¸ÃÊǾ¡¿ÉÄÜÌåÏÖ×÷ÕßÓжàÅ££¬¶øÊÇ
ÒªÄܹ»¾¡¿ÉÄܼòµ¥µØ°ïÖú¶ÁÕß±äµÃ¸üÅ£¡£Èç¹û¿´ÍêÁË£¬¶®µÄ»¹ÊǶ®£¬²»
¶®µÄ»¹ÊDz»¶®£¬ÄÇÊÇûÓÐÒâÒåµÄ¡£
°´ÕÕÕâ¸ö·ÖÀà±ê×¼£¬¸öÈ˾õµÃ¡¶ÌôÕ½³ÌÐòÉè¼Æ¾ºÈü¡·ÊÇÒ»±¾ºÜºÃµÄ½Ì¿Æ
Êé¡£Ëü·Ç³£ÊʺÏ×÷ΪÓÐÖ¾²Î¼Ó³Ì ......
ÄúÏÖÔڲ鿴ÊÇÕªÒª½éÉÜÒ³£¬ Ïê¼ûPDF¸½¼þ(10871KB£¬129Ò³)¡£





