You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zj3D d727f0cba2
0521
4 weeks ago
..
.ipynb_checkpoints 0521 4 weeks ago
01 封装.ipynb 0521 4 weeks ago
02 利用语言特性.ipynb 0521 4 weeks ago
03 设计模式.ipynb 0521 4 weeks ago
99 工业级代码.ipynb 0521 4 weeks ago
readme.MD 0521 4 weeks ago
测试驱动开发.ipynb 0521 4 weeks ago

readme.MD

本文旨在通过一个案例(读取 data 目录下 100 篇小说文本,统计词频并输出前 10 高频词)来说明如何提升代码工程质量。 教案将逐步展示不同编程技术的应用,并分析其对代码可读性、可维护性、可扩展性和复用性的提升。

本案例不做性能提升方面的考量。

起点:基础实现

import os

files = os.listdir('data')
word_count = {}
for file in files:
    with open('data/' + file, 'r', encoding='utf-8') as f:
        text = f.read()
        words = text.split()  # 假设简单按空格分词
        for word in words:
            if word in word_count:
                word_count[word] += 1
            else:
                word_count[word] = 1

# 排序并输出前10
sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
for i in range(10):
    print(sorted_words[i])

问题分析

  • 可读性差:没有清晰的功能划分,代码逻辑混杂,难以阅读理解维护。
  • 扩展性差:如果需要更改分词逻辑、文件路径或输出格式,需修改多处代码。
  • 容错性差:未处理文件读取失败、空文件等问题。
  • 复用性低:逻辑无法直接复用在其他类似任务中。