我打算將此存儲庫用作練習遊樂場(KATA),並提醒一些常見,簡單但功能強大的算法。在這裡,我將使用Clojure傳感器,這是處理序列的絕佳電動工具。雖然該文檔似乎詳盡,但我打算將其用作我需要學習的任何時間都可以回來的列表。我還沒有實施此處列出的所有內容。

這裡的代碼不是我將用於專業編碼的樣式的形狀。每個團隊都有關於代碼風格的文化和意見,最好堅持這些常見的準則。此外,代碼主要旨在由其他人閱讀,否則我們所有人都將在組裝中進行編碼,如果我們僅針對機器讀者群體,則可以最大程度地績效。作為團隊的一部分,我編寫的代碼可能是該團隊中其他任何人都可以寫的。
此處的代碼是用雜物編程編寫的,這要歸功於Emacs和org模式。這意味著用Clojure編寫的代碼是從解釋其背後原因的文本文件中得出的。我希望它使閱讀更容易。
./dev-resources/new-problem.sh
--problem-path neetcode_practice_2024/arrays_and_hashing/problem_4_anagram_groups參見--help 。
當初始化腳本完成後,建議的測試命令將出現在最後:
poetry run ptw -- --
src/neetcode_practice_2024/arrays_and_hashing/problem_4_anagram_groups.py
tests/neetcode_practice_2024/arrays_and_hashing/problem_4_anagram_groups_test.py例如,在開發時觀看測試:
poetry run ptw
poetry run ptw -- -- --memray
poetry run ptw -- -- --benchmark-only
poetry run ptw -- -- --benchmark-skip可能避免了周圍的小舞蹈-- --但我寧願對跑步的方式非常明確,因此我將poetry作為最左翼的陣線爭論。
要獲取內存火焰:
poetry run memray run -m neetcode_practice_2024.arrays_and_hashing.problem_1_contains_duplicate --integer_array " 1, 2, 3, 4 "
poetry run python -m memray flamegraph memray-neetcode_practice_2024.arrays_and_hashing.problem_1_contains_duplicate.554244.bin要獲取CPU FlameGraph(或其他圖):
poetry run python -m cProfile -o program.prof -m neetcode_practice_2024.arrays_and_hashing.problem_1_contains_duplicate --integer_array " 1, 2, 3, 4, 4 "
poetry run snakeviz program.prof運行基準並獲得圖形摘要:
poetry run pytest --benchmark-only --benchmark-histogram算法和數據結構是通過簡單的Restful API暴露的,以進行更現實的設置和更強大的測試:
表現
API負載:加特林,吉米特,蝗蟲;
微標準:JMH,標準;
資源: htop , top , vmstat ;
記憶:objgraph,jamm;
行為
測試:UNITSEST,MOCKITO,基於生成或基於屬性的測試,標準測試庫和實踐;
靜態分析:Sonarqube;
分析:框架圖,CPROFILE,VISUALVM,Spring Boot執行器,JSTACK;
代碼樣式
突變測試:Lein突變,坑,宇宙射線;
代碼覆蓋範圍:Clover,Coverage.py,Jacoco;
代碼指標:ra,checkstyle,jqassistant;
可觀察性:Prometheus,Grafana;
(此處列出的工具可能特定於某些語言)