Excerpt from: http://www.cnblogs.com/kaituorensheng/p/4516983.html
function-type programming
The imperative style of programming has become a de facto standard. Imperative programming programs are made up of statements that describe state transitions. While this is sometimes very effective, it can sometimes be quite different (such as complexity)-and it may seem less intuitive than a declarative approach to programming.
If you don't understand what I'm talking about, it's normal. Here are some articles that can get your head right. But note that these articles are a bit like the red pill in the Matrix-once you've tried functional programming, you'll never look back.
- Http://www.amk.ca/python/writing/functional
- Http://www.secnetix.de/olli/Python/lambda_functions.hawk
- Http://docs.python.org/howto/functional.html
Performance
You will see that so many discussions are criticizing how these "scripting languages" (Python,ruby) are performing poorly, but you often tend to overlook the fact that programmers use algorithms that lead to a poor performance of the program.
Here are some great articles that let you know the details of Python's run-time performance, and you'll find that you can write high-performance applications through these refined and interesting languages. And, when your boss questions Python's performance, don't forget to tell him that the world's second-largest search engine is written in Python-it's called YouTube (see Python excerpt)
- Http://jaynes.colorado.edu/PythonIdioms.html
- Http://wiki.python.org/moin/PythonSpeed/PerformanceTips
Test
Now in the computer science community, testing can be one of the most confusing topics. Some programmers can really understand it and attach great importance to TDD (test-driven development) and its successor, BDD (behavior-driven development). and others simply do not accept that it is a waste of time. Well, I'll tell you now: If you haven't started using TDD/BDD, you've missed out on a lot of the best stuff!
This is not just about introducing a technology that can replace the original release management of your company with a stupid manual click Test Application, and more importantly, a tool that gives you a deep understanding of your own business areas-the real things you need, the way you want to conquer problems, and deal with problems. If you haven't done so yet, please try it. The following articles will give you some hints:
- http://www.oreillynet.com/lpt/a/5463
- http://www.oreillynet.com/lpt/a/5584
- Http://wiki.cacr.caltech.edu/danse/index.php/Unit_testing_and_Integration_testing
- Http://docs.python.org/library/unittest.html
Coding Specifications
Not all codes are born equal. Some code can be read and modified by any other good programmer. But some can only be read, and can only be modified by the original author of the code-and this is just a few hours after he or she writes the code. Why is that? Because there is no code to test (said above) and lack of proper programming specifications.
The following article describes a minimal set of specifications that should be adhered to. If you follow these guidelines, you will be able to write more concise and beautiful code. As an added effect, your program becomes more readable and easier to modify by you and any other person.
- http://www.python.org/dev/peps/pep-0008/
- Http://www.fantascienza.net/leonardo/ar/python_best_practices.html
Then go and circulate this information. Start with the person sitting next to you. Maybe at the next programmer's salon or programming conference, you've become a python programmer!
Python-One of the key technical improvements, functional programming, performance, testing and coding specifications