我打算将此存储库用作练习游乐场(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;
(此处列出的工具可能特定于某些语言)