杂记

最后更新于:2022-04-01 05:01:44

### 编程原则 - 我的观点是:对于三种标准的结构化编程结构(顺序、选择、迭代)之外的任何控制结构的使用—也就是说,使用break, continue, return, throw–catch—都要持一种批判的态度。 —–Steven McConner ### 计算子程序中决策点的数量的技术: - 从 1 开始, 一直往下通过程序; - 一旦遇到以下关键字, 或者同类的词, 就加1:if, while, for, repeat, and, or - 给case子句中的每一种情况都加1. ### 如何处理复杂度的度量结果: - 0-5 子程序可能还不错. - 6-10 得想办法简化子程序. - 10+ 把子程序的某一部分拆分成另一个子程序并调用它. ### 如何对待代码复审(详查)? - 你应该承认每一个所谓的缺陷, 然后继续详查. 承认一个批评并不意味着你认同批评的内 容. - 在复查工作中, 你不应该试图为正在被检查的工作辩护. - 在复查之后, 你可以独自对每一个问题进行思考, 判断它是否真的是一个缺陷. —– Steven McConner << Code Complete 2nd>> ### 如何修正坏习惯? 不能用”没有习惯”来代替”坏习惯” – 这就是人们骤然停止吸烟,停止咒骂或者停止多食是会很难受的原因.除非有了代替方法, 如嚼口香糖. 以新习惯来取代老习惯, 要比干脆戒除老习惯容易. ```java ——-Steven McConnel private String convertCourse(double course) { int c = (int) course / 90; double y = course % 90; String yf = nft.format(y); String[][] directions=new String[][]{new String[]{"正北","北偏东"}, new String[]{"正东","东偏南"}, new String[]{"正南","南偏西"}, new String[]{"正西","西偏北"}}; int d=(y==0.0? 0:1); return directions[c][d]+(d==0?"":yf+"度"); } private String convertCourse(double course) { int c = (int) course / 90; double y = course % 90; String yf = nft.format(y); if (0 == c && 0 == y) { return "正北"; } else if (0 == c) { return "北偏东" + yf + "度"; } if (1 == c && 0 == y) { return "正东"; } else if (1 == c) { return "东偏南" + yf + "度"; } if (2 == c && 0 == y) { return "正南"; } else if (2 == c) { return "南偏西" + yf + "度"; } if (3 == c && 0 == y) { return "正西"; } else if (3 == c) { return "西偏北" + yf + "度"; } return "--"; } ```
';