像Django学习写程序

Django是什么

Django是一个python的web的快速开发框架,Django也是我接触的第一个web框架。这个框架是一个比较重的框架,有些人对这件事情比较诟病,但是开发起来比较快。实际用django写一段时间python web也会体会到比较重这个问题。但是这又引出了后面一个问题。

为什么用框架

一帮菜鸟新上战场你,你给新手一个钢管,一把锤子,一把子弹他能把子弹发射出去,你给新手一把步枪他也能把子弹发射出去。就算是老手也不一定老想拿钢管和锤子当枪用。框架是一套工具,可能不如钢管,锤子灵活,但是可靠快速。但是框架的意义在于告诉于新手如何编程,指导各种人如何编程,并且快速的编程。框架告诉当年作为一个新手的我,数据库CRUD,你可以用mysql,sqlite,mongodb等等数据库,告诉用orm,告诉我资源应该放在哪里。因为觉得Django过于沉重,所以也用tornado写过python web,但是开始写torndao的时候面临的问题是在没有Django这种类似的框架提供指导的时候该如何编程。模仿django的基础功能进行开发,但是这又有了一个问题既然有django为什么要用tornado之类的自己实现一套类似的功能?这是一个很有意思的问题。如果啥都不会最好上来先用框架,如果没有什么狂拽酷炫吊炸天的需求,能用框架用框架。

为什么要自己写一个框架

重写一遍才能理解精髓,有些新语言可能没有合适的框架。

在客户端与移动端开发找到Django的影子

我做了一年多iOS开发,发现一个问题,我们每期的需求时常是在实现Django类似的功能,这件事情给我的启示就是,客户端也应该有类似的框架,这样能节省很多时间。iOS安卓开发也可以参考Django的架构解决很多问题。

项目模版生成器

用node的时候会用 express myapp 用django的时候会用 django-admin startproject mysite 每次写一个业务的时候都要用同一个模版,每加一个业务的时候大家代码风格可能不一致,用命令生成同一种业务模块模版可以节约时间和强制约束一些东西。

脚手架页面

用django的时候会有automatic admin interface,其实这是个脚手架页面,做iOS,安卓,windows等等其他客户端的时候都会用到。测试路由,测试接口,测试本地数据存储,将测试页面集成在脚手架这个模块里面。

路由

URLs and views,这个在初学iOS和安卓的时候从来没有人提到过这个,不过我发现这是现在app中必有的一个模块。我们开发的时候需要从各种地方跳到各种页面,用代码写死的办法不可能实现。同时开发中还需要对跳转过程进行统计,所以必须有url router这样的模块。

模型

Object-relational mapper与yymodel相对应,字典与模型的对应,进行http请求与json解析。 持久化层缺乏弹性。一旦出现业务需求的变更,就必须修改持久化层的接口 持久化层同时与域模型与关系数据库模型绑定,不管域模型还是关系数据库模型发生变化,毒药修改持久化曾的相关程序代码,增加了软件的维护难度。

展示逻辑与数据解耦合(Templates)

写view的时候应该把展示界面与请求数据,下载数据,获取数据这样的东西解开耦合。这是一个老生常谈的问题。

国际化的提前考虑

这个是之前做公司app的时候之前根本就没考虑到的,我觉得这是一个规划上的问题。赋值风格不一致导致国际化是一个很蛋疼的事情。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java与Android技术栈

从deep link到信息流广告,魔窗sdk的演变

从最初的移动端运营活动到深度链接(deep link),再到现在的移动端原生广告,魔窗sdk经历了多个版本的迭代之后,功能逐步完善,开始步入4.x版本的时代。

25010
来自专栏SDNLAB

OpenDaylight发布氧版本(Oxygen):不断提高的成熟度和生产稳定性

46570
来自专栏移动端开发

苹果审核2.1大礼包,这几个方面入手。

1.6K20

无服务器架构简介

无服务器架构与函数即服务(FaaS)是云计算领域的热门趋势。除了微软和亚马逊以外,还有很多其他厂商提供FaaS。本文是一个无服务器架构的简短介绍,我将尝试解释无...

282110
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯TMQ】测试分析?就这么简单!

在软件测试过程中,以最小的成本将软件质量风险降至最低,这就是精准测试。宏观上,测试分析是响应精准测试的实践,贯穿整个测试过程,并对整个测试过程起指导作用。

55900
来自专栏杨建荣的学习笔记

个人的小项目dbm_lite开放了

自从注册了github,在上面花的功夫很少,很早之前开源了一个MySQL Group Replication快速测试的小脚本。惭愧,之后就鲜有更新了。 ...

36690
来自专栏java一日一条

为什么要测试,测试是如何令人更快乐的?

我曾经是一个不测试主义者,因为我看不到测试的价值。然后,我试了一段时间,变得对它深信不疑。我收集了一些经验,当然还远远不够。这篇文章总结了一些我知道的以及我认为...

9010
来自专栏程序员宝库

我只是一名平庸的开发者

我就不是这些闪耀的新星,我只是一名平庸的开发者。如果你也不是天才玩家,那么本文将指导你如何在这个行业中生存下去。

486100
来自专栏CSDN技术头条

大规模数据集成: Linked Data

在本系列的前两篇文章(“ 使用 RDF 创建数据网络 ” 和 “ 使用 SPARQL 查询 RDF 数据 ”)中,您了解了资源描述框架和 SPARQL 协议和 ...

25080
来自专栏高性能服务器开发

七牛CEO许式伟:服务端开发那些事儿

服务端开发对于任何互联网公司来讲,都并非易事,它所涉及的技术知识面非常广泛,如果开发人员的经验不足,将直接影响产品用户的体验。作为七牛云存储创始人,许式伟有着超...

31420

扫码关注云+社区

领取腾讯云代金券