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

作为程序员,能不能拒绝这样的开发需求?

  •  
  •   kokdemo ·
    kokdemo · 2014-08-28 09:07:41 +08:00 · 7468 次点击
    这是一个创建于 3530 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前提:现有接近10个的英语广告页,大部分是我来之前做的,页面极其混乱,且全是静态页面。

    情况:pm提出,现在要推广泰国,所以要把这10个广告页都改成泰文的,然后甩给我一个txt文档……几乎没有标注。我在痛苦的改了一天之后终于改完了,由于不认识泰文,里面出现了几处错误,后来又返工。

    现状:在做完泰国的之后,pm提出要做西班牙语和葡萄牙语的广告页。(这个广告页是用于向渠道申请的,一般用户看不到),也就是要把里面的内容改成这两种语言。可是我觉得不能把英语的给他们看吗?非得要提前翻译改好?我手头之前还有另外一个开发任务都被这个给耽搁了。

    我应该怎么做?

    ps:作为职场新丁,进入的第一家公司是这样未免让人失望。
    我之前也发过对于工作的一些问题: http://www.v2ex.com/t/119160#reply10

    现在看来,我真的需要重新评估一下了。
    73 条回复    2014-08-29 10:11:55 +08:00
    hustlzp
        1
    hustlzp  
       2014-08-28 09:12:05 +08:00 via iPhone
    走吧。
    anubiskong
        2
    anubiskong  
       2014-08-28 09:13:53 +08:00
    你可以研究一下多语言处理
    如果实在讨厌那就辞职
    fengchang
        3
    fengchang  
       2014-08-28 09:14:04 +08:00
    给客户看英语还是葡萄牙语的页面不该是程序员操心的事儿,你可以自己想办法把事情干的漂亮。比如写个Python脚本,把网页和翻译的excel对应传进去,直接生成各种语言的版本。
    jsonline
        4
    jsonline  
       2014-08-28 09:14:16 +08:00 via Android
    这不是开发要做的事情。
    mengzhuo
        5
    mengzhuo  
       2014-08-28 09:14:30 +08:00
    明确一点:内容管理在很多公司都不是程序员的工作

    先Google(当然你敢百度也行。。。)
    I18N和L10N
    做好程序以后让那帮家伙自己填去
    xiiing
        6
    xiiing  
       2014-08-28 09:15:02 +08:00
    如果还有很多需要支持的语言,可以重构一下。
    tonghuashuai
        7
    tonghuashuai  
       2014-08-28 09:18:03 +08:00
    不管怎么说,只要是公司需要的,他提的也算任务(称作 A),告诉他你还有另外一个任务(称作 B),如果他非要你把 A 的优先级排在 B 前面的话,那认认真真把工时记下来,你手头的另外一个开发任务如果因为延期而有人问责的话拿出这些工时来给他看
    kokdemo
        8
    kokdemo  
    OP
       2014-08-28 09:18:28 +08:00
    @anubiskong
    @fengchang
    @jsonline
    @mengzhuo 我已经在做国际化的尝试了,现在是将页面的内容写在一个json里。

    然而,我发现维护这个json的人还tm是我。
    他们会表示自己不会填代码。

    你说我做这个事情有啥意义,我把之前的页面模板化了,但是去填这个模板的人还是我。

    最可气的是,我做了模板之后,pm居然认为,“你不是有模板了吗,这下改页面不就容易了吗?”
    jsonline
        9
    jsonline  
       2014-08-28 09:19:24 +08:00 via Android
    拖着不做就好。急得是PM
    kokdemo
        10
    kokdemo  
    OP
       2014-08-28 09:19:33 +08:00
    @tonghuashuai 我不知道填完西班牙语和葡萄牙语之后,还有什么语言等着我,感觉像是无底洞
    raincious
        11
    raincious  
       2014-08-28 09:20:24 +08:00
    @kokdemo 写一个页面来产生json。

    另外你们公司只有你一个程序员?或者你进入了一个外包建站公司?

    建站公司的话,“程序员”和“打杂的”区别不大。
    kokdemo
        12
    kokdemo  
    OP
       2014-08-28 09:20:54 +08:00
    @raincious 只有我一个前端
    raincious
        13
    raincious  
       2014-08-28 09:22:42 +08:00
    @kokdemo 前端……我能说……其实就是这么憋的……么?

    还是放轻松好好把字填上去吧。
    Doubear
        14
    Doubear  
       2014-08-28 09:22:48 +08:00
    你真命苦~~~
    Livid
        15
    Livid  
    MOD
       2014-08-28 09:24:10 +08:00   ❤️ 2
    1. 用 Jinja2 写一个通用的模板
    2. 模板中把所有可能需要翻译的地方标记出来,用 {% trans %}INTRO_A{% endtrans %} 这样的语法
    3. 然后用不同的语言文件去实现你标记好的 INTRO_A,INTRO_B 等,具体看 Jinja2 文档吧
    Niphor
        16
    Niphor  
       2014-08-28 09:26:43 +08:00
    ???
    不都已经支持多语言了么?,规范下译文怎么给你应该没多大问题吧。。。

    耽搁就耽搁啊,实现提出来,耽搁又不是你的责任。
    kokdemo
        17
    kokdemo  
    OP
       2014-08-28 09:26:51 +08:00
    @Livid 主要是那些语言文件也是要让我用文档来制作的……我现在已经在用artTemplate了
    tonghuashuai
        18
    tonghuashuai  
       2014-08-28 09:29:53 +08:00   ❤️ 2
    @kokdemo
    这时就要考虑一个通用的版本了,恰好我最近刚刚遇到了个跟你一样的问题,也是需要不断的重复一件事情,数量未知,于是我重构了程序,做出了通用的版本,然后教给 PM 怎样使用这个通用版本


    另外一点就是:我认为导致现在需求泛滥的一部分原因是 PM 们提需求的成本太低了,你可以增加他们提需求的成本,再举个例子:以前公司有个客户一直不停的提需求,我的做法是,面对每一个需求,我告诉他,这个功能我们可以做,但是得需要您提供相应的数据支撑,所以您先给我们整理个 xxx 的数据表格,然后我们做,等等这样的方式增加他提需求的成本,客户一般都会说:哦,这样啊,那算了吧。

    一般这样做了以后他们在提一个问题前就会慎重的想一下了
    kokdemo
        19
    kokdemo  
    OP
       2014-08-28 09:48:09 +08:00
    @tonghuashuai 如果他们拒绝学习使用这个呢
    loserwn
        20
    loserwn  
       2014-08-28 10:06:32 +08:00
    作为 Web 程序,有些时候可以参考一些底层程序国际化的思路。
    可以百度一下 GNU 国际化 po 文件
    lenville
        21
    lenville  
       2014-08-28 10:16:44 +08:00
    @kokdemo 让PM马上接手这些工作确实有些难以 Push
    如果愿意,可以开发一些界面友好的工具让他们自己传
    走到这一步对于他们来说已经没有什么难处可言
    如果他们还不愿意去做,就走吧~~
    像 Livid 说的,找个好 Leader很重要
    顺便吐槽一下下 related link 里面的 Leader……
    min
        22
    min  
       2014-08-28 10:17:26 +08:00
    这么简单的i18n问题,你做为开发,连个像样的建议也提不出来给pm吗?
    kokdemo
        23
    kokdemo  
    OP
       2014-08-28 10:21:55 +08:00
    @min 我有做i18n的尝试啊,可是pm让我连填文档的事情也做了……
    cloudzhou
        24
    cloudzhou  
       2014-08-28 10:22:34 +08:00
    这是你要做的,这样的需求使用脚本语言等等快速自动生成。要把手工的事情变自动化。
    kokdemo
        25
    kokdemo  
    OP
       2014-08-28 10:22:37 +08:00
    @lenville 需要做界面友好的工具也需要工时啊,pm不给这个机会啊……
    min
        26
    min  
       2014-08-28 10:26:15 +08:00
    @kokdemo
    填文档的事情为什么不能做?

    你想做什么? 现在的职位允许你做什么? 之间差距大么? 你想办法可以弥补差距么? 你换个职位,能使差距变小么?
    Rgss
        27
    Rgss  
       2014-08-28 10:35:45 +08:00
    哈哈, 第一份工作的话, 不要那么多抱怨了。 接触多了,以后就能明确要找什么样的工作了。而且像这样的事情, 自己好好研究,其实很多时候能让你学到不少东西。程序员不要只会写代码, 交流,情商,心态都很重要。
    lenville
        28
    lenville  
       2014-08-28 10:47:09 +08:00
    @kokdemo 如果想要省力省时,这些工具应该去做
    不然一次次的任谁都受不了
    自己动手,丰衣足食,解放苦力劳作
    em70
        29
    em70  
       2014-08-28 10:58:38 +08:00
    程序员做广告页,你确认你干的是程序员的工作?

    文字校对,排版这是编辑,前端干的活啊
    kokdemo
        30
    kokdemo  
    OP
       2014-08-28 11:08:15 +08:00
    @tonghuashuai 你说的对,就是提需求的代价太低了,我一沟通他马上就说自己现在忙没时间balabala
    vibbow
        31
    vibbow  
       2014-08-28 11:32:05 +08:00   ❤️ 1
    之前我也做过i18n的工作,主要是要做英文,简体中文,繁体中文三个语言文件。
    默认是给了英文的语言文件,xml格式的。
    于是自己写了个PHP脚本,调用Bing的接口,全部自动翻译过去了...
    openroc
        32
    openroc  
       2014-08-28 11:33:47 +08:00
    localization和globalization,都不是该dev干的。:)
    PP
        33
    PP  
       2014-08-28 12:01:26 +08:00 via iPad   ❤️ 1
    这个好处理。写两份文档,一份把近期执行的此类工作的各个项目及具体成果和进展描述一下,另一份申请加薪(50%-100%)及调整工作职责,将前一份文档作为后一份文档的附件,生成后报给您的主管经理和公司HR即可。别把这当成您和PM之间的矛盾,这是您和贵公司之间的问题。
    Ricepig
        34
    Ricepig  
       2014-08-28 12:17:58 +08:00
    @PP 申请加薪100%,这几乎就是在申请辞职了吧。。。
    Ricepig
        35
    Ricepig  
       2014-08-28 12:19:19 +08:00
    你们以为i18n就是用模版替换这么简单,拿一五,too simple!

    lz你该庆幸没有要你做阿拉伯语的改版。。。搞不好css都得改不少。。。
    dopcn
        36
    dopcn  
       2014-08-28 12:24:05 +08:00
    把自己的想法与自己的直接领导交流,看交流结果而定
    otakustay
        37
    otakustay  
       2014-08-28 12:26:20 +08:00
    1. PM可能觉得如果广告受众看得懂英语那这广告也没意义了,这和市场有关,可以和PM沟通下
    2. 你的需求提炼能力还不够,这里一开始要改语言时就应该转为i18n的需求和PM具体商量
    3. 活可以干,但可以要求PM给出更多的支持,比如广告上每一句都要求PM给完整的对应语言文本,这样子说更有说服力和可信度,而不是一脸消极怠工的样子去拒绝
    lazyphp
        38
    lazyphp  
       2014-08-28 12:36:13 +08:00
    考虑多言设计。 这样只需要在对应的地方补上语言包就实现功能了。
    其次,拒绝开发,需要理据的。有根据才好拒绝。你直接来一句,开发难。只会让有觉得你不想做。
    你应该说:这样开发会怎样,然后呢带来什么问题,接着开发时间预计要这么长。 你这边考虑怎么样呢?
    anubiskong
        39
    anubiskong  
       2014-08-28 12:36:59 +08:00
    @kokdemo 那辞职好了, 这种公司也没办法教你什么
    Artotria
        40
    Artotria  
       2014-08-28 12:37:33 +08:00
    内容也要程序员来处理?つ﹏⊂
    cobola
        41
    cobola  
       2014-08-28 12:39:37 +08:00
    我怎么觉得这个活应该产品经理干
    tushiner
        42
    tushiner  
       2014-08-28 12:45:40 +08:00
    公司就没别人了?
    eric_zyh
        43
    eric_zyh  
       2014-08-28 12:54:41 +08:00
    在小公司就是无法避免要做一些与职称不符的事,而且楼主说的需求也不会太麻烦吧,起码没让你自己去翻译。

    你可以跟领导沟通改进,而且这种重复性的工作,应该可以想到办法提高效率。比如你做个后台,让翻译的同事不是提供你txt,而是直接在后台录入,然后系统自动生成你要的json文件。

    工作就是这样,往往不是尽如你意,学会妥协和提高效率可以让你工作起来跟开心一些。
    wormcy
        44
    wormcy  
       2014-08-28 12:57:00 +08:00 via Android
    小团队? 有时候小团队运行过程中经常有些机械性的劳动找不到完全合适的人
    66beta
        45
    66beta  
       2014-08-28 13:00:21 +08:00
    我觉得很好解决啊
    1、要求PM给出与英文对应的文档
    2.1、其他工作延期
    2.2、白天干原任务,晚上加班做这个,填加班单,到节日调休
    kokdemo
        46
    kokdemo  
    OP
       2014-08-28 13:03:32 +08:00
    @Ricepig 你说的对啊,被泰语奇葩的长度折腾的欲仙欲死啊
    kokdemo
        47
    kokdemo  
    OP
       2014-08-28 13:09:07 +08:00
    @Artotria
    @cobola
    @tushiner
    @eric_zyh 目前已经从成功的将填字的任务分出去了,说的过程各种艰难……
    Artotria
        48
    Artotria  
       2014-08-28 13:26:18 +08:00
    @kokdemo 默哀
    gamexg
        49
    gamexg  
       2014-08-28 13:40:09 +08:00
    你可以以txt格式混乱,分不清内容为由让对方提供的 Excel 格式的翻译(一列原文、一列译文)。
    拿来写个脚本转一下就完了。
    fucker
        50
    fucker  
       2014-08-28 14:05:20 +08:00
    要是我早不干了,连个翻译都没有开什么公司
    kokdemo
        51
    kokdemo  
    OP
       2014-08-28 14:12:32 +08:00
    @fucker 翻译找的外包
    fucker
        52
    fucker  
       2014-08-28 14:15:52 +08:00
    @kokdemo 这种活直接外包了,让程序做这些活儿,你们领导怎么想的...
    fucktwice
        53
    fucktwice  
       2014-08-28 14:34:26 +08:00
    带把菜刀上班!实在不行,砍死一个走人
    ren2881971
        54
    ren2881971  
       2014-08-28 14:35:31 +08:00
    最苦逼的就是政府客户的驻场开发~ 待了就知道为什么天朝被这些渣渣弄成这样了!
    doufenger
        55
    doufenger  
       2014-08-28 14:42:12 +08:00
    。。这就是欺负新人,丢杂活给新人干之类的事情吧。 同意45楼@66beta 的答案
    doufenger
        56
    doufenger  
       2014-08-28 14:45:00 +08:00
    说不干的就过了,这种小事而已,可以想办法解决的,什么职位的新人都有可能遇到这种情况,能避多少次?
    doufenger
        57
    doufenger  
       2014-08-28 14:48:15 +08:00
    哈哈哈,像31楼@vibbow 就是个可爱的程序员啊,把这种事当成需求用自己的技术解决。
    lygmqkl
        58
    lygmqkl  
       2014-08-28 14:55:34 +08:00
    就是对新人得。。
    iamjs
        59
    iamjs  
       2014-08-28 16:36:18 +08:00
    @tonghuashuai 说的很有道理。1书面(mail)请求。整理完所有需要的材料。然后开发报时间
    wickila
        60
    wickila  
       2014-08-28 17:39:23 +08:00
    我们公司的游戏是有个翻译库,脚本负责把每一句中文替换成对应的语言.静态页面更加可以这样处理.写个脚本.把里面的中文替换成对应的翻译就可以了.更高级一点的就是用模板咯.
    jarlyyn
        61
    jarlyyn  
       2014-08-28 17:51:27 +08:00
    全看完了,结论就是。
    只有楼主在把自己当程序员而已……
    fengliu222
        62
    fengliu222  
       2014-08-28 17:51:52 +08:00
    我觉得国际化做的对,但是可以做的更智能一些,你所有的工作中,其实最闹人的就是语言替换和配置,这些工作如果可以通过页面配置来完成,那么你的PM应该没有理由再推辞了。
    所以解决方案是,用Node.js(或者你熟悉的其他服务器端语言)做服务器,写一个后台管理界面,把你用JSON配置的东西以表单的形式展示给运营人员,然后当它提交表单的时候,你通过EJS也好,其他模板引擎也好,自动拿这个数据去渲染一个HTML出来,放到一个指定的路径下。这样语言就不用你来替换了。
    kokdemo
        63
    kokdemo  
    OP
       2014-08-28 18:46:20 +08:00
    @fengliu222 用node是个好主意……
    fengliu222
        64
    fengliu222  
       2014-08-28 19:50:53 +08:00
    职业生涯难免遇到这种需求,所有人都是懒的,都不想自己做这种机器一样的活。但有些人的解决方法是抱怨、辞职,另一些人的解决方法,是resolve problem.楼主要淡定。
    sampeng
        65
    sampeng  
       2014-08-28 23:03:56 +08:00
    做18i。pm不会用?ok。。哥做个excel导入行不?excel不会用?写离职单。。。
    jprovim
        66
    jprovim  
       2014-08-29 07:50:22 +08:00
    @kokdemo 慢著點翻譯, 你就跟他說現學呢.
    jamiesun
        67
    jamiesun  
       2014-08-29 09:06:31 +08:00
    这或许不是开发该做的事,但它一定是员工该做的事,抱怨没有任何意义。

    你可以有千万种拒绝,同时你也该走人。

    你如果不拒绝,你就应该把事情最大效率做好。

    带着埋怨的心态做事,一定做不到更好,也会让人瞧不起。
    kokdemo
        68
    kokdemo  
    OP
       2014-08-29 09:20:05 +08:00
    @jamiesun
    @fengliu222
    @jprovim 我的心态还算好啦……

    我之前纠结的就是我自己手上还有没完成的工作,这个pm又把这个事情插过来。

    i18n的问题是这样的:

    我来之前,做前端的人全都没有用i18n的方式,而且所有的广告页之前几乎没有代码复用。
    甚至还有个页面里直接将整个 pure.css 贴进去了……

    改这些老代码真的非常头痛……
    mnhkahn
        69
    mnhkahn  
       2014-08-29 09:33:08 +08:00
    前端支持i18n的,不用一个一个做
    gamexg
        70
    gamexg  
       2014-08-29 09:36:50 +08:00
    出现这个情况很正常。
    1.这个之前并没有做国际化的工作,你能指望翻译直接修改html代码?看你说这个网页是你之前做的当然找你做本地化工作了。
    2.给你txt文档,格式混乱。既然没有做国际化,那当然没有翻译格式的约定了,给个txt文件很正常。最简单的办法是你提供给他一个 Excel 格式的原文,要求翻译把翻译放在下一列,你收到后直接写个脚本就生成新的语言的版本了。
    3.觉得打扰当前的工作,这个就没办法了,拿人钱财替人消灾。提前说明会影响当前工作的进度。
    tonghuashuai
        71
    tonghuashuai  
       2014-08-29 09:52:51 +08:00
    @kokdemo 那你就可以拒绝接受这个任务了
    dogarm
        72
    dogarm  
       2014-08-29 10:06:54 +08:00
    楼主在一个企业建站外包公司吗?非常不建议在这类公司长期发展,何况只有你一个前端。
    kokdemo
        73
    kokdemo  
    OP
       2014-08-29 10:11:55 +08:00
    @dogarm 不是外包来着……主要是我们这个部门比较独立,部门里只有我一个前端
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3010 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 08:11 · PVG 16:11 · LAX 01:11 · JFK 04:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.