本文重點(diǎn)論述軟件的開(kāi)發(fā)工具包(SDK)與集成開(kāi)發(fā)環(huán)境(IDE)的基本概念和作用。通常情形下,無(wú)論是安裝一個(gè)軟件還是開(kāi)發(fā)一個(gè)軟件,實(shí)際上主要做兩個(gè)事情:產(chǎn)生SDK(Software Development Kit,簡(jiǎn)稱SDK,軟件開(kāi)發(fā)工具包)和IDE(Integrated Development Environment,簡(jiǎn)稱IDE,集成開(kāi)發(fā)環(huán)境)。SDK一般是通過(guò)該軟件編程需要使用到的庫(kù)或者包,例如圖形處理的庫(kù)、數(shù)據(jù)庫(kù)操作的庫(kù)等;IDE一般是指該軟件的操作界面,即人機(jī)交互環(huán)境。以Python為例,圖 4 7顯示了Python的SDK和IDE,SDK是位于底層的開(kāi)發(fā)工具包,即一個(gè)個(gè)文件夾;上層的IDE為一個(gè)編程的交互式界面,為編程人員提供友好易用的開(kāi)發(fā)環(huán)境。如果是安裝一個(gè)軟件,一般情形下分成兩步,首先安裝該軟件的SDK(即,將SDK解壓到你的安裝目錄),然后再安裝該軟件的IDE,并通過(guò)配置環(huán)境變量將IDE與SDK連接起來(lái),以安裝Python為例,首先去官網(wǎng)下載Python安裝包,進(jìn)行安裝,然后下載Eric(Python的其中一種IDE)進(jìn)行安裝,并配置好環(huán)境變量,將IDE與SDK進(jìn)行連接。很多情形下,在安裝軟件時(shí),軟件的IDE和SDK已集成在一個(gè)安裝包里,當(dāng)用戶雙擊后,就同時(shí)安裝了軟件的SDK和IDE,所以用戶沒(méi)有SDK和IDE的概念。不管軟件的SDK和IDE是集成在一個(gè)安裝程序中,還是分散在兩個(gè)安裝程序包里,讀者需要有清晰的SDK和IDE的概念,明白安裝軟件時(shí)到底做了哪些事情。通過(guò)對(duì)軟件安裝過(guò)程的描述,讀者很容易想到,如果自己去開(kāi)發(fā)一個(gè)軟件,實(shí)際上需要編寫兩個(gè)主要的模塊,即軟件的SDK和IDE。具體來(lái)說(shuō),在開(kāi)發(fā)一個(gè)軟件時(shí),首先是編寫軟件的界面,形成該軟件的IDE,然后把該軟件的各個(gè)功能寫成類或者函數(shù),相近功能的類或者函數(shù)放在一起形成一個(gè)庫(kù)或者包,例如所有數(shù)值計(jì)算的類放在一起,組成數(shù)值計(jì)算包。不同功能的包組成了該軟件的SDK。方便而友好的軟件界面可以顯著提升軟件的可操作性、易用性及友好性。建議讀者在進(jìn)行軟件開(kāi)發(fā)時(shí),盡量為自己的軟件編寫界面,即讓自己的軟件同時(shí)具備SDK和IDE。

圖 4 7 IDE與SDK實(shí)例: (a) Python的IDE界面Eric; (b) Python的SDK
在編寫一個(gè)軟件時(shí),其項(xiàng)目文件該如何組織,即源文件的目錄架構(gòu)怎么設(shè)計(jì),這是一個(gè)非常關(guān)鍵的問(wèn)題。如果想了解上述內(nèi)容,敬請(qǐng)關(guān)注本公眾號(hào)的下一篇文章《項(xiàng)目文件的組織》。
關(guān)于人工智能中編程能力和技能訓(xùn)練的更多介紹,可以購(gòu)買《人工智能怎么學(xué)》進(jìn)一步閱讀。

