PyCharm中两个代码提示技巧

星期六, 七月 10th, 2010

在最新的PyCharm 96.596版本中,实现了两个代码提示的特性,这里说一下。 1. 根据变量名查找类名:如一个类名是User,而一个变量名为user,当我们输入user.然后按下提示键,就是提示User类的变量和方法,规则如下:如果一个变量为”classname”形式且类型未知,PyCharm会找对应的ClassName类,如果存在,就会根据ClassName类给出相关提示 2. 动态属性推理:如果有一个变量,类型位置,但是代码以及涉及到操作其属性,如user.name,user.age等,那么再次在进行变量的成员变量提示中,就会出现之前引用到的成员变量名。如我们输入user.后按下代码提示键,那么name和age会被提示。

《Spring Python 1.1》读后感

星期五, 五月 28th, 2010

花了一个晚上的时间认真地阅读了一下《Spring Python 1.1》这本书,与其说是对图书的读后感,不如说是对Spring Python技术的感觉。首先Spring Python是不是重复造轮子的项目,这种容器对Python,Ruby需要吗?这个问题作者也在文章中做了明确回复,首先我们看一下Spring Python要表达的示意图:
首先容器的DI只是三角的一边,其他还有AOP,当然AOP对脚本语言来说容易实现,但是要做的好还是不容易,最后一边是对通用服务的抽象,这三者会组合形成一个好的蓝图。DI和AOP不说啦,Portable Service Abstractions,这个非常实用,如DataBaseTemplate,Transaction,JMS,Remoting等,这些服务的抽象会让开发更容易,所以这样的一个容器还是非常必要的。个人试用了一下Spring Python,感觉非常方便,当然写一些脚本大可不必,但是如果开发软件,形成规模,找一个好的框架,提升效率和质量,这个是必不可少的。

Pyanno: Python Annotations

星期三, 五月 26th, 2010

Pyannot,顾名思义,就是Python下的Annotation。在Java中,有annotation,在Javascript有jsdoc,提供相关的annotation,其他如Ruby的Yard等。annotation主要是为了实现两个功能:为生成Document提供结构化数据,这个jsdoc和ruby yard比较明显。第二是提供类型信息,这个对于弱类型的脚步语言来说非常重要,如果jsdoc,有了这个,IDE可以根据annoation提供类型进行进行代码提示。如下述Python代码: @returnType(float) @parameterTypes(Point, Point) def getDistance(p1, p2): “”” getDistance() calculates the distance between two points. “”” 我们就可以清楚了解返回类型,参数的类型,这样就可以完成代码提示啦,不过目前还没有IDE工具支持Pyanno。更多信息请参考: http://www.fightingquaker.com/pyanno/

Spring Python 1.1.0发布

星期二, 五月 11th, 2010

Spring Python其实就是将Spring容器的特性介入到Python中,主要特性就是依赖注入、AOP、Data Access、事务管理、安全、remoting、JMS等等,应该说Spring Python不只是依赖注入,更是一个提供服务的容器,如果有兴趣的话,可以看一下。我个人在PyCharm中试用了一下,XML编辑功能不用说啦,但是现在还不知道官方是否打算支持Spring Python,从bug跟踪系统上来看,可能是在PyCharm 2.0版本添加对Spring Python支持。

PyCharm开始支持Google App Engine

星期四, 三月 18th, 2010

最新的PyCharm 94.582开始支持Google App Engine,可以快速上传应用和获取日志信息,相信会给App Engine开发带来不少便捷。

PyCharm RoadMap

星期天, 二月 21st, 2010

PyCharm 1.0的RoadMap初始版本发布啦,地址为: http://confluence.jetbrains.net/display/PYH/PyCharm+1.0+Roadmap,下面是一些个人的看法: 1 整合REPL,这个非常必要,这个是Python的核心 2 提升type system,也就是类型识别,如返回值类型,collection中的数据类型,这样代码提示的准确才能高 3 GAE支持,这个不少人都在关注的 4 Whole Project Completion,对代码导航,提示帮助都很大 5 More Inspections:可能会整合pylint和pyflakes的一些特性,这对Python的代码质量提升帮助非常大,而且Inspection一直是IDEA的强项

PyCharm: Python IDE EAP发布

星期六, 一月 30th, 2010

之前JetBrains论坛一直有这样的消息:一款独立的Python IDE工具在开发中,名称为PyCharm。虽然前两天发布了Python Plugin 2.5版本,但是还是没有见到独立的IDE。今天终于看到了PyCharm EAP版本。由于个人对Python不太了解,正在学习中,所以没法给大家列出相关的特性,不过Django和Google App Engine支持这个是非常有吸引力的。官方的介绍如下:

JetBrains PyCharm is a new Integrated Development Environment for programming using Python with the following key features:

Intelligent Editor: for Python with code completion, on-the-fly syntax and error highlighting and code inspections
Code Refactoring: including rename, introduce variable, introduce constant, pull up, push down and others
Web development with Django: with specific [...]

Python Plugin 2.5发布

星期三, 一月 27th, 2010

Python Plugin 2.5版本发布,该版本需要IDEA 9.0.2 EAP支持。新的版本支持Python 3.0,更加让人注意的应该是Django的支持,特性如下:
Supported features include:

Django run configuration
Support for creating Django projects in New Project Wizard
Actions to run different commands of manage.py
Template language support: syntax highlighting, code completion for tags and filters
Navigation from urlpattern to corresponding view method, quickfix to create view method from urlpattern
Navigation from render_to_response and similar methods to views

其他的就是Python自身语言特性的支持,如重构等。