写代码的人

Posts tagged ‘python’

不要用面向对象来迷惑程序员新手

本文是从 Don’t Distract New Programmers with OOP 这篇文章翻译而来。


当我被问及“哪种编程语言是教我[儿子 / 女儿 / 其他没有编程经验的人的首选]时,”我的答案这五年多来一直没变:Python。

这也许会出乎你的意料,经常有人会说这是非主流语言,但我坚持我的看法。

Python十分适合解决很多简单的、有趣的问题,比用C语言要省力的多。(这是实话,几行Python代码你就能制作一个简单的拼写检查程序。)你会发现这种语言里几乎没有任何复杂或让人困惑的东西,用它编程简单易懂,比如说数组更新你可以用固有的方法来实现任何的操作算法。在Python里,你学习的曲线很平滑。数组,字典,集合是最主要的东西。

把Python当作入门语言,有一点需要注意:避免使用面向对象特征。你当然不可能完全的回避它们,有些基本数据类型里一些有用的方法跟它们有关 联,问题不大。你只是使用它们已经提供的东西,不要去创建什么类,要避免任何的面向对象设计里的声明,否则的话,你一点点的数据都需要会打包成类。

从面向过程到面向对象的转移带来后果是你从关注问题和解决方法转移到关注架构。你通过对比面向过程的程序和面向对象的程序,很容易能看出这点来。后者的程序会更长,到处是多余的接口和缩进和标记。你也许忍不住想将一些小代码移进类里,或往类里添加一些小方法,这些都没必要,等日后你再做这些也不迟。

当你在帮助某人把一个有问题的语句改正确的时候,你要做的最后一件事是给他们布置一些没有实际用处的技术工作。因为有些人没事时就喜欢玩能一些面向 对象的知识技术,做一些可怕的类继承,最终没有学到他们该学的东西。有些人在学习的时候慢慢的会失去兴趣,因为他们看到了太多的这些没有实际用处的继承、 接口代码,感觉程序越来越笨重、难以处理。

从某方面说,当然,你需要学习一下Python的面向对象的知识,但尽可能的避免使用它们吧。

 

企业级软件开发需要什么样的框架?

导读: 本文转自博客园,作者从企业级软件开发流程、什么是框架以及为什么要开发框架等方面进行阐述。内容如下:

企业级软件开发流程

1.领域建模

分析领域特定的问题。比如赶集网这一分类信息网站,她的定位是解决都市人寻求房屋出租、二手房、二手车、二手物品交易、求职招聘等生活信息的需求的。在领域建模阶段要解决的就是这个软件的定位问题,做什么不做什么。

这一阶段由高层领导,市场销售及系统分析师等完成。

2.平台技术选择

技术选型,比如用什么平台/架构(.net,j2ee,php,python等等)开发,采用什么服务器托管等。

这一阶段由系统高层领导,系统分析师及系统架构师等完成。 3.解决方案

根据选定的平台技术等给出一个可行的解决方案,说明系统会使用什么样的部署结构等。

这一阶段由系统分析师及系统架构师等完成。

4.需求分析

市场技术的可行性已经确定,接下来就是把做什么具体化了。把每一个功能模块及非功能性需求罗列出来。

这一阶段由市场销售,系统分析师,产品经理,用户体验师,测试工程师等完成。

5.技术实现

需求已经明确,接下来就是设计与实现了。除了实现系统的特定功能外,我们还要实现系统用户的验证与授权,系统日志与异常处理,发邮件与用户交互等。这一部分就是企业级软件开发中可以复用的切入点,也是和我们系统架构师,软件工程师的工作密切相关的部分。

这一阶段由系统架构师,开发经理,软件工程师等完成。

6.集成测试

在预设的软硬件环境下,测试系统是否很好地满足了用户的需求。

这一阶段由软件工程师,测试工程师等完成。

7.验收测试

将系统交由用户或用户代表使用。可能会根据反馈进行一定的修改等。

这一阶段由产品经理,用户或用户代表,软件工程师,测试工程师等完成。

8.交付

实际交给用户运营与使用。

这一阶段由市场销售,技术代表,用户等完成。

9. 维护

根据用户实际使用中给出的反馈或提出的新需求等修改系统。

这一阶段几乎是上面1-8的迭代过程。

什么是框架?

一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现。

框架中要包含什么?

框架中应该提供通用的功能与实现,比如用户验证与授权,日志与异常处理,缓存策略与实现,发送邮件,定时数据处理(Jobs),数据访问策略与实现,多语言支持,通用UI组件等。

为什么要开发框架?

较大的软件开发公司都有自己的框架,因为框架中积累了很多通用的功能,可以直接复用。采用框架可以规范开发人员的设计与代码,有利于在一个项目内多人协同工作,一致性好,可维护性好。这样就可以提高质量,缩短开发周期,进而也就提高了生产率,降低了开发费用。

我如何做框架?

我的经验告诉我,开发框架一定要遵循简单封装,决不能过度设计。

原文链接:

http://www.cnblogs.com/fuhongwei041/archive/2011/03/03/1970034.html