上司招了一个For循环都看不懂的人,我该如何自处?

BigDataDico 发布于 07/05 15:19
阅读 8K+
收藏 0

跟老大一起面试,十来年工作经验了,面试的时候我觉得他技术不好,但是老大判断能做事,缺人历害,非要招进来。进来要我带,业务一遍遍讲,代码一点点说,Maven打包、连Git怎么用也要教,两周了,我才发现他连方法返回值会打断For循环都不知道(过去这十几年他怎么过的?据我所了解的语言return都会打断for循环的呀)。

唉,心累,我该怎么做?

 

 

 

就是这里他看不懂,是我的代码太糟糕,太次的原因吗?

 

 

加载中
10
自由PHP
自由PHP

你再和你老大沟通一下,问一下他认为的这位同事的特长在哪个方面,然后根据情况重新分配他擅长的工作;可能是你们身处不同的位置,看到的东西不一样。最后可以委婉的提醒你们老大,说我们现在需要的是XXXX方面的人才,但是新同事更擅长处理XXX方面的工作,目前来说他大概需要XX时间才能胜任我这边的工作,带他我是没有意见的,但是短时间内对我的工作进度产生了一定的影响。

最后提醒你,有的人能进来,可能是有人打过招呼,所以你一定要搞清楚状况,然后灵活处理,不要影响同事之间的关系。

 

倾听我心
倾听我心
回复 @LeeKiven : 不过 事实就是 这个代码 我一个不搞java的然 一眼就看懂了, 这个 跟代码烂不烂没关系 这可是基本语法呀
LeeKiven
LeeKiven
回复 @BigDataDico : 这样做人,真的行吗?就只允许你指责别人,不允许别人指责你?难道不是因为你的代码垃圾,导致别人看不懂吗?有想过这个问题吗?不要老是站在道义的制高点来指责别人。如果你只是想上来寻找相同意见的人而完全容不下不同意见的看法,出门左拐,不送。
0x0110
0x0110
开发这行水太深。一定要扬长避短。说不定别人水平已经达到“无招胜有招的境界,只是你水平太低看不懂呢”敢问作者听说过“数据降维”没有,如何做数据降维呢?不懂增删改查。不懂写代码并不一定不会开发,不会做事。在开发能力上面的是开发思想。
BigDataDico
BigDataDico
点赞,确实需要这样。这本是一段随手写就的代码,请大家回到问题,不再接受任何关于我代码垃圾的指责
O龙猫O
O龙猫O
手动点赞,这个处理方法非常客观,非常公平,非常科学!
3
开源中国第一水手
开源中国第一水手

逼一个从来没有写过Java代码的人写Java代码

逼一个只看帖不回复的人去注册了一个账号来回复此贴

你们这种行为真“二逼”。。。。。。

我把闫帆的代码改了下,也不知道这段代码里有没有语法错误,因为我真没写过Java代码,你们看个大概的程序逻辑就行哈。

public static String getFieldValue(Map<?,?> dataMap, String field)
{
    String[] orFields;
    String json = null;
    if (field.contains(OR_VALUE_SPLITOR)){
        orFields = field.split(OR_VALUE_SPLITOR_REGX);
    } else {
        orFields ={field}
    }
    for (String f : orFields)
    {
        Object value = dataMap.get(f);
        if (value == null) {continue;}
        json = value.toString().trim();
        if (!json.isEmpty()){
            json = getJsonMapValue(json);
            break;
        }
    }
    return json;
}

记住

1:套越多越不爽,尽量少用套

2:新注册的账号1小时内不允许回帖

