Eddy的AI小助手-后台处理模块接入(10)

Python后台处理模块接入的缘由

Python

前面的后台搭建都是基于Java EE的,但后面随着对机器学习的深入,慢慢发现大多数机器学习的算法实现都是基于Python和R语言的。R语言主要集中在对数据的预处理、分析和展示,而Python不但囊括了R语言的功能,还延伸到了网络请求、Web服务、数据抓取等方方面面。Python不但在语法上入门简单、在开发环境的搭建上相对容易,开发IDE也很完善易用。在机器学习领域有很多现成的算法库,开源工具包非常完备。Python一旦入门,绝对会对它爱不释手的 :)

Python学习的个人经验

既然是个人经验,就要先交代下自己在学习python之前的编程经历。从大学一年级接触C语言,并在大学二年级在电子设计竞赛中投入真正的开发使用,直到进入互联网公司之前,都是在使用C语言做底层驱动和中间件开发,使用C++做业务逻辑开发。进入互联网之后开始接触Java,并进行Android中间件和应用开发。在业余时间自学了Java EE的开发流程并了解了Web前端开发的基础知识。

我的Python学习比较简略:

快速入门

在网上看一篇关于Python的入门帖子,比如www.runoob.com/python/python-basic-syntax.html,在这个过程中了解语言特性和基本语法、搭建基本的运行环境,这个过程1~2个小时足矣。

全局把握

对Python有了基本的了解和认识后找一本大而全的教科书,比如《Python基础教程》(我找了本电子版),这是一本很厚的书。然后查看目录,并逐页“扫读”(所谓“扫读”就是非常快速的粗略阅读和跳读,在阅读的过程中并不需要逐行逐句,而是要粗枝大叶)。对于“魔法方法、属性和迭代器”这样的章节可以仔细研读,对于“条件、循环和其他语句”这样的章节可以一扫而过、对于“图形用户界面”这样的章节则可以直接跳过不看。整个过程的一个核心思想是:

1. 对比阅读,发掘Python相对于自己以往掌握的语言有哪些相同点和不同点;

2. 系统把握,明了整个Python语言的系统体系和知识组成;

3. 确定目标,扫读的目标是在后续如果遇到相应的Python问题,能够快速的定位到具体的知识点,并查询答案(这本大厚书可以在以后作为字典类的工具书使用)

第二个步骤需要半天到一天的时间。

工程实践

在Python终端敲简单的命令显然无法满足我们的工程需要,一个完整的工程开发需要便捷的开发工具和清晰的模块关系。这里我使用DevPy+Eclipse搭建IED开发环境,工程中引入包、模块、类等Python特性来明晰项目中的模块关系。在开发中遇到问题则通过查询《Python基础教程》或在网上搜寻解决方法。

Python后台处理模块的功能和接入方式

Python的后台处理模块主要用来做机器学习相关的处理工作。Python模块引入了Tornado Web引擎,对外以REST API的形式提供服务。所以简单的说Python的后台处理模块也是像基于Java EE一样的Http Web服务。

后记(自己的语言学习感悟)

汇编语言

对于汇编语言相信绝大多数同学除了在《微机原理》的实验课上使用过之外,应该在真实工作中很少有接触,即便对于很多嵌入式开发的同学在工作中也很难接触的到。我在工作中唯一的实践经历是修改中断向量表。是在一个没有MMU的MCU上保证运行的ucOS系统能够有独立的Bios、Bootloader、App三个独立的运行空间。当时的解决方案是使用两级中断向量表:硬件触发中断后会自动跳转到第一级的中断向量表,而第一级的中断向量表直接指向第二级中断向量表。第二级中断向量表会通过检查硬件管脚的状态转跳到Bios、Bootloader、App不同空间的处理代码段。汇编语言的学习重点不是语言本身,而是机器运行的机制。

C语言

相比于汇编C语言确实算是高级语言了。对于互联网的同学来说C语言的语法很简单,C语言的指针又很眩晕,在功能开发上,很简单的事情要写上一大堆代码。其实业务开发并不是C语言的优势所在,C语言更多是为了取代汇编,同样C语言的学习重点也不在于语言本身,更在于对系统运行机制的理解,所以,C语言更多的应用场景是驱动开发和协议解析。

C++

相比于C语言,C++对业务逻辑的处理能力大大增强,同时,设计模式在C++中的应用也变得得心应手。但C++只能算的上C语言的升级版,作为程序员,并不能完全脱离系统原理的限制,将全部的注意力放在业务逻辑的实现上。但劣势同样也是优势,正是C++同系统的相关性才使得C++在嵌入式设备和实时性较高的核心中间件领域留有一席之地。

Java

相对于C++,Java实现了完全的面向对象。从解放劳动力的角度讲,Java实现了一次飞跃。开发人员再也不用被底层的系统机制所牵绊,将自己的更多精力放在业务逻辑本身,同时,Java的各种工具支持包也很完备。这也很好的解释了,为什么嵌入式领域一个项目的开发周期往往是2~3年,开发成员往往是几十甚至是几百人。而互联网产品很多都是几个人或一个人,一周或一个月的作品。但不可否认,Java自身的运行机制,导致它对系统资源的高要求和运行时的低效率,这也是Java在特有领域不能完全替代C++的原因。

Python

在接触Python之前,我一直认为Java是用起来最爽的语言(简单的运行和开发环境搭建、功能强大的IDE工具、完备的工具包支持),但接触到Python之后才发现我的结论下的太早了。相比于Java,Python除了是脚本语言、动态语言这样的基本属性之外,Python的一个很大的特点是简洁。Python能够使用更少的代码,更少的依赖完成你想要的工作。

当然语言和算法一样,没有一个算法能使用所有的场景,也没有一种语言能驾驭所有的领域。

博客地址

caiquanliu.github.io

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,392评论 25 707
  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 5,292评论 2 35
  • 之前很难想象,我会加入到小灶群。更难想象,在小灶群里,遇到了一群爱读书的人。甚至连想都不敢想的是,在100天里读了...
    良人犹美人阅读 227评论 0 3
  • 我亲爱的笑笑, 此时你已经在小区里的游乐园里疯玩了,因为作业做得快,就有这么好的待遇;如果每天晚上你能在8点之前完...
    Graciegu阅读 129评论 0 1