V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
darasion
V2EX  ›  程序员

阅读烂代码的能力也应该经常练习和提高,因为不是所有人都热爱手里的这份工作。

  •  
  •   darasion · 2013-03-23 00:01:33 +08:00 · 5191 次点击
    这是一个创建于 4045 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,
    大家的看法呢?
    第 1 条附言  ·  2013-03-23 22:28:51 +08:00
    现实很不完美.

    就像 @JesseZ 回复中提到,每次看到烂代码的时候,总想重写。可自己最后总是扮演擦屁股角色,吃力不讨好。

    也像 @mengzhuo 说的,确切的说这些人就是不敬业,其实他们常常以为自己很喜欢这样工作,觉得自己做的事情很有价值。他们觉得代码写的工整是傻逼。觉得表面上实现了就是牛逼。

    不管你怎么重构,不管你怎么骂娘。
    习惯写烂代码的永远不会通过别人的提醒认识到自己的问题。

    不管写的怎么烂,永远会有人替他们改好。这才是问题所在。

    所以我想是不是应该故意写的比他们更烂更好一些?
    28 条回复    1970-01-01 08:00:00 +08:00
    qiukun
        1
    qiukun  
       2013-03-23 12:26:30 +08:00
    刚帮妹子改了一上午代码
    yuelang85
        2
    yuelang85  
       2013-03-23 12:41:35 +08:00
    我真的没法理解。不热爱,为什么还要做。。。。
    alexrezit
        3
    alexrezit  
       2013-03-23 12:50:07 +08:00
    @qiukun
    真可怜.
    JesseZ
        4
    JesseZ  
       2013-03-23 13:24:46 +08:00
    阅读烂代码的时候,常常忍不住冲动,把它给重写了……
    shiweifu
        5
    shiweifu  
       2013-03-23 13:31:05 +08:00
    @yuelang85
    「就业」
    yuelang85
        6
    yuelang85  
       2013-03-23 15:09:36 +08:00
    @shiweifu 这俩字我也明白。但是我不明白的是:
    yuelang85
        7
    yuelang85  
       2013-03-23 15:13:01 +08:00
    @shiweifu

    这个快捷键怎么关掉啊。。。。

    一个工作,一天最低也要8小时,如果是程序员,10小时以上都是很正常的。一天才24小时,把一天中最黄金的时间(占了一天的一半),贡献给一个自己不热爱的事情,这不就是浪费生命吗?不管挣多少钱,给家里带来多大财富,这都是补偿补回来的啊。。。。
    alexrezit
        8
    alexrezit  
       2013-03-23 15:58:34 +08:00 via iPad
    @yuelang85
    真相是: 因为他们别的专业考不上被调剂了, 自己又不好好学习.
    yuelang85
        9
    yuelang85  
       2013-03-23 17:58:31 +08:00
    @alexrezit 计算机不好考吧。。。。

    学业!=就业,不喜欢,找工作的时候应该转行啊。如果不喜欢自己做的事情,应该去寻找真正自己想要的。
    mengzhuo
        10
    mengzhuo  
       2013-03-23 21:28:51 +08:00   ❤️ 1
    纯粹是借口!!
    不是热爱程序员这工作,而是根本就不敬业!!

    代码命名用form1,huopin,lianjie,aa也就算了,他喵的错误日志里竟然写着“zhe li chu cuo le”!!!什么玩意啊!!!

    只顾着复制粘贴!!
    Python模块变量和局部变量不清也就算了!!每个函数里粘帖那些常量!!看得眼都花了有没有!!!
    好吧,没能力自己写,复制粘贴那也就算了!!!
    他喵的上班有闲时间不看看优秀的怎么写,上网看搞笑视频,稍微说下他代码不太好,就跳起来骂人!!说你怎么自大,blabla。我表示自己代码也烂,但至少我肯承认,肯改一改好不好!!!

    出了问题就跑来问,我都晕了,日志里明明白白写的错误信息,竟然跟我说看不懂!!!
    更不用说看一手文档了……这个年代的程序员英语少说要6级吧,竟然跟我说4级至今没过!!4级是高中水平啊亲!!个大学生连高中生都不如,真是无言以对了!!

    真心搞不懂这种人是怎么混进我们这个行列的。
    comcuter
        11
    comcuter  
       2013-03-23 23:31:31 +08:00
    因为一个项目大了后,各种人掺合进来,各种代码风格进来,各种奇怪的Bug也就进来了,所以必须时刻提高警惕,一边给别人擦屁股,一边提防着被fu*k.
    ufo22940268
        12
    ufo22940268  
       2013-03-23 23:54:29 +08:00 via iPhone
    不认可,所有烂代码都应该被纠正,只是时间问题。我是一个努力写出好代码的程序员,写出来的客观上好不好就是另一回事了
    wzxjohn
        13
    wzxjohn  
       2013-03-23 23:56:28 +08:00
    @qiukun =。=||||||同道中人啊。。。
    c742435
        14
    c742435  
       2013-03-24 08:23:41 +08:00
    @mengzhuo 表示自己也没过四级不过还是比公司里的大部分程序员水平好些。
    现在转设计方面的工作了……有的时候也指导那些coder如何写程序,这时候会觉得很有面子,又觉得挺神兽的。
    所以是我们公司程序员水平太烂么。
    alexrezit
        15
    alexrezit  
       2013-03-24 08:28:42 +08:00 via iPhone
    @mengzhuo
    哈哈哈以前还以为只有 iOS 开发才有那么多不靠谱程序员.
    mengzhuo
        16
    mengzhuo  
       2013-03-24 13:17:59 +08:00
    @alexrezit
    现实也是,
    我司确实有个连字符串拼接构成SQL IN语句都不会的iOS程序员。
    招他进来的人不知道脑子是什么做的。

    我能管的,我都要求改了,不符合规范的、逻辑混乱的、没有UT的一概重写,虽然进度慢,但总比事后擦屁股强。

    不过,比起不靠谱的队友,我觉得不靠谱的客户和老板才是最可怕的……因为队友,你可以让他成长,而老板和客户……好吧,偏题了
    pepsin
        17
    pepsin  
       2013-03-24 15:59:47 +08:00
    有些人本身思维就不清楚,写出来逻辑就乱七八糟的。

    一般这种人英文水平还不行,就更别指望他们变量名方法名起好起准了。

    入职考算法考偏门语法点不如直接考怎么起方法名,代码怎么写美观这类。
    alexrezit
        18
    alexrezit  
       2013-03-24 18:36:42 +08:00
    @mengzhuo
    那个... SQLite 执行内容直接拼接字符串会被注入的吧?
    darasion
        19
    darasion  
    OP
       2013-03-24 23:32:23 +08:00
    @pepsin 的思路不错哦。。貌似可以在招人的时候实际用一下。
    mengzhuo
        20
    mengzhuo  
       2013-03-25 09:37:17 +08:00
    @alexrezit escape不就好了吗,其实那些高级库还不是各种拼起SQL语句,不要被吓到了
    alexrezit
        21
    alexrezit  
       2013-03-25 09:42:53 +08:00
    @mengzhuo
    iOS 上的 SQLite 是基于 C 的, 应该用 bind 的, 只有 table name 这样不能 bind 的才要自己过滤字符串:

    NSString *update = [NSString stringWithFormat:@"INSERT OR REPLACE INTO %@ (HASH, URL) VALUES (?, ?);", kRWebImageDatabaseTableName.SQLSafeString];
    sqlite3_stmt *stmt;
    if (sqlite3_prepare_v2(database, update.UTF8String, -1, &stmt, NULL) == SQLITE_OK) {
    sqlite3_bind_text(stmt, 1, hash.UTF8String, -1, NULL);
    sqlite3_bind_text(stmt, 2, url.absoluteString.UTF8String, -1, NULL);
    }
    if (sqlite3_step(stmt) != SQLITE_DONE) {
    NSAssert(0, @"Error updating image.");
    }
    sqlite3_finalize(stmt);
    ljbha007
        22
    ljbha007  
       2013-03-25 09:56:24 +08:00
    写烂代码除了不敬业以外
    还有一种可能就是 热爱并敬业 但是就是还在学习或者学习能力较弱
    kneep
        23
    kneep  
       2013-03-26 08:37:16 +08:00
    这个问题我很有感触,原因有很多:
    1. 确实不够敬业,但我认为这类人比较少。
    2. 很多程序员都是笨蛋,又懒又爱问,不是编程的料。
    3. 没有强烈的,以正确的方法做事的欲望,审美能力差,分不清啥是elegant啥是ugly,一件事情完成就算数了,从来不想如何以最正确的方法完成。其实这也说明了他不是编程的料。

    更糟糕的是,这些人通常很勤奋,勤奋而平庸,所以你指出他们错误的时候,你通常站在舆论的对立面,孤立无援,别人觉得你是个偏执狂,强迫症患者。其实你只是想以正确的方法做事而已。
    kneep
        24
    kneep  
       2013-03-26 08:40:23 +08:00
    @pepsin 没错。这类人一般英语也很差,取的变量名根本看不懂。
    weiqiyiji
        25
    weiqiyiji  
       2013-03-26 19:59:20 +08:00
    关键不是你的同事,而是上面的人怎么看这个问题,如果他们一边要求说代码质量要高,但是同时又像催命一样的要需求。你对代码质量的改进,会先问你有什么好处,如果以前可以work,就不给你时间修改了,这还肿么破!
    wy315700
        26
    wy315700  
       2013-03-26 21:04:33 +08:00   ❤️ 1
    @weiqiyiji 这个在大部分公司都是很现实的场景 只要代码能跑 就不去管
    alexrezit
        27
    alexrezit  
       2013-03-27 08:59:46 +08:00
    @weiqiyiji
    有什么好处? 降低 margin cost. "上面的人" 这都不懂?
    wy315700
        28
    wy315700  
       2013-03-27 09:13:13 +08:00
    其实看到LZ的话题 我想的是
    阅读错题的能力也应该提高 ,因为并不是所有老师都会出题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2441 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:59 · PVG 23:59 · LAX 08:59 · JFK 11:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.