我是一個用於研究的大型C++庫(我是博士生)的獨奏開發人員。比方說,庫有一堆實現酷算法的類:Algorithm1
,Algorithm2
等。然後,我編寫了一堆C風格的函數,它們是獨立的「腳本」,它們使用庫來測試最近添加的功能,或者運行模擬作品,然後包含我非常精彩的(我拒絕)期刊出版物。該庫的設計遵循良好的軟件工程原理(盡我所知),但連接來自main.cpp
的庫的「腳本」除了「完成工作」之外不遵循任何原則。編寫C++「腳本」
我現在在單個文件(20,000多行代碼)中有超過300個這樣的「腳本」。我沒有問題,我仍然非常有生產力,而這纔是最終的目標。但我想知道這種方法是否存在我剛學過的主要弱點。
// File: main.cpp
#include <cool_library/algorithm1.h>
#include <cool_library/algorithm2.h>
...
#include <cool_library/algorithmn.h>
void script1() {
// do stuff that uses some of the cool library's algorithms and data structures
// but none of the other scriptX() functions
}
void script2() {
// do stuff that uses some of the included algorithms and data structures
}
...
// Main function where I comment in the *one* script I want to run.
int main() {
// script1();
// script2();
// script3();
...
script271();
return 0;
}
編輯1:有幾個目標,我在這個過程中:
- 儘量縮短啓動一個新的腳本功能的時間。
- 使我的指尖上的所有舊腳本功能可用於搜索。所以我可以複製並粘貼這些腳本的一部分到一個新的。記住這是不是應該是其他人使用的好設計。
- 我不關心腳本文件的編譯時間,因爲它在一秒鐘內編譯,因爲它現在有20,000行代碼。
我使用Emacs作爲我的「IDE」的方式,在Linux中使用的Autoconf/Automake腳本/ Libtool程序過程中建立圖書館和腳本。
編輯2:基於這些建議,我開始懷疑在這種情況下部分提高生產力的方法不是重構代碼,而是定製/擴展IDE的功能(我的Emacs案件)。
什麼是您的博士學科? (在什麼領域)?你想讓其他人使用你的圖書館嗎? –
這是用於優化無線網絡各個方面的算法集合。以下是我發佈的示例文章:http://goo.gl/lRXtP我希望其他人使用該庫,但「腳本」功能不是庫的一部分,它們基本上是單獨使用庫的單個示例。 –
然後,我認爲我使用一些真正的腳本語言的建議是有道理的。 –