2013-01-08 141 views
0

我一直在研究一個想法,並且需要通過某個人來運行它,看看我是否已經走下了深淵。Git和混淆代碼

我正在做一個體面複雜的PHP項目,我是唯一的開發人員。我們正在尋找其他人來幫助編程,但不希望他們在第一天看到所有內容。在「核心架構」和「非核心」之間有一條非常清晰的界限。我希望新人能夠閱讀和修改「非核心」部分。核心部分是非核心工作所必需的。

我的計劃ID這樣的:

  1. 使核心和非核心部分分開Git倉庫
  2. 使核心部分的非核心
  3. 一個子模塊添加一個post-commit鉤子來核心存儲庫,運行代碼混淆

然後,當子模塊更新時,文件將執行,但將很難閱讀。

#1和#2很容易。但#3 ......我不知道它是否可以完成。我正在研究git的內部,看看這些文件是如何存儲的,但是好像它們只是存儲在文件系統中。因此,沒有任何方法可以編輯它們並添加混淆而不會完全摧毀「良好」副本。話雖如此,我總是可以在那裏菊花鏈另一個回購。

良好關係 - >核心回購(有混淆) - >非核心

我只是想知道是否有這樣做一個更清潔的方式。


只是另一個想法,但我不能使用混淆代碼的存儲庫。而是讓git commit hook調用一個腳本來複制和混淆Core代碼,並將其放置在非核心代碼庫中。添加一個.getignore,以便該文件夾不是非核心代碼庫的一部分。

+0

可能完全不在話題中,但可以將核心功能作爲一組服務/ API公開。 – cmbuckley

+0

是的,感謝這個想法,但是那裏有很多代碼,而我沒有時間去做那樣的重寫。我仍在努力將其全部切換到OOP! – Beachhouse

+0

如果確實有一條「非常清晰的線條」,那麼不應該太難做。 – hd1

回答

1

將核心功能公開爲Web服務並通過HTTP訪問它們。將非核心位保留在存儲庫中。

+0

核心代碼是性能敏感的,就像數據庫連接,跟蹤,調試一樣,增加的開銷會太多。謝謝你的評論! – Beachhouse

+2

意見:海事組織,你應該信任你的開發者的來源。與別人的黑匣子合作令人沮喪;你這兩個隱藏它的傷害。它會節省你的時間,給他們工具來回答任何問題。如果這不是一個令人信服的論據,那麼我會採取這種方法:混淆將是一個真正的頭痛。如果您在運行on_的同一臺機器上訪問您的服務,我認爲您應該沒問題。本地請求/響應應該由內核處理而不觸及網絡。 – Matt