File tree Expand file tree Collapse file tree 3 files changed +4
-4
lines changed
Expand file tree Collapse file tree 3 files changed +4
-4
lines changed Original file line number Diff line number Diff line change 1111
1212How to select datastructures for ADT
13131. Dose the data structure provie for the storage requirements as specified by the domain of the ADT?
14- 2. Does the data structure provide the data access and manipulation functionality to fully implement the ADT?
14+ 2. Does the data structure provide the data access and manipulation functionality to fully implement the ADT?
15153. Effcient implemention? based on complexity analysis.
1616
1717下边代码是个简单的示例,比如实现一个简单的Bag类,先定义其具有的操作,然后我们再用类的magic
Original file line number Diff line number Diff line change @@ -117,7 +117,7 @@ update: 经验表明,TDD未必是必要的,但是单元测试是很必要的
117117
118118* KISS原则,Keep It Simple, Stupid。能简单的绝对不要复杂,不要炫耀代码技巧,简单可读最重要,后人会感谢你的。
119119* DRY原则。就算咱不懂设计模式,只要代码复杂重复了就及时抽取出来,至少不会碰到大问题。当然不要矫枉过正,过度追求设计和通用可能导致难以维护和理解。
120- * YAGNI(You Aren't Gonna Need It),不要猜测性编码,不用的及时删除,估计以后也不太可能会用到。
120+ * YAGNI(You Aren't Gonna Need It),不要猜测性编码,不用的及时删除,估计以后也不太可能会用到,冗余的无用代码会给维护者带来很多混淆和麻烦 。
121121* 快速失败,灵活使用断言。契约式编程(先验条件和后置条件),越早失败,越容易排查错误。
122122* 及时清理技术债务,防止『破窗』。
123123* 隐藏复杂性。如果复杂性避免不了,应该尽让内部复杂,接口要保持简单易用,而不要因为业务逻辑复杂就堆砌一堆shit.
@@ -152,7 +152,7 @@ python代码坏味道(新手经常犯的错误)
152152风格相关:
153153
154154- 不pythonic,写得很业余(随意),真就信了半天学会python。笔者写代码强制用pep8和pylint检测代码,除了一些无伤大雅的提示(比如行长度超过80),其他错误和提示全部消除。一开始比较痛苦,习惯了能大幅提升代码规范性。
155- - 上来就整一个不知道啥意思的magic number,大学老师没教你不要滥用幻数?使用Enum或者dict都能替代掉无意义的幻数。
155+ - 上来就整一个不知道啥意思的magic number,大学老师没教你不要滥用幻数?使用Enum或者dict都能替代掉无意义的幻数。总有人偷懒使用幻数,别人看懵逼的。
156156- 上来就 `from shit import *, ` 为了偷懒有可能会导致同名覆盖问题,还会让开发工具找不到定义,工程上不要这么用。
157157- 包导入顺序混乱,没有按照pep8要求,实际上rope等工具能自动帮你整理顺序,我现在就是偷懒随意写,直接让rope给我整理。(标准库,三方库,本地库,同级按照字典序,vim的话可以用rope插件自动整理顺序)
158158- 导入最好按照模块导入,使用的时候用module.func使用,防止from module import func可能导致的循环引用。
Original file line number Diff line number Diff line change @@ -1430,7 +1430,7 @@ Peters在2002年设计的结合了合并排序和插入排序的\ `Timsort <http
14301430
14311431面向过程与面向对象
14321432--------------------------------------
1433- 设计模式讲完了,来看看python中OOP的相关东西。笔者在经历过的两家公司见到过各种python程序员,之前的公司有python高手习惯写OOP风格的,现在同事基本用的基本是过程式的。
1433+ 设计模式讲完了,来看看python中OOP的相关东西。
14341434
14351435- 过程式: 基本都是一个个函数(function)来实现功能,你给我一些参数,我对参数做出各种操作,返回需要的结果。
14361436- 面向对象:把资源抽象成一个类,数据(data)和方法(method)的集合。在构造函数中进行数据属性的初始化,在方法中进行对象数据的各种操作。实际在python里,一切皆对象。
You can’t perform that action at this time.
0 commit comments