圖書(shū)購(gòu)買方式
京東:https://item.jd.com/13395339.html
當(dāng)當(dāng):http://product.dangdang.com/29469230.html
天貓:https://detail.tmall.com/item_o.htm?id=687374654836
為了讓圖書(shū)惠及更多的讀者,為更多想學(xué)習(xí)人工智能的人提供幫助,經(jīng)過(guò)向出版社申請(qǐng),對(duì)圖書(shū)《人工智能怎么學(xué)》的部分內(nèi)容進(jìn)行改編和連載。圖書(shū)《人工智能怎么學(xué)》的全部?jī)?nèi)容包含了初級(jí)入門、中階提高以及高級(jí)進(jìn)階三個(gè)級(jí)別的內(nèi)容。連載的內(nèi)容主要是初級(jí)入門級(jí)別,適合想對(duì)人工智能進(jìn)行快速和高效入門的讀者,對(duì)于已有一定的人工智能學(xué)習(xí)基礎(chǔ),希望進(jìn)一步進(jìn)階或提高的讀者,則需要購(gòu)買圖書(shū)《人工智能怎么學(xué)》,學(xué)習(xí)中階提高以及高級(jí)進(jìn)階的內(nèi)容。此外,對(duì)于學(xué)習(xí)人工智能感興趣的讀者,也可以加入知識(shí)星球《人工智能怎么學(xué)》,知識(shí)星球是一個(gè)構(gòu)建學(xué)習(xí)社群的平臺(tái),通過(guò)加入《人工智能怎么學(xué)》的社群,你將獲得更多的學(xué)習(xí)資料和課程信息。
與作者互動(dòng)和了解更多信息
想跟作者一起學(xué)習(xí)人工智能和互動(dòng),你可以加入如下社群:
知識(shí)星球:https://t.zsxq.com/0aLkVg0os
QQ群:600587177
想了解更多關(guān)于人工智能學(xué)習(xí)及實(shí)踐的內(nèi)容,請(qǐng)關(guān)注如下媒體:
官方網(wǎng)站:https://bigdatamininglab.github.io
官方微信公眾號(hào):人工智能怎么學(xué)(微信搜索“人工智能怎么學(xué)”添加關(guān)注)
CSDN:https://blog.csdn.net/audyxiao001
參考文獻(xiàn)
Robert C. Martin. 代碼整潔之道(第2版)[M]. 韓磊, 譯. 北京: 中國(guó)工信出版集團(tuán), 人民郵電出版社, 2020.
Herb Sutter, Andrei Alexandrescu. C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐[M]. 劉基誠(chéng), 譯. 北京: 人民郵電出版社, 2016.
楊冠寶. 阿里巴巴Java開(kāi)發(fā)手冊(cè)[M]. 北京: 電子工業(yè)出版社, 2020.
James Gosling et al. The Java Language Specification:Java SE 8 Edition[M]. Upper Saddle River: Addison-Wesley, 2014.
老九君. C++的發(fā)展簡(jiǎn)史[EB/OL]. https://www.cnblogs.com/ljxt/p/11636342.html, 2019-10-08.
翁惠玉. C++程序設(shè)計(jì):思想與方法(第2版)[M]. 北京: 人民郵電出版社, 2012.
譚浩強(qiáng). C++程序設(shè)計(jì)(第3版)[M]. 北京: 清華大學(xué)出版社, 2015.
Siddhartha Rao. Sams Teach Yourself C++ in One Hour a Day(Eighth Edition) [M]. Boston: Pearson, 2017.
Bjarne Stroustrup. Programming:Principles andPractice Using C++ (Second Edition) [M]. Crawfordsville: Pearson, 2014.
Bjarne Stroustrup. C++語(yǔ)言設(shè)計(jì)和演化[M]. 裘宗燕, 譯. 北京: 人民郵電出版社, 2020.
Stephen Prata. C++ Primer Plus(中文第6版)[M]. 張海龍 等, 譯. 北京: 人民郵電出版社, 2020.
Stanley B. Lippman, Josée Lajoie,Barbara E. Moo. C++ Primer(中文第5版)[M]. 王剛 等, 譯. 北京: 電子工業(yè)出版社, 2013.
Stanley B. Lippman. Essential C++(中文版)[M]. 侯捷, 譯. 北京: 電子工業(yè)出版社, 2013.
侯捷. STL源碼解析 [M]. 武漢: 華中科技大學(xué)出版社, 2015.
Ivor Horton. C++標(biāo)準(zhǔn)模板庫(kù)編程實(shí)戰(zhàn) [M]. 郭小虎 等, 譯. 北京: 清華大學(xué)出版社, 2017.
Brian W. Kernighan, Rob Pike. 程序設(shè)計(jì)實(shí)踐 [M]. 裘宗燕, 譯. 北京: 機(jī)械工業(yè)出版社, 2003.
Bruce Eckel. C++編程思想(兩卷合訂本)[M]. 劉宗田 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2011.
Scott Meyers. Effective C++:改善程序與設(shè)計(jì)的55個(gè)具體做法(第3版)[M]. 侯捷, 譯. 北京: 電子工業(yè)出版社, 2011.
Scott Meyers. More EffectiveC++:35個(gè)改善編程與設(shè)計(jì)的有效方法[M]. 侯捷, 譯. 北京: 電子工業(yè)出版社, 2020.
Scott Meyers. Effective STL:50條有效使用STL的經(jīng)驗(yàn)[M]. 潘愛(ài)民 等, 譯. 北京: 電子工業(yè)出版社, 2013.
陸文周. Qt 5開(kāi)發(fā)及實(shí)例(第4版)[M]. 北京: 電子工業(yè)出版社, 2019.
王維波. Qt 5.9 C++開(kāi)發(fā)指南 [M]. 北京: 人民郵電出版社, 2018.
馮振, 郭延寧, 呂躍勇. OpenCV 4快速入門 [M]. 北京: 電子工業(yè)出版社, 2020.
ghscarecrow.Java的發(fā)展歷程[EB/OL]. https://blog.csdn.net/ghscarecrow/article/details/82318636, 2018-09-02.
JMCui.Java的發(fā)展歷程[EB/OL]. https://www.cnblogs.com/jmcui/p/11796303.html, 2019-11-07.
明日科技. Java從入門到精通(第5版)[M]. 北京: 清華大學(xué)出版社, 2019.
Kathy Sierra, Bert Bates. Head First Java (Second Edition) [M].Sebastopol: O’Reilly, 2005.
Bruce Eckel. Java編程思想(第4版)[M]. 陳昊鵬, 譯. 北京: 機(jī)械工業(yè)出版社, 2007.
Cay S. Horstmann. Java核心技術(shù) 卷I:基礎(chǔ)知識(shí)(第11版)[M]. 林琪 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2019.
Cay S. Horstmann. Java核心技術(shù)卷Ⅱ:高級(jí)特性(第11版)[M]. 陳昊鵬, 譯. 北京: 機(jī)械工業(yè)出版社, 2020.
Joshua Bloch. Effective Java(中文第3版)[M]. 俞黎敏, 譯. 北京: 機(jī)械工業(yè)出版社, 2019.
周志明. 深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐(第3版)[M]. 北京: 機(jī)械工業(yè)出版社, 2019.
Brian Goetz. Java并發(fā)編程實(shí)戰(zhàn) [M]. 童云蘭 譯. 北京: 機(jī)械工業(yè)出版社, 2012.
Kamalmeet Singh. Java設(shè)計(jì)模式及實(shí)踐 [M]. 張小坤 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2013.
明日科技. Java Web從入門到精通(第3版)[M]. 北京: 清華大學(xué)出版社, 2019.
未來(lái)科技.HTML5+CSS3+JavaScript從入門到精通[M]. 北京: 中國(guó)水利水電出版社, 2017.
Elisabeth Robson, Eric Freeman. Head First HTML與CSS(第2版)[M]. 徐陽(yáng) 等, 譯. 北京: 中國(guó)電力出版社, 2013.
Adam Freeman. HTML5權(quán)威指南 [M]. 謝廷晟 等, 譯. 北京: 人民郵電出版社, 2014.
Eric A. Meyer, Estelle Weyl .CSS權(quán)威指南(第4版)[M]. 安道, 譯. 北京: 中國(guó)電力出版社, 2019.
David Flanagan. JavaScript權(quán)威指南(第7版)[M]. 李松峰, 譯. 北京: 機(jī)械工業(yè)出版社, 2021.
許令波. 深入分析Java Web技術(shù)內(nèi)幕(修訂版)[M]. 北京: 電子工業(yè)出版社, 2014.
Nicholas S. Williams. Java Web高級(jí)編程 [M]. 王肖峰, 譯. 北京: 清華大學(xué)出版社, 2015.
孫衛(wèi)琴. Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解(第3版)[M]. 北京: 電子工業(yè)出版社, 2019.
郭霖. 第一行代碼Android(第3版)[M]. 北京: 人民郵電出版社, 2020.
歐陽(yáng)燊. Android Studio開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到App上線(第2版)[M]. 北京: 清華大學(xué)出版社, 2018.
Dmitry Jemerov, Svetlana Isakova. Kotlin實(shí)戰(zhàn) [M]. 覃宇 等, 譯. 北京: 電子工業(yè)出版社, 2017.
Kristin Marsicano, Brian Gardner, Bill Phillips, Chris Stewart. Android編程權(quán)威指南(第4版)[M]. 王明發(fā), 譯. 北京: 中國(guó)工信出版集團(tuán), 人民郵電出版社, 2021.
劉望舒. Android進(jìn)階之光(第2版)[M]. 北京: 電子工業(yè)出版社, 2021.
鄧凡平. 深入理解Android: Java虛擬機(jī)ART [M]. 北京: 機(jī)械工業(yè)出版社, 2019.
任玉剛. Android開(kāi)發(fā)藝術(shù)探索[M]. 北京: 電子工業(yè)出版社, 2015.
林學(xué)森. 深入理解Android內(nèi)核設(shè)計(jì)思想(上、下冊(cè))(第2版)[M]. 北京: 人民郵電出版社, 2017.
何紅輝, 關(guān)愛(ài)民. Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)(第2版)[M]. 北京: 人民郵電出版社, 2017.
Christian Keur, Aaron Hillegass. iOS編程(第6版)[M]. 王風(fēng)全, 譯. 武漢: 華中科技大學(xué)出版社, 2019.
張益琿. Swift 4從零到精通iOS開(kāi)發(fā)[M]. 北京: 清華大學(xué)出版社, 2019.
Aaron Hillegass, Mikey Ward. Objective-C編程(第2版)[M]. 王蕾 等, 譯. 武漢: 華中科技大學(xué)出版社, 2015.
Matthew Mathias, John Gallagher. Swift編程權(quán)威指南(第2版)[M]. 陳曉亮, 譯. 北京: 人民郵電出版社, 2017.
Kazuki Sakamoto, Tomohiko Furumoto. Objective-C高級(jí)編程:iOS與OS X多線程和內(nèi)存管理[M]. 黎華, 譯. 北京: 人民郵電出版社, 2013.
Erica Sadun. iOS Auto Layout開(kāi)發(fā)秘籍(第2版)[M]. 孟立標(biāo), 譯. 北京: 清華大學(xué)出版社, 2015.
琿少. iOS性能優(yōu)化實(shí)戰(zhàn)[M]. 北京: 電子工業(yè)出版社, 2019.
羅巍. iOS應(yīng)用逆向與安全之道[M]. 北京: 機(jī)械工業(yè)出版社, 2020.
Gaurav Vaish. 高性能iOS應(yīng)用開(kāi)發(fā)[M]. 梁士興 等, 譯. 北京: 人民郵電出版社, 2017.
劉浩. MATLAB R2020a完全自學(xué)一本通 [M]. 北京: 電子工業(yè)出版社, 2020.
天工在線. MATLAB 2020從入門到精通 [M]. 北京: 中國(guó)水利水電出版社, 2020.
苗志宏, 馬金強(qiáng). MATLAB面向?qū)ο蟪绦蛟O(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2014.
徐瀟, 李遠(yuǎn) . MATLAB面向?qū)ο缶幊獭獜娜腴T到設(shè)計(jì)模式(第2版)[M]. 北京: 北京航空航天大學(xué)出版社, 2017.
王文峰 等. MATLAB計(jì)算機(jī)視覺(jué)與機(jī)器認(rèn)知[M]. 北京: 北京航空航天大學(xué), 2017.
楊淑瑩, 鄭清春. 模式識(shí)別與智能計(jì)算——MATLAB技術(shù)實(shí)現(xiàn)(第4版)[M]. 北京: 電子工業(yè)版社, 2019.
Eric Matthes. Python編程:從入門到實(shí)踐(第2版)[M]. 袁國(guó)忠, 譯. 北京: 人民郵電出版社, 2020.
Magnus Lie Hetland. Python基礎(chǔ)教程(第3版)[M]. 袁國(guó)忠, 譯. 北京: 人民郵電出版社, 2018.
Luciano Ramalho. 流暢的Python [M]. 安道 等, 譯. 北京: 人民郵電出版社, 2017.
Brett Slatkin. Effective Python:編寫高質(zhì)量Python代碼的90個(gè)有效方法(第2版)[M]. 愛(ài)飛翔, 譯. 北京: 機(jī)械工業(yè)出版社, 2021.
Jan Erik Solem. Python計(jì)算機(jī)視覺(jué)編程[M]. 朱文濤 等, 譯. 北京: 人民郵電出版社, 2014.
Andreas C. Müller. Python機(jī)器學(xué)習(xí)基礎(chǔ)教程[M]. 張亮, 譯. 北京: 人民郵電出版社, 2018.
魏坤. Julia語(yǔ)言程序設(shè)計(jì)[M]. 北京: 機(jī)械工業(yè)出版社, 2018.
郝林. Julia編程基礎(chǔ)(第2版)[M]. 北京: 人民郵電出版社, 2020.
Ben Lauwens, Allen B. Downey. Think Julia [M]. Sebastopol: O’Reilly,2019.
Jalem Raj Rohit. Julia Cookbook [M]. Birmingham: PacktPublishing, 2018.
Zacharias Voulgaris. Julia數(shù)據(jù)科學(xué)應(yīng)用 [M]. 陳光欣, 譯. 北京: 人民郵電出版社, 2018.
朱紅慶. Julia機(jī)器學(xué)習(xí)核心編程:人人可用的高性能科學(xué)計(jì)算[M]. 北京: 電子工業(yè)出版社, 2019.
Norman Matloff. R語(yǔ)言編程藝術(shù)[M]. 陳堰平, 譯. 北京: 機(jī)械工業(yè)出版社, 2013.
Andy Nicholls, Richard Pugh, Aimee Gott. R語(yǔ)言入門經(jīng)典[M]. 姜佑 等, 譯. 北京: 人民郵電出版社, 2018.
Robert I. Kabacoff. R語(yǔ)言實(shí)戰(zhàn)(第2版)[M]. 王小寧 等, 譯. 北京: 人民郵電出版社, 2016.
Hadley Wickham. 高級(jí)R語(yǔ)言編程指南[M]. 潘文捷 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2020.
Brett Lantz. 機(jī)器學(xué)習(xí)與R語(yǔ)言(第2版)[M]. 李洪成 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2017.
程乾, 劉永, 高博. R語(yǔ)言數(shù)據(jù)分析與可視化從入門到精通[M]. 北京: 北京大學(xué)出版社, 2020.
周偉明.程序員的十層樓(一、二、三)[J]. 程序員, 2009(6):134-136;2009(7):118-120; 2009(8):134-136.文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-602404.html
注:本文版權(quán)歸作者個(gè)人所有,如需轉(zhuǎn)載請(qǐng)聯(lián)系作者,未經(jīng)授權(quán)不得轉(zhuǎn)載。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-602404.html
到了這里,關(guān)于軟件的開(kāi)發(fā)工具包(SDK)與集成開(kāi)發(fā)環(huán)境(IDE)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!