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

外包项目里面十分普遍的一些特征

  •  
  •   changwei · 2016-10-30 00:00:30 +08:00 · 8228 次点击
    这是一个创建于 597 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的帮人改代码经历中 ,发现外包项目大概有如下一些典型特征:没有设计模式,不用框架, web 目录下和配置文件下永远有无数的复件,代码永远有不明不白的注释或者干脆毫无注释,缩进没有任何规范,变量名几乎都是拼音和英文混合,或者 m123 , a789 , aa , bb , test1 这样的标识名,或者因为代码改了很多次,很多类文件的命名已经和类实际的功能不相符了,比如说本来最开始就一个 mysql.class.php ,结果因为功能一改再改,这个类文件名不仅仅是 sql 操作了,还多了好多其他的操作,但是因为没有用框架,最开始已经有很多地方 include 了这个 mysql.class.php ,因此只好直接在这个类文件里面加其他功能了。 综上所述:外包公司大部分都是生产垃圾代码的地方,也是一个培养只追求功能凑合能用,不追求代码质量,不理会代码安全(我看的这个项目,居然是直接拼接 sql 字符串,不过还好他集成的环境是 php5.2 , GPC 魔术引号是默认开启状态所以很多注入方法用不了,而且网上流传的 ['or 1=1 #] 这个万能密码我用不了不知道是怎么回事,不过据说在字符串为 GBK 宽字节编码的情况下仍然有绕过方案),也不会考虑以后要怎么改,功能要怎么加的程序员出来的地方。 解决方案: IT 培训机构和高等教育学府中的相关专业注重代码质量,关注代码规范性,教科书以身作则不要图省事用 abc 这种变量名(没错我说的就是谭浩强老爷子系列的书),加强设计模式的教育,给从事相关行业的产品经理和项目经理科普一下设计模式的必要性(对客户来说,重构或者规范化编码不会给他们带来好处,但是会增加程序员的人力成本,所以客户不愿意为重构买单,但是相反对程序员就不一样了,因此加强科普不是我在开玩笑,这是真的需要)

    77 回复  |  直到 2016-11-01 21:07:31 +08:00
        1
    Borden   2016-10-30 00:04:49 +08:00   ♥ 126
    就楼主你这个排版,你好意思谈缩进规范代码质量?
        2
    waruqi   2016-10-30 00:09:41 +08:00 via iPhone   ♥ 1
    @Borden 哈哈
        3
    Lonely   2016-10-30 00:11:12 +08:00
    一楼打脸啪啪啪😂
        4
    wtbhk   2016-10-30 00:16:15 +08:00
    @Borden 没用过 Markdown 的人还真不知道换行要两次回车
        5
    jydeng   2016-10-30 00:17:00 +08:00
    哈哈哈,一楼不要这么直接。
        6
    murmur   2016-10-30 00:20:01 +08:00
    @Borden 真的 别笑 是个人都知道可视化编辑器多好用 也就 V2EX 这种 geek 论坛笑得出来
    或者像其他的网站 怕你搞点什么 直接把\n 全去掉 也省着转了 毕竟\n 和 br 互转也挺蛋疼是吧
        7
    orvice   2016-10-30 00:20:09 +08:00   ♥ 2
    外包代码质量好了跟咸鱼有什么区别。
        8
    goodryb   2016-10-30 00:20:30 +08:00
    都外包了,你还要怎样
        9
    fuxkcsdn   2016-10-30 00:22:39 +08:00
    @Borden 已结贴 😂
        10
    JoeyChan   2016-10-30 00:25:51 +08:00
    我们公司一个几十万的 php 项目外包,拿到源码开始部署直接傻眼,整个网站一共有十几二十个 mysql 配置文件,分别放置在各个目录,有时候甚至一个目录下有多个 mysql 配置文件。
        11
    Kilerd   2016-10-30 00:26:55 +08:00   ♥ 1
    @wtbhk 事实上,翻看了一下楼主之前的帖子,部分是有换行的,大部分是没有的。 那说明了楼主是会用的。

    那么说,楼主写完帖子发布后,看到了这个排版并没有重新编辑。(个人推测)
        12
    tracyone   2016-10-30 00:29:21 +08:00
    一楼打脸太快了, 23333...
        13
    wun   2016-10-30 00:29:39 +08:00
    楼主在嘲讽啊,你们啊
        14
    xiaoshengyige   2016-10-30 00:44:02 +08:00
    一楼。。
        15
    isCyan   2016-10-30 00:51:25 +08:00 via Android
    @wtbhk 这是英文格式,中文本来就不需要,应该搞一套中文 Markdown
        16
    HuangLibo   2016-10-30 01:25:53 +08:00
    @wtbhk 标准的换行是在行尾加两个空格。
        17
    HuangLibo   2016-10-30 01:26:28 +08:00
    @Borden 我就喜欢你这样的实在人
        18
    skyeycirno   2016-10-30 02:44:01 +08:00 via iPhone
    一楼就说大实话,太实在了
        19
    guodont   2016-10-30 08:13:02 +08:00 via Android
    就是表达观点描述事情而已,又不是写教程,换行反而读不完整。 支持一下楼主的呼吁。
        20
    laoyur   2016-10-30 10:13:11 +08:00   ♥ 1
    一楼的回复加上楼主头像的表情,简直绝配
        21
    wizardforcel   2016-10-30 10:26:50 +08:00 via Android
    @HuangLibo markdown 没有统一的标准。
        22
    kslr   2016-10-30 11:12:22 +08:00
    你说的确实是问题,但我认为这是市场导致的必然,价格压得那么低,也不看看请的什么人?
        23
    yumijie   2016-10-30 11:23:40 +08:00
    哈哈
    ,竞争压力.时间压力.还有价格压力
        24
    aristotll   2016-10-30 11:27:44 +08:00
    php 更容易写坏代码(不是黑 ...

    Java 系至少不可能出现这么蛋疼的事情 include
        25
    zpf124   2016-10-30 11:28:13 +08:00
    还是一楼屌 233333
        26
    yangff   2016-10-30 11:28:28 +08:00 via Android
    有规范要求一开始就写好不就行了。。
        27
    maddot   2016-10-30 11:33:28 +08:00
    代码写得越烂越能绑住客户啊
    代码写得好,好读,随时找便宜的人代替了你,那感觉真是五味杂陈....
        28
    tairan2006   2016-10-30 11:33:49 +08:00
    一楼说得好
        29
    honam   2016-10-30 11:46:25 +08:00   ♥ 1
    所以在外包的项目上做二次开发我是非常反感的,特么炒鸡耗人力
        30
    BURNER   2016-10-30 11:47:32 +08:00
    or 1=1 早就不能用了
        31
    Chaos11   2016-10-30 11:48:52 +08:00 via Android
    一楼输出好高 233
        32
    SourceMan   2016-10-30 11:55:18 +08:00 via iPhone
    一楼 27 个感谢,结帖
        33
    awthink   2016-10-30 12:07:41 +08:00
    @laoyur 还要加上一楼的头像
        34
    radiolover   2016-10-30 12:08:44 +08:00
    抵制楼主,人肉楼主。
    看到楼主这里唾沫横飞就 TMD 不爽,说的没一句是对的,估计也是现实中的屌丝
        35
    loy6491   2016-10-30 12:31:39 +08:00
    楼主的内心几乎是崩溃的
        36
    invalidtoken   2016-10-30 12:36:46 +08:00 via iPhone
    这个也要看人的吧...虽然也在外包公司工作过,但是该有的注释和文档我都是会写的,版本控制也是 Git 而不是 复件-复件(2) 这样...

    于是...自己的代码上线之后被别人改过根本不敢拿出来放到工作经历里面,因为不少直接把 script 加到 DOCTYPE 前面去了
        37
    KangolHsu   2016-10-30 12:55:58 +08:00 via Android
    @Borden 666666
        38
    jaycee110905   2016-10-30 13:07:09 +08:00
    @Borden 哈哈,说的有道理
        39
    mazyi   2016-10-30 13:22:34 +08:00
    一楼最赞!
        40
    shiweifu   2016-10-30 13:29:20 +08:00
    得考虑时间和成本。

    你把代码想象成商品更好理解, 2000 块钱和 1w 块钱买到的东西有可能「看起来差不多」其实真不一样
        41
    aias   2016-10-30 13:30:36 +08:00
    1 楼太坏了。话说国内外包的确容易产出垃圾,那种所谓“对企业提供的 IT 技术支持”的公司程序员职业素养普遍不高。
        42
    InfinitySam   2016-10-30 13:43:55 +08:00
    一楼输出突破天际,我感觉是为了绑定客户吧,毕竟都搞这么清楚了,客户自己请个人继续开发成本低吧,写得只有自己看得懂,客户就得找你了
        43
    wizardforcel   2016-10-30 13:51:20 +08:00 via Android
    php 的设计中,默认不安全的地方简直太多了。

    原生支持 web 开发的语言多得是,但是没有一个是把模板代码和路由掺和到一起还自我感觉良好的。
        44
    wizardforcel   2016-10-30 13:53:40 +08:00 via Android
    另外 or 的那个绕过只能在 sql 中同时查询 un 和 pw 的情况下使用。一部分代码是先拿 un 获得用户,在代码中比较 pw ,这个就得用 union 来绕。
        45
    ivvei   2016-10-30 14:06:28 +08:00
    你都注入不了,那你还管什么 SQL 是不是拼接。
        46
    realpg   2016-10-30 14:07:21 +08:00
    表示不服
    你找垃圾外包团队,不能说外包行业就是这样
        47
    pathbox   2016-10-30 14:20:07 +08:00
    楼主说的是 PHP 外包项目吧?(我没有黑 PHP )
        48
    xcc7624   2016-10-30 14:33:08 +08:00 via Android
    外包项目的合同款收入有限
        49
    AltairT   2016-10-30 14:36:47 +08:00
    喜欢随便写,然后自动格式化。。。
        50
    chilaoqi   2016-10-30 14:55:00 +08:00
    为一楼点赞。。。。
        51
    Zzzzzzzzz   2016-10-30 14:55:24 +08:00   ♥ 1
    价格决定服务质量, 中低价位的外包团队你代码习惯再好去干两星期也会这样的。

    一方面是时间紧, 基本五六千的单子一两天就要出来了, 不然工资都不够, 所以基本都是基于原先整理好的一堆模块二次开发.

    另一方面是选择中低价位外包的公司或者工厂在业务上很难清晰的表达,甚至有些为了压价还会特意隐瞒一部分需求在交项目前再提, 所以很多东西基本就是越改乱改.

    至于 PHP 版本那是没办法了, 上次帮个朋友改点东西, 发现他们一年四五千用的几百兆的 35 的虚拟主机还是 PHP5.2 的.
        52
    mauve   2016-10-30 15:09:25 +08:00
    对不起,要加钱
        53
    polun   2016-10-30 17:08:01 +08:00
    @Borden 哈哈
        54
    TaMud   2016-10-30 17:15:27 +08:00   ♥ 1
    一份价钱一份货
    你花半毛钱,还想买一块钱的货??
        55
    lichy   2016-10-30 17:24:32 +08:00
    别的大学不清楚,反正我们学校根本没提过代码规范
    同学的代码根本不忍直视
        56
    ChopMoun   2016-10-30 17:37:22 +08:00
    看到一楼我笑了 哈哈。。。
        57
    onlyhot   2016-10-30 17:54:52 +08:00 via iPhone
    一分钱一分货
        58
    onlyhot   2016-10-30 17:55:43 +08:00 via iPhone
    绝大部分客户根本不在乎代码 只要功能和外观
        59
    wxhwdmxl   2016-10-30 19:57:52 +08:00
    @Borden 说的太直接了。。。
        60
    hasbug   2016-10-30 20:04:40 +08:00
    最近做单被自己人坑了,一点钱一堆东西,最后各种说不对,才发设计稿给我。问为何之前不发,说,很多页面 如果发了我看后就不做了。
    妈了个蛋,我看了就不是这个价了,坑人。
        61
    twoyuan   2016-10-30 20:43:13 +08:00
    接手到这种项目,首先做好心理准备做几天无脑的整理代码工作,就是删除无用的代码,消除 Warning ,然后稍微用一些脑子改改变量名,正好熟悉项目,还能顺便刷刷 KPI (手动滑稽)
        62
    nozama   2016-10-30 21:11:53 +08:00   ♥ 1
    一同事,估计入门教程看多了,类名变量名都喜欢叫 MyXXX , myYYY
        63
    sammo   2016-10-30 21:14:26 +08:00
    V2EX, Never Change.
        64
    billwang   2016-10-30 23:18:22 +08:00
    一楼向来都是最直接的,顶一个。
    楼主估计是码完字没有回顾一下,不然自己都会觉得眼花。
        65
    edsgerlin   2016-10-31 01:49:04 +08:00 via Android   ♥ 1
    要知道微软, IBM 这个级别的公司也是做外包的。一分钱一分货,请不起好公司好团队就不要地图炮整个行业。
        66
    mathgl   2016-10-31 02:18:39 +08:00
    @JoeyChan 能用就行。有些还不能用。
        67
    yoke123   2016-10-31 09:11:43 +08:00
    大哥 还是学习下 markdown 吧 跟上大家的步伐 至于外包让人诟病 毕竟写的再烂 也有人买单 原因大家都懂
        68
    891599396   2016-10-31 09:30:22 +08:00
    我觉得我们公司做得就挺好的啊。什么东西都有规范。
        69
    itqls   2016-10-31 09:58:04 +08:00
    改一个外包项目的半成品已经改了十多天了.
        70
    manihome   2016-10-31 10:05:24 +08:00
    换 python 试试 不缩进等死
        71
    murmur   2016-10-31 11:35:23 +08:00


    我来终结这个贴好了
    估计很多外包项目都比这个好
        72
    domty   2016-10-31 11:53:38 +08:00
    @Borden
    头像和回复杀伤力 MAX
        73
    fortunezhang   2016-11-01 08:40:57 +08:00
    我也做外包,但是不会有楼主那样的问题。虽然以前是做敏捷开发,但是木有测试, 23333.。。

    有一个问题就是:造成这样情况的可能性我觉得有这么几种:

    1.客户总是在改变需求

    2.产品经理没有理解好客户的需求

    3.编码着的代码洁癖不高。

    4.公司人员更换频繁。

    总的来说:这个锅,不单单是程序员背,客户和公司都存在一定的问题。

    我想知道我的排版有木有问题。
        74
    junzibuqi124   2016-11-01 10:35:34 +08:00
    @Borden 哈哈哈
        75
    Borden   2016-11-01 10:44:45 +08:00
    @fortunezhang 你的排版挺好哒 XD
        76
    alexnone   2016-11-01 13:03:01 +08:00
    从来没换过行
    来试试看
    ...
        77
    mingyun   2016-11-01 21:07:31 +08:00
    一楼这样真的好吗,哈哈
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2191 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 22ms · UTC 10:50 · PVG 18:50 · LAX 03:50 · JFK 06:50
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1