1、使用的編程語言,選擇該語言的緣由分析,編程經驗(歷史代碼量等)python
如今使用的編程語言是c++。c++
之因此選擇c++是由於大一的時候須要選修一門編程語言課,上面有c程序設計和c++面向對象程序設計兩門課,而後我以爲後者的名字比較高大上並且c++確定比c厲害纔對,否則怎麼能有++。事實證實個人想法是對的,c++確實比c難學不少不少,特別是對於沒有編程基礎的大一新生。以致於大一修完它,在後續的計算物理、數值分析課上的毅然決然選擇了python。大四寫完畢業論文後,我開始思考python畢竟是一門腳本語言,而c++在高級語言當中,處理運行速度是最快的,運行穩定;並且在性能和類層次結構的設計上,c++語言很是靈活,功能很是強大。c++的語法很是嚴謹、精確和數理化,標準定義很細緻,語法思路井井有條、相呼應,語法結構是顯式且明確的。git
在完成畢設後到如今,我接觸的最多的編程語言就是c++,可是因爲時間比較零碎,因此目前尚未什麼項目經驗,主要停留在基礎的數據結構與算法、c++的初級語法上,還沒有深刻地學習如何開發項目。編程經驗主要體如今一些程序設計課程的做業、以及leetcode的算法題上,大都比較基礎,可是基本可以掌握調試、檢索錯誤和警告、設計通常的c++程序,歷史代碼量預估在4000到5000行。目前我將C++做爲主要的學習方向,將PYTHON做爲一種輔助工具。算法
2、使用的集成開發環境,與同類環境的優劣比較編程
我如今用的集成開發環境是CLion,CLion是Jetbrains公司旗下新推出的一款專爲開發C/C++所設計的跨平臺IDE,它是以Java IDE IntelliJ IDEA爲基礎設計的,同時還包含了許多智能功能來提升開發人員的生產力,如能夠智能的進行代碼重構,好比更名,提取類,提取函數等。windows
因爲以前我只在windows平臺上的visual studio和基於Eclipse的Eclipse CDT Project寫過c++的程序,而如今換了macOS系統,沒辦法只能選擇新的IDE,而如今的CLion發展的也很好,愈來愈多的開發者選擇jetbrains全家桶。做爲一名學生,大三的時候我和身邊的不少同窗用PyCharm做爲python的IDE,用戶體驗很好,因此最後我選擇了同公司旗下的CLion,它在Mac OS上作c++開發是最合適的。和其餘開發環境比較的話,Visual Studio是Windows下的最佳選擇,而Eclipse CDT相對來講bug比較多,調試也比較麻煩,兩者在補全、重構功能上比不過CLion;在編輯功能上,特別是代碼提示和搜索功能和JetBrains的產品差一個數量級。CLion具備很是好的智能感知功能,自動摺疊、高亮、自動補全、類型推斷都很好;調試功能很方便,能夠自動解析STL容器;並且跨平臺,支持CMake/gcc/clang/mingw/cygwin/gdb。可是CLion和PyCharm同樣都很吃內存;並且不支持遠程開發調試、沒有測試框架支持;在處理大項目的時候,CLion的表現沒有VS在Windows上那麼出色。服務器
3、使用的版本控制工具和平臺,與集成開發環境的集成度分析,基本的操做介紹,給出代碼倉庫連接和用戶名,給出一個具備屢次提交記錄的項目示例。數據結構
(1)使用的版本控制工具和平臺,與集成開發環境的集成度分析,基本的操做介紹,給出代碼倉庫連接和用戶名,給出一個具備屢次提交記錄的項目示例。框架
(2)目前所用的版本控制工具爲git(https://git-scm.com),版本控制平臺爲碼雲(https://gitee.com),(與集成開發環境的集成度分析)ssh
(3)基本的操做介紹:
git init:在一個文件目錄執行該指令,會把該目錄快速設置成Git的代碼倉庫。
git clone:從遠程服務器clone工程,也會建立一個代碼倉庫。
git add 文件名 或者 git add . :添加文件到倉庫
git commit -m 「這裏是註釋」 :將add的文件添加註釋而且提交到代碼倉庫
git rm ReadMe.txt(文件名) :刪除文件
git stash :暫存
ssh-keygen -t rsa -C yourname@example.com:建立SSH私鑰和公鑰 ,id_rsa私鑰用於驗證本身身份。id_rsa.pub公鑰用於向服務器代表本身的身份。
git remote add:將本地代碼庫提交到遠程倉庫
git push -u origin master:將本地master分支提交到遠程的master分支,並關聯起來。
git clone git地址 :從遠程倉庫clone下來,新建一個本地倉庫。
(4)代碼倉庫連接:(https://gitee.com/li_shao_nan/projects)和用戶名:li_shao_nan,給出一個具備屢次提交記錄的項目示例
4、使用的單元測試框架,描述該框架具備的特點的單元測試功能,給出一個單元測試的示例。
所使用的單元測試框架爲Google Test (簡稱gtest),是一個由 Google 的測試技術團隊開發的測試框架,兼容Linux、Windows和macOS, gtest 支持c++代碼多種類型的測試,包括單元測試。
單元測試(Unit Test)是對軟件基本組成單元(如函數或是一個類的方法)在整個工程運行以前進行的測試,是開發者編寫的一小段代碼,用於檢驗被測試代碼一個很小的、很明確的功能是否正確。在gtest中,一個測試用例(test case)能夠包含一個或多個測試。一個測試程序能夠包含多個測試用例。
(1)首先定義測試函數:使用 TEST() 宏來聲明測試函數:
TEST(GlobalConfigurationTest, configurationDataTest)
(2)經過斷言來檢查條件是否爲真,包括基本斷言、二進制比較、字符串比較等;
ASSERT_* 版本的斷言失敗時會產生致命失敗,並結束當前函數;
EXPECT_* 版本的斷言失敗時產生非致命失敗,但不會停止當前函數。
5、心得體會
因爲對macOS平臺以及Clion編譯環境的不熟悉,沒有提早作好準備工做,致使沒能實現git版本控制以及Google test單元測試。將在後續工做繼續學習,實現以上功能。