小小凡123321
这小老弟写的代码很简洁。但是,一个业务下来,赶时间的情况下,一般是这样的。。。if。。。if。。。if。。。测试。哦,还要if。在测试。哦。还要if。。。if。。。额。。好了吧。。交给测试。。测试巴拉巴拉有bug。。哦,还少了个if。。好了。测试好了,测试那边也通过了。下一个任务。 谁他妈有空整理这么多if
Farahani
Farahani
Map<?,?> 没必要吧
长方体混凝土移动大师
长方体混凝土移动大师
回复 @魂祭心 : 高手啊,嵌套越深,算法复杂度越高,效率越低!:thumbsup:看了一圈还是你回答的实际!
魂祭心
魂祭心
回复 @BigDataDico : 这是经验,花括号尽量少包东西
BigDataDico
BigDataDico
想了想你这个代码思路最好,项目开发时想不了这么多又要快又要好,你这个才是最合适的思路
2
无畏的老巨人
无畏的老巨人

你写的也是一坨屎

BigDataDico
BigDataDico
回复 @飞鸿眉敛 : 真忍不住不喷你,你真太能装逼了
飞鸿眉敛
飞鸿眉敛
回复 @BigDataDico : 我看我和你讲才是浪费时间,只允许你喷你的同事,不允许别人说你的代码垃圾,告诉你垃圾在哪了,就各种找借口,指出你代码的bug了也不承认。我才懒得回复你了,水平不在一个线上,我看你的代码就是你看你同事的感受
BigDataDico
BigDataDico
回复 @飞鸿眉敛 : 基本已经没有办法沟通了,我不会再回复你了,毫无意义浪费时间
飞鸿眉敛
飞鸿眉敛
回复 @BigDataDico : 我只所以说忙的无聊回复一下,是因为我觉得你真的很无聊,就好像你认为被你喷的同事离你的水平很远一样,我也认为这玩意没啥可解释的,这写法就是严重没看过clean code而写出来的代码。你既然来问别人是不是你的代码太次了,那我就要告诉你的代码次在哪,而不是喷你的同事。
飞鸿眉敛
飞鸿眉敛
回复 @BigDataDico : 你一直在反驳,有没有思考过自己的问题?没有人要占领道德制高点,是你先用道德制高点喷了人,仿佛你的代码写的很好,看你代码的人很垃圾,依我看喷你只是刚刚好。连自己代码的bug都看不出来,你这水平我才觉得该好好想想怎么办
下一页
1
黑狗
黑狗

说实话。。。确实实现得太过复杂,易读性不好。。。

BigDataDico
BigDataDico
确实易读性不好
1
闫帆
闫帆

哎呀,我勒个擦,这代码辣眼睛!

睡不醒了睡
睡不醒了睡
回复 @BigDataDico : "".equals(string) 可以改成 string.length() == 0
闫帆
闫帆
回复 @BigDataDico : 回复内容不能沾代码,我重新评论了,你自己看看最后
BigDataDico
BigDataDico
你行就贴code,不行别bb
BigDataDico
BigDataDico
应该怎么写?
1
远方夕阳
远方夕阳

老哥你的代码 确实有待提高^_^

BigDataDico
BigDataDico
已经提高了一下,在后面贴上了新代码
1
aa00aa00
aa00aa00

我这账号好久不登录了,今天看到这个帖子,我登录了10分钟进来了,就是为了专门回复你的帖子,这年头,大家都不容易,心态平和些把,我以前也是遇到和你一样的情况,我当时做的有些偏激,现在想想,当时太年轻了....

诸葛亮打猴子
诸葛亮打猴子
想想当年我也和你一样,带一个新手太过偏激了,后面他走了,想想现在都感觉对不起那同事
BigDataDico
BigDataDico
:two_hearts: 多谢,我会认真思考你的话
1
烨儿
烨儿

不忍直视,找个匹配项也这么复杂.赶紧升java8吧,labmda一句就搞定

1
前端大师傅
前端大师傅

说实话,楼主这个代码只算是完成了功能。但从代码的可读性,性能,优雅度来讲实在的差强人意,尤其是第二个参数的这种通过把业务和程序耦合的做法相当的LOW。

看方法可知,楼主的意思就是要从mapset里取指定的name的value出来,可以用多个name取多个value出来。本来一个非常简单的两个分开的功能被楼主这样一写耦合到了一起,要是在下也觉得这代码有点不太好。总结三个问题:

