精华内容
下载资源
问答
  • 程序员七大坏毛病

    万次阅读 热门讨论 2015-05-18 00:13:58
    我在前几篇文章里已经讨论过了这个问题,你可以读读这篇文章和这篇文章,从中你可以理解我所说所有程序都写很烂究竟是什么意思。 如何纠正:不要挑剔别人程序,一天也许你程序会被人放在聚光灯...

     

    1.- 所有的程序都写的很烂,除了我的。

    我要告诉你一个坏消息,兄弟,所有的程序都写的很烂,包括你的。无论你在上面花多少功夫,其他大多数程序员总是会认为你写的代码很烂、他们能写出比你好10倍的程序。我在前几篇文章里已经讨论过了这个问题,你可以读读这篇文章这篇文章,从中你可以理解我所说的所有的程序都写的很烂究竟是什么意思。

    如何纠正:不要挑剔别人的程序,有一天也许你的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。

    2.- 我几秒钟就能把它改好,不用走变更流程了。

    抄捷径充满诱惑,每个人都想抄捷径。有时候抄捷径是必要的,但总的来说,抄捷径是危险的,非常危险,应该避免这样做。走捷径也许会节省你数小时的时间,但如果走错了,它可能会给你带来数月的麻烦。

    如何纠正:遇到需要慎重处理的事情时不要太过自信。让其他人来复查你的所作所为。如果你计划要走捷径,请确保让你的负责人知道这样做的理由以及其中的风险。每次在走捷径时最好都让你的经理来确认实施成功,也就是“让他给你擦屁股”。

    3.- 这是个几分钟就能搞定的事。

    在我的家乡Barcelona,那里的圣家族大教堂让我非常的自豪,它的举世闻名来自于它的美丽,也来自于它的建筑完工日期的规划(它动工于1882年,目前仍未完工),但这可能是因为他们没有让一个程序员去估计这个完工时间,否则的话,估计出的完工所需的时间很可能2周。

    如何纠正:从一开始,你就必须严肃的认识到,对于一个有一定规模的软件开发过程来说,进行精确的时间评估是不现实的,我们能做的只是猜测。同样要记住的非常相似一点是,我们通常会发现有很多事情根本不能预见到它们会花去我们数倍于我们初始估计的时间,我通常的做法是把估计的时间乘上1.5或2。

    4.- 唯我独尊

     

    很多程序员参与的讨论会基本上看起来就像是一场斗鸡,而不像是人类的讨论,这通常会出现在关于设计和架构问题的讨论会上。你基本上很容易看出其中各自都怀有顺我者昌逆我者亡的心态,你基本上可以把大多数的争论者所说的话直接换成咕咕!咕咕嘎!咕咕咕咕咕咕!咕咕嘎!

    如何纠正:把你的自负留在心底。太过自负是所有程序员身上的一个非技术性的最大的一个毛病。凡事要三思而行。

    5.- 这不是我的错!

    在我看来,这另外一个大多数程序员都会有的坏毛病是缺乏责任心。我们总在找借口… 就比如有人会说,如果在正常情况下,这个错误绝对不会出现,但说老实话,这很难让人信服。

    如何纠正:犯了错误不需要去捶胸顿足,也不需要用刨腹自杀来谢罪。我们应该怀有一种健康的态度,说出这样的话:“呀,抱歉,我们现在就去改正这个错误,是我的错”,这是一种很敬业的态度,这能帮助我们树立一个好的声誉,更好的得到你的同事的尊重。

    6.- 没有激情

    重复的和简单的任务通常不会带来什么动力,但这些事必须要完成,当程序员被要求去完成这些事情时,通常会显得无精打采,没有效率。

    如何纠正:纪律问题。很不幸,我再也想不出其它的治疗这种毛病的良方。

    7.- 不成熟

    如果说把对计算机编程当作做爱,那很少有计算机能得到满足。你根本就没有潜心投入,干到一半就结束了,然后倒头便睡。我发现大多数程序员对“干完”这个词很纠结。请记住,干完意味着:测试过(不仅仅只是单元测试),文档完整,提交过,合并过…

    如何纠正:这是一个很麻烦的问题,相对于完全的完成某些功能性问题而言,这些并不是显得很有必要的任务会很庞杂和难处理,通常需要你有纪律性和受过培训。也许,这最简单的能让一个程序员理解他的开发是否真正的完成的两个办法就是:相互复查和演示。

    展开全文
  •  一种情况则是已经知道LZ想要表达什么样的意思了,也可能是带愤怒或者茫然的心情来看的这篇文章。那么不管猿友们是怎么进来的,俗话说,既来之则安之,既然进来了,就干脆入乡随俗,与LZ来一起探讨下懒与勤快的...

              当猿友们进来看这篇文章的时候,可能会有不同的心情。

              一种情况则是已经知道LZ想要表达什么样的意思了,也有可能是带愤怒或者茫然的心情来看的这篇文章。那么不管猿友们是怎么进来的,俗话说,既来之则安之,既然进来了,就干脆入乡随俗,与LZ来一起探讨下懒与勤快的区别吧。

              题目有点吓人,或许会打击一大片,从而导致LZ引起公愤。不过LZ可不是抱着臭名远扬也要扬起来的态度来的,而是真的觉得,如果一个程序猿太勤快的话,那么前途确实比较堪忧。

              在讨论这个问题之前,LZ先和各位猿友分享一个小故事,这个小故事或许有不少人都听过。

     

    小故事

     

              各位都知道1+2+3+.....100=(1+100)*100/2=5050,而这个等差数列的求和公式是由高斯发现的。

              传说中,在高斯的一堂数学课上,高斯的数学老师让同学们计算1加到100的和。当老师给出这道题的时候,不少同学都已经开始拿着大片的纸张,开始了漫长的计算之旅。

              唯独高斯一人坐在座位上,似有所思,却丝毫不动笔。老师看到高斯坐在那一动不动,自然是忍不住上来询问或者说教一番。于是,便出现了下面经典的对话。

              “高斯,your sister的,别人都在那算呢,你杂不动呢?”

              “老师,见证奇迹的时刻到了,我已经算出来了!”

              “我靠,不是吧,我和我的小伙伴们都惊呆了。”

              于是,等差数列的求和公式就这样产生了。通过这个小故事,各位发现了没有,高斯是不是非常的“懒”呢?

              

    此“懒”非彼“懒”

     

              其实高斯并不是“懒”,而是善于思考。

              这里其实也就引出了本篇文章的主要思想,思考是很重要的一项技能,基本上属于你登上巅峰的基本素质,而事实上,这一点对于任何职业,都是相通的。思考注重于境界的提高,而非熟练度的提高。

              

    两种程序猿

     

              这个世界上有这样两种程序猿,当然还有第三种、第四种等等,不过这种程序猿属于稀有动物,不在本次讨论之列(属于第三、四...N种的程序猿请潜水)。

              第一种,他们兢兢业业,每每接到一个任务,不论这项任务多么繁琐,他们总能耐下心来一点一点把问题解决。同样的,如果下一次再来一项相似的任务,他们依然会如此不辞劳苦的将任务完成。在上司眼里,有时候这代表着一种对工作积极负责的态度,因为他们无时无刻不在工作。总之两个字,勤快。

              第二种,他们往往对一些重复且繁琐的工作特别厌烦,更有甚者会经常抱怨连连。他们经常坐在工位上发呆,或是出去抽根烟,上上厕所什么的。总之一天八个小时,预计真正在动手的时间不超三个小时。在上司眼里,这有时候代表着一种对工作懈怠的态度,因为很少看到他们在工作。当然,这里面有些人是真的对工作十分懈怠,而且总是拖延时间,但确实有那么一批人,他们仍然可以按时完成任务。总之一个字,懒。

     

    两种人生

     

              如果你属于前者,那么恭喜你,你很有可能是上司心目当中的好员工。但是也请注意,一个做着重复性工作,却不懂得思考如何提高或者改善自己工作效率而只会蛮干的程序猿,或者说任何职业的从业者,都难成大事,除非有一天,真的有苹果掉到你头上了。不过就算如此,估计你也会暗骂一句,“什么玩意砸了老子,耽误我工作”,至此也就匆匆了事了。因为你陷入了忙忙碌碌的工作,而没有留给自己时间思考。

     

              如果你属于后者,那么恭喜你,你很有可能是未来的高斯,当然,也有可能是屌丝,或许是鱼香肉丝也说不定。这类程序猿,大部分都会比较善于思考问题,并且因为有着懒的本质,他们会想尽一切办法去除自己的重复性工作,从而从彻底上提高工作效率,不仅仅可能会给整个公司带来改革,甚至可能是整个世界。殊不知有多少新工具,新语言等等一系列新东西,都是在某些人试图纵容自己懒下去而产生的。

     

              如果你属于两者的综合体,那么。。。这个怎么说呢,您逆天了。

     

    此“勤快”非彼“勤快”

     

              其实这里的勤快并不是指真正的勤快,而是只用手脚不用脑的代名词。这个坏毛病真的应该改掉,千万不要觉得把自己搞的忙得晕头转向,就是勤奋刻苦,努力上进的表现,很多时候,这只是一种幻象。尤其是在工作了一段时间之后,这种思想就更可怕了。

              

    千言万语汇成一句话

     

              工作是做不完的,不要让你每日陷入忙碌的工作当中,试图给自己留一些时间,特别是在安静的环境下,静静的思考片刻,或许你会得到不一样的收获。

    转载自:http://www.zuoxiaolong.com/blog/article.ftl?id=80

    感觉,这个文章写的很有趣,湿胸我转过来,留着看看。时常激励下自己。

    众老铁们,要是愿意,也可以顺道学习一下。

    展开全文
  • 前几那天写了一个Java程序模拟生产者消费者,当时写完还感觉不错,但是这几天再看时候发现还是很多不足之处,给别人挑毛病不大好意思,尺度拿捏不好还容易得罪人,男...
        

       前几那天写了一个Java程序模拟生产者消费者,当时写完还感觉不错,但是这几天再看的时候发现还是有很多的不足之处,给别人挑毛病不大好意思,尺度拿捏不好还容易得罪人,男人就对自己狠一点,我就给自己多挑挑程序的毛病,这个可以有,有些细微的毛病就马上改了,有些有难度的,我也记录下来,不断的改进,看起来简单的程序写好了才算是一个合格的程序员。

       感兴趣的同学可以移步这里,看看之前写的程序。

       我大体总结了下,从日志中可以看出有这么几个明显的小问题。

    1. 第一种模式和第二种模式的线程数不同,明显第二种模式的线程日志有长得多。

    2. 第二种模式的消费者申请的消费产品数和规格不符,应该为10的倍数,第二种模式没有取整,这样看起来不是很清晰。

    3. 第一种和第二种模式,生产者和消费者对应的产品数不能为0,这种场景其实不应该存在的,所以就可以考虑从随机数或者从对象层级进行校验,至少规范来看,入参要规范,所以我从随机数生成逻辑上进行校验控制。

    4. 生产线程和消费线程虽然是动态生成,但是从日志可以看到有明显的串行执行的痕迹,可以把这个过程做成真正的动态,库存不足,生产者生产,库存充足,消费者消费。如果把生产者消费者这个模型看做是一个系统,就好比一个齿轮,一个直接的目标就是让齿轮转动的快。

    5. 无论第一种模式还是第二种模式,如果碰到条件不满足的情况就会存在等待的情况,这个等待的频率可以借鉴一些数据库层面的经验,来优化控制一下,比如第一次等待,sleep多少毫秒,第二次sleep多少毫秒,这样有一个基本的控制范围,减少中断的次数。

    6. 这个库存其实就像MySQL面刷脏页一样,脏页数达到多少的时候来触发生产者生产,能够尽可能减少生产者等待的频率,提高消费者消费的频率。

    7. 其实目前的实现,如果细细想来,原本生产者消费者的性能瓶颈现在落到仓库上,但是目前仓库应该有几个门,控制入库,控制出库,而不能总是在一个门里,要么把门加宽,要么多加几个门,入口和出口分开。

    8. 为了尽可能提高吞吐量,整个实现过程也可以考虑通过事务的方式来控制,比如放到一个仓库的表里,对于数据进行实时的变更和查询,或者使用其他的数据结构。

    9. 为了尽可能突破单个仓库的瓶颈,可以考虑设置多个仓库,这样库存能够大大大提高,而且是一个线性扩展的方式,当然这就会引进更多的考虑和方案

    10. 尽可能提高消费者线程的使用率,比如考虑使用线程池等等方式来实现。

      最后硬凑一个观点吧,那就是一个牛叉的程序构思好了,能够在短时间内实现出来,光说不做太虚,能说能做才是真。

      或者说你有更多的建议,也给提提吧,感激不尽。

    0

    展开全文
  • XCode的毛病可真不少

    2010-07-08 09:26:11
     这个列表会不断更新,如果它还有更多毛病的话。  不方便的毛病:苹果的固执是出名了,至今不习惯(怎么说形容呢,就像戴了TT,还得是国产伪劣那种,我的意思是戴了橡胶手套,不要想歪)。 1 大多数SDK都自动...

     

        这个列表会不断更新,如果它还有更多毛病的话。

        不方便的毛病:苹果的固执是出名了,至今不习惯(怎么说形容呢,就像戴了TT,还得是国产伪劣那种,我的意思是戴了橡胶手套,不要想歪)。

    1 大多数SDK都有自动弹出关键字的功能,但是XCode有一个毛病,比如输入[[NSString alloc]ini,会弹出initWidthFormat,你会回车就变成initWidthCode,如果手快回车两下,那就必须删掉重来,每天都要被它坑害几次。

    2 不会补齐右边的括号,据说3.1.4后就有了,有点惧怕下载那么大的SDK了,就为这个小功能。

    3 工具栏的按钮太少,很多功能比如clean,find in project,Open,add等都要用菜单,我一搬不会记太多快捷键

    4 单元跳转,单元内查找跳转到某个方法都不方便,特别是一个单元的代码量较多时。出错的红色标志,todo标志在右边的滚动条上很难点到。

    5 错误提示比较弱智,对新手可能造成麻烦,提示某个单元错误,可能错误不在单元内,而是import的某个单元有问题。

    6 IB缺少选择组件的列表,特别一些组件相互覆盖时会比较麻烦。

        脑残的毛病:

    1 改了代码,但是编译后还是按照修改代码前的方式运行,编译过程中肯定有判断哪些代码需要重新编译,可能这个判断出现问题。出现概率很低,而且clean后也不能解决问题,有时候会给你判断问题造成很大的麻烦,解决方法是在刚刚修改的关键地点下了断点,就会突然就正常了,可是代码根本没有再次修改过,在Delphi,Java中也碰过这样的情况,不过XCode频率稍高。

    //***************************************************0811

    × 做横竖屏切换时发现,IB的自动伸展功能计算不大正确,横向略少,纵向略多,要做好还是要自己编代码。


    展开全文
  • 页面上ajax 他就一直出毛病,数据库个账号名是aa 只有我在表单填写aa 他才在网页提示账号重复, 别任何都不提示,只会提示不能为空, 而且还失灵时不灵。 但是用system. 输出 我写任何判断都是对了, 这是...
  • 因为完善公司,都自己政策,一个完善公司,必定会标准。这个标准是什么意思呢?就是一套制度,一套规章,一套做事程序,这个统统都叫做标准。有些小地方就是一个标准,你看五星极、四星级、三星级...
  • 前几那天写了一个Java程序模拟生产者消费者,当时写完还感觉不错,但是这几天再看时候发现还是很多不足之处,给别人挑毛病不大好意思,尺度拿捏不好还容易得罪人,男人就对自己狠一点,我就给自己多挑挑程序...
  • 管理者常犯十个毛病(九)

    千次阅读 2004-10-23 11:47:00
    因为完善公司,都自己政策,一个完善公司,必定会标准。这个标准是什么意思呢?就是一套制度,一套规章,一套做事程序,这个统统都叫做标准。有些小地方就是一个标准,你看五星极、四星级、三星级...
  • 当初的需求评审我也参加了,技术方案我出的,产品的意思是,这两个sb数据的展示是不同的,也就是说,这两份数据,那就叫sb1数据和sb2数据吧。那没毛病呀,这两个数据就是两份数据啊。不同系统,那自然是在不同
  • 八疵事四患(盧立人)

    千次阅读 2012-05-03 11:24:50
    八疵事四患 盧立人 ...況且人八種毛病,事四種禍患,不可不明察呀。 不是自己事而去做,叫做獨攬(摠);沒人理會而進言,叫做花言巧語(佞);迎合對方意思(希意)而順著
  • 骂人艺术

    2021-02-14 12:12:12
    骂人就是道德观念的意思,因为在骂人的时候,至少在骂人者自己总觉得那人该骂的地方。何者该骂,何者不该骂,这个抉择的标准,是极道德的。所以根本不骂人,大可不必。骂人是一种发泄感情的方法,尤其是那一种...
  • 三国演义,曹操和杨修故事: 曹操作为统帅,在打仗过程中,将军进帅帐,问...这个故事里,杨修是那个时代精英人物典型代表,但他个最大的毛病就是爱刷存在感。为了证明自己正确性,最后丢掉了自己性...
  • 我记得有一年范冰冰和李晨分手了,他们都各自发了一句,我们不再是我们,我们依然是我们,之前觉得这句话有毛病,直到20岁以后才懂这句话是什么意思,我们不再是恋爱时候我们了,我们现在回归为正常朋友关系了,...
  • 这是什么意思呢:这表示如果你访问了一个需要权限url,但是目前你登陆角色没有权限,那么页面默认跳转地址。 看着似乎是没啥毛病。 但是!!! 如果是前后端分离怎么办呢?后端shiro让项目
  • 毛病,总这种类似情况,需要在容器内滚动,但是!这种容器内滚动在ios上面处理情况是类似于 -webkit-overflow-scrolling:auto; 什么意思? 就是滑动时候,当手离开屏幕那一刻,滚动立即停止(fr...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 148
精华内容 59
关键字:

有毛病的意思