Day02 - 盘点需求,准备环境与工具

在大致了解完永丰金APIs的两大面向後,接下来要选择与决定要使用什麽语言或工具来完成接下来的开发与串接。

语言

Shioaji使用Python进行开发,那至少Python已经是雀屏中选了,只是要看消费支付这边是否合用。在消费支付API的应用,虽然永丰附上的是C#和PHP的Sample code,应该会需要模拟购物网站的一些例如付款後页面跳转情境。如果选择统一在两个主题都用Python的话,就需搭配Django来开发Web。

近年Python因大数据与AI的应用变的相当火红,去年也由於参与加人工智慧学校的课程也用了一阵子的Python,所以就先选定使用Python来开发。

https://ithelp.ithome.com.tw/upload/images/20210917/20130354AkWj5kk1Nm.png

语言.盘点Point!
  • Python

环境与工具

Python的开发环境有几种不同的选择,开发工具也是,我会选择使用之前惯用的Anaconda作为整体开发环境 (顺带也送你几个工具了),写Python Code的基本功能测试与反覆验证,可以使用Jupyter Notebook来达成。主要的好处是可以在程序段里针对某些区块反覆修改值与区块测试,不需要整段程序码都重跑一次,又能像撰写文章一样在前後作注记 (甚至图文并茂),也能输出图表,因为之前接触了一阵子的AI机器学习,因此感受到这样工具的好处。(其实一开始接触时我是有一点排斥的,当时还没感受到他的优点)

但後期要搭配使用Django的Web开发的话,有一个整页式以及专案管理目录的IDE是较为合用的,我个人是会选择使用PyCharm。

另外在一些目的单纯的API串接的测试验证,则可以使用强大好用的Postman来达成 (相当推荐他可登入云端帐号,到不同台电脑可继续先前的测试)。

https://ithelp.ithome.com.tw/upload/images/20210917/20130354ktyZMYJV9U.png

工具.盘点Point!
  • Anaconda
  • Jupyter Notebook
  • PyCharm
  • Postman

安装套件

在证券API的部份,一定需要安装Shioaji,这个等到要撰写的时候再来详谈。而其他的套件大概就是有需要的时候再来决定追加安装,例如在股票交易可能会需要使用到图表功能,例如使用matplotlib等相关视觉化套件,或者数据处理过程需要好用的NumPy、pandas等套件。在消费支付主题,要开发Web的话则可安装Django套件。这些都能透过pip的指令方式进行安装,有特别需要再花篇幅来讲解,因为一般网路资源几乎都找的到这类的教学文件。

使用Python有时候会因为不同的目的不同专案,装了一堆套件後所需版本冲突的乱七八糟的,所以强烈建议使用VirtualEnv的方式建立所需要的虚拟环境让不同专案用到的套件版本独立不互相干扰。
使用Anaconda的话,可以使用conda env相关指令来建立与启用虚拟环境,也可以直接用Anaconda Navigator UI来进行设定。

https://ithelp.ithome.com.tw/upload/images/20210917/2013035421YMuSONI0.png

套件.盘点Point!
  • Shioaji
  • matplotlib
  • NumPy
  • pandas
  • Django

版本

目前在Shioaji会使用到的最低Python版本,需使用3.6以上,因此若有使用2.x版Python的朋友是无法呼叫Shioaji元件的,要特别注意。

执行电脑软硬体环境

我目前使用的都是Windows 10系统,搭配ROG Strix SCAR III (G531)电竞笔电进行开发,之前因为有开发AI的需求可以用来跑GPU版的Tensorflow等,但运行此API串接,其实倒无特别需要强力的电脑来运作。因此有兴趣开发的朋友只要准备顺手的电脑即可。

明天开始四天的中秋连假,会不会忘了发文就断更了,让我们看下去。

延伸阅读

Anaconda简单来说是一个集大成的Python(以及R语言)的软件发行版本,安装完提供许多接地气的工具以及套件管理功能,但毕竟身为懒人包,相当成度也造成了较为吃资源的问题。另外Anaconda中的conda指令可用来管理虚拟环境,也可以用来管理套件,严格上来说,conda并不是「python专属套件管理工具」 (理论上他能处理的语言与平台更多),但他可以更有效的管理一些相依性的问题,如果刚好你有找到conda中你要的python套件的话 (在pip上找的到的在conda不一定有)。你也可以仅用conda来管理虚拟环境,但采用pip来作为python的套件管理工具。网路上有篇探讨其中异同写的不错,但由於已很难确认原始文章来源是谁,所以我就不直接引用,有兴趣可以Google关键字:"Anaconda、Miniconda、Conda、pip的相互关系"


<<:  Day02 工欲善其事必先利其器

>>:  [Day16] Tableau 轻松学 - 仪表板

[Day - 06 ] - Spring Conditional 运用与原理

Abstract 当每个开发者初始化一套服务时,可能会因不同的系统或不同的Java版本相容性问题进而...

【Day2】如何安装odoo社区版?

#odoo #开源系统 #数位赋能 #E化自主 在第一天的文章中,我们简单认识了odoo。在此一提,...

【Day06】生命周期 Lifecycle(Class Component)

React 元件拥有从产生、渲染 到被移除解放资源的各个阶段 称之为生命周期(Lifecycle)。...

【Day19】用Bootstrap和Fontawesome来刻我们的计数器吧 (´∀`)!!

我们先来画我们的计数器吧! 为了让我们的计数器精美一点点点, 我们先来安装React的fontAwe...

Emotet 社交工程邮件,寄件者或是内容中包含贵公司的员工资料或是签名档

Emotet 社交工程邮件,寄件者或是内容中包含贵公司的员工资料或是签名档 范例一 范例二 参考文件...