代码重构是一件非常辛苦却非常有意义的事情,代码重构的原因在于:

1、代码过于冗余、沉余

2、代码过于耦合

3、代码过于复杂

4、接口调用超出三层

这次重构主要在于架构问题,自己没有画出实现整个项目的功能,逻辑实现与接口定义,就猴急猴急的写起的代码,之后发现写的代码很low,连自己都看不下去,最终走向重构之路!

这次重构也让我知道有一个好的架构,理解功能,想清楚功能实现的具体逻辑,接口定义的规范,还有很多很多.......   so import!!!

本次重构项目是B/S架构,服务端为django+Python,这次重构过程中,先从功能的逻辑为出发点,编写具体的接口以及实现的逻辑,遇到问题有:

1、接口名称定义

2、逻辑如何实现,达到最优化

3、接口与接口之间的调用

重构后,代码比之前好多,没有那么凌乱,还是不够好,我想继续努力,那么就要清楚下一步需要什么?

1、代码设计

2、代码规范

3、代码命名

代码原则:

1、函数名称不能太长,(while/for/if)嵌套层次不要太深

2、函数名称声明尽量合理、简单,函数的参数不宜过多;例如函数名、函数的参数

3、一个函数只干一件事

11月份全力解决两件事:

1、学习且能够设计架构

2、代码设计规范

3、代码命名与参数

学习方式:

1、在GitHub上查找相关Python工程代码,仔细阅读工程代码结构

2、学习他们命名名称,自己学着练习

3、练习Python 常用模块

Python开发知识架构图(图片来源互联网)

python重构函数_Python代码重构相关推荐

  1. python代码重构技巧_Python代码重构

    代码重构是一件很是辛苦却很是有意义的事情,代码重构的缘由在于:django 一.代码过于冗余.沉余架构 二.代码过于耦合函数 三.代码过于复杂学习 四.接口调用超出三层优化 此次重构主要在于架构问题, ...

  2. python agg函数_Python Pandas Series.agg()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas Series.agg()用 ...

  3. .NET重构—单元测试的代码重构

    阅读目录: 1.开篇介绍 2.单元测试.测试用例代码重复问题(大量使用重复的Mock对象及测试数据) 2.1.单元测试的继承体系(利用超类来减少Mock对象的使用) 2.1.1.公用的MOCK对象: ...

  4. 系统重构的原则代码重构的原则

    作者:[美]马丁•福勒(Martin Fowler) 译者:熊节, 林从羽 前一章所举的例子应该已经让你对重构有了一个良好的感觉.现在,我们应该回头看看重构的一些大原则. ##2.1 何谓重构 一线的 ...

  5. 【Java设计模式 规范与重构】 六 代码重构小结

    最近趁着学习劲头足,如饥似渴的把代码重构部分也学习完了,可以说9月份属实非常充实,貌似也只有学习才能导致生活没有那么无聊. 代码重构博客目录 序号 文章列表 1 [Java设计模式 规范与重构] 一 ...

  6. python nums函数_Python函数

    一.简介 函数是可重用的程序代码块.函数的作用,不仅可以实现代码的复用,更能实现代码的一致性.一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现. 函数用关键字def来定义,def关 ...

  7. python编程函数_python编程中函数和参数你必须知道的

    今天我们先聊少一点,就聊聊函数是什么和函数的参数,以及对这两个东西的思考 起源于抽象 在程序员写代码的时候,通常都会提到一个词叫抽象, 很多人都知道在面向对象中,将一个对象抽象为一个类,其实这就是我们 ...

  8. python not函数_python 函数

    1 为什么使用函数 在没有接触函数时,有时候需要将一个功能多次写,如果需要修改其中一个变量,则需要把所有实现该功能的代码一处一处改.不利于代码维护,代码量大了,组织结构也会很不清晰. 所以总结不使用函 ...

  9. python include函数_python 库函数

    python的内建函数和库函数的区别是什么? [区别]:标准库函数都需要import xxx才能取得.内建函数都在__builtins__里面,在global里直接就能用. [补充]:1.python ...

最新文章

  1. 华为linux笔记本开售,华为 MateBook D Linux 版明天开售 一种价格两种版本
  2. jQuery :nth-child前有无空格的区别
  3. 本周学习总结(ng-zorro/MDN索引/读书笔记)
  4. ASP.Net MVC 在ajax接收controller返回值为Json数据
  5. 蓝港CIO韩明顺谈零售数字化转型:面向体验、玩转数据
  6. 视频光端机常见故障问题及处理方法大全
  7. 霍尼韦尔dcs系统组态手册_DCS和PLC有“血缘关系”吗?
  8. c语言按位取反 补码,按位取反运算符,数值取反之后是反码,还是补码- -
  9. 1 操作系统安全加固
  10. php做一个微信退款,php实现微信支付之退款功能
  11. netbeans使用git_如何在我的NetBeans IDE中设置github存储库?
  12. 全球资产管理平台提供商:Charles River Development 应用
  13. 树莓派 安装谷歌拼音输入法(树莓派官方版系统、基于Debian)
  14. 有什么优质的计算机专业书籍?操作系统、计算机网络、计算机组成、数据结构、数据库.....
  15. SSM整合-内涵基本SSM开发基本结构框架
  16. 企业路由器和办公室局域网无线路由器设置
  17. ShareREC for iOS录屏原理解析
  18. 使用jQuery实现五星好评
  19. C语言位操作的神应用(位操作)
  20. 高并发下的幂等策略分析

热门文章

  1. 部署Dotnet Core应用到Kubernetes(一)
  2. 今天的你,又被带节奏了吗?
  3. 【Azure Show】|第三期 人工智能大咖与您分享!嘉宾陈海平胡浩陈堰平
  4. .NET Core3.0创建Worker Services
  5. 如何优雅地替换一个实现
  6. 你可以保持沉默,但你所说的一切都将成为呈堂证供——浅谈Azure WORM保护
  7. NetCore下模拟和使用Modbus工业通信协议
  8. .net core 上 K8S(三)Yaml文件运行.netcore程序
  9. ASP.NET Core 2.0利用MassTransit集成RabbitMQ
  10. [翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Visual Studio