# 貢獻指南 CONTRIBUTING
[歡迎提交代碼,任何貢獻者都會被銘記。](#jumpGX)
## 如何貢獻?
去 GitHub 提出 拉取申請(pull request)
**代碼應符合以下要求:**
- 已經在項目中使用過。
- 為保證質量,不要提交未使用的代碼。
- 不使用 #Include ,只使用 BeanLib 中的已有函數。
- 為保證其他人可以正常使用,應在獨立環境中測試。
- 不污染公共空間。
- 不使用全局變量(類對象/函數除外),不干擾自動執行。
- 之所以類對象和函數可以除外,是因為占用這些是安全的。函數被重復定義,會發出警告;類復寫在 `#Warn` 中有單獨警告。
- 有簡單的介紹。
- 至少有功能/輸入/返回值介紹,最好有示例,請使用MD語法,可參考[文檔模板](http://www.hmoore.net/xrvu_zen/ahk_lib/902299)。
- 支持 AHK_L
- 請不要使用其他分支的特有語法或函數。
- 禁止觸發除 `LocalSameAsGlobal` 外的任何 `#Warn` 警告
- 之所以 `LocalSameAsGlobal` 可以,是因為這個實在是太操蛋了。誰用這玩意?簡直反人類,我一般都關掉。
- 禁止使用一切 `魔法數值` 。
- 魔法數值,指的是沒有實現定義的任何數值。
- 使用魔法數值會損害可讀性。
### 一些建議和提醒
- 維護者和貢獻者,應在關鍵決策上,盡可能征詢公共意見。
- 如有借鑒他人代碼,提供出處。
- 盡可能使用函數語法。
- 代碼將在 LGPLv3 協議的保護下被發布。
- LGPLv3是使用最廣泛的開源協議。
## <span id="jumpGX">貢獻者信息在哪?</span>
- [GitHub頁面的 Insights/contributors](https://github.com/Oilj/BeanLib/graphs/contributors) 。
- [碼云 的"貢獻者"頁面](https://gitee.com/xrvu_zen/BeanLib/repository/stats/master)。
- 指南 (README)
- 常見問題 (FAQ)
- 更新歷史(CHANGELOG)
- 貢獻指南 (CONTRIBUTING)
- 開源協議 (LICENCE)
- 鳴謝 (ACKNOWLEDGEMENT)
- 文檔模板 (TEMPLATE)
- 新手指南(BEGINNER_GUIDE)
- 語法高亮(HIGHLIGHTING)
- Class
- _Container
- _EX
- _List
- _Map
- _Win
- _Wins
- BeanEnum
- HotString
- HotStringMaps
- InvisibleCharacter
- JSON
- JsonFile
- Method
- ObservableMap
- ObservableObj
- WinEvent
- Timer
- MesToast
- APPLocker
- AutoClassify
- Everything
- Function
- Ini
- AutoInputBox
- ParaChecker
- PathObj
- RunningSpeedTest
- Script
- Switcher
- Stack
- TimeChecker
- Type
- UMSS
- Function
- assert()
- Analyze()
- AnalyzeClassName()
- AutoBind()
- bulkMoveFile()
- ExcelToList()
- getClass()
- getCurrentTime()
- getFunc()
- Instanof()
- InstanceCheck()
- loadMethod()
- LogPrintln()
- rawCall()
- RandomStr()
- showObj()
- Type()
- throwWithSt()
- UseCMD()
- ObjDump()
- Test
- ObjLoad()
- StringMethod
- TypeClass
- MapFactory()