1.可读性差,建议采用JDK1.8 提供的Stream来操作。

2.代码过于啰嗦冗余太多,可以精简。

3.代码的性能低下,安全性较差,建议重构再拆分。

楼主说别人代码水平不行,那楼主能读懂在下写的吗?这也就是在下10年前基于.net framework3.5的代码吧。多说无益上代码:

private const char OR_VALUE_SPLITOR_REGEX = ',';
        private string GetMapValue(Dictionary<string,object> dataMap,string fieldNames)
        {
            Dictionary<bool, Action<Dictionary<string, object>>> actions = null;
            bool splitored = true;
            string result = string.Empty;
            try
            {
                splitored = Regex.IsMatch(fieldNames, OR_VALUE_SPLITOR_REGEX.ToString());
                actions = new Dictionary<bool, Action<Dictionary<string, object>>> {
                {true ,d=>{
                    fieldNames.Split(OR_VALUE_SPLITOR_REGEX).ToList().ForEach(fn=>result=d[fieldNames] as string );
                } },
                 {false ,d=>result=d[fieldNames] as string }
            };
                actions[splitored](dataMap);
            }
            catch (Exception ex)
            {
                OnError(ex);
            }
            return result;
        }

我觉得楼主有些过于偏执了,其实每个人都有自己的善长,楼主所谓的什么GIT,Maven这些我觉得只是工具,楼主不能凭借这个就觉得别人不行,况且在下觉得楼主的代码也不太可以。大家在一起共事不容易,请不要带着情绪,要知道这世界上比楼主的水平高得也有,一起好好做事互相帮助,细心的教导我觉得这才是正途。

小小凡123321
回复 @中华人民共和国程序员 : svn和git没啥区别。都是代码管理工具。maven也不是一定说要会,现在都9102年了,java开发都用maven,开源软件,全是maven依赖的。说不会,是不是就过分了鸭。。就事论事而已。我没有引战的意思,git,maven。不会用,说明很少看开源代码,自己没有项目,也不管理自己的项目。
前端大师傅
前端大师傅
回复 @火山火 : 不好意思单字母作变量名并不少见,至少MSDN的事例大量使用,只是阁下井底之蛙的浅见不知,或阁下那松子仁存储不下而已。一般情况下lambda表达式中的回调参数,可以用单字表示,这也是csdn上很多程序员常见的写法,只是阁下无知而已。当然像阁下这种脑子里尽是一些下半身的那些事之外还知道个啥呢?别人只会觉得你是一个没有教养的人。
小小凡123321
回复 @前端大师傅 : 不好意思,没有写代码的麻省理工博士不会使用git。请告诉我,什么代码工作可以十几年不适用代码管理工具,每天压缩zip传代码吗?换电脑就压缩zip传网盘吗?哈哈哈,你都知道半小时都能学会的东西,为什么十几年都不会。问题就在于,十几年都不去学习半小时都能很容易上手的工具。那就废了
火山火
火山火
用单字母作变量名的都不知道是哪里教出来的,一样是low 13
前端大师傅
前端大师傅
回复 @小小凡123321 : 那我想问问阁下,你觉得git,maven这种工具你来学习需要多长时间?我想不需要半小时吧,你可以说没学过git的人就一定很差?但你可以换一个角度来想如果麻省理工的博士别人也可能不会用git,但你能说别人low吗?10几年工作经验的人和会不会用git有什么关系?代码同步的工具有那麽多,为何非要跟你似的用个什么git呢?像你这会点工具有厉害?你这种人永远不明白什么叫道!
下一页
1
aa00aa00
aa00aa00

我觉得楼上的 @ 前端大师傅 说的不错,赞一个,

大家在一起共事不容易,请不要带着情绪,要知道这世界上比楼主的水平高得也有,一起好好做事互相帮助,细心的教导我觉得这才是正途。

这说的非常中肯.

返回顶部
顶部