代码烂一般有两个意思,一是格式乱,该有的空格没有,命名混乱,二是算法落后。看题主说的应该是前一种,这种问题的产生有几个原因,一是个人原因,老程序猿个人非常懒散,二是老程序猿的第一家公司不好,程序猿的第一家公司对程序猿的编码风格影响很大,三是当前公司不好,没有代码规范,没有code
review,四是历史原因,代码经历了好多人的手,风格很不统一,但是还能用,所以老程序猿懒得改了,怕引发其他问题。
当你把代码清洁当作目的时,就是恶习了。为什么会存在代码洁癖,究其根本,是我们对“维护代码”这种让人抓狂的事情的实际需求,让我们越来越注意到清洁的重要。比如说 1 == a 这个,如果从来没有把 a == 1 写错成过 a = 1 导致你调式很长时间过,恐怕这个人能难把这个纳入到他的洁癖范畴内,即使他对空格的使用要求近乎苛刻。在我的圈子里面,一直有很多搞单片机的的。这些人主业是做电子甚至是机械的,当需要一个控制器的时候,会用单片机写一些非常小的程序来实现控制。我发现在这个圈子里面,就几乎没有代码洁癖的人,别说洁癖了,代码的基本清洁都看不到,即使这个人在做电路板的时候一板一眼。为什么?因为没有需求,代码本身长度都很小,而且都是写过无数遍的基本套路,甚至大段大段的代码都是用辅助工具直接生成的;这些代码对他们来说,多乱都很难写错,并切,最重要的,这些代码几乎都不需要维护,因为功能简单,程序就是可以做到没有BUG,需要升级的时候也很少。混乱的代码,于他们的工作效率,几乎没有什么影响;相反,由于开发环境难以想象的简陋,整理代码会浪费他们大量时间。既然代码洁癖是由需求引起的,那么我们来反思一个问题:我们做的和我们需要的一致么?其实问题问出来的时候,相信大家有答案了,既然用到了“洁癖”,肯定代表“做多了”,《编程之道》这本故事书里面有个有趣的小故事:一个初学者被要求编写一个财务软件。他疯狂地工作了很多天,但他的主管检视他的程序时发现,它写了一个编辑嚣,一个图形程序集,和人工智能的界面,但是看不到任何跟财务有关的东西。主管要求解释时,程序员被激怒了:你太没耐心了,我会在最后写财务的部分。这就是一个典型程序员在干的事情,所有的优秀程序员都要经历这样的阶段,过度设计、过度优化、过度使用技巧等等等等,因为我们就是这样的群体,对这些的追求就是我们学习编程提高自己的动力,所以我们必然会经历这样的事情
电源的控制单元(ECU)有以下作用
其一是: ECU控制和管理电源和与之相关的设备
(PSU单元、电池、交流连接单元、风扇、加热器、冷气机和热交换设备),并调节机箱内的气候情况以保证设备的工作系统能够正常运作。
其二是:实现热交换机完成机箱内外的热气流的交换。 ECU能够在电源故障和突然变冷时对设备进行保护,它通过传送机箱内部、外部的温度和湿度并调节机箱内部的温度和湿度来控制热交换机、加热器、风扇和电源等设备,这样保证这些设备能够安全工作。ECU单元通过温度传感器来管理机箱的温度,只有在正常的温度范围内设备的电源才能够接通。 ECU 通过监测电力和空气温度调节系统的告警信号,起到保护RBS 内部的设备作用以免降低其寿命及可靠性。
其三是:机架上有2组温度计:出风口与机架座,前者用于测外部温度,后者用于测内部温度,此两者用于比较并驱动风扇转速。对于宏蜂窝RBS2202机架,一般只执行对FAN的控制,依据是各个RU(替换单元)内的温感器,并通过FCU来执行。
因为不太了解你的思路 所以看代码很费劲 你的问题是 没有处理数组下标越界 还有就是 下子的时候 应该首先判断这里是否已经有子 然后再做下一步判断 我只是简单修改了下数组下标越界的问题 还有 判断这里是否已经有子,是否可以下白子 的问题 目前至少是没有异常了 但是是否可以下黑子 我没有时间仔细看你代码 你自己改下就可以了 至于黑白子 相互吃子的逻辑处理 你在修改完以上问题之后 测试下 看看有没有混乱的问题 有的话 再说…… import javaawtColor; import javaawtGridLayout; import javaawteventActionEvent; import javaawteventActionListener; import javaxswingJButton; import javaxswingJFrame; import javaxswingJMenu; import javaxswingJMenuBar; import javaxswingJMenuItem; public class AppleChess extends JFrame implements ActionListener { private JButton[][] button = new JButton[8][8]; public AppleChess() { super("苹果棋"); thissetSize(600, 600); thissetBackground(ColorlightGray); thissetLocation(300, 240); thissetLayout(new GridLayout(8, 8)); thissetDefaultCloseOperation(EXIT_ON_CLOSE); for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { button[i][j] = new JButton(); button[i][j]setBackground(Coloryellow); thisadd(button[i][j]); button[i][j]addActionListener(this); } } button[3][3]setBackground(Colorblack); button[3][4]setBackground(Colorwhite); button[4][3]setBackground(Colorwhite); button[4][4]setBackground(Colorblack); thissetVisible(true); JMenuBar menubar = new JMenuBar(); //创建菜单条 thissetJMenuBar(menubar); //将菜单条加入到面板中 JMenu menu1 = new JMenu("文件"); //创建菜单 JMenu menu2 = new JMenu("换肤"); menubaradd(menu1); //在菜单条中添加菜单 menubaradd(menu2); JMenuItem item1 = new JMenuItem("退出"); JMenuItem item2 = new JMenuItem("蓝"); JMenuItem item3 = new JMenuItem("红"); JMenuItem item4 = new JMenuItem("黄"); menu1add(item1); menu2add(item2); menu2add(item3); menu2add(item4); } public void setUserColor(JButton bt) { btsetBackground(Colorwhite); } public void setComputerColor(JButton bt) { btsetBackground(Colorblack); } public Color getColor(JButton bt) { return btgetBackground(); } //find the near two Buttons public int findUpButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -2; for (int m = a - 1; m >= 0; m--) { Color c = getColor(button[m][b]); if (c == Coloryellow) { c2 = 0; } else if (c == Colorwhite) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (a - m > 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; continue; } } return mark; } public int findDownButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = a + 1; m < 8; m++) { Color c = getColor(button[m][b]); if (c == Coloryellow) { c2 = 0; } else if (c == Colorwhite) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (m - a > 1) { mark = m; break; } else { mark = -1; break; } } else { mark = -1; } } return mark; } public int findLeftButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = b - 1; m >= 0; m--) { Color c = getColor(button[a][m]); if (c == Coloryellow) { c2 = 0; } else if (c == Colorwhite) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (b - m > 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; } } return mark; } public int findRightButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = b + 1; m < 8; m++) { Color c = getColor(button[a][m]); if (c == Coloryellow) { c2 = 0; } else if (c == Colorwhite) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (m - b > 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; } } return mark; } public int findLeftUpButton(int a, int b, int co) { int color = co; int c2 = -1; int mark = -1; for (int m = a - 1, n = b - 1; m > 0 && n > 0; m--, n--) { Color c = getColor(button[m][n]); if (c == Coloryellow) { c2 = 0; } else if (c == Colorwhite) { c2 = 1; } else { c2 = 2; } if (c2 == 0) { mark = -1; break; } else if (c2 == color) { if (a - m > 1) { mark = m; } else { mark = -1; } break; } else { mark = -1; } } return mark; }
以上就是关于怎么有的老程序员的代码写得还那么烂全部的内容,包括:怎么有的老程序员的代码写得还那么烂、程序员的代码洁癖在什么情况下是一种恶习、造成ECU程序混乱的原因等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)